diff options
author | yliu <yu.liu@ingenic.com> | 2025-07-21 15:51:14 +0800 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2025-08-10 19:27:56 +0200 |
commit | bf47b6f40a04ecf6e4daabe8e854bc295b29f0b7 (patch) | |
tree | fc86fbdf47a1044e07d7f72cd8282fabfc91ee48 /libc/sysdeps/linux/mips/bits | |
parent | 133a547b54894dfe55611d9dc3d8ef273e753a46 (diff) |
time64: fixed msgctl/semctl/shmctl result errors for for MIPS32/RISCV32
Diffstat (limited to 'libc/sysdeps/linux/mips/bits')
-rw-r--r-- | libc/sysdeps/linux/mips/bits/msq.h | 40 | ||||
-rw-r--r-- | libc/sysdeps/linux/mips/bits/sem.h | 7 | ||||
-rw-r--r-- | libc/sysdeps/linux/mips/bits/shm.h | 28 |
3 files changed, 47 insertions, 28 deletions
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 |