first commit

This commit is contained in:
Yura 2024-09-15 15:12:16 +03:00
commit 417e54da96
5696 changed files with 900003 additions and 0 deletions

View file

@ -0,0 +1 @@
# empty file

View file

@ -0,0 +1,14 @@
# POSIX dynamic linking/loading interface.
# http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/dlfcn.h.html
cdef extern from "<dlfcn.h>" nogil:
void *dlopen(const char *, int)
char *dlerror()
void *dlsym(void *, const char *)
int dlclose(void *)
enum:
RTLD_LAZY
RTLD_NOW
RTLD_GLOBAL
RTLD_LOCAL

View file

@ -0,0 +1,68 @@
# http://www.opengroup.org/onlinepubs/009695399/basedefs/fcntl.h.html
cdef extern from "<fcntl.h>" nogil:
enum: F_DUPFD
enum: F_GETFD
enum: F_SETFD
enum: F_GETFL
enum: F_SETFL
enum: F_GETLK
enum: F_SETLK
enum: F_SETLKW
enum: F_GETOWN
enum: F_SETOWN
enum: FD_CLOEXEC
enum: F_RDLCK
enum: F_UNLCK
enum: F_WRLCK
enum: SEEK_SET
enum: SEEK_CUR
enum: SEEK_END
enum: O_CREAT
enum: O_DIRECT
enum: O_EXCL
enum: O_NOCTTY
enum: O_TRUNC
enum: O_APPEND
enum: O_DSYNC
enum: O_NONBLOCK
enum: O_RSYNC
enum: O_SYNC
enum: O_ACCMODE # O_RDONLY|O_WRONLY|O_RDWR
enum: O_RDONLY
enum: O_WRONLY
enum: O_RDWR
enum: S_IFMT
enum: S_IFBLK
enum: S_IFCHR
enum: S_IFIFO
enum: S_IFREG
enum: S_IFDIR
enum: S_IFLNK
enum: S_IFSOCK
ctypedef int mode_t
ctypedef signed pid_t
ctypedef signed off_t
struct flock:
short l_type
short l_whence
off_t l_start
off_t l_len
pid_t l_pid
int creat(char *, mode_t)
int fcntl(int, int, ...)
int open(char *, int, ...)
#int open (char *, int, mode_t)

View file

@ -0,0 +1,4 @@
cdef extern from "<sys/ioctl.h>" nogil:
enum: FIONBIO
int ioctl(int fd, int request, ...)

View file

