[Glibc-bsd-commits] r6151 - in trunk/glibc-ports-2.25/kfreebsd: bits sys

aurel32 at alioth.debian.org aurel32 at alioth.debian.org
Thu Aug 3 22:01:40 UTC 2017


Author: aurel32
Date: 2017-08-03 22:01:40 +0000 (Thu, 03 Aug 2017)
New Revision: 6151

Added:
   trunk/glibc-ports-2.25/kfreebsd/bits/sysmacros.h
Removed:
   trunk/glibc-ports-2.25/kfreebsd/sys/sysmacros.h
Log:
Add FreeBSD version of bits/sysmacros.h

upstream commit 63eb8df85a17f7f966d4daa4cf44c8e956636a86: Minimize sysdeps code involved in defining major/minor/makedev.


Added: trunk/glibc-ports-2.25/kfreebsd/bits/sysmacros.h
===================================================================
--- trunk/glibc-ports-2.25/kfreebsd/bits/sysmacros.h	                        (rev 0)
+++ trunk/glibc-ports-2.25/kfreebsd/bits/sysmacros.h	2017-08-03 22:01:40 UTC (rev 6151)
@@ -0,0 +1,60 @@
+/* Definitions of macros to access `dev_t' values.  FreeBSD version.
+   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_SYSMACROS_H
+#define _BITS_SYSMACROS_H 1
+
+#ifndef _SYS_SYSMACROS_H
+# error "Never include <bits/sysmacros.h> directly; use <sys/sysmacros.h> instead."
+#endif
+
+/* The FreeBSD version of dev_t in glibc is a 32-bit quantity, with 8-bit
+   major and 24-bit minor numbers.  The encoding is mmmmMMmm, where M is a
+   hex digit of the major number and m is a hex digit of the minor number.  */
+
+#define __SYSMACROS_DECLARE_MAJOR(DECL_TEMPL)			\
+  DECL_TEMPL(unsigned int, major, (__dev_t __dev))
+
+#define __SYSMACROS_DEFINE_MAJOR(DECL_TEMPL)			\
+  __SYSMACROS_DECLARE_MAJOR (DECL_TEMPL)			\
+  {								\
+    return ((__dev & (__dev_t) 0x0000ff00u) >> 8);		\
+  }
+
+#define __SYSMACROS_DECLARE_MINOR(DECL_TEMPL)			\
+  DECL_TEMPL(unsigned int, minor, (__dev_t __dev))
+
+#define __SYSMACROS_DEFINE_MINOR(DECL_TEMPL)			\
+  __SYSMACROS_DECLARE_MINOR (DECL_TEMPL)			\
+  {								\
+    return (__dev & (__dev_t) 0xffff00ff);			\
+  }
+
+#define __SYSMACROS_DECLARE_MAKEDEV(DECL_TEMPL)			\
+  DECL_TEMPL(__dev_t, makedev, (unsigned int __major, unsigned int __minor))
+
+#define __SYSMACROS_DEFINE_MAKEDEV(DECL_TEMPL)			\
+  __SYSMACROS_DECLARE_MAKEDEV (DECL_TEMPL)			\
+  {								\
+    __dev_t __dev;						\
+    __dev  = (((__dev_t) (__major & 0x000000ffu)) << 8);	\
+    __dev |= (((__dev_t) (__minor & 0xffff00ffu)) << 0);	\
+    return __dev;						\
+  }
+
+#endif /* bits/sysmacros.h */

Deleted: trunk/glibc-ports-2.25/kfreebsd/sys/sysmacros.h
===================================================================
--- trunk/glibc-ports-2.25/kfreebsd/sys/sysmacros.h	2017-08-03 22:00:36 UTC (rev 6150)
+++ trunk/glibc-ports-2.25/kfreebsd/sys/sysmacros.h	2017-08-03 22:01:40 UTC (rev 6151)
@@ -1,36 +0,0 @@
-/* Definitions of macros to access `dev_t' values.  FreeBSD version.
-   Copyright (C) 1996-1997, 1999, 2002 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _SYS_SYSMACROS_H
-#define _SYS_SYSMACROS_H	1
-
-/* 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.  */
-#define major(dev) ((int)(((unsigned int) (dev) >> 8) & 0xff))
-#define minor(dev) ((int)((dev) & 0xffff00ff))
-#define makedev(major, minor) (((major) << 8) | (minor))
-
-/* Access the functions with their new names.  */
-#define gnu_dev_major(dev) major (dev)
-#define gnu_dev_minor(dev) minor (dev)
-#define gnu_dev_makedev(maj, min) makedev (maj, min)
-
-#endif /* sys/sysmacros.h */




More information about the Glibc-bsd-commits mailing list