Date: Thu, 16 Sep 2010 23:03:50 GMT From: Stanislav Sedov <stas@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 183879 for review Message-ID: <201009162303.o8GN3nfT038476@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@183879?ac=10 Change 183879 by stas@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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009162303.o8GN3nfT038476>