@ -0,0 +1,99 @@
# http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/mman.h.html
from posix.types cimport off_t, mode_t
cdef extern from "<sys/mman.h>" nogil:
enum: PROT_EXEC # protection bits for mmap/mprotect
enum: PROT_READ
enum: PROT_WRITE
enum: PROT_NONE
enum: MAP_PRIVATE # flag bits for mmap
enum: MAP_SHARED
enum: MAP_FIXED
enum: MAP_ANON # These three are not in POSIX, but are
enum: MAP_ANONYMOUS # fairly common in spelling/semantics
enum: MAP_STACK
enum: MAP_LOCKED # Typically available only on Linux
enum: MAP_HUGETLB
enum: MAP_POPULATE
enum: MAP_NORESERVE
enum: MAP_GROWSDOWN
enum: MAP_NOCORE # Typically available only on BSD
enum: MAP_NOSYNC
void *MAP_FAILED
void *mmap(void *addr, size_t Len, int prot, int flags, int fd, off_t off)
int munmap(void *addr, size_t Len)
int mprotect(void *addr, size_t Len, int prot)
enum: MS_ASYNC
enum: MS_SYNC
enum: MS_INVALIDATE
int msync(void *addr, size_t Len, int flags)
enum: POSIX_MADV_NORMAL # POSIX advice flags
enum: POSIX_MADV_SEQUENTIAL
enum: POSIX_MADV_RANDOM
enum: POSIX_MADV_WILLNEED
enum: POSIX_MADV_DONTNEED
int posix_madvise(void *addr, size_t Len, int advice)
enum: MCL_CURRENT
enum: MCL_FUTURE
int mlock(const void *addr, size_t Len)
int munlock(const void *addr, size_t Len)
int mlockall(int flags)
int munlockall()
# Linux-specific
enum: MLOCK_ONFAULT
enum: MCL_ONFAULT
int mlock2(const void *addr, size_t len, int flags)
int shm_open(const char *name, int oflag, mode_t mode)
int shm_unlink(const char *name)
# often available
enum: MADV_NORMAL # pre-POSIX advice flags; should translate 1-1 to POSIX_*
enum: MADV_RANDOM # but in practice it is not always the same.
enum: MADV_SEQUENTIAL
enum: MADV_WILLNEED
enum: MADV_DONTNEED
enum: MADV_REMOVE # other pre-POSIX advice flags; often available
enum: MADV_DONTFORK
enum: MADV_DOFORK
enum: MADV_HWPOISON
enum: MADV_MERGEABLE,
enum: MADV_UNMERGEABLE
enum: MADV_SOFT_OFFLINE
enum: MADV_HUGEPAGE
enum: MADV_NOHUGEPAGE
enum: MADV_DONTDUMP
enum: MADV_DODUMP
enum: MADV_FREE
enum: MADV_WIPEONFORK
enum: MADV_KEEPONFORK
int madvise(void *addr, size_t Len, int advice)
# sometimes available
int mincore(void *addr, size_t Len, unsigned char *vec)
# These two are Linux specific but sometimes very efficient
void *mremap(void *old_addr, size_t old_len, size_t new_len, int flags, ...)
int remap_file_pages(void *addr, size_t Len, int prot,
size_t pgoff, int flags)
# The rare but standardized typed memory option
enum: POSIX_TYPED_MEM_ALLOCATE
enum: POSIX_TYPED_MEM_ALLOCATE_CONTIG
enum: POSIX_TYPED_MEM_MAP_ALLOCATABLE
int posix_typed_mem_open(const char *name, int oflag, int tflag)
int posix_mem_offset(const void *addr, size_t Len, off_t *off,
size_t *contig_len, int *fildes)
cdef struct posix_typed_mem_info:
size_t posix_tmi_length
int posix_typed_mem_get_info(int fildes, posix_typed_mem_info *info)

View file

@ -0,0 +1,55 @@
# http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html
from posix.time cimport timeval
from posix.types cimport id_t
cdef extern from "<sys/resource.h>" nogil:
enum: PRIO_PROCESS
enum: PRIO_PGRP
enum: PRIO_USER
enum: RLIM_INFINITY
enum: RLIM_SAVED_MAX
enum: RLIM_SAVED_CUR
enum: RUSAGE_SELF
enum: RUSAGE_CHILDREN
enum: RLIMIT_CORE
enum: RLIMIT_CPU
enum: RLIMIT_DATA
enum: RLIMIT_FSIZE
enum: RLIMIT_NOFILE
enum: RLIMIT_STACK
enum: RLIMIT_AS
ctypedef unsigned long rlim_t
cdef struct rlimit:
rlim_t rlim_cur
rlim_t rlim_max
cdef struct rusage:
timeval ru_utime
timeval ru_stime
long ru_maxrss
long ru_ixrss
long ru_idrss
long ru_isrss
long ru_minflt
long ru_majflt
long ru_nswap
long ru_inblock
long ru_oublock
long ru_msgsnd
long ru_msgrcv
long ru_nsignals
long ru_nvcsw
long ru_nivcsw
int getpriority(int, id_t)
int getrlimit(int, rlimit *)
int getrusage(int, rusage *)
int setpriority(int, id_t, int)
int setrlimit(int, const rlimit *)

View file

@ -0,0 +1,19 @@
from .types cimport sigset_t
from .time cimport timeval, timespec
cdef extern from "<sys/select.h>" nogil:
ctypedef struct fd_set:
pass
int FD_SETSIZE
void FD_SET(int, fd_set*)
void FD_CLR(int, fd_set*)
bint FD_ISSET(int, fd_set*)
void FD_ZERO(fd_set*)
int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, const timeval *timeout)
int pselect(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, const timespec *timeout,
const sigset_t *sigmask)

View file

