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
12 #:truncate
#:ftruncate
#:time
)
41 ;;-----------------------------------------
42 ;; Error conditions, wrappers and definers
43 ;;-----------------------------------------
46 #:iolib-condition
#:iolib-error
#:syscall-error
47 #:code-of
#:identifier-of
#:message-of
#:handle-of
#:handle2-of
48 #:make-syscall-error
#:syscall-error-p
#:get-syscall-error-condition
49 #:signal-syscall-error
#:signal-syscall-error
/restart
50 #:poll-error
#:event-type-of
#:poll-timeout
52 ;; Syscall return wrapper
61 #:signal-syscall-error
62 #:signal-syscall-error-kw
63 #:signal-syscall-error
/restart
70 ;; CFFI Type Designators
72 #:pointer-or-nil-designator
76 ;; SSTRING <-> CSTRING
80 #:with-cstring-to-sstring
81 #:with-sstring-to-cstring
84 #:repeat-upon-condition
86 #:repeat-decreasing-timeout
87 #:repeat-upon-condition-decreasing-timeout
)
89 ;;--------------------------------
90 ;; Structs, slots and C constants
91 ;;--------------------------------
94 #:e2big
#:eacces
#:eaddrinuse
#:eaddrnotavail
95 #:eafnosupport
#:ealready
#:ebadf
#:ebadmsg
#:ebusy
#:ecanceled
96 #:echild
#:econnaborted
#:econnrefused
#:econnreset
#:edeadlk
97 #:edestaddrreq
#:edom
#:edquot
#:eexist
#:efault
#:efbig
#:ehostdown
98 #:ehostunreach
#:eidrm
#:eilseq
#:einprogress
#:eintr
#:einval
#:eio
99 #:eisconn
#:eisdir
#:eloop
#:emfile
#:emlink
#:emsgsize
#:emultihop
100 #:enametoolong
#:enetdown
#:enetreset
#:enetunreach
#:enfile
101 #:enobufs
#:enodata
#:enodev
#:enoent
#:enoexec
#:enolck
#:enolink
102 #:enomem
#:enomsg
#:enonet
#:enoprotoopt
#:enospc
#:enosr
#:enostr
103 #:enosys
#:enotconn
#:enotdir
#:enotempty
#:enotsock
#:enotsup
#:enotty
104 #:enxio
#:eopnotsupp
#:eoverflow
#:eperm
#:epipe
#:eproto
105 #:eprotonosupport
#:eprototype
#:erange
#:erofs
#:eshutdown
#:espipe
106 #:esrch
#:estale
#:etime
#:etimedout
#:etxtbsy
#:ewouldblock
#:exdev
141 #+linux
#:f-getlease
)
156 ;; Clock_gettime() et al.
159 (:export
;; sys/stat.h
171 #:blksize
#:stat-blksize
172 #:blocks
#:stat-blocks
204 (:export
;; sys/ioctl.h
207 (:export
;; sys/wait.h
265 (:export
;; sys/mman.h
275 (:export
;; sys/select.h
282 (:export
;; sys/poll.h
285 #:fd
#:events
#:revents
301 #:fileno
#:type
#:name
312 (:export
;; sys/resource.h
318 #:utime
#:stime
#:maxrss
#:ixrss
#:idrss
#:isrss
319 #:minflt
#:majflt
#:nswap
#:inblock
#:outblock
320 #:msgsnd
#:msgrcv
#:nsignals
#:nvcsw
#:nivcsw
338 #+linux
#:rlim-saved-max
339 #+linux
#:rlim-saved-cur
340 #+linux
#:rlimit-locks
341 #+linux
#:rlimit-msgqueue
342 #+linux
#:rlimit-nlimits
343 #+linux
#:rlimit-nice
344 #+linux
#:rlimit-rtprio
345 #+linux
#:rlimit-sigpending
346 #+bsd
#:rlimit-sbsize
)
347 (:export
;; sys/utsname.h
350 #:sysname
#:nodename
#:release
#:version
#:machine
)
354 #:name
#:passwd
#:uid
#:gid
#:gecos
#:dir
#:shell
)
358 #:name
#:passwd
#:gid
#:mem
)
360 (:export
;; sys/epoll.h
361 ;; union epoll_data_t
363 #:ptr
#:fd
#:u32
#:u64
364 ;; struct epoll_event
384 (:export
;; sys/event.h
387 #:ident
#:filter
#:flags
#:fflags
#:data
#:udata
402 #+bsd
#:evfilt-signal
404 #-darwin
#:evfilt-netdev
416 #+bsd
#:note-trackerr
417 #-darwin
#:note-linkup
418 #-darwin
#:note-linkdown
419 #-darwin
#:note-linkinv
)
428 ;; Syslog() facilities
460 (:export
;; CFFI additions
466 (:export
;; Errno-related functions
469 (:export
;; Memory manipulation functions
509 (:export
;; Directories
516 (:export
;; File descriptors
530 (:export
;; I/O Polling
538 #+linux
#:epoll-create
544 (:export
;; Socket message readers
550 (:export
;; Directory walking
557 (:export
;; Memory mapping
560 (:export
;; Process creation and info
595 #:wtermsig
#:wtermsig
*
605 #:get-monotonic-time
)
606 (:export
;; Environment
611 (:export
;; Hostname info
615 (:export
;; User info
618 (:export
;; Group info