Add %SYS-UNAME.
[iolib.git] / syscalls / pkgdcl.lisp
blobf776b35f11837ba421c0c78dd07dd0daf4d33cb1
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 ;;;--------------------------------------------------------------------------
189 ;;; Foreign types and constants
190 ;;;--------------------------------------------------------------------------
192 ;; Primitive type sizes
193 #:size-of-char
194 #:size-of-short
195 #:size-of-int
196 #:size-of-long
197 #:size-of-long-long
198 #:size-of-pointer
200 ;; Types
201 #:size-t #:size-of-size-t
202 #:ssize-t #:size-of-ssize-t
203 #:pid-t #:size-of-pid-t
204 #:gid-t #:size-of-gid-t
205 #:uid-t #:size-of-uid-t
206 #:off-t #:size-of-off-t
207 #:mode-t #:size-of-mode-t
208 #:time-t #:size-of-time-t
209 #:useconds-t #:size-of-useconds-t
210 #:suseconds-t #:size-of-suseconds-t
211 #:dev-t #:size-of-dev-t
212 #:ino-t #:size-of-ino-t
213 #:nlink-t #:size-of-nlink-t
214 #:blksize-t #:size-of-blksize-t
215 #:blkcnt-t #:size-of-blkcnt-t
216 #:nfds-t #:size-of-nfds-t
218 ;; OPEN()
219 #:o-rdonly
220 #:o-wronly
221 #:o-rdwr
222 #:o-creat
223 #:o-excl
224 #:o-trunc
225 #:o-append
226 #:o-noctty
227 #:o-nonblock
228 #:o-ndelay
229 #:o-sync
230 #:o-nofollow
231 #:o-async
233 ;; LSEEK()
234 #:seek-set
235 #:seek-cur
236 #:seek-end
238 ;; ACCESS()
239 #:r-ok
240 #:w-ok
241 #:x-ok
242 #:f-ok
244 ;; STAT()
245 #:s-irwxu
246 #:s-irusr
247 #:s-iwusr
248 #:s-ixusr
249 #:s-ifmt
250 #:s-ififo
251 #:s-ifchr
252 #:s-ifdir
253 #:s-ifblk
254 #:s-ifreg
255 #:s-ifwht
256 #:s-iread
257 #:s-iwrite
258 #:s-iexec
259 #:s-irwxg
260 #:s-irgrp
261 #:s-iwgrp
262 #:s-ixgrp
263 #:s-irwxo
264 #:s-iroth
265 #:s-iwoth
266 #:s-ixoth
267 #:s-isuid
268 #:s-isgid
269 #:s-isvtx
270 #:s-iflnk
271 #:s-ifsock
272 #:path-max
274 ;; MMAP()
275 #:prot-none
276 #:prot-read
277 #:prot-write
278 #:prot-exec
279 #:map-shared
280 #:map-private
281 #:map-fixed
282 #:map-failed
284 ;; POLL()
285 #:pollin
286 #:pollrdnorm
287 #:pollrdband
288 #:pollpri
289 #:pollout
290 #:pollwrnorm
291 #:pollwrband
292 #:pollerr
293 #:pollrdhup
294 #:pollhup
295 #:pollnval
297 ;; IOCTL()
298 #:fionbio
299 #:fionread
301 ;;; Structs
303 ;; timespec
304 #:timespec #:size-of-timespec
305 #:sec
306 #:nsec
308 ;; timeval
309 #:timeval #:size-of-timeval
310 #:sec
311 #:usec
313 ;; stat
314 #:stat #:size-of-stat
315 #:dev #:stat-dev
316 #:ino #:stat-ino
317 #:mode #:stat-mode
318 #:nlink #:stat-nlink
319 #:uid #:stat-uid
320 #:gid #:stat-gid
321 #:rdev #:stat-rdev
322 #:size #:stat-size
323 #:blksize #:stat-blksize
324 #:blocks #:stat-blocks
325 #:atime #:stat-atime
326 #:mtime #:stat-mtime
327 #:ctime #:stat-ctime
329 ;; pollfd
330 #:pollfd #:size-of-pollfd
331 #:fd
332 #:events
333 #:revents
335 ;; Syscall error codes
336 #:errno-values
337 #:eperm #:enoent #:esrch #:eintr #:eio #:enxio #:e2big #:enoexec
338 #:ebadf #:echild #:eagain #:enomem #:eacces #:efault #:ebusy #:eexist
339 #:exdev #:enodev #:enotdir #:eisdir #:einval #:enfile #:emfile
340 #:enotty #:efbig #:enospc #:espipe #:erofs #:emlink #:epipe #:edom
341 #:erange #:edeadlk #:enametoolong #:enolck #:enosys #:enotempty
342 #:echrng #:el2nsync #:el3hlt #:el3rst #:elnrng #:eunatch #:enocsi
343 #:el2hlt #:ebade #:ebadr #:exfull #:enoano #:ebadrqc #:ebadslt
344 #:edeadlock #:ebfont #:enostr #:enodata #:etime #:enosr #:enopkg
345 #:eadv #:esrmnt #:ecomm #:edotdot #:enotuniq #:ebadfd #:elibscn
346 #:elibmax #:elibexec #:eilseq #:erestart #:estrpipe #:euclean
347 #:enotnam #:enavail #:eremoteio #:enomedium #:emediumtype #:estale
348 #:enotblk #:etxtbsy #:eusers #:eloop #:ewouldblock #:enomsg #:eidrm
349 #:eproto #:emultihop #:ebadmsg #:eoverflow #:edquot #:einprogress
350 #:ealready #:eprotonosupport #:esocktnosupport #:enotsock
351 #:edestaddrreq #:emsgsize #:eprototype #:enoprotoopt #:eremote
352 #:enolink #:epfnosupport #:eafnosupport #:eaddrinuse #:eaddrnotavail
353 #:enetdown #:enetunreach #:enetreset #:econnaborted #:econnreset
354 #:eisconn #:enotconn #:eshutdown #:etoomanyrefs #:etimedout
355 #:econnrefused #:ehostdown #:ehostunreach #:enonet #:enobufs
356 #:eopnotsupp