@ -0,0 +1,73 @@
# 7.14 Signal handling <signal.h>
from posix.types cimport pid_t, sigset_t, uid_t
cdef extern from "<signal.h>" nogil:
cdef union sigval:
int sival_int
void *sival_ptr
cdef struct sigevent:
int sigev_notify
int sigev_signo
sigval sigev_value
void sigev_notify_function(sigval)
ctypedef struct siginfo_t:
int si_signo
int si_code
int si_errno
pid_t si_pid
uid_t si_uid
void *si_addr
int si_status
long si_band
sigval si_value
cdef struct sigaction_t "sigaction":
void sa_handler(int)
void sa_sigaction(int, siginfo_t *, void *)
sigset_t sa_mask
int sa_flags
ctypedef struct stack_t:
void *ss_sp
int ss_flags
size_t ss_size
enum: SA_NOCLDSTOP
enum: SIG_BLOCK
enum: SIG_UNBLOCK
enum: SIG_SETMASK
enum: SA_ONSTACK
enum: SA_RESETHAND
enum: SA_RESTART
enum: SA_SIGINFO
enum: SA_NOCLDWAIT
enum: SA_NODEFER
enum: SS_ONSTACK
enum: SS_DISABLE
enum: MINSIGSTKSZ
enum: SIGSTKSZ
enum: SIGEV_NONE
enum: SIGEV_SIGNAL
enum: SIGEV_THREAD
enum: SIGEV_THREAD_ID
int kill (pid_t, int)
int killpg (pid_t, int)
int sigaction (int, const sigaction_t *, sigaction_t *)
int sigpending (sigset_t *)
int sigprocmask (int, const sigset_t *, sigset_t *)
int sigsuspend (const sigset_t *)
int sigaddset (sigset_t *, int)
int sigdelset (sigset_t *, int)
int sigemptyset (sigset_t *)
int sigfillset (sigset_t *)
int sigismember (const sigset_t *, int)
int sigaltstack(const stack_t *, stack_t *)

View file

@ -0,0 +1,71 @@
from posix.types cimport (blkcnt_t, blksize_t, dev_t, gid_t, ino_t, mode_t,
nlink_t, off_t, time_t, uid_t)
cdef extern from "<sys/stat.h>" nogil:
cdef struct struct_stat "stat":
dev_t st_dev
ino_t st_ino
mode_t st_mode
nlink_t st_nlink
uid_t st_uid
gid_t st_gid
dev_t st_rdev
off_t st_size
blksize_t st_blksize
blkcnt_t st_blocks
time_t st_atime
time_t st_mtime
time_t st_ctime
# st_birthtime exists on *BSD and OS X.
# Under Linux, defining it here does not hurt. Compilation under Linux
# will only (and rightfully) fail when attempting to use the field.
time_t st_birthtime
# POSIX prescribes including both <sys/stat.h> and <unistd.h> for these
cdef extern from "<unistd.h>" nogil:
int fchmod(int, mode_t)
int chmod(const char *, mode_t)
int fstat(int, struct_stat *)
int lstat(const char *, struct_stat *)
int stat(const char *, struct_stat *)
# Macros for st_mode
mode_t S_ISREG(mode_t)
mode_t S_ISDIR(mode_t)
mode_t S_ISCHR(mode_t)
mode_t S_ISBLK(mode_t)
mode_t S_ISFIFO(mode_t)
mode_t S_ISLNK(mode_t)
mode_t S_ISSOCK(mode_t)
mode_t S_IFMT
mode_t S_IFREG
mode_t S_IFDIR
mode_t S_IFCHR
mode_t S_IFBLK
mode_t S_IFIFO
mode_t S_IFLNK
mode_t S_IFSOCK
# Permissions
mode_t S_ISUID
mode_t S_ISGID
mode_t S_ISVTX
mode_t S_IRWXU
mode_t S_IRUSR
mode_t S_IWUSR
mode_t S_IXUSR
mode_t S_IRWXG
mode_t S_IRGRP
mode_t S_IWGRP
mode_t S_IXGRP
mode_t S_IRWXO
mode_t S_IROTH
mode_t S_IWOTH
mode_t S_IXOTH

View file

@ -0,0 +1,37 @@
# POSIX additions to <stdio.h>.
# http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdio.h.html
from libc.stdio cimport FILE
from libc.stddef cimport wchar_t
from posix.types cimport off_t
cdef extern from "<stdio.h>" nogil:
# File descriptors
FILE *fdopen(int, const char *)
int fileno(FILE *)
# Pipes
FILE *popen(const char *, const char *)
int pclose(FILE *)
# Memory streams (POSIX.2008)
FILE *fmemopen(void *, size_t, const char *)
FILE *open_memstream(char **, size_t *)
FILE *open_wmemstream(wchar_t **, size_t *)
# Seek and tell with off_t
int fseeko(FILE *, off_t, int)
off_t ftello(FILE *)
# Locking (for multithreading)
void flockfile(FILE *)
int ftrylockfile(FILE *)
void funlockfile(FILE *)
int getc_unlocked(FILE *)
int getchar_unlocked()
int putc_unlocked(int, FILE *)
int putchar_unlocked(int)
# Reading lines and records (POSIX.2008)
ssize_t getline(char **, size_t *, FILE *)
ssize_t getdelim(char **, size_t *, int, FILE *)

