modernc.org/cc@v1.0.1/v2/headers/linux_386/usr/include/i386-linux-gnu/sys/sysmacros.h (about)

     1  /* Definitions of macros to access `dev_t' values.
     2     Copyright (C) 1996-2018 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_OUTER
    20  
    21  #ifndef __SYSMACROS_DEPRECATED_INCLUSION
    22  # define _SYS_SYSMACROS_H_OUTER 1
    23  #endif
    24  
    25  /* If <sys/sysmacros.h> is included after <sys/types.h>, these macros
    26     will already be defined, and we need to redefine them without the
    27     deprecation warnings.  (If they are included in the opposite order,
    28     the outer #ifndef will suppress this entire file and the macros
    29     will be usable without warnings.)  */
    30  #undef major
    31  #undef minor
    32  #undef makedev
    33  
    34  /* This is the macro that must be defined to satisfy the misuse check
    35     in bits/sysmacros.h. */
    36  #ifndef _SYS_SYSMACROS_H
    37  #define _SYS_SYSMACROS_H 1
    38  
    39  #include <features.h>
    40  #include <bits/types.h>
    41  #include <bits/sysmacros.h>
    42  
    43  /* Caution: The text of this deprecation message is unquoted, so that
    44     #symbol can be substituted.  (It is converted to a string by
    45     __SYSMACROS_DM1.)  This means the message must be a sequence of
    46     complete pp-tokens; in particular, English contractions (it's,
    47     can't) cannot be used.
    48  
    49     The message has been manually word-wrapped to fit in 80 columns
    50     when output by GCC 5 and 6.  The first line is shorter to leave
    51     some room for the "foo.c:23: warning:" annotation.  */
    52  #define __SYSMACROS_DM(symbol) __SYSMACROS_DM1 \
    53   (In the GNU C Library, #symbol is defined\n\
    54    by <sys/sysmacros.h>. For historical compatibility, it is\n\
    55    currently defined by <sys/types.h> as well, but we plan to\n\
    56    remove this soon.  To use #symbol, include <sys/sysmacros.h>\n\
    57    directly.  If you did not intend to use a system-defined macro\n\
    58    #symbol, you should undefine it after including <sys/types.h>.)
    59  
    60  /* This macro is variadic because the deprecation message above
    61     contains commas.  */
    62  #define __SYSMACROS_DM1(...) __glibc_macro_warning (#__VA_ARGS__)
    63  
    64  #define __SYSMACROS_DECL_TEMPL(rtype, name, proto)			     \
    65    extern rtype gnu_dev_##name proto __THROW __attribute_const__;
    66  
    67  #define __SYSMACROS_IMPL_TEMPL(rtype, name, proto)			     \
    68    __extension__ __extern_inline __attribute_const__ rtype		     \
    69    __NTH (gnu_dev_##name proto)
    70  
    71  __BEGIN_DECLS __SYSMACROS_DECLARE_MAJOR(__SYSMACROS_DECL_TEMPL) __SYSMACROS_DECLARE_MINOR(__SYSMACROS_DECL_TEMPL) __SYSMACROS_DECLARE_MAKEDEV(__SYSMACROS_DECL_TEMPL)
    72  #ifdef __USE_EXTERN_INLINES
    73  __SYSMACROS_DEFINE_MAJOR(__SYSMACROS_IMPL_TEMPL) __SYSMACROS_DEFINE_MINOR(__SYSMACROS_IMPL_TEMPL) __SYSMACROS_DEFINE_MAKEDEV(__SYSMACROS_IMPL_TEMPL)
    74  #endif
    75      __END_DECLS
    76  #endif				/* _SYS_SYSMACROS_H */
    77  #ifndef __SYSMACROS_NEED_IMPLEMENTATION
    78  # undef __SYSMACROS_DECL_TEMPL
    79  # undef __SYSMACROS_IMPL_TEMPL
    80  # undef __SYSMACROS_DECLARE_MAJOR
    81  # undef __SYSMACROS_DECLARE_MINOR
    82  # undef __SYSMACROS_DECLARE_MAKEDEV
    83  # undef __SYSMACROS_DEFINE_MAJOR
    84  # undef __SYSMACROS_DEFINE_MINOR
    85  # undef __SYSMACROS_DEFINE_MAKEDEV
    86  #endif
    87  #ifdef __SYSMACROS_DEPRECATED_INCLUSION
    88  # define major(dev) __SYSMACROS_DM (major) gnu_dev_major (dev)
    89  # define minor(dev) __SYSMACROS_DM (minor) gnu_dev_minor (dev)
    90  # define makedev(maj, min) __SYSMACROS_DM (makedev) gnu_dev_makedev (maj, min)
    91  #else
    92  # define major(dev) gnu_dev_major (dev)
    93  # define minor(dev) gnu_dev_minor (dev)
    94  # define makedev(maj, min) gnu_dev_makedev (maj, min)
    95  #endif
    96  #endif				/* sys/sysmacros.h */