PERFORCE change 183879 for review

Stanislav Sedov stas at FreeBSD.org
Thu Sep 16 23:03:50 UTC 2010


http://p4web.freebsd.org/@@183879?ac=10

Change 183879 by stas at stas_orion on 2010/09/16 23:03:06

	- Add support for syscall 510 (new semctl).

Affected files ...

.. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#21 edit
.. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#47 edit
.. //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#8 edit

Differences ...

==== //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#21 (text+ko) ====

@@ -109,6 +109,7 @@
 DECL_TEMPLATE(freebsd, sys_undelete);
 DECL_TEMPLATE(freebsd, sys_futimes);
 DECL_TEMPLATE(freebsd, sys_nfs_fhopen);
+DECL_TEMPLATE(freebsd, sys___semctl7);
 DECL_TEMPLATE(freebsd, sys___semctl);
 DECL_TEMPLATE(freebsd, sys_semget);
 DECL_TEMPLATE(freebsd, sys_semop);

==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#47 (text+ko) ====

@@ -2666,6 +2666,65 @@
    ML_(generic_PRE_sys_semop)(tid, ARG1,ARG2,ARG3);
 }
 
+struct ipc_perm7 {
+	unsigned short	cuid;	/* creator user id */
+	unsigned short	cgid;	/* creator group id */
+	unsigned short	uid;	/* user id */
+	unsigned short	gid;	/* group id */
+	unsigned short	mode;	/* r/w permission */
+	unsigned short	seq;	/* sequence # (to generate unique ipcid) */
+	vki_key_t	key;	/* user specified msg/sem/shm key */
+};
+
+struct semid_ds7 {
+	struct ipc_perm7 sem_perm;	/* operation permission struct */
+	struct sem	*sem_base;	/* pointer to first semaphore in set */
+	unsigned short	sem_nsems;	/* number of sems in set */
+	vki_time_t	sem_otime;	/* last operation time */
+	long		sem_pad1;	/* SVABI/386 says I need this here */
+	vki_time_t	sem_ctime;	/* last change time */
+    					/* Times measured in secs since */
+    					/* 00:00:00 GMT, Jan. 1, 1970 */
+	long		sem_pad2;	/* SVABI/386 says I need this here */
+	long		sem_pad3[4];	/* SVABI/386 says I need this here */
+};
+
+PRE(sys___semctl7)
+{
+   switch (ARG3) {
+   case VKI_IPC_INFO:
+   case VKI_SEM_INFO:
+      PRINT("sys_semctl ( %ld, %ld, %ld, %#lx )",ARG1,ARG2,ARG3,ARG4);
+      PRE_REG_READ4(long, "semctl",
+                    int, semid, int, semnum, int, cmd, struct seminfo *, arg);
+      break;
+   case VKI_IPC_STAT:
+   case VKI_SEM_STAT:
+   case VKI_IPC_SET:
+      PRINT("sys_semctl ( %ld, %ld, %ld, %#lx )",ARG1,ARG2,ARG3,ARG4);
+      PRE_REG_READ4(long, "semctl",
+                    int, semid, int, semnum, int, cmd, struct semid_ds7 *, arg);
+      break;
+   case VKI_GETALL:
+   case VKI_SETALL:
+      PRINT("sys_semctl ( %ld, %ld, %ld, %#lx )",ARG1,ARG2,ARG3,ARG4);
+      PRE_REG_READ4(long, "semctl",
+                    int, semid, int, semnum, int, cmd, unsigned short *, arg);
+      break;
+   default:
+      PRINT("sys_semctl ( %ld, %ld, %ld )",ARG1,ARG2,ARG3);
+      PRE_REG_READ3(long, "semctl",
+                    int, semid, int, semnum, int, cmd);
+      break;
+   }
+   ML_(generic_PRE_sys_semctl)(tid, ARG1,ARG2,ARG3,ARG4);
+}
+
+POST(sys___semctl7)
+{
+   ML_(generic_POST_sys_semctl)(tid, RES,ARG1,ARG2,ARG3,ARG4);
+}
+
 PRE(sys___semctl)
 {
    switch (ARG3) {
@@ -3493,7 +3552,7 @@
    BSDX_(__NR_lkmnosys8,		sys_lkmnosys8),			// 218
 // BSDXY(__NR_nfs_fhopen,		sys_nfs_fhopen),		// 219
 
-   BSDXY(__NR___semctl,			sys___semctl),			// 220
+   BSDXY(__NR___semctl7,		sys___semctl7),			// 220
    BSDX_(__NR_semget,			sys_semget),			// 221
    BSDX_(__NR_semop,			sys_semop),			// 222
    // unimpl semconfig							   223
@@ -3850,6 +3909,8 @@
 
    // posix_openpt							   504
 
+   BSDXY(__NR___semctl,			sys___semctl),			// 510
+
 
 };
 

==== //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#8 (text+ko) ====

@@ -186,7 +186,7 @@
 #define	__NR_lkmnosys7		217
 #define	__NR_lkmnosys8		218
 #define	__NR_nfs_fhopen		219
-#define	__NR___semctl		220
+#define	__NR___semctl7		220
 #define	__NR_semget		221
 #define	__NR_semop		222
 #define	__NR_msgctl		224
@@ -405,5 +405,6 @@
 #define	__NR_symlinkat		502
 #define	__NR_unlinkat		503
 #define	__NR_posix_openpt	504
+#define	__NR___semctl		510
 
 #endif /* __VKI_UNISTD_FREEBSD_H */


More information about the p4-projects mailing list