about summary refs log tree commit diff
path: root/include/sys
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2019-07-31 01:17:53 -0400
committerRich Felker <dalias@aerifal.cx>2019-08-02 00:08:23 -0400
commit3c02bacf0f6bed54979e67d22c43745df9add4a0 (patch)
tree79cefd0e7a63642d08972c5f6d69eeaf12c435d2 /include/sys
parent72f50245d018af0c31b38dec83c557a4e5dd1ea8 (diff)
downloadmusl-3c02bacf0f6bed54979e67d22c43745df9add4a0.tar.gz
musl-3c02bacf0f6bed54979e67d22c43745df9add4a0.tar.xz
musl-3c02bacf0f6bed54979e67d22c43745df9add4a0.zip
allow archs to define IPC_STAT, propagate time64 bit to other macros
to make use of {sem,shm,msg}ctl IPC_STAT functionality to provide
64-bit time_t on 32-bit archs, IPC_STAT and related macros must be
defined with bit 8 (0x100) set. allow archs to define IPC_STAT in
bits/ipc.h, and define the other macros in terms of it so that they
all get the same value of the time64 bit.
Diffstat (limited to 'include/sys')
-rw-r--r--include/sys/ipc.h2
-rw-r--r--include/sys/msg.h4
-rw-r--r--include/sys/sem.h4
-rw-r--r--include/sys/shm.h4
4 files changed, 8 insertions, 6 deletions
diff --git a/include/sys/ipc.h b/include/sys/ipc.h
index c5a39819..cde376fc 100644
--- a/include/sys/ipc.h
+++ b/include/sys/ipc.h
@@ -29,7 +29,9 @@ extern "C" {
 
 #define IPC_RMID 0
 #define IPC_SET  1
+#ifndef IPC_STAT
 #define IPC_STAT 2
+#endif
 #define IPC_INFO 3
 
 #define IPC_PRIVATE ((key_t) 0)
diff --git a/include/sys/msg.h b/include/sys/msg.h
index be6afc34..db5c62a4 100644
--- a/include/sys/msg.h
+++ b/include/sys/msg.h
@@ -25,9 +25,9 @@ typedef unsigned long msglen_t;
 #define MSG_NOERROR 010000
 #define MSG_EXCEPT  020000
 
-#define MSG_STAT 11
+#define MSG_STAT (11 | (IPC_STAT & 0x100))
 #define MSG_INFO 12
-#define MSG_STAT_ANY 13
+#define MSG_STAT_ANY (13 | (IPC_STAT & 0x100))
 
 struct msginfo {
 	int msgpool, msgmap, msgmax, msgmnb, msgmni, msgssz, msgtql;
diff --git a/include/sys/sem.h b/include/sys/sem.h
index 61cdb83d..410c8774 100644
--- a/include/sys/sem.h
+++ b/include/sys/sem.h
@@ -31,9 +31,9 @@ extern "C" {
 
 #define _SEM_SEMUN_UNDEFINED 1
 
-#define SEM_STAT 18
+#define SEM_STAT (18 | (IPC_STAT & 0x100))
 #define SEM_INFO 19
-#define SEM_STAT_ANY 20
+#define SEM_STAT_ANY (20 | (IPC_STAT & 0x100))
 
 struct  seminfo {
 	int semmap;
diff --git a/include/sys/shm.h b/include/sys/shm.h
index 8ef4e8f2..fd708cab 100644
--- a/include/sys/shm.h
+++ b/include/sys/shm.h
@@ -33,9 +33,9 @@ extern "C" {
 
 #define SHM_LOCK 11
 #define SHM_UNLOCK 12
-#define SHM_STAT 13
+#define SHM_STAT (13 | (IPC_STAT & 0x100))
 #define SHM_INFO 14
-#define SHM_STAT_ANY 15
+#define SHM_STAT_ANY (15 | (IPC_STAT & 0x100))
 #define SHM_DEST 01000
 #define SHM_LOCKED 02000
 #define SHM_HUGETLB 04000