summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-04-01 19:12:18 -0400
committerRich Felker <dalias@aerifal.cx>2015-04-01 19:12:18 -0400
commitdfc1a37c441fe271dfb19c7de62acadc73e255aa (patch)
tree24bfce148936dbb771fcdf41690fcecb9667cb1d
parentb24d813d24c412a2e78bab8ef224a1d4c7c25de8 (diff)
downloadmusl-dfc1a37c441fe271dfb19c7de62acadc73e255aa.tar.gz
musl-dfc1a37c441fe271dfb19c7de62acadc73e255aa.tar.bz2
musl-dfc1a37c441fe271dfb19c7de62acadc73e255aa.tar.xz
musl-dfc1a37c441fe271dfb19c7de62acadc73e255aa.zip
aarch64: fix definition of sem_nsems in semid_ds structure
POSIX requires the sem_nsems member to have type unsigned short. we have to work around the incorrect kernel type using matching endian-specific padding.
-rw-r--r--arch/aarch64/bits/sem.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/aarch64/bits/sem.h b/arch/aarch64/bits/sem.h
index 6ac93365..e46ced95 100644
--- a/arch/aarch64/bits/sem.h
+++ b/arch/aarch64/bits/sem.h
@@ -2,7 +2,13 @@ struct semid_ds {
struct ipc_perm sem_perm;
time_t sem_otime;
time_t sem_ctime;
- time_t sem_nsems;
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+ unsigned short sem_nsems;
+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
+#else
+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
+ unsigned short sem_nsems;
+#endif
time_t __unused3;
time_t __unused4;
};