Introduction
Introduction Statistics Contact Development Disclaimer Help
u.h - 9base - revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log
Files
Refs
README
LICENSE
---
u.h (4287B)
---
1 #ifndef _U_H_
2 #define _U_H_ 1
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
6
7 #define __BSD_VISIBLE 1 /* FreeBSD 5.x */
8 #if defined(__sun__)
9 # define __EXTENSIONS__ 1 /* SunOS */
10 # if defined(__SunOS5_6__) || defined(__SunOS5_7__) || defined(__…
11 /* NOT USING #define __MAKECONTEXT_V2_SOURCE 1 / * SunOS…
12 # else
13 /* What's left? */
14 # define __MAKECONTEXT_V2_SOURCE 1
15 # endif
16 #endif
17 #define _BSD_SOURCE 1
18 #define _NETBSD_SOURCE 1 /* NetBSD */
19 #define _SVID_SOURCE 1
20 #if !defined(__APPLE__) && !defined(__OpenBSD__)
21 # define _XOPEN_SOURCE 1000
22 # define _XOPEN_SOURCE_EXTENDED 1
23 #endif
24 #if defined(__FreeBSD__)
25 # include <sys/cdefs.h>
26 /* for strtoll */
27 # undef __ISO_C_VISIBLE
28 # define __ISO_C_VISIBLE 1999
29 # undef __LONG_LONG_SUPPORTED
30 # define __LONG_LONG_SUPPORTED
31 #endif
32 #if defined(__AIX__)
33 # define _XOPEN_SOURCE 1
34 #endif
35 #if defined(__APPLE__)
36 # define _DARWIN_NO_64_BIT_INODE /* Snow Leopard */
37 #endif
38 #define _LARGEFILE64_SOURCE 1
39 #define _FILE_OFFSET_BITS 64
40
41 #include <inttypes.h>
42
43 #include <unistd.h>
44 #include <string.h>
45 #include <stdlib.h>
46 #include <stdarg.h>
47 #include <fcntl.h>
48 #include <assert.h>
49 #include <setjmp.h>
50 #include <stddef.h>
51 #include <math.h>
52 #include <ctype.h> /* for tolower */
53
54 /*
55 * OS-specific crap
56 */
57 #define _NEEDUCHAR 1
58 #define _NEEDUSHORT 1
59 #define _NEEDUINT 1
60 #define _NEEDULONG 1
61
62 typedef long p9jmp_buf[sizeof(sigjmp_buf)/sizeof(long)];
63
64 #if defined(__linux__)
65 # include <sys/types.h>
66 # if defined(__Linux26__)
67 # include <pthread.h>
68 # define PLAN9PORT_USING_PTHREADS 1
69 # endif
70 # if defined(__USE_MISC)
71 # undef _NEEDUSHORT
72 # undef _NEEDUINT
73 # undef _NEEDULONG
74 # endif
75 #elif defined(__sun__)
76 # include <sys/types.h>
77 # include <pthread.h>
78 # define PLAN9PORT_USING_PTHREADS 1
79 # undef _NEEDUSHORT
80 # undef _NEEDUINT
81 # undef _NEEDULONG
82 # define nil 0 /* no cast to void* */
83 #elif defined(__FreeBSD__)
84 # include <sys/types.h>
85 # include <osreldate.h>
86 # if __FreeBSD_version >= 500000
87 # define PLAN9PORT_USING_PTHREADS 1
88 # include <pthread.h>
89 # endif
90 # if !defined(_POSIX_SOURCE)
91 # undef _NEEDUSHORT
92 # undef _NEEDUINT
93 # endif
94 #elif defined(__APPLE__)
95 # include <sys/types.h>
96 # include <pthread.h>
97 # define PLAN9PORT_USING_PTHREADS 1
98 # if __GNUC__ < 4
99 # undef _NEEDUSHORT
100 # undef _NEEDUINT
101 # endif
102 # undef _ANSI_SOURCE
103 # undef _POSIX_C_SOURCE
104 # undef _XOPEN_SOURCE
105 # if !defined(NSIG)
106 # define NSIG 32
107 # endif
108 # define _NEEDLL 1
109 #elif defined(__NetBSD__)
110 # include <sched.h>
111 # include <sys/types.h>
112 # undef _NEEDUSHORT
113 # undef _NEEDUINT
114 # undef _NEEDULONG
115 #elif defined(__OpenBSD__)
116 # include <sys/types.h>
117 # undef _NEEDUSHORT
118 # undef _NEEDUINT
119 # undef _NEEDULONG
120 #else
121 /* No idea what system this is -- try some defaults */
122 # include <pthread.h>
123 # define PLAN9PORT_USING_PTHREADS 1
124 #endif
125
126 #ifndef O_DIRECT
127 #define O_DIRECT 0
128 #endif
129
130 typedef signed char schar;
131
132 #ifdef _NEEDUCHAR
133 typedef unsigned char uchar;
134 #endif
135 #ifdef _NEEDUSHORT
136 typedef unsigned short ushort;
137 #endif
138 #ifdef _NEEDUINT
139 typedef unsigned int uint;
140 #endif
141 #ifdef _NEEDULONG
142 typedef unsigned long ulong;
143 #endif
144 typedef unsigned long long uvlong;
145 typedef long long vlong;
146
147 typedef uint64_t u64int;
148 typedef int64_t s64int;
149 typedef uint8_t u8int;
150 typedef int8_t s8int;
151 typedef uint16_t u16int;
152 typedef int16_t s16int;
153 typedef uintptr_t uintptr;
154 typedef intptr_t intptr;
155 typedef uint32_t u32int;
156 typedef int32_t s32int;
157
158 #undef _NEEDUCHAR
159 #undef _NEEDUSHORT
160 #undef _NEEDUINT
161 #undef _NEEDULONG
162
163 /*
164 * Funny-named symbols to tip off 9l to autolink.
165 */
166 #define AUTOLIB(x) static int __p9l_autolib_ ## x = 1;
167 #define AUTOFRAMEWORK(x) static int __p9l_autoframework_ ## x = 1;
168
169 /*
170 * Gcc is too smart for its own good.
171 */
172 #if defined(__GNUC__)
173 # undef strcmp /* causes way too many warnings */
174 # if __GNUC__ >= 4 || (__GNUC__==3 && !defined(__APPLE_CC__))
175 # undef AUTOLIB
176 # define AUTOLIB(x) int __p9l_autolib_ ## x __attribute__…
177 # undef AUTOFRAMEWORK
178 # define AUTOFRAMEWORK(x) int __p9l_autoframework_ ## x _…
179 # else
180 # undef AUTOLIB
181 # define AUTOLIB(x) static int __p9l_autolib_ ## x __attr…
182 # undef AUTOFRAMEWORK
183 # define AUTOFRAMEWORK(x) static int __p9l_autoframework_…
184 # endif
185 #endif
186
187 #if defined(__cplusplus)
188 }
189 #endif
190 #endif
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.