From 3c02bacf0f6bed54979e67d22c43745df9add4a0 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 31 Jul 2019 01:17:53 -0400 Subject: 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. --- include/sys/ipc.h | 2 ++ include/sys/msg.h | 4 ++-- include/sys/sem.h | 4 ++-- include/sys/shm.h | 4 ++-- 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 -- cgit v1.2.1