Explorar el Código

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.
Rich Felker hace 10 años
padre
commit
dfc1a37c44
Se han modificado 1 ficheros con 7 adiciones y 1 borrados
  1. 7 1
      arch/aarch64/bits/sem.h

+ 7 - 1
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;
 };