Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaakov Selkowitz <yselkowi@redhat.com>2011-04-05 04:53:17 +0400
committerYaakov Selkowitz <yselkowi@redhat.com>2011-04-05 04:53:17 +0400
commitddebf19a2a59a942247a1c090fd1d7ad837703c4 (patch)
tree25a9fba85b32f0d9bb8517d52f3b27bdd06a2f04
parent8b09538c941942c5cfe278144ffdaa2c900f11f2 (diff)
* include/cygwin/types.h: Move #include <sys/sysmacros.h> to
end of header so that it gets the dev_t typedef. * include/sys/sysmacros.h (gnu_dev_major, gnu_dev_minor, gnu_dev_makedev): Prototype and define as inline functions. (major, minor, makedev): Redefine in terms of gnu_dev_*.
-rw-r--r--winsup/cygwin/ChangeLog8
-rw-r--r--winsup/cygwin/include/cygwin/types.h4
-rw-r--r--winsup/cygwin/include/sys/sysmacros.h30
3 files changed, 37 insertions, 5 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 6ee98389d..18c74553b 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,13 @@
2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+ * include/cygwin/types.h: Move #include <sys/sysmacros.h> to
+ end of header so that it gets the dev_t typedef.
+ * include/sys/sysmacros.h (gnu_dev_major, gnu_dev_minor,
+ gnu_dev_makedev): Prototype and define as inline functions.
+ (major, minor, makedev): Redefine in terms of gnu_dev_*.
+
+2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+
* include/cygwin/types.h: Move multiple inclusion guards to
beginning and end of header.
diff --git a/winsup/cygwin/include/cygwin/types.h b/winsup/cygwin/include/cygwin/types.h
index c049fa371..cbb4b4492 100644
--- a/winsup/cygwin/include/cygwin/types.h
+++ b/winsup/cygwin/include/cygwin/types.h
@@ -17,7 +17,6 @@ extern "C"
{
#endif
-#include <sys/sysmacros.h>
#include <stdint.h>
#include <endian.h>
@@ -219,6 +218,9 @@ typedef class pthread_rwlockattr *pthread_rwlockattr_t;
typedef class semaphore *sem_t;
#endif /* __INSIDE_CYGWIN__ */
+/* this header needs the dev_t typedef */
+#include <sys/sysmacros.h>
+
#ifdef __cplusplus
}
#endif
diff --git a/winsup/cygwin/include/sys/sysmacros.h b/winsup/cygwin/include/sys/sysmacros.h
index 82bc6c1e3..78f2db2d5 100644
--- a/winsup/cygwin/include/sys/sysmacros.h
+++ b/winsup/cygwin/include/sys/sysmacros.h
@@ -1,6 +1,6 @@
/* sys/sysmacros.h
- Copyright 1998, 2001, 2010 Red Hat, Inc.
+ Copyright 1998, 2001, 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -11,8 +11,30 @@ details. */
#ifndef _SYS_SYSMACROS_H
#define _SYS_SYSMACROS_H
-#define major(dev) ((int)(((dev) >> 16) & 0xffff))
-#define minor(dev) ((int)((dev) & 0xffff))
-#define makedev(major, minor) (((major) << 16) | ((minor) & 0xffff))
+_ELIDABLE_INLINE int gnu_dev_major(dev_t);
+_ELIDABLE_INLINE int gnu_dev_minor(dev_t);
+_ELIDABLE_INLINE dev_t gnu_dev_makedev(int, int);
+
+_ELIDABLE_INLINE int
+gnu_dev_major(dev_t dev)
+{
+ return (int)(((dev) >> 16) & 0xffff);
+}
+
+_ELIDABLE_INLINE int
+gnu_dev_minor(dev_t dev)
+{
+ return (int)((dev) & 0xffff);
+}
+
+_ELIDABLE_INLINE dev_t
+gnu_dev_makedev(int maj, int min)
+{
+ return (((maj) << 16) | ((min) & 0xffff));
+}
+
+#define major(dev) gnu_dev_major(dev)
+#define minor(dev) gnu_dev_minor(dev)
+#define makedev(maj, min) gnu_dev_makedev(maj, min)
#endif /* _SYS_SYSMACROS_H */