Better loading of librt.so on Linux.
[iolib.git] / syscalls / pkgdcl.lisp
blob0a6de91647aa98cada8be36286317d06b0109871
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; indent-tabs-mode: nil -*-
2 ;;;
3 ;;; --- Package definition.
4 ;;;
6 (in-package :common-lisp-user)
8 (defpackage :iolib.syscalls
9 (:nicknames #:isys)
10 (:use :iolib.base :cffi)
11 (:export
12 ;; Conditions
13 #:condition-info-mixin
14 #:system-error
15 #:syscall-error
16 #:posix-error
17 #:poll-error
18 #:poll-timeout
20 ;; Condition accessors
21 #:code-of
22 #:identifier-of
23 #:message-of
24 #:event-type-of
25 #:os-handle-of
27 ;; Pathname Functions
28 #:native-namestring
30 ;; Type Designators
31 #:filename
32 #:filename-designator
33 #:pointer-or-nil
34 #:pointer-or-nil-designator
35 #:bool
36 #:bool-designator
38 ;; Misc
39 #:repeat-decreasing-timeout
40 #:repeat-upon-condition-decreasing-timeout
42 ;; Return wrapper
43 #:return-wrapper
44 #:error-predicate-of
45 #:return-filter-of
46 #:error-generator-of
47 #:base-type-of
48 #:never-fails
49 #:signal-posix-error
50 #:signal-posix-error/restart
52 ;; Syscall definition
53 #:defentrypoint
54 #:defcfun*
55 #:defsyscall
56 #:defsyscall*
58 ;;;--------------------------------------------------------------------------
59 ;;; Syscalls
60 ;;;--------------------------------------------------------------------------
62 ;; Specials
63 #:*default-open-mode*
64 #:*environ*
66 ;; Errno-related functions
67 #:%sys-strerror
68 #:%sys-errno
70 ;; Memory manipulation functions
71 #:%sys-memset
72 #:%sys-bzero
73 #:%sys-memcpy
74 #:%sys-memmove
76 ;; Files
77 #:%sys-read
78 #:%sys-write
79 #:%sys-pread
80 #:%sys-pwrite
81 #:%sys-open
82 #:%sys-creat
83 #:%sys-pipe
84 #:%sys-mkfifo
85 #:%sys-umask
86 #:%sys-lseek
87 #:%sys-access
88 #:%sys-truncate
89 #:%sys-ftruncate
90 #:%sys-rename
91 #:%sys-link
92 #:%sys-symlink
93 #:%sys-readlink
94 #:%sys-unlink
95 #:%sys-chown
96 #:%sys-fchown
97 #:%sys-lchown
98 #:%sys-chmod
99 #:%sys-fchmod
100 #:%sys-stat
101 #:%sys-fstat
102 #:%sys-lstat
103 #:%sys-sync
104 #:%sys-fsync
105 #:%sys-mkstemp
107 ;; Directories
108 #:%sys-mkdir
109 #:%sys-rmdir
110 #:%sys-chdir
111 #:%sys-fchdir
112 #:%sys-getcwd
113 #:%sys-mkdtemp
115 ;; File descriptors
116 #:%sys-close
117 #:%sys-dup
118 #:%sys-dup2
119 #:%sys-ioctl/2
120 #:%sys-ioctl/3
121 #:%sys-fd-open-p
123 ;; I/O Polling
124 #:%sys-poll
126 ;; Directory walking
127 #:%sys-opendir
128 #:%sys-closedir
129 #:%sys-readdir
130 #:%sys-rewinddir
131 #:%sys-seekdir
132 #:%sys-telldir
134 ;; Memory mapping
135 #:%sys-mmap
136 #:%sys-munmap
138 ;; Process creation and info
139 #:%sys-fork
140 #:%sys-getpid
141 #:%sys-getppid
142 #:%sys-getuid
143 #:%sys-setuid
144 #:%sys-geteuid
145 #:%sys-seteuid
146 #:%sys-getgid
147 #:%sys-setgid
148 #:%sys-getegid
149 #:%sys-setegid
150 #:%sys-setreuid
151 #:%sys-setregid
152 #:%sys-getpgid
153 #:%sys-setpgid
154 #:%sys-getpgrp
155 #:%sys-setpgrp
156 #:%sys-setsid
157 #:%sys-getrlimit
158 #:%sys-setrlimit
159 #:%sys-getrusage
160 #:%sys-getpriority
161 #:%sys-setpriority
162 #:%sys-nice
164 ;; Time
165 #:%sys-usleep
166 #:%sys-time
167 #:%sys-gettimeofday
168 #:%sys-get-monotonic-time
170 ;; Environment
171 #:%sys-getenv
172 #:%sys-setenv
173 #:%sys-unsetenv
175 ;; Local info
176 #:%sys-gethostname
177 #:%sys-getdomainname
178 #:%sys-uname
180 ;; User info
181 #:%sys-getpwnam
182 #:%sys-getpwuid
184 ;; Group info
185 #:%sys-getgrnam
186 #:%sys-getgrgid
188 ;; CMSG readers
189 #:%sys-cmsg-space
190 #:%sys-cmsg-len
191 #:%sys-cmsg-firsthdr
192 #:%sys-cmsg-data
194 ;;;--------------------------------------------------------------------------
195 ;;; Foreign types and constants
196 ;;;--------------------------------------------------------------------------
198 ;; Primitive type sizes
199 #:size-of-char
200 #:size-of-short
201 #:size-of-int
202 #:size-of-long
203 #:size-of-long-long
204 #:size-of-pointer
206 ;; Types
207 #:size-t #:size-of-size-t
208 #:ssize-t #:size-of-ssize-t
209 #:pid-t #:size-of-pid-t
210 #:gid-t #:size-of-gid-t
211 #:uid-t #:size-of-uid-t
212 #:off-t #:size-of-off-t
213 #:mode-t #:size-of-mode-t
214 #:time-t #:size-of-time-t
215 #:useconds-t #:size-of-useconds-t
216 #:suseconds-t #:size-of-suseconds-t
217 #:dev-t #:size-of-dev-t
218 #:ino-t #:size-of-ino-t
219 #:nlink-t #:size-of-nlink-t
220 #:blksize-t #:size-of-blksize-t
221 #:blkcnt-t #:size-of-blkcnt-t
222 #:nfds-t #:size-of-nfds-t
224 ;; OPEN()
225 #:o-rdonly
226 #:o-wronly
227 #:o-rdwr
228 #:o-creat
229 #:o-excl
230 #:o-trunc
231 #:o-append
232 #:o-noctty
233 #:o-nonblock
234 #:o-ndelay
235 #:o-sync
236 #:o-nofollow
237 #:o-async
239 ;; LSEEK()
240 #:seek-set
241 #:seek-cur
242 #:seek-end
244 ;; ACCESS()
245 #:r-ok
246 #:w-ok
247 #:x-ok
248 #:f-ok
250 ;; STAT()
251 #:s-irwxu
252 #:s-irusr
253 #:s-iwusr
254 #:s-ixusr
255 #:s-ifmt
256 #:s-ififo
257 #:s-ifchr
258 #:s-ifdir
259 #:s-ifblk
260 #:s-ifreg
261 #:s-ifwht
262 #:s-iread
263 #:s-iwrite
264 #:s-iexec
265 #:s-irwxg
266 #:s-irgrp
267 #:s-iwgrp
268 #:s-ixgrp
269 #:s-irwxo
270 #:s-iroth
271 #:s-iwoth
272 #:s-ixoth
273 #:s-isuid
274 #:s-isgid
275 #:s-isvtx
276 #:s-iflnk
277 #:s-ifsock
278 #:path-max
280 ;; MMAP()
281 #:prot-none
282 #:prot-read
283 #:prot-write
284 #:prot-exec
285 #:map-shared
286 #:map-private
287 #:map-fixed
288 #:map-failed
290 ;; POLL()
291 #:pollin
292 #:pollrdnorm
293 #:pollrdband
294 #:pollpri
295 #:pollout
296 #:pollwrnorm
297 #:pollwrband
298 #:pollerr
299 #:pollrdhup
300 #:pollhup
301 #:pollnval
303 ;; IOCTL()
304 #:fionbio
305 #:fionread
307 ;;; Structs
309 ;; timespec
310 #:timespec #:size-of-timespec
311 #:sec
312 #:nsec
314 ;; timeval
315 #:timeval #:size-of-timeval
316 #:sec
317 #:usec
319 ;; stat
320 #:stat #:size-of-stat
321 #:dev #:stat-dev
322 #:ino #:stat-ino
323 #:mode #:stat-mode
324 #:nlink #:stat-nlink
325 #:uid #:stat-uid
326 #:gid #:stat-gid
327 #:rdev #:stat-rdev
328 #:size #:stat-size
329 #:blksize #:stat-blksize
330 #:blocks #:stat-blocks
331 #:atime #:stat-atime
332 #:mtime #:stat-mtime
333 #:ctime #:stat-ctime
335 ;; pollfd
336 #:pollfd #:size-of-pollfd
337 #:fd
338 #:events
339 #:revents
341 ;; Syscall error codes
342 #:errno-values
343 #:eperm #:enoent #:esrch #:eintr #:eio #:enxio #:e2big #:enoexec
344 #:ebadf #:echild #:eagain #:enomem #:eacces #:efault #:ebusy #:eexist
345 #:exdev #:enodev #:enotdir #:eisdir #:einval #:enfile #:emfile
346 #:enotty #:efbig #:enospc #:espipe #:erofs #:emlink #:epipe #:edom
347 #:erange #:edeadlk #:enametoolong #:enolck #:enosys #:enotempty
348 #:echrng #:el2nsync #:el3hlt #:el3rst #:elnrng #:eunatch #:enocsi
349 #:el2hlt #:ebade #:ebadr #:exfull #:enoano #:ebadrqc #:ebadslt
350 #:edeadlock #:ebfont #:enostr #:enodata #:etime #:enosr #:enopkg
351 #:eadv #:esrmnt #:ecomm #:edotdot #:enotuniq #:ebadfd #:elibscn
352 #:elibmax #:elibexec #:eilseq #:erestart #:estrpipe #:euclean
353 #:enotnam #:enavail #:eremoteio #:enomedium #:emediumtype #:estale
354 #:enotblk #:etxtbsy #:eusers #:eloop #:ewouldblock #:enomsg #:eidrm
355 #:eproto #:emultihop #:ebadmsg #:eoverflow #:edquot #:einprogress
356 #:ealready #:eprotonosupport #:esocktnosupport #:enotsock
357 #:edestaddrreq #:emsgsize #:eprototype #:enoprotoopt #:eremote
358 #:enolink #:epfnosupport #:eafnosupport #:eaddrinuse #:eaddrnotavail
359 #:enetdown #:enetunreach #:enetreset #:econnaborted #:econnreset
360 #:eisconn #:enotconn #:eshutdown #:etoomanyrefs #:etimedout
361 #:econnrefused #:ehostdown #:ehostunreach #:enonet #:enobufs
362 #:eopnotsupp