1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 ;;; --- Package definition.
6 (in-package :common-lisp-user
)
8 (defpackage :iolib.syscalls
10 (:use
:iolib.base
:cffi
)
11 (:shadow
#:open
#:close
#:read
#:write
#:listen
#:truncate
#:ftruncate
#:time
)
14 ;;;--------------------------------------------------------------------------
16 ;;;--------------------------------------------------------------------------
18 ;; Primitive type sizes
27 #:size-t
#:size-of-size-t
28 #:ssize-t
#:size-of-ssize-t
29 #:pid-t
#:size-of-pid-t
30 #:gid-t
#:size-of-gid-t
31 #:uid-t
#:size-of-uid-t
32 #:off-t
#:size-of-off-t
33 #:mode-t
#:size-of-mode-t
34 #:time-t
#:size-of-time-t
35 #:useconds-t
#:size-of-useconds-t
36 #:suseconds-t
#:size-of-suseconds-t
37 #:dev-t
#:size-of-dev-t
38 #:ino-t
#:size-of-ino-t
39 #:nlink-t
#:size-of-nlink-t
40 #:blksize-t
#:size-of-blksize-t
41 #:blkcnt-t
#:size-of-blkcnt-t
42 #:nfds-t
#:size-of-nfds-t
45 ;;;--------------------------------------------------------------------------
47 ;;;--------------------------------------------------------------------------
209 #+linux
#:epoll-ctl-add
210 #+linux
#:epoll-ctl-del
211 #+linux
#:epoll-ctl-mod
213 #+linux
#:epollrdnorm
214 #+linux
#:epollrdband
217 #+linux
#:epollwrnorm
218 #+linux
#:epollwrband
222 #+linux
#:epolloneshot
239 #+bsd
#:evfilt-signal
241 #+(and bsd
(not darwin
)) #:evfilt-netdev
253 #+bsd
#:note-trackerr
254 #+(and bsd
(not darwin
)) #:note-linkup
255 #+(and bsd
(not darwin
)) #:note-linkdown
256 #+(and bsd
(not darwin
)) #:note-linkinv
279 #+linux
#:rlim-saved-max
280 #+linux
#:rlim-saved-cur
281 #+linux
#:rlimit-locks
282 #+linux
#:rlimit-msgqueue
283 #+linux
#:rlimit-nlimits
284 #+linux
#:rlimit-nice
285 #+linux
#:rlimit-rtprio
286 #+linux
#:rlimit-sigpending
287 #+bsd
#:rlimit-sbsize
289 ;; Syscall error codes
291 #:eperm
#:enoent
#:esrch
#:eintr
#:eio
#:enxio
#:e2big
#:enoexec
292 #:ebadf
#:echild
#:eagain
#:enomem
#:eacces
#:efault
#:ebusy
#:eexist
293 #:exdev
#:enodev
#:enotdir
#:eisdir
#:einval
#:enfile
#:emfile
294 #:enotty
#:efbig
#:enospc
#:espipe
#:erofs
#:emlink
#:epipe
#:edom
295 #:erange
#:edeadlk
#:enametoolong
#:enolck
#:enosys
#:enotempty
296 #:echrng
#:el2nsync
#:el3hlt
#:el3rst
#:elnrng
#:eunatch
#:enocsi
297 #:el2hlt
#:ebade
#:ebadr
#:exfull
#:enoano
#:ebadrqc
#:ebadslt
298 #:edeadlock
#:ebfont
#:enostr
#:enodata
#:etime
#:enosr
#:enopkg
299 #:eadv
#:esrmnt
#:ecomm
#:edotdot
#:enotuniq
#:ebadfd
#:elibscn
300 #:elibmax
#:elibexec
#:eilseq
#:erestart
#:estrpipe
#:euclean
301 #:enotnam
#:enavail
#:eremoteio
#:enomedium
#:emediumtype
#:estale
302 #:enotblk
#:etxtbsy
#:eusers
#:eloop
#:ewouldblock
#:enomsg
#:eidrm
303 #:eproto
#:emultihop
#:ebadmsg
#:eoverflow
#:edquot
#:einprogress
304 #:ealready
#:eprotonosupport
#:esocktnosupport
#:enotsock
305 #:edestaddrreq
#:emsgsize
#:eprototype
#:enoprotoopt
#:eremote
306 #:enolink
#:epfnosupport
#:eafnosupport
#:eaddrinuse
#:eaddrnotavail
307 #:enetdown
#:enetunreach
#:enetreset
#:econnaborted
#:econnreset
308 #:eisconn
#:enotconn
#:eshutdown
#:etoomanyrefs
#:etimedout
309 #:econnrefused
#:ehostdown
#:ehostunreach
#:enonet
#:enobufs
313 ;;;--------------------------------------------------------------------------
315 ;;;--------------------------------------------------------------------------
318 #:*default-open-mode
*
321 ;; Errno-related functions
325 ;; Memory manipulation functions
396 #+linux
#:epoll-create
417 ;; Process creation and info
490 ;;;--------------------------------------------------------------------------
491 ;;; Error conditions, wrappers and definers
492 ;;;--------------------------------------------------------------------------
494 #:iolib-condition
#:iolib-error
495 #:syscall-error
#:code-of
#:identifier-of
#:message-of
#:handle-of
#:handle2-of
496 #:make-syscall-error
#:get-syscall-error-condition
497 #:signal-syscall-error
#:signal-syscall-error
/restart
498 #:poll-error
#:event-type-of
#:poll-timeout
500 ;; Syscall return wrapper
509 #:signal-syscall-error
510 #:signal-syscall-error-kw
511 #:signal-syscall-error
/restart
518 ;; CFFI Type Designators
520 #:pointer-or-nil-designator
524 ;; SSTRING <-> CSTRING
528 #:with-cstring-to-sstring
529 #:with-sstring-to-cstring
532 #:repeat-upon-condition
534 #:repeat-decreasing-timeout
535 #:repeat-upon-condition-decreasing-timeout
538 ;;;--------------------------------------------------------------------------
539 ;;; Struct definitions, slots and accessors
540 ;;;--------------------------------------------------------------------------
543 #:timespec
#:size-of-timespec
548 #:timeval
#:size-of-timeval
553 #:sigaction
#:size-of-sigaction
557 #:stat
#:size-of-stat
566 #:blksize
#:stat-blksize
567 #:blocks
#:stat-blocks
573 #:fd-set
#:size-of-fd-set
576 #:pollfd
#:size-of-pollfd
582 #+linux
#:epoll-data
#+linux
#:size-of-epoll-data
589 #+linux
#:epoll-event
#+linux
#:size-of-epoll-event
594 #+bsd
#:kevent
#+bsd
#:size-of-kevent