]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libbsd/lib/contrib/include/bsd/sys/cdefs.h
update
[l4.git] / l4 / pkg / libbsd / lib / contrib / include / bsd / sys / cdefs.h
1 /*
2  * Copyright © 2004-2006, 2009-2011 Guillem Jover <guillem@hadrons.org>
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  * 3. The name of the author may not be used to endorse or promote products
13  *    derived from this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
16  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
17  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
18  * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  */
26
27 #ifdef LIBBSD_OVERLAY
28 #include_next <sys/cdefs.h>
29 #else
30 #include <sys/cdefs.h>
31 #endif
32
33 #ifndef LIBBSD_SYS_CDEFS_H
34 #define LIBBSD_SYS_CDEFS_H
35
36 /*
37  * Some kFreeBSD headers expect those macros to be set for sanity checks.
38  */
39 #ifndef _SYS_CDEFS_H_
40 #define _SYS_CDEFS_H_
41 #endif
42 #ifndef _SYS_CDEFS_H
43 #define _SYS_CDEFS_H
44 #endif
45
46 #ifdef __GNUC__
47 #define LIBBSD_GCC_VERSION (__GNUC__ << 8 | __GNUC_MINOR__)
48 #else
49 #define LIBBSD_GCC_VERSION 0
50 #endif
51
52 #ifndef __dead2
53 # if LIBBSD_GCC_VERSION >= 0x0207
54 #  define __dead2 __attribute__((__noreturn__))
55 # else
56 #  define __dead2
57 # endif
58 #endif
59
60 #ifndef __pure2
61 # if LIBBSD_GCC_VERSION >= 0x0207
62 #  define __pure2 __attribute__((__const__))
63 # else
64 #  define __pure2
65 # endif
66 #endif
67
68 #ifndef __packed
69 # if LIBBSD_GCC_VERSION >= 0x0207
70 #  define __packed __attribute__((__packed__))
71 # else
72 #  define __packed
73 # endif
74 #endif
75
76 #ifndef __aligned
77 # if LIBBSD_GCC_VERSION >= 0x0207
78 #  define __aligned(x) __attribute__((__aligned__(x)))
79 # else
80 #  define __aligned(x)
81 # endif
82 #endif
83
84 /* Linux headers define a struct with a member names __unused.
85  * Debian bugs: #522773 (linux), #522774 (libc).
86  * Disable for now. */
87 #if 0
88 #ifndef __unused
89 # if LIBBSD_GCC_VERSION >= 0x0300
90 #  define __unused __attribute__((unused))
91 # else
92 #  define __unused
93 # endif
94 #endif
95 #endif
96
97 #ifndef __printflike
98 # if LIBBSD_GCC_VERSION >= 0x0300
99 #  define __printflike(x, y) __attribute((format(printf, (x), (y))))
100 # else
101 #  define __printflike(x, y)
102 # endif
103 #endif
104
105 #ifndef __nonnull
106 # if LIBBSD_GCC_VERSION >= 0x0302
107 #  define __nonnull(x) __attribute__((__nonnull__(x)))
108 # else
109 #  define __nonnull(x)
110 # endif
111 #endif
112
113 #ifndef __bounded__
114 # define __bounded__(x, y, z)
115 #endif
116
117 #ifndef __RCSID
118 # define __RCSID(x)
119 #endif
120
121 #ifndef __FBSDID
122 # define __FBSDID(x)
123 #endif
124
125 #ifndef __RCSID
126 # define __RCSID(x)
127 #endif
128
129 #ifndef __RCSID_SOURCE
130 # define __RCSID_SOURCE(x)
131 #endif
132
133 #ifndef __SCCSID
134 # define __SCCSID(x)
135 #endif
136
137 #ifndef __COPYRIGHT
138 # define __COPYRIGHT(x)
139 #endif
140
141 #endif