Prex Home / Browse Source - Prex Version: 0.9.0

root/include/sys/cdefs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright (c) 1991, 1993
   3  *      The Regents of the University of California.  All rights reserved.
   4  *
   5  * This code is derived from software contributed to Berkeley by
   6  * Berkeley Software Design, Inc.
   7  *
   8  * Redistribution and use in source and binary forms, with or without
   9  * modification, are permitted provided that the following conditions
  10  * are met:
  11  * 1. Redistributions of source code must retain the above copyright
  12  *    notice, this list of conditions and the following disclaimer.
  13  * 2. Redistributions in binary form must reproduce the above copyright
  14  *    notice, this list of conditions and the following disclaimer in the
  15  *    documentation and/or other materials provided with the distribution.
  16  * 3. Neither the name of the University nor the names of its contributors
  17  *    may be used to endorse or promote products derived from this software
  18  *    without specific prior written permission.
  19  *
  20  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30  * SUCH DAMAGE.
  31  *
  32  *      @(#)cdefs.h     8.8 (Berkeley) 1/9/95
  33  */
  34 
  35 #ifndef _SYS_CDEFS_H_
  36 #define _SYS_CDEFS_H_
  37 
  38 /*
  39  * Macro to test if we're using a GNU C compiler of a specific vintage
  40  * or later, for e.g. features that appeared in a particular version
  41  * of GNU C.  Usage:
  42  *
  43  *      #if __GNUC_PREREQ__(major, minor)
  44  *      ...cool feature...
  45  *      #else
  46  *      ...delete feature...
  47  *      #endif
  48  */
  49 #ifdef __GNUC__
  50 #define __GNUC_PREREQ__(x, y)                                           \
  51         ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) ||                  \
  52          (__GNUC__ > (x)))
  53 #else
  54 #define __GNUC_PREREQ__(x, y)   0
  55 #endif
  56 
  57 #if defined(__cplusplus)
  58 #define __BEGIN_DECLS   extern "C" {
  59 #define __END_DECLS     };
  60 #else
  61 #define __BEGIN_DECLS
  62 #define __END_DECLS
  63 #endif
  64 
  65 #define __CONCAT(x,y)   x ## y
  66 #define __STRING(x)     #x
  67 
  68 #if defined(__cplusplus) || defined(__PCC__)
  69 #define __inline        inline          /* convert to C++/C99 keyword */
  70 #else
  71 #ifndef __GNUC__
  72 #define __inline                        /* delete GCC keyword */
  73 #endif
  74 #endif /* !__cplusplus */
  75 
  76 #ifdef __GNUC__
  77 #define __packed        __attribute__((__packed__))
  78 #define __noreturn      __attribute__((__noreturn__))
  79 #elif defined(__lint__)
  80 #define __packed        /* delete */
  81 #define __noreturn      /* delete */
  82 #elif defined(__PCC__)
  83 #define __packed        _Pragma("packed")
  84 #define __noreturn      /* delete */
  85 #elif defined(__SUNPRO_C)
  86 #define __packed        /* delete */
  87 #define __noreturn      /* delete */
  88 #else
  89 #define __packed        error: no __packed for this compiler
  90 #define __noreturn      /* delete */
  91 #endif
  92 
  93 #define __P(protos)     ()
  94 #define __RCSID(_s)
  95 #define __COPYRIGHT(_s)
  96 
  97 #endif /* !_SYS_CDEFS_H_ */

/* [<][>][^][v][top][bottom][index][help] */