diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-08-25 20:47:28 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-08-25 20:47:28 +0000 |
commit | 75a48d14640162d757fb0a89b1289d50bda93f06 (patch) | |
tree | be674ac490b994131b8cfdb9f86ad6698ded1644 /sysdeps/unix/sysv/linux/sys | |
parent | c1f5a90b591911bf6d2cf83b05b47ffdf12be499 (diff) | |
download | glibc-75a48d14640162d757fb0a89b1289d50bda93f06.tar glibc-75a48d14640162d757fb0a89b1289d50bda93f06.tar.gz glibc-75a48d14640162d757fb0a89b1289d50bda93f06.tar.bz2 glibc-75a48d14640162d757fb0a89b1289d50bda93f06.zip |
Define macros in a special way if gcc is not used and so dev_t is an
array.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sys')
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/sysmacros.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/sys/sysmacros.h b/sysdeps/unix/sysv/linux/sys/sysmacros.h index 85b1b85d2e..55486feb3e 100644 --- a/sysdeps/unix/sysv/linux/sys/sysmacros.h +++ b/sysdeps/unix/sysv/linux/sys/sysmacros.h @@ -21,9 +21,18 @@ #define _SYS_SYSMACROS_H 1 -/* For compatibility we provide alternative names. */ -#define major(dev) (((dev) >> 8) & 0xff) -#define minor(dev) ((dev) & 0xff) -#define makedev(major, minor) (((major) << 8) | (minor)) +/* For compatibility we provide alternative names. + + The problem here is that compilers other than GCC probably don't + have the `long long' type and so `dev_t' is actually an array. */ +#if defined __GNUC__ && __GNUC__ >= 2 +# define major(dev) ((int)(((dev) >> 8) & 0xff)) +# define minor(dev) ((int)((dev) & 0xff)) +# define makedev(major, minor) (((major) << 8) | (minor)) +#else +# define major(dev) (((dev).__val[0] >> 8) & 0xff) +# define minor(dev) ((dev).__val[0] & 0xff) +# define makedev(major, minor) { (((major) << 8) | (minor)), 0 } +#endif #endif /* _SYS_SYSMACROS_H */ |