소스 검색

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 10 년 전
부모
커밋
dfc1a37c44
1개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제
  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;
 };