Parcourir la source

fix namespace violation in sys/shm.h

in fixing this, I've changed the logic from ugly #if/#else blocks
inside the struct shm_info definition to a fixed struct definition and
optional macros to rename the elements. this will be helpful if we
need to move shm_info to a bits header in the future, as it will keep
the feature test logic out of bits.
Rich Felker il y a 11 ans
Parent
commit
513136efa4
1 fichiers modifiés avec 8 ajouts et 6 suppressions
  1. 8 6
      include/sys/shm.h

+ 8 - 6
include/sys/shm.h

@@ -37,14 +37,16 @@ struct shminfo {
 	unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
 };
 
-struct shm_info {
-	int used_ids;
-	unsigned long shm_tot, shm_rss, shm_swp;
 #ifdef _GNU_SOURCE
-	unsigned long swap_attempts, swap_successes;
-#else
-	unsigned long __reserved[2];
+#define __used_ids used_ids
+#define __swap_attempts swap_attempts
+#define __swap_successes swap_successes
 #endif
+
+struct shm_info {
+	int __used_ids;
+	unsigned long shm_tot, shm_rss, shm_swp;
+	unsigned long __swap_attempts, __swap_successes;
 };
 
 typedef unsigned long shmatt_t;