move struct semid_ds to from shared sys/sem.h to bits
authorRich Felker <dalias@aerifal.cx>
Tue, 11 Mar 2014 19:27:13 +0000 (15:27 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 11 Mar 2014 19:27:13 +0000 (15:27 -0400)
the definition was found to be incorrect at least for powerpc, and
fixing this cleanly requires making the definition arch-specific. this
will allow cleaning up the definition for other archs to make it more
specific, and reversing some of the ugliness (time_t hacks) introduced
with the x32 port.

this first commit simply copies the existing definition to each arch
without any changes. this is intentional, to make it easier to review
changes made on a per-arch basis.

arch/arm/bits/sem.h [new file with mode: 0644]
arch/i386/bits/sem.h [new file with mode: 0644]
arch/microblaze/bits/sem.h [new file with mode: 0644]
arch/mips/bits/sem.h [new file with mode: 0644]
arch/powerpc/bits/sem.h [new file with mode: 0644]
arch/sh/bits/sem.h [new file with mode: 0644]
arch/x32/bits/sem.h [new file with mode: 0644]
arch/x86_64/bits/sem.h [new file with mode: 0644]
include/sys/sem.h

diff --git a/arch/arm/bits/sem.h b/arch/arm/bits/sem.h
new file mode 100644 (file)
index 0000000..c629b81
--- /dev/null
@@ -0,0 +1,16 @@
+struct semid_ds {
+       struct ipc_perm sem_perm;
+       time_t sem_otime;
+       time_t __unused1;
+       time_t sem_ctime;
+       time_t __unused2;
+#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;
+};
diff --git a/arch/i386/bits/sem.h b/arch/i386/bits/sem.h
new file mode 100644 (file)
index 0000000..c629b81
--- /dev/null
@@ -0,0 +1,16 @@
+struct semid_ds {
+       struct ipc_perm sem_perm;
+       time_t sem_otime;
+       time_t __unused1;
+       time_t sem_ctime;
+       time_t __unused2;
+#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;
+};
diff --git a/arch/microblaze/bits/sem.h b/arch/microblaze/bits/sem.h
new file mode 100644 (file)
index 0000000..c629b81
--- /dev/null
@@ -0,0 +1,16 @@
+struct semid_ds {
+       struct ipc_perm sem_perm;
+       time_t sem_otime;
+       time_t __unused1;
+       time_t sem_ctime;
+       time_t __unused2;
+#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;
+};
diff --git a/arch/mips/bits/sem.h b/arch/mips/bits/sem.h
new file mode 100644 (file)
index 0000000..c629b81
--- /dev/null
@@ -0,0 +1,16 @@
+struct semid_ds {
+       struct ipc_perm sem_perm;
+       time_t sem_otime;
+       time_t __unused1;
+       time_t sem_ctime;
+       time_t __unused2;
+#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;
+};
diff --git a/arch/powerpc/bits/sem.h b/arch/powerpc/bits/sem.h
new file mode 100644 (file)
index 0000000..c629b81
--- /dev/null
@@ -0,0 +1,16 @@
+struct semid_ds {
+       struct ipc_perm sem_perm;
+       time_t sem_otime;
+       time_t __unused1;
+       time_t sem_ctime;
+       time_t __unused2;
+#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;
+};
diff --git a/arch/sh/bits/sem.h b/arch/sh/bits/sem.h
new file mode 100644 (file)
index 0000000..c629b81
--- /dev/null
@@ -0,0 +1,16 @@
+struct semid_ds {
+       struct ipc_perm sem_perm;
+       time_t sem_otime;
+       time_t __unused1;
+       time_t sem_ctime;
+       time_t __unused2;
+#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;
+};
diff --git a/arch/x32/bits/sem.h b/arch/x32/bits/sem.h
new file mode 100644 (file)
index 0000000..c629b81
--- /dev/null
@@ -0,0 +1,16 @@
+struct semid_ds {
+       struct ipc_perm sem_perm;
+       time_t sem_otime;
+       time_t __unused1;
+       time_t sem_ctime;
+       time_t __unused2;
+#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;
+};
diff --git a/arch/x86_64/bits/sem.h b/arch/x86_64/bits/sem.h
new file mode 100644 (file)
index 0000000..c629b81
--- /dev/null
@@ -0,0 +1,16 @@
+struct semid_ds {
+       struct ipc_perm sem_perm;
+       time_t sem_otime;
+       time_t __unused1;
+       time_t sem_ctime;
+       time_t __unused2;
+#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;
+};
index 6ee3dd5a9b9b7ac3ac04a627c05be08060785f7d..e7c369803ade87342532b731b30fba4b8cd026f5 100644 (file)
@@ -27,22 +27,7 @@ extern "C" {
 
 #include <endian.h>
 
-struct semid_ds {
-       struct ipc_perm sem_perm;
-       time_t sem_otime;
-       time_t __unused1;
-       time_t sem_ctime;
-       time_t __unused2;
-#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;
-};
+#include <bits/sem.h>
 
 #define _SEM_SEMUN_UNDEFINED 1