View file

@ -0,0 +1,29 @@
# POSIX additions to <stdlib.h>
# http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdlib.h.html
cdef extern from "<stdlib.h>" nogil:
void _Exit(int)
double drand48()
double erand48(unsigned short *)
int getsubopt(char **, char *const *, char **)
void lcong48(unsigned short *)
long lrand()
char *mkdtemp(char *)
int mkstemp(char *)
long mrand()
long nrand48(unsigned short *)
int posix_memalign(void **, size_t, size_t)
int posix_openpt(int)
char *ptsname(int)
int putenv(char *)
int rand_r(unsigned *)
long random()
char *realpath(const char *, char *)
unsigned short *seed48(unsigned short *)
int setenv(const char *, const char *, int)
void setkey(const char *)
char *setstate(char *)
void srand48(long)
void srandom(unsigned)
int unlockpt(int)
int unsetenv(const char *)

View file

@ -0,0 +1,9 @@
cdef extern from "<strings.h>" nogil:
int bcmp(const void *, const void *, size_t)
void bcopy(const void *, void *, size_t)
void bzero(void *, size_t)
int ffs(int)
char *index(const char *, int)
char *rindex(const char *, int)
int strcasecmp(const char *, const char *)
int strncasecmp(const char *, const char *, size_t)

View file

@ -0,0 +1,71 @@
# http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/time.h.html
from posix.types cimport suseconds_t, time_t, clockid_t, timer_t
from posix.signal cimport sigevent
cdef extern from "<sys/time.h>" nogil:
enum: CLOCK_REALTIME
enum: TIMER_ABSTIME
enum: CLOCK_MONOTONIC
# FreeBSD-specific clocks
enum: CLOCK_UPTIME
enum: CLOCK_UPTIME_PRECISE
enum: CLOCK_UPTIME_FAST
enum: CLOCK_REALTIME_PRECISE
enum: CLOCK_REALTIME_FAST
enum: CLOCK_MONOTONIC_PRECISE
enum: CLOCK_MONOTONIC_FAST
enum: CLOCK_SECOND
# Linux-specific clocks
enum: CLOCK_PROCESS_CPUTIME_ID
enum: CLOCK_THREAD_CPUTIME_ID
enum: CLOCK_MONOTONIC_RAW
enum: CLOCK_REALTIME_COARSE
enum: CLOCK_MONOTONIC_COARSE
enum: CLOCK_BOOTTIME
enum: CLOCK_REALTIME_ALARM
enum: CLOCK_BOOTTIME_ALARM
enum: ITIMER_REAL
enum: ITIMER_VIRTUAL
enum: ITIMER_PROF
cdef struct timezone:
int tz_minuteswest
int dsttime
cdef struct timeval:
time_t tv_sec
suseconds_t tv_usec
cdef struct timespec:
time_t tv_sec
long tv_nsec
cdef struct itimerval:
timeval it_interval
timeval it_value
cdef struct itimerspec:
timespec it_interval
timespec it_value
int nanosleep(const timespec *, timespec *)
int getitimer(int, itimerval *)
int gettimeofday(timeval *tp, timezone *tzp)
int setitimer(int, const itimerval *, itimerval *)
int clock_getcpuclockid(pid_t, clockid_t *)
int clock_getres(clockid_t, timespec *)
int clock_gettime(clockid_t, timespec *)
int clock_nanosleep(clockid_t, int, const timespec *, timespec *)
int clock_settime(clockid_t, const timespec *)
int timer_create(clockid_t, sigevent *, timer_t *)
int timer_delete(timer_t)
int timer_gettime(timer_t, itimerspec *)
int timer_getoverrun(timer_t)
int timer_settime(timer_t, int, const itimerspec *, itimerspec *)

View file

