summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux')
-rw-r--r--libc/sysdeps/linux/common/bits/msq.h14
-rw-r--r--libc/sysdeps/linux/common/bits/sem.h8
-rw-r--r--libc/sysdeps/linux/mips/bits/msq.h40
-rw-r--r--libc/sysdeps/linux/mips/bits/sem.h7
-rw-r--r--libc/sysdeps/linux/mips/bits/shm.h28
-rw-r--r--libc/sysdeps/linux/riscv32/bits/shm.h6
6 files changed, 71 insertions, 32 deletions
diff --git a/libc/sysdeps/linux/common/bits/msq.h b/libc/sysdeps/linux/common/bits/msq.h
index b594cfff2..0cb734263 100644
--- a/libc/sysdeps/linux/common/bits/msq.h
+++ b/libc/sysdeps/linux/common/bits/msq.h
@@ -37,17 +37,31 @@ typedef unsigned long int msglen_t;
struct msqid_ds
{
struct ipc_perm msg_perm; /* structure describing operation permission */
+#if (__WORDSIZE == 32 && defined(__riscv) && defined(__UCLIBC_USE_TIME64__))
+ unsigned long int msg_stime_internal_1;
+ unsigned long int msg_stime_internal_2;
+ unsigned long int msg_rtime_internal_1;
+ unsigned long int msg_rtime_internal_2;
+ unsigned long int msg_ctime_internal_1;
+ unsigned long int msg_ctime_internal_2;
+#else
__time_t msg_stime; /* time of last msgsnd command */
unsigned long int __uclibc_unused1;
__time_t msg_rtime; /* time of last msgrcv command */
unsigned long int __uclibc_unused2;
__time_t msg_ctime; /* time of last change */
unsigned long int __uclibc_unused3;
+#endif
unsigned long int __msg_cbytes; /* current number of bytes on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
__pid_t msg_lspid; /* pid of last msgsnd() */
__pid_t msg_lrpid; /* pid of last msgrcv() */
+#if (__WORDSIZE == 32 && defined(__riscv) && defined(__UCLIBC_USE_TIME64__))
+ __time_t msg_stime; /* time of last msgsnd command */
+ __time_t msg_rtime; /* time of last msgrcv command */
+ __time_t msg_ctime; /* time of last change */
+#endif
unsigned long int __uclibc_unused4;
unsigned long int __uclibc_unused5;
};
diff --git a/libc/sysdeps/linux/common/bits/sem.h b/libc/sysdeps/linux/common/bits/sem.h
index 24a130981..d855494ee 100644
--- a/libc/sysdeps/linux/common/bits/sem.h
+++ b/libc/sysdeps/linux/common/bits/sem.h
@@ -45,8 +45,8 @@ struct semid_ds
#else
__time_t sem_otime; /* last semop() time */
#endif
-#if (__WORDSIZE == 32 && !defined(__ARC64_ARCH32__) && !defined(__arc__) && !defined(__arm__) && !defined(__or1k__) && !defined(__xtensa__)) || \
- ((defined(__ARC64_ARCH32__) || defined(__arc__) || defined(__arm__) || defined(__or1k__) || defined(__xtensa__)) && !defined(__UCLIBC_USE_TIME64__))
+#if (__WORDSIZE == 32 && !defined(__ARC64_ARCH32__) && !defined(__arc__) && !defined(__arm__) && !defined(__or1k__) && !defined(__xtensa__) && !defined(__riscv)) || \
+ ((defined(__ARC64_ARCH32__) || defined(__arc__) || defined(__arm__) || defined(__or1k__) || defined(__xtensa__) || defined(__riscv)) && !defined(__UCLIBC_USE_TIME64__))
unsigned long int __uclibc_unused1;
#endif
#if defined(__UCLIBC_USE_TIME64__)
@@ -55,8 +55,8 @@ struct semid_ds
#else
__time_t sem_ctime; /* last time changed by semctl() */
#endif
-#if (__WORDSIZE == 32 && !defined(__ARC64_ARCH32__) && !defined(__arc__) && !defined(__arm__) && !defined(__or1k__) && !defined(__xtensa__)) || \
- ((defined(__ARC64_ARCH32__) || defined(__arc__) || defined(__arm__) || defined(__or1k__) || defined(__xtensa__)) && !defined(__UCLIBC_USE_TIME64__))
+#if (__WORDSIZE == 32 && !defined(__ARC64_ARCH32__) && !defined(__arc__) && !defined(__arm__) && !defined(__or1k__) && !defined(__xtensa__) && !defined(__riscv)) || \
+ ((defined(__ARC64_ARCH32__) || defined(__arc__) || defined(__arm__) || defined(__or1k__) || defined(__xtensa__) || defined(__riscv)) && !defined(__UCLIBC_USE_TIME64__))
unsigned long int __uclibc_unused2;
#endif
unsigned long int sem_nsems; /* number of semaphores in set */
diff --git a/libc/sysdeps/linux/mips/bits/msq.h b/libc/sysdeps/linux/mips/bits/msq.h
index bcf1073e8..6a00cb671 100644
--- a/libc/sysdeps/linux/mips/bits/msq.h
+++ b/libc/sysdeps/linux/mips/bits/msq.h
@@ -35,29 +35,24 @@ typedef unsigned long int msglen_t;
/* Structure of record for one message inside the kernel.
The type `struct msg' is opaque. */
+/* Just for (__WORDSIZE == 32) && (__MIPSEL__) */
struct msqid_ds
{
struct ipc_perm msg_perm; /* structure describing operation permission */
-#if (__WORDSIZE == 32) && !defined(__MIPSEL__)
- unsigned long __unused1;
-#endif
- __time_t msg_stime; /* time of last msgsnd command */
-#if (__WORDSIZE == 32) && defined(__MIPSEL__)
- unsigned long __unused1;
-#endif
-#if (__WORDSIZE == 32) && !defined(__MIPSEL__)
- unsigned long __unused2;
-#endif
- __time_t msg_rtime; /* time of last msgrcv command */
-#if (__WORDSIZE == 32) && defined(__MIPSEL__)
- unsigned long __unused2;
-#endif
-#if (__WORDSIZE == 32) && !defined(__MIPSEL__)
- unsigned long __unused3;
-#endif
- __time_t msg_ctime; /* time of last change */
-#if (__WORDSIZE == 32) && defined(__MIPSEL__)
- unsigned long __unused3;
+#if defined(__UCLIBC_USE_TIME64__)
+ unsigned long msg_stime_internal_1; /* time of last msgsnd command */
+ unsigned long msg_stime_internal_2;
+ unsigned long msg_rtime_internal_1; /* time of last msgrcv command */
+ unsigned long msg_rtime_internal_2;
+ unsigned long msg_ctime_internal_1; /* time of last change */
+ unsigned long msg_ctime_internal_2;
+#else
+ __time_t msg_stime;
+ unsigned long int __uclibc_unused1;
+ __time_t msg_rtime;
+ unsigned long int __uclibc_unused2;
+ __time_t msg_ctime;
+ unsigned long int __uclibc_unused3;
#endif
unsigned long int __msg_cbytes; /* current number of bytes on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
@@ -66,6 +61,11 @@ struct msqid_ds
__pid_t msg_lrpid; /* pid of last msgrcv() */
unsigned long int __uclibc_unused4;
unsigned long int __uclibc_unused5;
+#if defined(__UCLIBC_USE_TIME64__)
+ __time_t msg_stime;
+ __time_t msg_rtime;
+ __time_t msg_ctime;
+#endif
};
#ifdef __USE_MISC
diff --git a/libc/sysdeps/linux/mips/bits/sem.h b/libc/sysdeps/linux/mips/bits/sem.h
index 35eaa05c3..2d5ac1dd3 100644
--- a/libc/sysdeps/linux/mips/bits/sem.h
+++ b/libc/sysdeps/linux/mips/bits/sem.h
@@ -40,20 +40,21 @@ struct semid_ds
struct ipc_perm sem_perm; /* operation permission struct */
#if defined(__UCLIBC_USE_TIME64__)
unsigned long int __sem_otime_internal_1; /* last semop() time */
- unsigned long int __sem_otime_internal_2;
unsigned long int __sem_ctime_internal_1; /* last time changed by semctl() */
- unsigned long int __sem_ctime_internal_2;
#else
__time_t sem_otime; /* last semop() time */
__time_t sem_ctime; /* last time changed by semctl() */
#endif
unsigned long int sem_nsems; /* number of semaphores in set */
#if defined(__UCLIBC_USE_TIME64__)
+ unsigned long int __sem_otime_internal_2;
+ unsigned long int __sem_ctime_internal_2;
__time_t sem_otime;
__time_t sem_ctime;
-#endif
+#else
unsigned long int __uclibc_unused1;
unsigned long int __uclibc_unused2;
+#endif
};
/* The user should define a union like the following to use it for arguments
diff --git a/libc/sysdeps/linux/mips/bits/shm.h b/libc/sysdeps/linux/mips/bits/shm.h
index bb87ba13d..9880520c3 100644
--- a/libc/sysdeps/linux/mips/bits/shm.h
+++ b/libc/sysdeps/linux/mips/bits/shm.h
@@ -46,14 +46,32 @@ struct shmid_ds
{
struct ipc_perm shm_perm; /* operation permission struct */
size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
- __time_t shm_dtime; /* time of last shmdt() */
- __time_t shm_ctime; /* time of last change by shmctl() */
+#if defined(__UCLIBC_USE_TIME64__)
+ unsigned long int shm_atime_internal_1; /* time of last shmat() */
+ unsigned long int shm_dtime_internal_1; /* time of last shmdt() */
+ unsigned long int shm_ctime_internal_1; /* time of last change by shmctl() */
+#else
+ __time_t shm_atime;
+ __time_t shm_dtime;
+ __time_t shm_ctime;
+#endif
__pid_t shm_cpid; /* pid of creator */
__pid_t shm_lpid; /* pid of last shmop */
shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __uclibc_unused1;
- unsigned long int __uclibc_unused2;
+#if defined(__UCLIBC_USE_TIME64__)
+ unsigned short int shm_atime_internal_2; /* time of last shmat() */
+ unsigned short int shm_dtime_internal_2; /* time of last shmdt() */
+ unsigned short int shm_ctime_internal_2; /* time of last change by shmctl() */
+ unsigned short int __uclibc_unused1;
+ __time_t shm_atime;
+ __time_t shm_dtime;
+ __time_t shm_ctime;
+#else
+ unsigned short int __uclibc_unused1;
+ unsigned short int __uclibc_unused2;
+ unsigned short int __uclibc_unused3;
+ unsigned short int __uclibc_unused4;
+#endif
};
#ifdef __USE_MISC
diff --git a/libc/sysdeps/linux/riscv32/bits/shm.h b/libc/sysdeps/linux/riscv32/bits/shm.h
index 8a11c7050..9190c562b 100644
--- a/libc/sysdeps/linux/riscv32/bits/shm.h
+++ b/libc/sysdeps/linux/riscv32/bits/shm.h
@@ -37,12 +37,18 @@ struct shmid_ds
{
struct ipc_perm shm_perm; /* operation permission struct */
size_t shm_segsz; /* size of segment in bytes */
+#if defined(__UCLIBC_USE_TIME64__)
+ __time_t shm_atime;
+ __time_t shm_dtime;
+ __time_t shm_ctime;
+#else
__time_t shm_atime; /* time of last shmat() */
unsigned long int __uclibc_unused1;
__time_t shm_dtime; /* time of last shmdt() */
unsigned long int __uclibc_unused2;
__time_t shm_ctime; /* time of last change by shmctl() */
unsigned long int __uclibc_unused3;
+#endif
__pid_t shm_cpid; /* pid of creator */
__pid_t shm_lpid; /* pid of last shmop */
shmatt_t shm_nattch; /* number of current attaches */