diff options
Diffstat (limited to 'libc/sysdeps/linux/mips')
| -rw-r--r-- | libc/sysdeps/linux/mips/bits/msq.h | 64 | ||||
| -rw-r--r-- | libc/sysdeps/linux/mips/bits/sem.h | 4 | ||||
| -rw-r--r-- | libc/sysdeps/linux/mips/bits/shm.h | 4 | 
3 files changed, 62 insertions, 10 deletions
diff --git a/libc/sysdeps/linux/mips/bits/msq.h b/libc/sysdeps/linux/mips/bits/msq.h index 6a00cb671..141b1ff9f 100644 --- a/libc/sysdeps/linux/mips/bits/msq.h +++ b/libc/sysdeps/linux/mips/bits/msq.h @@ -35,25 +35,25 @@ 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__) */ +#if (__WORDSIZE == 32) && defined(__MIPSEL__)  struct msqid_ds  {    struct ipc_perm msg_perm;	/* structure describing operation permission */ -#if defined(__UCLIBC_USE_TIME64__) +#  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 +#  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 +#  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 */ @@ -61,13 +61,65 @@ 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__) +#  if defined(__UCLIBC_USE_TIME64__)    __time_t msg_stime;    __time_t msg_rtime;    __time_t msg_ctime; -#endif +#  endif  }; +#elif (__WORDSIZE == 32) && defined(__MIPSEB__) +struct msqid_ds +{ +  struct ipc_perm msg_perm;	/* structure describing operation permission */ +#  if defined(__UCLIBC_USE_TIME64__) +  unsigned long msg_stime_internal_2;		/* time of last msgsnd command */ +  unsigned long msg_stime_internal_1; +  unsigned long msg_rtime_internal_2;		/* time of last msgrcv command */ +  unsigned long msg_rtime_internal_1; +  unsigned long msg_ctime_internal_2;		/* time of last change */ +  unsigned long msg_ctime_internal_1; +#  else +  unsigned long int __uclibc_unused1; +  __time_t msg_stime; +  unsigned long int __uclibc_unused2; +  __time_t msg_rtime; +  unsigned long int __uclibc_unused3; +  __time_t msg_ctime; +#  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() */ +  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 +}; + +#else + +struct msqid_ds +{ +  struct ipc_perm msg_perm;     /* structure describing operation permission */ +  __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 */ +  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() */ +  unsigned long int __uclibc_unused4; +  unsigned long int __uclibc_unused5; +}; + +#endif +  #ifdef __USE_MISC  # define msg_cbytes	__msg_cbytes diff --git a/libc/sysdeps/linux/mips/bits/sem.h b/libc/sysdeps/linux/mips/bits/sem.h index 2d5ac1dd3..230d04868 100644 --- a/libc/sysdeps/linux/mips/bits/sem.h +++ b/libc/sysdeps/linux/mips/bits/sem.h @@ -38,7 +38,7 @@  struct semid_ds  {    struct ipc_perm sem_perm;		/* operation permission struct */ -#if defined(__UCLIBC_USE_TIME64__) +#if (__WORDSIZE == 32) && defined(__UCLIBC_USE_TIME64__)    unsigned long int __sem_otime_internal_1; /* last semop() time */    unsigned long int __sem_ctime_internal_1; /* last time changed by semctl() */  #else @@ -46,7 +46,7 @@ struct semid_ds    __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__) +#if (__WORDSIZE == 32) && defined(__UCLIBC_USE_TIME64__)    unsigned long int __sem_otime_internal_2;    unsigned long int __sem_ctime_internal_2;    __time_t sem_otime; diff --git a/libc/sysdeps/linux/mips/bits/shm.h b/libc/sysdeps/linux/mips/bits/shm.h index 9880520c3..1855a50b2 100644 --- a/libc/sysdeps/linux/mips/bits/shm.h +++ b/libc/sysdeps/linux/mips/bits/shm.h @@ -46,7 +46,7 @@ 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__) +#if (__WORDSIZE == 32) && 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() */ @@ -58,7 +58,7 @@ struct shmid_ds      __pid_t shm_cpid;			/* pid of creator */      __pid_t shm_lpid;			/* pid of last shmop */      shmatt_t shm_nattch;		/* number of current attaches */ -#if defined(__UCLIBC_USE_TIME64__) +#if (__WORDSIZE == 32) && 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() */  | 