@ -0,0 +1,30 @@
# Note that the actual size of these types is system-dependent, and
# can't be detected at C compile time. However, the generated C code
# will correctly use the actual size of these types *except* for
# determining promotion in binary arithmetic expressions involving
# mixed types. In this case, operands are promoted to the declared
# larger type, with a bias towards typedef types. Thus, with the
# declarations below, long + time_t will result in a time_t whereas
# long long + time_t will result in a long long which should be
# acceptable for either 32-bit or 64-bit signed time_t (though admittedly
# the POSIX standard doesn't even specify that time_t must be an integral
# type).
cdef extern from "<sys/types.h>":
ctypedef long blkcnt_t
ctypedef long blksize_t
ctypedef long clockid_t
ctypedef long dev_t
ctypedef long gid_t
ctypedef long id_t
ctypedef unsigned long ino_t
ctypedef long mode_t
ctypedef long nlink_t
ctypedef long off_t
ctypedef long pid_t
ctypedef struct sigset_t:
pass
ctypedef long suseconds_t
ctypedef long time_t
ctypedef long timer_t
ctypedef long uid_t

View file

@ -0,0 +1,271 @@
# http://www.opengroup.org/onlinepubs/009695399/basedefs/unistd.h.html
from posix.types cimport gid_t, pid_t, off_t, uid_t
cdef extern from "<unistd.h>" nogil:
#:NULL
enum: R_OK
enum: W_OK
enum: X_OK
enum: F_OK
enum: _CS_PATH
enum: _CS_POSIX_V6_ILP32_OFF32_CFLAGS
enum: _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
enum: _CS_POSIX_V6_ILP32_OFF32_LIBS
enum: _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
enum: _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
enum: _CS_POSIX_V6_ILP32_OFFBIG_LIBS
enum: _CS_POSIX_V6_LP64_OFF64_CFLAGS
enum: _CS_POSIX_V6_LP64_OFF64_LDFLAGS
enum: _CS_POSIX_V6_LP64_OFF64_LIBS
enum: _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
enum: _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
enum: _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
enum: _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
enum: SEEK_SET
enum: SEEK_CUR
enum: SEEK_END
enum: F_LOCK
enum: F_TEST
enum: F_TLOCK
enum: F_ULOCK
enum: _PC_2_SYMLINKS
enum: _PC_ALLOC_SIZE_MIN
enum: _PC_ASYNC_IO
enum: _PC_CHOWN_RESTRICTED
enum: _PC_FILESIZEBITS
enum: _PC_LINK_MAX
enum: _PC_MAX_CANON
enum: _PC_MAX_INPUT
enum: _PC_NAME_MAX
enum: _PC_NO_TRUNC
enum: _PC_PATH_MAX
enum: _PC_PIPE_BUF
enum: _PC_PRIO_IO
enum: _PC_REC_INCR_XFER_SIZE
enum: _PC_REC_MIN_XFER_SIZE
enum: _PC_REC_XFER_ALIGN
enum: _PC_SYMLINK_MAX
enum: _PC_SYNC_IO
enum: _PC_VDISABLE
enum: _SC_2_C_BIND
enum: _SC_2_C_DEV
enum: _SC_2_CHAR_TERM
enum: _SC_2_FORT_DEV
enum: _SC_2_FORT_RUN
enum: _SC_2_LOCALEDEF
enum: _SC_2_PBS
enum: _SC_2_PBS_ACCOUNTING
enum: _SC_2_PBS_CHECKPOINT
enum: _SC_2_PBS_LOCATE
enum: _SC_2_PBS_MESSAGE
enum: _SC_2_PBS_TRACK
enum: _SC_2_SW_DEV
enum: _SC_2_UPE
enum: _SC_2_VERSION
enum: _SC_ADVISORY_INFO
enum: _SC_AIO_LISTIO_MAX
enum: _SC_AIO_MAX
enum: _SC_AIO_PRIO_DELTA_MAX
enum: _SC_ARG_MAX
enum: _SC_ASYNCHRONOUS_IO
enum: _SC_ATEXIT_MAX
enum: _SC_BARRIERS
enum: _SC_BC_BASE_MAX
enum: _SC_BC_DIM_MAX
enum: _SC_BC_SCALE_MAX
enum: _SC_BC_STRING_MAX
enum: _SC_CHILD_MAX
enum: _SC_CLK_TCK
enum: _SC_CLOCK_SELECTION
enum: _SC_COLL_WEIGHTS_MAX
enum: _SC_CPUTIME
enum: _SC_DELAYTIMER_MAX
enum: _SC_EXPR_NEST_MAX
enum: _SC_FSYNC
enum: _SC_GETGR_R_SIZE_MAX
enum: _SC_GETPW_R_SIZE_MAX
enum: _SC_HOST_NAME_MAX
enum: _SC_IOV_MAX
enum: _SC_IPV6
enum: _SC_JOB_CONTROL
enum: _SC_LINE_MAX
enum: _SC_LOGIN_NAME_MAX
enum: _SC_MAPPED_FILES
enum: _SC_MEMLOCK
enum: _SC_MEMLOCK_RANGE
enum: _SC_MEMORY_PROTECTION
enum: _SC_MESSAGE_PASSING
enum: _SC_MONOTONIC_CLOCK
enum: _SC_MQ_OPEN_MAX
enum: _SC_MQ_PRIO_MAX
enum: _SC_NGROUPS_MAX
enum: _SC_OPEN_MAX
enum: _SC_PAGE_SIZE
enum: _SC_PAGESIZE
enum: _SC_PRIORITIZED_IO
enum: _SC_PRIORITY_SCHEDULING
enum: _SC_RAW_SOCKETS
enum: _SC_RE_DUP_MAX
enum: _SC_READER_WRITER_LOCKS
enum: _SC_REALTIME_SIGNALS
enum: _SC_REGEXP
enum: _SC_RTSIG_MAX
enum: _SC_SAVED_IDS
enum: _SC_SEM_NSEMS_MAX
enum: _SC_SEM_VALUE_MAX
enum: _SC_SEMAPHORES
enum: _SC_SHARED_MEMORY_OBJECTS
enum: _SC_SHELL
enum: _SC_SIGQUEUE_MAX
enum: _SC_SPAWN
enum: _SC_SPIN_LOCKS
enum: _SC_SPORADIC_SERVER
enum: _SC_SS_REPL_MAX
enum: _SC_STREAM_MAX
enum: _SC_SYMLOOP_MAX
enum: _SC_SYNCHRONIZED_IO
enum: _SC_THREAD_ATTR_STACKADDR
enum: _SC_THREAD_ATTR_STACKSIZE
enum: _SC_THREAD_CPUTIME
enum: _SC_THREAD_DESTRUCTOR_ITERATIONS
enum: _SC_THREAD_KEYS_MAX
enum: _SC_THREAD_PRIO_INHERIT
enum: _SC_THREAD_PRIO_PROTECT
enum: _SC_THREAD_PRIORITY_SCHEDULING
enum: _SC_THREAD_PROCESS_SHARED
enum: _SC_THREAD_SAFE_FUNCTIONS
enum: _SC_THREAD_SPORADIC_SERVER
enum: _SC_THREAD_STACK_MIN
enum: _SC_THREAD_THREADS_MAX
enum: _SC_THREADS
enum: _SC_TIMEOUTS
enum: _SC_TIMER_MAX
enum: _SC_TIMERS
enum: _SC_TRACE
enum: _SC_TRACE_EVENT_FILTER
enum: _SC_TRACE_EVENT_NAME_MAX
enum: _SC_TRACE_INHERIT
enum: _SC_TRACE_LOG
enum: _SC_TRACE_NAME_MAX
enum: _SC_TRACE_SYS_MAX
enum: _SC_TRACE_USER_EVENT_MAX
enum: _SC_TTY_NAME_MAX
enum: _SC_TYPED_MEMORY_OBJECTS
enum: _SC_TZNAME_MAX
enum: _SC_V6_ILP32_OFF32
enum: _SC_V6_ILP32_OFFBIG
enum: _SC_V6_LP64_OFF64
enum: _SC_V6_LPBIG_OFFBIG
enum: _SC_VERSION
enum: _SC_XBS5_ILP32_OFF32
enum: _SC_XBS5_ILP32_OFFBIG
enum: _SC_XBS5_LP64_OFF64
enum: _SC_XBS5_LPBIG_OFFBIG
enum: _SC_XOPEN_CRYPT
enum: _SC_XOPEN_ENH_I18N
enum: _SC_XOPEN_LEGACY
enum: _SC_XOPEN_REALTIME
enum: _SC_XOPEN_REALTIME_THREADS
enum: _SC_XOPEN_SHM
enum: _SC_XOPEN_STREAMS
enum: _SC_XOPEN_UNIX
enum: _SC_XOPEN_VERSION
enum: STDIN_FILENO #0
enum: STDOUT_FILENO #1
enum: STDERR_FILENO #2
ctypedef unsigned useconds_t
int access(const char *, int)
unsigned alarm(unsigned)
int chdir(const char *)
int chown(const char *, uid_t, gid_t)
int close(int)
size_t confstr(int, char *, size_t)
char *crypt(const char *, const char *)
char *ctermid(char *)
int dup(int)
int dup2(int, int)
void encrypt(char[64], int)
int execl(const char *, const char *, ...)
int execle(const char *, const char *, ...)
int execlp(const char *, const char *, ...)
int execv(const char *, char *[])
int execve(const char *, char *[], char *[])
int execvp(const char *, char *[])
void _exit(int)
int fchown(int, uid_t, gid_t)
int fchdir(int)
int fdatasync(int)
pid_t fork()
long fpathconf(int, int)
int fsync(int)
int ftruncate(int, off_t)
char *getcwd(char *, size_t)
gid_t getegid()
uid_t geteuid()
gid_t getgid()
int getgroups(int, gid_t [])
long gethostid()
int gethostname(char *, size_t)
char *getlogin()
int getlogin_r(char *, size_t)
int getopt(int, char * [], const char *)
pid_t getpgid(pid_t)
pid_t getpgrp()
pid_t getpid()
pid_t getppid()
pid_t getsid(pid_t)
uid_t getuid()
char *getwd(char *)
int isatty(int)
int lchown(const char *, uid_t, gid_t)
int link(const char *, const char *)
int lockf(int, int, off_t)
off_t lseek(int, off_t, int)
int nice(int)
long pathconf(char *, int)
int pause()
int pipe(int [2])
ssize_t pread(int, void *, size_t, off_t)
ssize_t pwrite(int, const void *, size_t, off_t)
ssize_t read(int, void *, size_t)
ssize_t readlink(const char *, char *, size_t)
int rmdir(const char *)
int setegid(gid_t)
int seteuid(uid_t)
int setgid(gid_t)
int setpgid(pid_t, pid_t)
pid_t setpgrp()
int setregid(gid_t, gid_t)
int setreuid(uid_t, uid_t)
pid_t setsid()
int setuid(uid_t)
unsigned sleep(unsigned)
void swab(const void *, void *, ssize_t)
int symlink(const char *, const char *)
void sync()
long sysconf(int)
pid_t tcgetpgrp(int)
int tcsetpgrp(int, pid_t)
int truncate(const char *, off_t)
char *ttyname(int)
int ttyname_r(int, char *, size_t)
useconds_t ualarm(useconds_t, useconds_t)
int unlink(const char *)
int usleep(useconds_t)
pid_t vfork()
ssize_t write(int, const void *, size_t)
char *optarg
int optind
int opterr
int optopt

