On 2/6/26 03:26, Warner Losh wrote:
Add System V semaphore operation constants (GETVAL, SETVAL, GETALL, etc.)
and the target_sembuf and target_semun structures needed for semop(2) and
semctl(2) syscall emulation.
Signed-off-by: Stacey Son <[email protected]>
Signed-off-by: Warner Losh <[email protected]>
---
bsd-user/syscall_defs.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h
index 62b9bc752b..becd04efb4 100644
--- a/bsd-user/syscall_defs.h
+++ b/bsd-user/syscall_defs.h
@@ -95,6 +95,26 @@ struct bsd_shm_regions {
/*
* sys/sem.h
*/
+#define TARGET_GETNCNT 3 /* Return the value of semncnt {READ} */
+#define TARGET_GETPID 4 /* Return the value of sempid {READ} */
+#define TARGET_GETVAL 5 /* Return the value of semval {READ} */
+#define TARGET_GETALL 6 /* Return semvals into arg.array {READ} */
+#define TARGET_GETZCNT 7 /* Return the value of semzcnt {READ} */
+#define TARGET_SETVAL 8 /* Set the value of semval to arg.val {ALTER} */
+#define TARGET_SETALL 9 /* Set semvals from arg.array {ALTER} */
+
+struct target_sembuf {
+ unsigned short sem_num; /* semaphore # */
+ short sem_op; /* semaphore operation */
+ short sem_flg; /* operation flags */
+};
abi_short, abi_ushort.
+
+union target_semun {
+ int val; /* value for SETVAL */
abi_int.
+ abi_ulong buf; /* buffer for IPC_STAT & IPC_SET */
+ abi_ulong array; /* array for GETALL & SETALL */
abi_ptr.
r~