modernc.org/cc@v1.0.1/v2/headers/linux_arm/usr/include/arm-linux-gnueabihf/sys/sysmacros.h (about)

     1  /* Definitions of macros to access `dev_t' values.
     2     Copyright (C) 1996-2016 Free Software Foundation, Inc.
     3     This file is part of the GNU C Library.
     4  
     5     The GNU C Library is free software; you can redistribute it and/or
     6     modify it under the terms of the GNU Lesser General Public
     7     License as published by the Free Software Foundation; either
     8     version 2.1 of the License, or (at your option) any later version.
     9  
    10     The GNU C Library is distributed in the hope that it will be useful,
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    13     Lesser General Public License for more details.
    14  
    15     You should have received a copy of the GNU Lesser General Public
    16     License along with the GNU C Library; if not, see
    17     <http://www.gnu.org/licenses/>.  */
    18  
    19  #ifndef _SYS_SYSMACROS_H
    20  #define _SYS_SYSMACROS_H	1
    21  
    22  #include <features.h>
    23  
    24  __BEGIN_DECLS __extension__ extern unsigned int gnu_dev_major(unsigned long long int __dev)
    25  __THROW __attribute_const__;
    26  __extension__ extern unsigned int gnu_dev_minor(unsigned long long int __dev)
    27  __THROW __attribute_const__;
    28  __extension__ extern unsigned long long int gnu_dev_makedev(unsigned int __major, unsigned int __minor)
    29  __THROW __attribute_const__;
    30  
    31  #ifdef __USE_EXTERN_INLINES
    32  __extension__ __extern_inline __attribute_const__ unsigned int __NTH(gnu_dev_major(unsigned long long int __dev))
    33  {
    34  	return ((__dev >> 8) & 0xfff) | ((unsigned int)(__dev >> 32) & ~0xfff);
    35  }
    36  
    37  __extension__ __extern_inline __attribute_const__ unsigned int __NTH(gnu_dev_minor(unsigned long long int __dev))
    38  {
    39  	return (__dev & 0xff) | ((unsigned int)(__dev >> 12) & ~0xff);
    40  }
    41  
    42  __extension__ __extern_inline __attribute_const__ unsigned long long int __NTH(gnu_dev_makedev(unsigned int __major, unsigned int __minor))
    43  {
    44  	return ((__minor & 0xff) | ((__major & 0xfff) << 8)
    45  		| (((unsigned long long int)(__minor & ~0xff)) << 12)
    46  		| (((unsigned long long int)(__major & ~0xfff)) << 32));
    47  }
    48  #endif
    49  __END_DECLS
    50  /* Access the functions with their traditional names.  */
    51  #define major(dev) gnu_dev_major (dev)
    52  #define minor(dev) gnu_dev_minor (dev)
    53  #define makedev(maj, min) gnu_dev_makedev (maj, min)
    54  #endif				/* sys/sysmacros.h */