0.8.7.53:
[sbcl.git] / contrib / sb-posix / constants.lisp
1 ;;; -*- Lisp -*-
2
3 ;;; This isn't really lisp, but it's definitely a source file.
4
5 ;;; first, the headers necessary to find definitions of everything
6 (#||#
7  "sys/types.h"
8  "unistd.h"
9  "sys/stat.h"
10  
11  "sys/socket.h" "sys/un.h" "netinet/in.h" "netinet/in_systm.h"
12  "netinet/ip.h" "net/if.h" "netdb.h" "errno.h" "netinet/tcp.h"
13  "fcntl.h" "sys/mman.h"
14  "dirent.h" "signal.h"
15
16  "termios.h")
17
18 ;;; then the stuff we're looking for
19 ((:integer af-inet "AF_INET" "IP Protocol family")
20
21  (:type uid-t "uid_t")
22  (:type gid-t "gid_t")
23
24  (:type pid-t "pid_t")
25  (:type ino-t "ino_t")
26
27  (:type nlink-t "nlink_t")
28  (:type time-t "time_t")
29  (:type dev-t "dev_t")
30  
31  ;; signals
32  (:integer SIGHUP "SIGHUP" #+sb-doc "terminal line hangup.")
33  (:integer SIGINT "SIGINT" #+sb-doc "interrupt program.")
34  (:integer SIGQUIT "SIGQUIT" #+sb-doc "quit program.")
35  (:integer SIGILL "SIGILL" #+sb-doc "illegal instruction.")
36  (:integer SIGTRAP "SIGTRAP" #+sb-doc "trace trap.")
37  (:integer SIGABRT "SIGABRT" #+sb-doc "abort program (formerly SIGIOT).")
38  (:integer SIGEMT "SIGEMT" #+sb-doc "emulate instruction executed.")
39  (:integer SIGFPE "SIGFPE" #+sb-doc "floating-point exception.")
40  (:integer SIGKILL "SIGKILL" #+sb-doc "kill program.")
41  (:integer SIGBUS "SIGBUS" #+sb-doc "bus error.")
42  (:integer SIGSEGV "SIGSEGV" #+sb-doc "segmentation violation.")
43  (:integer SIGSYS "SIGSYS" #+sb-doc "non-existent system call invoked.")
44  (:integer SIGPIPE "SIGPIPE" #+sb-doc "write on a pipe with no reader.")
45  (:integer SIGALRM "SIGALRM" #+sb-doc "real-time timer expired.")
46  (:integer SIGTERM "SIGTERM" #+sb-doc "software termination signal.")
47  (:integer SIGURG "SIGURG" #+sb-doc "urgent condition present on socket.")
48  (:integer SIGSTOP "SIGSTOP" #+sb-doc "stop (cannot be caught or ignored).")
49  (:integer SIGTSTP "SIGTSTP" #+sb-doc "stop signal generated from keyboard.")
50  (:integer SIGCONT "SIGCONT" #+sb-doc "continue after stop.")
51  (:integer SIGCHLD "SIGCHLD" #+sb-doc "child status has changed.")
52  (:integer SIGTTIN "SIGTTIN"
53            #+sb-doc "background read attempted from control terminal.")
54  (:integer SIGTTOU "SIGTTOU"
55            #+sb-doc "background write attempted to control terminal.")
56  (:integer SIGIO "SIGIO"
57            #+sb-doc "I/O is possible on a descriptor (see fcntl(2)).")
58  (:integer SIGXCPU "SIGXCPU"
59            #+sb-doc "cpu time limit exceeded (see setrlimit(2)).")
60  (:integer SIGXFSZ "SIGXFSZ"
61            #+sb-doc "file size limit exceeded (see setrlimit(2)).")
62  (:integer SIGVTALRM "SIGVTALRM"
63            #+sb-doc "virtual time alarm (see setitimer(2)).")
64  (:integer SIGPROF "SIGPROF"
65            #+sb-doc "profiling timer alarm (see setitimer(2)).")
66  (:integer SIGWINCH "SIGWINCH" #+sb-doc "Window size change.")
67  (:integer SIGINFO "SIGINFO" #+sb-doc "status request from keyboard.")
68  (:integer SIGUSR1 "SIGUSR1" #+sb-doc "User defined signal 1.")
69  (:integer SIGUSR2 "SIGUSR2" #+sb-doc "User defined signal 2.")
70  (:integer SIGRTMIN "SIGRTMIN" #+sb-doc "Smallest real-time signal number.")
71  (:integer SIGRTMAX "SIGRTMAX" #+sb-doc "Largest real-time signal number.")
72
73  ;; error numbers
74  (:integer eperm "EPERM")
75  (:integer enoent "ENOENT")
76  (:integer esrch "ESRCH")
77  (:integer eintr "EINTR")
78  (:integer eio "EIO")
79  (:integer enxio "ENXIO")
80  (:integer e2big "E2BIG")
81  (:integer enoexec "ENOEXEC")
82  (:integer ebadf "EBADF")
83  (:integer echild "ECHILD")
84  (:integer eagain "EAGAIN")
85  (:integer enomem "ENOMEM")
86  (:integer eacces "EACCES")
87  (:integer efault "EFAULT")
88  (:integer enotblk "ENOTBLK")
89  (:integer ebusy "EBUSY")
90  (:integer eexist "EEXIST")
91  (:integer exdev "EXDEV")
92  (:integer enodev "ENODEV")
93  (:integer enotdir "ENOTDIR")
94  (:integer eisdir "EISDIR")
95  (:integer einval "EINVAL")
96  (:integer enfile "ENFILE")
97  (:integer emfile "EMFILE")
98  (:integer enotty "ENOTTY")
99  (:integer etxtbsy "ETXTBSY")
100  (:integer efbig "EFBIG")
101  (:integer enospc "ENOSPC")
102  (:integer espipe "ESPIPE")
103  (:integer erofs "EROFS")
104  (:integer emlink "EMLINK")
105  (:integer epipe "EPIPE")
106  (:integer edom "EDOM")
107  (:integer erange "ERANGE")
108  (:integer edeadlk "EDEADLK")
109  (:integer enametoolong "ENAMETOOLONG")
110  (:integer enolck "ENOLCK")
111  (:integer enosys "ENOSYS")
112  (:integer enotempty "ENOTEMPTY")
113  (:integer eloop "ELOOP")
114  (:integer ewouldblock "EWOULDBLOCK")
115  (:integer enomsg "ENOMSG")
116  (:integer eidrm "EIDRM")
117  (:integer echrng "ECHRNG")
118  (:integer el2nsync "EL2NSYNC")
119  (:integer el3hlt "EL3HLT")
120  (:integer el3rst "EL3RST")
121  (:integer elnrng "ELNRNG")
122  (:integer eunatch "EUNATCH")
123  (:integer enocsi "ENOCSI")
124  (:integer el2hlt "EL2HLT")
125  (:integer ebade "EBADE")
126  (:integer ebadr "EBADR")
127  (:integer exfull "EXFULL")
128  (:integer enoano "ENOANO")
129  (:integer ebadrqc "EBADRQC")
130  (:integer ebadslt "EBADSLT")
131  (:integer edeadlock "EDEADLOCK")
132  (:integer ebfont "EBFONT")
133  (:integer enostr "ENOSTR")
134  (:integer enodata "ENODATA")
135  (:integer etime "ETIME")
136  (:integer enosr "ENOSR")
137  (:integer enonet "ENONET")
138  (:integer enopkg "ENOPKG")
139  (:integer eremote "EREMOTE")
140  (:integer enolink "ENOLINK")
141  (:integer eadv "EADV")
142  (:integer esrmnt "ESRMNT")
143  (:integer ecomm "ECOMM")
144  (:integer eproto "EPROTO")
145  (:integer emultihop "EMULTIHOP")
146  (:integer edotdot "EDOTDOT")
147  (:integer ebadmsg "EBADMSG")
148  (:integer eoverflow "EOVERFLOW")
149  (:integer enotuniq "ENOTUNIQ")
150  (:integer ebadfd "EBADFD")
151  (:integer eremchg "EREMCHG")
152  (:integer elibacc "ELIBACC")
153  (:integer elibbad "ELIBBAD")
154  (:integer elibscn "ELIBSCN")
155  (:integer elibmax "ELIBMAX")
156  (:integer elibexec "ELIBEXEC")
157  (:integer eilseq "EILSEQ")
158  (:integer erestart "ERESTART")
159  (:integer estrpipe "ESTRPIPE")
160  (:integer eusers "EUSERS")
161  (:integer enotsock "ENOTSOCK")
162  (:integer edestaddrreq "EDESTADDRREQ")
163  (:integer emsgsize "EMSGSIZE")
164  (:integer eprototype "EPROTOTYPE")
165  (:integer enoprotoopt "ENOPROTOOPT")
166  (:integer eprotonosupport "EPROTONOSUPPORT")
167  (:integer esocktnosupport "ESOCKTNOSUPPORT")
168  (:integer eopnotsupp "EOPNOTSUPP")
169  (:integer epfnosupport "EPFNOSUPPORT")
170  (:integer eafnosupport "EAFNOSUPPORT")
171  (:integer eaddrinuse "EADDRINUSE")
172  (:integer eaddrnotavail "EADDRNOTAVAIL")
173  (:integer enetdown "ENETDOWN")
174  (:integer enetunreach "ENETUNREACH")
175  (:integer enetreset "ENETRESET")
176  (:integer econnaborted "ECONNABORTED")
177  (:integer econnreset "ECONNRESET")
178  (:integer enobufs "ENOBUFS")
179  (:integer eisconn "EISCONN")
180  (:integer enotconn "ENOTCONN")
181  (:integer eshutdown "ESHUTDOWN")
182  (:integer etoomanyrefs "ETOOMANYREFS")
183  (:integer etimedout "ETIMEDOUT")
184  (:integer econnrefused "ECONNREFUSED")
185  (:integer ehostdown "EHOSTDOWN")
186  (:integer ehostunreach "EHOSTUNREACH")
187  (:integer ealready "EALREADY")
188  (:integer einprogress "EINPROGRESS")
189  (:integer estale "ESTALE")
190  (:integer euclean "EUCLEAN")
191  (:integer enotnam "ENOTNAM")
192  (:integer enavail "ENAVAIL")
193  (:integer eremoteio "EREMOTEIO")
194  (:integer edquot "EDQUOT")
195  (:integer enomedium "ENOMEDIUM")
196  (:integer emediumtype "EMEDIUMTYPE")
197  
198  ;; mode_t
199  (:type mode-t "mode_t")
200  (:integer s-isuid "S_ISUID")
201  (:integer s-isgid "S_ISGID")
202  (:integer s-isvtx "S_ISVTX")
203  (:integer s-irusr "S_IRUSR")
204  (:integer s-iwusr "S_IWUSR")
205  (:integer s-ixusr "S_IXUSR")
206  (:integer s-iread "S_IRUSR")
207  (:integer s-iwrite "S_IWUSR")
208  (:integer s-iexec "S_IXUSR")
209  (:integer s-irgrp "S_IRGRP")
210  (:integer s-iwgrp "S_IWGRP")
211  (:integer s-ixgrp "S_IXGRP")
212  (:integer s-iroth "S_IROTH")
213  (:integer s-iwoth "S_IWOTH")
214  (:integer s-ixoth "S_IXOTH")
215
216  ;; access()
217  (:integer r-ok "R_OK")
218  (:integer w-ok "W_OK")
219  (:integer x-ok "X_OK")
220  (:integer f-ok "F_OK")
221
222  ;; mmap()
223  (:type off-t "off_t")
224  (:integer prot-none "PROT_NONE" #+sb-doc "mmap: no protection")
225  (:integer prot-read "PROT_READ" #+sb-doc "mmap: read protection")
226  (:integer prot-write "PROT_WRITE" #+sb-doc "mmap: write protection")
227  (:integer prot-exec "PROT_EXEC" #+sb-doc "mmap: execute protection")
228  (:integer map-shared "MAP_SHARED" #+sb-doc "mmap: shared memory")
229  (:integer map-private "MAP_PRIVATE" #+sb-doc "mmap: private mapping")
230  (:integer map-fixed "MAP_FIXED" #+sb-doc "mmap: map at given location")
231
232  ;; msync()
233  (:integer ms-async "MS_ASYNC" #+sb-doc "msync: return immediately")
234  (:integer ms-sync "MS_SYNC" #+sb-doc "msync: perform synchronous writes")
235  (:integer ms-invalidate "MS_INVALIDATE"
236            #+sb-doc "msync: invalidate all cached data")
237
238  ;; opendir()
239  (:structure dirent
240              ("struct dirent"
241               (:c-string name "char *" "d_name"
242                          :distrust-length #+sunos t #-sunos nil)))
243
244  (:structure stat
245              ("struct stat"
246               (mode-t mode "mode_t" "st_mode")
247               (ino-t ino "ino_t" "st_ino")
248               (dev-t dev "dev_t" "st_dev")
249               (nlink-t nlink "nlink_t" "st_nlink")
250               (uid-t uid "uid_t" "st_uid")
251               (gid-t gid "gid_t" "st_gid")
252               (off-t size "off_t" "st_size")
253               (time-t atime "time_t" "st_atime")
254               (time-t mtime "time_t" "st_mtime")
255               (time-t ctime "time_t" "st_ctime")))
256
257  ;; open()
258  (:integer o-rdonly "O_RDONLY")
259  (:integer o-wronly "O_WRONLY")
260  (:integer o-rdwr "O_RDWR")
261  (:integer o-creat "O_CREAT")
262  (:integer o-excl "O_EXCL")
263  (:integer o-noctty "O_NOCTTY")
264  (:integer o-trunc "O_TRUNC")
265  (:integer o-append "O_APPEND")
266  (:integer o-nonblock "O_NONBLOCK")
267  (:integer o-ndelay "O_NDELAY")
268  (:integer o-sync "O_SYNC")
269  (:integer o-nofollow "O_NOFOLLOW")
270  (:integer o-directory "O_DIRECTORY")
271  (:integer o-direct "O_DIRECT")
272  (:integer o-async "O_ASYNC")
273  (:integer o-largefile "O_LARGEFILE")   ; hmm...
274  (:integer o-dsync "O_DSYNC")
275  (:integer o-rsync "O_RSYNC")
276
277  ;; lseek()
278  (:integer seek-set "SEEK_SET")
279  (:integer seek-cur "SEEK_CUR")
280  (:integer seek-end "SEEK_END")
281
282  ;; fcntl()
283  (:integer f-dupfd "F_DUPFD")
284  (:integer f-getfd "F_GETFD")
285  (:integer f-setfd "F_SETFD")
286  (:integer f-getfl "F_GETFL")
287  (:integer f-setfl "F_SETFL")
288  (:integer f-getlk "F_GETLK")
289  (:integer f-setlk "F_SETLK")
290  (:integer f-setlkw "F_SETLKW")
291  (:integer f-getown "F_GETOWN")
292  (:integer f-setown "F_SETOWN")
293
294  ;; tcgetattr(), tcsetattr()
295  (:type cc-t "cc_t")
296  (:type speed-t "speed_t")
297  (:type tcflag-t "tcflag_t")
298  (:integer nccs "NCCS")
299  
300  (:structure termios
301              ("struct termios"
302               (tcflag-t iflag "tcflag_t" "c_iflag")
303               (tcflag-t oflag "tcflag_t" "c_oflag")
304               (tcflag-t cflag "tcflag_t" "c_cflag")
305               (tcflag-t lflag "tcflag_t" "c_lflag")
306               ;; Uh, so what's the point of grovelling CC-T if I can't
307               ;; use it here?  the c_cc field is an array of NCCS
308               ;; elements of type cc_t.  FIXME
309               ((array (unsigned 8)) cc "cc_t" "c_cc")))
310  
311  (:integer veof "VEOF")
312  (:integer veol "VEOL")
313  (:integer verase "VERASE")
314  (:integer vintr "VINTR")
315  (:integer vkill "VKILL")
316  (:integer vmin "VMIN")
317  (:integer vquit "VQUIT")
318  (:integer vstart "VSTART")
319  (:integer vstop "VSTOP")
320  (:integer vsusp "VSUSP")
321  (:integer vtime "VTIME")
322
323  (:integer brkint "BRKINT")
324  (:integer icrnl "ICRNL")
325  (:integer ignbrk "IGNBRK")
326  (:integer igncr "IGNCR")
327  (:integer ignpar "IGNPAR")
328  (:integer inlcr "INLCR")
329  (:integer inpck "INPCK")
330  (:integer istrip "ISTRIP")
331  #+xsi                               ; FIXME: an extension, apparently
332  (:integer ixany "IXANY")
333  (:integer ixoff "IXOFF")
334  (:integer ixon "IXON")
335  (:integer parmrk "PARMRK")
336
337  (:integer opost "OPOST")
338  #+xsi
339  (:integer onlcr "ONLCR")
340  (:integer ocrnl "OCRNL")
341  (:integer onlret "ONLRET")
342  (:integer ofill "OFILL")
343  (:integer nldly "NLDLY")
344  (:integer nl0 "NL0")
345  (:integer nl1 "NL1")
346  (:integer crdly "CRDLY")
347  (:integer cr0 "CR0")
348  (:integer cr1 "CR1")
349  (:integer cr2 "CR2")
350  (:integer cr3 "CR3")
351  (:integer tabdly "TABDLY")
352  (:integer tab0 "TAB0")
353  (:integer tab1 "TAB1")
354  (:integer tab2 "TAB2")
355  (:integer tab3 "TAB3")
356  (:integer bsdly "BSDLY")
357  (:integer bs0 "BS0")
358  (:integer bs1 "BS1")
359  (:integer vtdly "VTDLY")
360  (:integer vt0 "VT0")
361  (:integer vt1 "VT1")
362  (:integer ffdly "FFDLY")
363  (:integer ff0 "FF0")
364  (:integer ff1 "FF1")
365
366  (:integer b0 "B0")
367  (:integer b50 "B50")
368  (:integer b75 "B75")
369  (:integer b110 "B110")
370  (:integer b134 "B134")
371  (:integer b150 "B150")
372  (:integer b200 "B200")
373  (:integer b300 "B300")
374  (:integer b600 "B600")
375  (:integer b1200 "B1200")
376  (:integer b1800 "B1800")
377  (:integer b2400 "B2400")
378  (:integer b4800 "B4800")
379  (:integer b9600 "B9600")
380  (:integer b19200 "B19200")
381  (:integer b38400 "B38400")
382
383  (:integer csize "CSIZE")
384  (:integer cs5 "CS5")
385  (:integer cs6 "CS6")
386  (:integer cs7 "CS7")
387  (:integer cs8 "CS8")
388  (:integer cstopb "CSTOPB")
389  (:integer cread "CREAD")
390  (:integer parenb "PARENB")
391  (:integer parodd "PARODD")
392  (:integer hupcl "HUPCL")
393  (:integer clocal "CLOCAL")
394
395  (:integer echo "ECHO")
396  (:integer echoe "ECHOE")
397  (:integer echok "ECHOK")
398  (:integer echonl "ECHONL")
399  (:integer icanon "ICANON")
400  (:integer iexten "IEXTEN")
401  (:integer isig "ISIG")
402  (:integer noflsh "NOFLSH")
403  (:integer tostop "TOSTOP")
404
405  (:integer tcsanow "TCSANOW")
406  (:integer tcsadrain "TCSADRAIN")
407  (:integer tcsaflush "TCSAFLUSH")
408
409  (:integer tciflush "TCIFLUSH")
410  (:integer tcioflush "TCIOFLUSH")
411  (:integer tcoflush "TCOFLUSH")
412  (:integer tcioff "TCIOFF")
413  (:integer tcion "TCION")
414  (:integer tcooff "TCOOFF")
415  (:integer tcoon "TCOON")
416  
417  )