]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
[!__GNUC__]: Use correct word order.
authorUlrich Drepper <drepper@redhat.com>
Thu, 17 Jun 1999 12:35:18 +0000 (12:35 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 17 Jun 1999 12:35:18 +0000 (12:35 +0000)
sysdeps/unix/sysv/linux/sys/sysmacros.h

index 63c134328440e42c137b0c479a0e52062e106d7c..35760e5e0670ebb3a2a4831bff96140827770d0c 100644 (file)
 # define makedev(major, minor) ((((unsigned int) (major)) << 8) \
                                | ((unsigned int) (minor)))
 #else
-# define major(dev) (((dev).__val[0] >> 8) & 0xff)
-# define minor(dev) ((dev).__val[0] & 0xff)
-# define makedev(major, minor) { ((((unsigned int) (major)) << 8) \
-                                 | ((unsigned int) (minor))), 0 }
+/* We need to know the word order here.  This assumes that the word order
+   is consistent with the byte order.  */
+# include <endian.h>
+# if __BYTE_ORDER == __BIG_ENDIAN
+#  define major(dev) (((dev).__val[1] >> 8) & 0xff)
+#  define minor(dev) ((dev).__val[1] & 0xff)
+#  define makedev(major, minor) { 0, ((((unsigned int) (major)) << 8) \
+                                     | ((unsigned int) (minor))) }
+# else
+#  define major(dev) (((dev).__val[0] >> 8) & 0xff)
+#  define minor(dev) ((dev).__val[0] & 0xff)
+#  define makedev(major, minor) { ((((unsigned int) (major)) << 8) \
+                                  | ((unsigned int) (minor))), 0 }
+# endif
 #endif
 
 #endif /* sys/sysmacros.h */