View file

@ -0,0 +1,38 @@
# http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/wait.h.html
from posix.types cimport pid_t, id_t
from posix.signal cimport siginfo_t
from posix.resource cimport rusage
cdef extern from "<sys/wait.h>" nogil:
enum: WNOHANG
enum: WUNTRACED
enum: WCONTINUED
enum: WEXITED
enum: WSTOPPED
enum: WNOWAIT
int WEXITSTATUS(int status)
int WIFCONTINUED(int status)
int WIFEXITED(int status)
int WIFSIGNALED(int status)
int WIFSTOPPED(int status)
int WSTOPSIG(int status)
int WTERMSIG(int status)
ctypedef int idtype_t
enum: P_ALL # idtype_t values
enum: P_PID
enum: P_PGID
pid_t wait(int *stat_loc)
pid_t waitpid(pid_t pid, int *status, int options)
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options)
# wait3 was in POSIX until 2008 while wait4 was never standardized.
# Even so, these calls are in almost every Unix, always in sys/wait.h.
# Hence, posix.wait is the least surprising place to declare them for Cython.
# libc may require _XXX_SOURCE to be defined at C-compile time to provide them.
pid_t wait3(int *status, int options, rusage *rusage)
pid_t wait4(pid_t pid, int *status, int options, rusage *rusage)