allow archs to define IPC_STAT, propagate time64 bit to other macros
authorRich Felker <dalias@aerifal.cx>
Wed, 31 Jul 2019 05:17:53 +0000 (01:17 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 2 Aug 2019 04:08:23 +0000 (00:08 -0400)
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.

include/sys/ipc.h
include/sys/msg.h
include/sys/sem.h
include/sys/shm.h

index c5a39819c5e700b8c08e448cb0e4fa22389378d3..cde376fcf8e03f3bde877dff205dd6f4a7afbd06 100644 (file)
@@ -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)
index be6afc34fb7ff66f2a5a4af623605ddccca9d84b..db5c62a42f5934170e8ee6a1c188473a6f5ec2ba 100644 (file)
@@ -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;
index 61cdb83d3fb3ec33c089a67d82d3908ccf3957f5..410c877446b929b6b1c4f0eaaccfe71a7c0a036e 100644 (file)
@@ -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;
index 8ef4e8f2f958f24329c2693888f14a6568e90eb2..fd708cab1eb8c2e22eaf6bf300d8234e5002d770 100644 (file)
@@ -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