Project

General

Profile

Statistics
| Branch: | Revision:

root / prex-0.9.0 / include / sys / cdefs.h @ 03e9c04a

History | View | Annotate | Download (3.12 KB)

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_ */