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