Posix from detect (#5697)

* refactor posix.nim
* types move to separate files for platform-specifc and generic
("other')
* consts move to separate files that get autogenerated by detect.nim
* proc's stay where they are for now, though in a second stage might
move as well
* fix missing when
This commit is contained in:
Jacek Sieka
2017-04-13 05:10:54 +08:00
committed by Andreas Rumpf
parent e512358bc9
commit ce86b4ad78
12 changed files with 3438 additions and 3133 deletions

View File

@@ -219,7 +219,7 @@ template htons(x: uint16): expr =
sockets.ntohs(x)
when defined(Posix):
proc toInt(domain: Domain): cint =
proc toInt(domain: Domain): TSa_Family =
case domain
of AF_UNIX: result = posix.AF_UNIX
of AF_INET: result = posix.AF_INET

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,604 @@
#
#
# Nim's Runtime Library
# (c) Copyright 2012 Andreas Rumpf
#
# See the file "copying.txt", included in this
# distribution, for details about the copyright.
#
# Types here should conform to the glibc ABI on linux / x86_64
# When adding a type, the order and size of fields must match
# To be included from posix.nim!
from times import Time
const
hasSpawnH = not defined(haiku) # should exist for every Posix system nowadays
hasAioH = defined(linux)
# On Linux:
# timer_{create,delete,settime,gettime},
# clock_{getcpuclockid, getres, gettime, nanosleep, settime} lives in librt
{.passL: "-lrt".}
# Types
type
DIR* {.importc: "DIR", header: "<dirent.h>",
incompleteStruct.} = object
## A type representing a directory stream.
{.deprecated: [TDIR: DIR].}
type
SocketHandle* = distinct cint # The type used to represent socket descriptors
{.deprecated: [TSocketHandle: SocketHandle].}
type
Timespec* {.importc: "struct timespec",
header: "<time.h>", final, pure.} = object ## struct timespec
tv_sec*: Time ## Seconds.
tv_nsec*: clong ## Nanoseconds.
Dirent* {.importc: "struct dirent",
header: "<dirent.h>", final, pure.} = object ## dirent_t struct
d_ino*: Ino
d_off*: Off
d_reclen*: cushort
d_type*: int8 # cuchar really!
d_name*: array[256, cchar]
Tflock* {.importc: "struct flock", final, pure,
header: "<fcntl.h>".} = object ## flock type
l_type*: cshort ## Type of lock; F_RDLCK, F_WRLCK, F_UNLCK.
l_whence*: cshort ## Flag for starting offset.
l_start*: Off ## Relative offset in bytes.
l_len*: Off ## Size; if 0 then until EOF.
l_pid*: Pid ## Process ID of the process holding the lock;
## returned with F_GETLK.
# no struct FTW on linux
Glob* {.importc: "glob_t", header: "<glob.h>",
final, pure.} = object ## glob_t
gl_pathc*: csize ## Count of paths matched by pattern.
gl_pathv*: cstringArray ## Pointer to a list of matched pathnames.
gl_offs*: csize ## Slots to reserve at the beginning of gl_pathv.
gl_flags*: cint
gl_closedir*: pointer
gl_readdir*: pointer
gl_opendir*: pointer
gl_lstat*: pointer
gl_stat*: pointer
Group* {.importc: "struct group", header: "<grp.h>",
final, pure.} = object ## struct group
gr_name*: cstring ## The name of the group.
gr_passwd*: cstring
gr_gid*: Gid ## Numerical group ID.
gr_mem*: cstringArray ## Pointer to a null-terminated array of character
## pointers to member names.
Iconv* {.importc: "iconv_t", header: "<iconv.h>".} = pointer
## Identifies the conversion from one codeset to another.
Lconv* {.importc: "struct lconv", header: "<locale.h>", final,
pure.} = object
decimal_point*: cstring
thousands_sep*: cstring
grouping*: cstring
int_curr_symbol*: cstring
currency_symbol*: cstring
mon_decimal_point*: cstring
mon_thousands_sep*: cstring
mon_grouping*: cstring
positive_sign*: cstring
negative_sign*: cstring
int_frac_digits*: char
frac_digits*: char
p_cs_precedes*: char
p_sep_by_space*: char
n_cs_precedes*: char
n_sep_by_space*: char
p_sign_posn*: char
n_sign_posn*: char
int_p_cs_precedes*: char
int_p_sep_by_space*: char
int_n_cs_precedes*: char
int_n_sep_by_space*: char
int_p_sign_posn*: char
int_n_sign_posn*: char
Mqd* {.importc: "mqd_t", header: "<mqueue.h>".} = cint
MqAttr* {.importc: "struct mq_attr",
header: "<mqueue.h>",
final, pure.} = object ## message queue attribute
mq_flags*: clong ## Message queue flags.
mq_maxmsg*: clong ## Maximum number of messages.
mq_msgsize*: clong ## Maximum message size.
mq_curmsgs*: clong ## Number of messages currently queued.
pad: array[4, clong]
Passwd* {.importc: "struct passwd", header: "<pwd.h>",
final, pure.} = object ## struct passwd
pw_name*: cstring ## User's login name.
pw_passwd*: cstring
pw_uid*: Uid ## Numerical user ID.
pw_gid*: Gid ## Numerical group ID.
pw_gecos*: cstring
pw_dir*: cstring ## Initial working directory.
pw_shell*: cstring ## Program to use as shell.
Blkcnt* {.importc: "blkcnt_t", header: "<sys/types.h>".} = clong
## used for file block counts
Blksize* {.importc: "blksize_t", header: "<sys/types.h>".} = clong
## used for block sizes
Clock* {.importc: "clock_t", header: "<sys/types.h>".} = clong
ClockId* {.importc: "clockid_t", header: "<sys/types.h>".} = cint
Dev* {.importc: "dev_t", header: "<sys/types.h>".} = culong
Fsblkcnt* {.importc: "fsblkcnt_t", header: "<sys/types.h>".} = culong
Fsfilcnt* {.importc: "fsfilcnt_t", header: "<sys/types.h>".} = culong
Gid* {.importc: "gid_t", header: "<sys/types.h>".} = cuint
Id* {.importc: "id_t", header: "<sys/types.h>".} = cuint
Ino* {.importc: "ino_t", header: "<sys/types.h>".} = culong
Key* {.importc: "key_t", header: "<sys/types.h>".} = cint
Mode* {.importc: "mode_t", header: "<sys/types.h>".} = cint # cuint really!
Nlink* {.importc: "nlink_t", header: "<sys/types.h>".} = culong
Off* {.importc: "off_t", header: "<sys/types.h>".} = clong
Pid* {.importc: "pid_t", header: "<sys/types.h>".} = cint
Pthread_attr* {.importc: "pthread_attr_t", header: "<sys/types.h>",
pure, final.} = object
abi: array[56 div sizeof(clong), clong]
Pthread_barrier* {.importc: "pthread_barrier_t",
header: "<sys/types.h>", pure, final.} = object
abi: array[32 div sizeof(clong), clong]
Pthread_barrierattr* {.importc: "pthread_barrierattr_t",
header: "<sys/types.h>", pure, final.} = object
abi: array[4 div sizeof(cint), cint]
Pthread_cond* {.importc: "pthread_cond_t", header: "<sys/types.h>",
pure, final.} = object
abi: array[48 div sizeof(clonglong), clonglong]
Pthread_condattr* {.importc: "pthread_condattr_t",
header: "<sys/types.h>", pure, final.} = object
abi: array[4 div sizeof(cint), cint]
Pthread_key* {.importc: "pthread_key_t", header: "<sys/types.h>".} = cuint
Pthread_mutex* {.importc: "pthread_mutex_t", header: "<sys/types.h>",
pure, final.} = object
abi: array[48 div sizeof(clong), clong]
Pthread_mutexattr* {.importc: "pthread_mutexattr_t",
header: "<sys/types.h>", pure, final.} = object
abi: array[4 div sizeof(cint), cint]
Pthread_once* {.importc: "pthread_once_t", header: "<sys/types.h>".} = cint
Pthread_rwlock* {.importc: "pthread_rwlock_t",
header: "<sys/types.h>", pure, final.} = object
abi: array[56 div sizeof(clong), clong]
Pthread_rwlockattr* {.importc: "pthread_rwlockattr_t",
header: "<sys/types.h>".} = object
abi: array[8 div sizeof(clong), clong]
Pthread_spinlock* {.importc: "pthread_spinlock_t",
header: "<sys/types.h>".} = cint
Pthread* {.importc: "pthread_t", header: "<sys/types.h>".} = culong
Suseconds* {.importc: "suseconds_t", header: "<sys/types.h>".} = clong
#Ttime* {.importc: "time_t", header: "<sys/types.h>".} = int
Timer* {.importc: "timer_t", header: "<sys/types.h>".} = pointer
Uid* {.importc: "uid_t", header: "<sys/types.h>".} = cuint
Useconds* {.importc: "useconds_t", header: "<sys/types.h>".} = cuint
Utsname* {.importc: "struct utsname",
header: "<sys/utsname.h>",
final, pure.} = object ## struct utsname
sysname*, ## Name of this implementation of the operating system.
nodename*, ## Name of this node within the communications
## network to which this node is attached, if any.
release*, ## Current release level of this implementation.
version*, ## Current version level of this release.
machine*, ## Name of the hardware type on which the
## system is running.
domainname*: array[65, char]
Sem* {.importc: "sem_t", header: "<semaphore.h>", final, pure.} = object
abi: array[32 div sizeof(clong), clong]
Ipc_perm* {.importc: "struct ipc_perm",
header: "<sys/ipc.h>", final, pure.} = object ## struct ipc_perm
key: Key
uid*: Uid ## Owner's user ID.
gid*: Gid ## Owner's group ID.
cuid*: Uid ## Creator's user ID.
cgid*: Gid ## Creator's group ID.
mode*: cshort ## Read/write permission.
pad1: cshort
seq1: cshort
pad2: cshort
reserved1: culong
reserved2: culong
Stat* {.importc: "struct stat",
header: "<sys/stat.h>", final, pure.} = object ## struct stat
st_dev*: Dev ## Device ID of device containing file.
st_ino*: Ino ## File serial number.
st_nlink*: Nlink ## Number of hard links to the file.
st_mode*: Mode ## Mode of file (see below).
st_uid*: Uid ## User ID of file.
st_gid*: Gid ## Group ID of file.
pad0: cint
st_rdev*: Dev ## Device ID (if file is character or block special).
st_size*: Off ## For regular files, the file size in bytes.
## For symbolic links, the length in bytes of the
## pathname contained in the symbolic link.
## For a shared memory object, the length in bytes.
## For a typed memory object, the length in bytes.
## For other file types, the use of this field is
## unspecified.
st_blksize*: Blksize ## A file system-specific preferred I/O block size
## for this object. In some file system types, this
## may vary from file to file.
st_blocks*: Blkcnt ## Number of blocks allocated for this object.
st_atim*: Timespec ## Time of last access.
st_mtim*: Timespec ## Time of last data modification.
st_ctim*: Timespec ## Time of last status change.
reserved: array[3, clong]
Statvfs* {.importc: "struct statvfs", header: "<sys/statvfs.h>",
final, pure.} = object ## struct statvfs
f_bsize*: culong ## File system block size.
f_frsize*: culong ## Fundamental file system block size.
f_blocks*: Fsblkcnt ## Total number of blocks on file system
## in units of f_frsize.
f_bfree*: Fsblkcnt ## Total number of free blocks.
f_bavail*: Fsblkcnt ## Number of free blocks available to
## non-privileged process.
f_files*: Fsfilcnt ## Total number of file serial numbers.
f_ffree*: Fsfilcnt ## Total number of free file serial numbers.
f_favail*: Fsfilcnt ## Number of file serial numbers available to
## non-privileged process.
f_fsid*: culong ## File system ID.
f_flag*: culong ## Bit mask of f_flag values.
f_namemax*: culong ## Maximum filename length.
f_spare: array[6, cint]
# No Posix_typed_mem_info
Tm* {.importc: "struct tm", header: "<time.h>",
final, pure.} = object ## struct tm
tm_sec*: cint ## Seconds [0,60].
tm_min*: cint ## Minutes [0,59].
tm_hour*: cint ## Hour [0,23].
tm_mday*: cint ## Day of month [1,31].
tm_mon*: cint ## Month of year [0,11].
tm_year*: cint ## Years since 1900.
tm_wday*: cint ## Day of week [0,6] (Sunday =0).
tm_yday*: cint ## Day of year [0,365].
tm_isdst*: cint ## Daylight Savings flag.
tm_gmtoff*: clong
tm_zone*: cstring
Itimerspec* {.importc: "struct itimerspec", header: "<time.h>",
final, pure.} = object ## struct itimerspec
it_interval*: Timespec ## Timer period.
it_value*: Timespec ## Timer expiration.
Sig_atomic* {.importc: "sig_atomic_t", header: "<signal.h>".} = cint
## Possibly volatile-qualified integer type of an object that can be
## accessed as an atomic entity, even in the presence of asynchronous
## interrupts.
Sigset* {.importc: "sigset_t", header: "<signal.h>", final, pure.} = object
abi: array[1024 div (8 * sizeof(culong)), culong]
SigEvent* {.importc: "struct sigevent",
header: "<signal.h>", final, pure.} = object ## struct sigevent
sigev_value*: SigVal ## Signal value.
sigev_signo*: cint ## Signal number.
sigev_notify*: cint ## Notification type.
sigev_notify_function*: proc (x: SigVal) {.noconv.} ## Notification func.
sigev_notify_attributes*: ptr PthreadAttr ## Notification attributes.
abi: array[12, int]
SigVal* {.importc: "union sigval",
header: "<signal.h>", final, pure.} = object ## struct sigval
sival_ptr*: pointer ## pointer signal value;
## integer signal value not defined!
Sigaction* {.importc: "struct sigaction",
header: "<signal.h>", final, pure.} = object ## struct sigaction
sa_handler*: proc (x: cint) {.noconv.} ## Pointer to a signal-catching
## function or one of the macros
## SIG_IGN or SIG_DFL.
sa_mask*: Sigset ## Set of signals to be blocked during execution of
## the signal handling function.
sa_flags*: cint ## Special flags.
sa_sigaction*: proc (x: cint, y: ptr SigInfo, z: pointer) {.noconv.}
Stack* {.importc: "stack_t",
header: "<signal.h>", final, pure.} = object ## stack_t
ss_sp*: pointer ## Stack base or pointer.
ss_size*: int ## Stack size.
ss_flags*: cint ## Flags.
SigStack* {.importc: "struct sigstack",
header: "<signal.h>", final, pure.} = object ## struct sigstack
ss_onstack*: cint ## Non-zero when signal stack is in use.
ss_sp*: pointer ## Signal stack pointer.
SigInfo* {.importc: "siginfo_t",
header: "<signal.h>", final, pure.} = object ## siginfo_t
si_signo*: cint ## Signal number.
si_code*: cint ## Signal code.
si_errno*: cint ## If non-zero, an errno value associated with
## this signal, as defined in <errno.h>.
si_pid*: Pid ## Sending process ID.
si_uid*: Uid ## Real user ID of sending process.
si_addr*: pointer ## Address of faulting instruction.
si_status*: cint ## Exit value or signal.
si_band*: int ## Band event for SIGPOLL.
si_value*: SigVal ## Signal value.
pad {.importc: "_pad"}: array[128 - 56, uint8]
Nl_item* {.importc: "nl_item", header: "<nl_types.h>".} = cint
Nl_catd* {.importc: "nl_catd", header: "<nl_types.h>".} = pointer
Sched_param* {.importc: "struct sched_param",
header: "<sched.h>",
final, pure.} = object ## struct sched_param
sched_priority*: cint
Timeval* {.importc: "struct timeval", header: "<sys/select.h>",
final, pure.} = object ## struct timeval
tv_sec*: clong ## Seconds.
tv_usec*: clong ## Microseconds.
TFdSet* {.importc: "fd_set", header: "<sys/select.h>",
final, pure.} = object
abi: array[1024 div (8 * sizeof(clong)), clong]
Mcontext* {.importc: "mcontext_t", header: "<ucontext.h>",
final, pure.} = object
gregs: array[23, clonglong]
fpregs: pointer
reserved1: array[8, clonglong]
Ucontext* {.importc: "ucontext_t", header: "<ucontext.h>",
final, pure.} = object ## ucontext_t
uc_flags: clong
uc_link*: ptr Ucontext ## Pointer to the context that is resumed
## when this context returns.
uc_stack*: Stack ## The stack used by this context.
uc_mcontext*: Mcontext ## A machine-specific representation of the saved
## context.
uc_sigmask*: Sigset ## The set of signals that are blocked when this
## context is active.
# todo fpregds_mem
{.deprecated: [TOff: Off, TPid: Pid, TGid: Gid, TMode: Mode, TDev: Dev,
TNlink: Nlink, TStack: Stack, TGroup: Group, TMqd: Mqd,
TPasswd: Passwd, TClock: Clock, TClockId: ClockId, TKey: Key,
TSem: Sem, Tpthread_attr: PthreadAttr, Ttimespec: Timespec,
Tdirent: Dirent, TGlob: Glob,
# Tflock: Flock, # Naming conflict if we drop the `T`
Ticonv: Iconv, Tlconv: Lconv, TMqAttr: MqAttr, Tblkcnt: Blkcnt,
Tblksize: Blksize, Tfsblkcnt: Fsblkcnt, Tfsfilcnt: Fsfilcnt,
Tid: Id, Tino: Ino, Tpthread_barrier: Pthread_barrier,
Tpthread_barrierattr: Pthread_barrierattr, Tpthread_cond: Pthread_cond,
TPthread_condattr: Pthread_condattr, Tpthread_key: Pthread_key,
Tpthread_mutex: Pthread_mutex, Tpthread_mutexattr: Pthread_mutexattr,
Tpthread_once: Pthread_once, Tpthread_rwlock: Pthread_rwlock,
Tpthread_rwlockattr: Pthread_rwlockattr, Tpthread_spinlock: Pthread_spinlock,
Tpthread: Pthread, Tsuseconds: Suseconds, Ttimer: Timer,
Tuid: Uid, Tuseconds: Useconds, Tutsname: Utsname, Tipc_perm: Ipc_perm,
TStat: Stat, TStatvfs: Statvfs,
Ttm: Tm, titimerspec: Itimerspec, Tsig_atomic: Sig_atomic, Tsigset: Sigset,
TsigEvent: SigEvent, TsigVal: SigVal, TSigaction: Sigaction,
TSigStack: SigStack, TsigInfo: SigInfo, Tnl_item: Nl_item,
Tnl_catd: Nl_catd, Tsched_param: Sched_param,
# TFdSet: FdSet, # Naming conflict if we drop the `T`
Tmcontext: Mcontext, Tucontext: Ucontext].}
type
Taiocb* {.importc: "struct aiocb", header: "<aio.h>",
final, pure.} = object ## struct aiocb
aio_fildes*: cint ## File descriptor.
aio_lio_opcode*: cint ## Operation to be performed.
aio_reqprio*: cint ## Request priority offset.
aio_buf*: pointer ## Location of buffer.
aio_nbytes*: csize ## Length of transfer.
aio_sigevent*: SigEvent ## Signal number and value.
next_prio: pointer
abs_prio: cint
policy: cint
error_Code: cint
return_value: clong
aio_offset*: Off ## File offset.
reserved: array[32, uint8]
when hasSpawnH:
type
Tposix_spawnattr* {.importc: "posix_spawnattr_t",
header: "<spawn.h>", final, pure.} = object
flags: cshort
pgrp: Pid
sd: Sigset
ss: Sigset
sp: Sched_param
policy: cint
pad: array[16, cint]
Tposix_spawn_file_actions* {.importc: "posix_spawn_file_actions_t",
header: "<spawn.h>", final, pure.} = object
allocated: cint
used: cint
actions: pointer
pad: array[16, cint]
# from sys/un.h
const Sockaddr_un_path_length* = 108
type
Socklen* {.importc: "socklen_t", header: "<sys/socket.h>".} = cuint
# cushort really
TSa_Family* {.importc: "sa_family_t", header: "<sys/socket.h>".} = cshort
SockAddr* {.importc: "struct sockaddr", header: "<sys/socket.h>",
pure, final.} = object ## struct sockaddr
sa_family*: TSa_Family ## Address family.
sa_data*: array[14, char] ## Socket address (variable-length data).
Sockaddr_un* {.importc: "struct sockaddr_un", header: "<sys/un.h>",
pure, final.} = object ## struct sockaddr_un
sun_family*: TSa_Family ## Address family.
sun_path*: array[108, char] ## Socket path
Sockaddr_storage* {.importc: "struct sockaddr_storage",
header: "<sys/socket.h>",
pure, final.} = object ## struct sockaddr_storage
ss_family*: TSa_Family ## Address family.
ss_padding: array[128 - sizeof(cshort) - sizeof(culong), char]
ss_align: clong
Tif_nameindex* {.importc: "struct if_nameindex", final,
pure, header: "<net/if.h>".} = object ## struct if_nameindex
if_index*: cuint ## Numeric index of the interface.
if_name*: cstring ## Null-terminated name of the interface.
IOVec* {.importc: "struct iovec", pure, final,
header: "<sys/uio.h>".} = object ## struct iovec
iov_base*: pointer ## Base address of a memory region for input or output.
iov_len*: csize ## The size of the memory pointed to by iov_base.
Tmsghdr* {.importc: "struct msghdr", pure, final,
header: "<sys/socket.h>".} = object ## struct msghdr
msg_name*: pointer ## Optional address.
msg_namelen*: Socklen ## Size of address.
msg_iov*: ptr IOVec ## Scatter/gather array.
msg_iovlen*: csize ## Members in msg_iov.
msg_control*: pointer ## Ancillary data; see below.
msg_controllen*: csize ## Ancillary data buffer len.
msg_flags*: cint ## Flags on received message.
Tcmsghdr* {.importc: "struct cmsghdr", pure, final,
header: "<sys/socket.h>".} = object ## struct cmsghdr
cmsg_len*: csize ## Data byte count, including the cmsghdr.
cmsg_level*: cint ## Originating protocol.
cmsg_type*: cint ## Protocol-specific type.
TLinger* {.importc: "struct linger", pure, final,
header: "<sys/socket.h>".} = object ## struct linger
l_onoff*: cint ## Indicates whether linger option is enabled.
l_linger*: cint ## Linger time, in seconds.
# data follows...
InPort* = uint16
InAddrScalar* = uint32
InAddrT* {.importc: "in_addr_t", pure, final,
header: "<netinet/in.h>".} = uint32
InAddr* {.importc: "struct in_addr", pure, final,
header: "<netinet/in.h>".} = object ## struct in_addr
s_addr*: InAddrScalar
Sockaddr_in* {.importc: "struct sockaddr_in", pure, final,
header: "<netinet/in.h>".} = object ## struct sockaddr_in
sin_family*: TSa_Family ## AF_INET.
sin_port*: InPort ## Port number.
sin_addr*: InAddr ## IP address.
sin_zero: array[16 - 2 - 2 - 4, uint8]
In6Addr* {.importc: "struct in6_addr", pure, final,
header: "<netinet/in.h>".} = object ## struct in6_addr
s6_addr*: array[0..15, char]
Sockaddr_in6* {.importc: "struct sockaddr_in6", pure, final,
header: "<netinet/in.h>".} = object ## struct sockaddr_in6
sin6_family*: TSa_Family ## AF_INET6.
sin6_port*: InPort ## Port number.
sin6_flowinfo*: uint32 ## IPv6 traffic class and flow information.
sin6_addr*: In6Addr ## IPv6 address.
sin6_scope_id*: uint32 ## Set of interfaces for a scope.
Tipv6_mreq* {.importc: "struct ipv6_mreq", pure, final,
header: "<netinet/in.h>".} = object ## struct ipv6_mreq
ipv6mr_multiaddr*: In6Addr ## IPv6 multicast address.
ipv6mr_interface*: cuint ## Interface index.
Hostent* {.importc: "struct hostent", pure, final,
header: "<netdb.h>".} = object ## struct hostent
h_name*: cstring ## Official name of the host.
h_aliases*: cstringArray ## A pointer to an array of pointers to
## alternative host names, terminated by a
## null pointer.
h_addrtype*: cint ## Address type.
h_length*: cint ## The length, in bytes, of the address.
h_addr_list*: cstringArray ## A pointer to an array of pointers to network
## addresses (in network byte order) for the
## host, terminated by a null pointer.
Tnetent* {.importc: "struct netent", pure, final,
header: "<netdb.h>".} = object ## struct netent
n_name*: cstring ## Official, fully-qualified (including the
## domain) name of the host.
n_aliases*: cstringArray ## A pointer to an array of pointers to
## alternative network names, terminated by a
## null pointer.
n_addrtype*: cint ## The address type of the network.
n_net*: uint32 ## The network number, in host byte order.
Protoent* {.importc: "struct protoent", pure, final,
header: "<netdb.h>".} = object ## struct protoent
p_name*: cstring ## Official name of the protocol.
p_aliases*: cstringArray ## A pointer to an array of pointers to
## alternative protocol names, terminated by
## a null pointer.
p_proto*: cint ## The protocol number.
Servent* {.importc: "struct servent", pure, final,
header: "<netdb.h>".} = object ## struct servent
s_name*: cstring ## Official name of the service.
s_aliases*: cstringArray ## A pointer to an array of pointers to
## alternative service names, terminated by
## a null pointer.
s_port*: cint ## The port number at which the service
## resides, in network byte order.
s_proto*: cstring ## The name of the protocol to use when
## contacting the service.
AddrInfo* {.importc: "struct addrinfo", pure, final,
header: "<netdb.h>".} = object ## struct addrinfo
ai_flags*: cint ## Input flags.
ai_family*: cint ## Address family of socket.
ai_socktype*: cint ## Socket type.
ai_protocol*: cint ## Protocol of socket.
ai_addrlen*: Socklen ## Length of socket address.
ai_addr*: ptr SockAddr ## Socket address of socket.
ai_canonname*: cstring ## Canonical name of service location.
ai_next*: ptr AddrInfo ## Pointer to next in list.
TPollfd* {.importc: "struct pollfd", pure, final,
header: "<poll.h>".} = object ## struct pollfd
fd*: cint ## The following descriptor being polled.
events*: cshort ## The input event flags (see below).
revents*: cshort ## The output event flags (see below).
Tnfds* {.importc: "nfds_t", header: "<poll.h>".} = culong
{.deprecated: [TSockaddr_in: Sockaddr_in, TAddrinfo: AddrInfo,
TSockAddr: SockAddr, TSockLen: SockLen, TTimeval: Timeval,
Tsockaddr_storage: Sockaddr_storage, Tsockaddr_in6: Sockaddr_in6,
Thostent: Hostent, TServent: Servent,
TInAddr: InAddr, TIOVec: IOVec, TInPort: InPort, TInAddrT: InAddrT,
TIn6Addr: In6Addr, TInAddrScalar: InAddrScalar, TProtoent: Protoent].}
var
errno* {.importc, header: "<errno.h>".}: cint ## error variable
h_errno* {.importc, header: "<netdb.h>".}: cint
daylight* {.importc, header: "<time.h>".}: cint
timezone* {.importc, header: "<time.h>".}: clong
# Regenerate using detect.nim!
include posix_linux_amd64_consts
const POSIX_SPAWN_USEVFORK* = cint(0x40) # needs _GNU_SOURCE!

View File

@@ -0,0 +1,702 @@
# Generated by detect.nim
# <aio.h>
const AIO_ALLDONE* = cint(2)
const AIO_CANCELED* = cint(0)
const AIO_NOTCANCELED* = cint(1)
const LIO_NOP* = cint(2)
const LIO_NOWAIT* = cint(1)
const LIO_READ* = cint(0)
const LIO_WAIT* = cint(0)
const LIO_WRITE* = cint(1)
# <dlfcn.h>
const RTLD_LAZY* = cint(1)
const RTLD_NOW* = cint(2)
const RTLD_GLOBAL* = cint(256)
const RTLD_LOCAL* = cint(0)
# <errno.h>
const E2BIG* = cint(7)
const EACCES* = cint(13)
const EADDRINUSE* = cint(98)
const EADDRNOTAVAIL* = cint(99)
const EAFNOSUPPORT* = cint(97)
const EAGAIN* = cint(11)
const EALREADY* = cint(114)
const EBADF* = cint(9)
const EBADMSG* = cint(74)
const EBUSY* = cint(16)
const ECANCELED* = cint(125)
const ECHILD* = cint(10)
const ECONNABORTED* = cint(103)
const ECONNREFUSED* = cint(111)
const ECONNRESET* = cint(104)
const EDEADLK* = cint(35)
const EDESTADDRREQ* = cint(89)
const EDOM* = cint(33)
const EDQUOT* = cint(122)
const EEXIST* = cint(17)
const EFAULT* = cint(14)
const EFBIG* = cint(27)
const EHOSTUNREACH* = cint(113)
const EIDRM* = cint(43)
const EILSEQ* = cint(84)
const EINPROGRESS* = cint(115)
const EINTR* = cint(4)
const EINVAL* = cint(22)
const EIO* = cint(5)
const EISCONN* = cint(106)
const EISDIR* = cint(21)
const ELOOP* = cint(40)
const EMFILE* = cint(24)
const EMLINK* = cint(31)
const EMSGSIZE* = cint(90)
const EMULTIHOP* = cint(72)
const ENAMETOOLONG* = cint(36)
const ENETDOWN* = cint(100)
const ENETRESET* = cint(102)
const ENETUNREACH* = cint(101)
const ENFILE* = cint(23)
const ENOBUFS* = cint(105)
const ENODATA* = cint(61)
const ENODEV* = cint(19)
const ENOENT* = cint(2)
const ENOEXEC* = cint(8)
const ENOLCK* = cint(37)
const ENOLINK* = cint(67)
const ENOMEM* = cint(12)
const ENOMSG* = cint(42)
const ENOPROTOOPT* = cint(92)
const ENOSPC* = cint(28)
const ENOSR* = cint(63)
const ENOSTR* = cint(60)
const ENOSYS* = cint(38)
const ENOTCONN* = cint(107)
const ENOTDIR* = cint(20)
const ENOTEMPTY* = cint(39)
const ENOTSOCK* = cint(88)
const ENOTSUP* = cint(95)
const ENOTTY* = cint(25)
const ENXIO* = cint(6)
const EOPNOTSUPP* = cint(95)
const EOVERFLOW* = cint(75)
const EPERM* = cint(1)
const EPIPE* = cint(32)
const EPROTO* = cint(71)
const EPROTONOSUPPORT* = cint(93)
const EPROTOTYPE* = cint(91)
const ERANGE* = cint(34)
const EROFS* = cint(30)
const ESPIPE* = cint(29)
const ESRCH* = cint(3)
const ESTALE* = cint(116)
const ETIME* = cint(62)
const ETIMEDOUT* = cint(110)
const ETXTBSY* = cint(26)
const EWOULDBLOCK* = cint(11)
const EXDEV* = cint(18)
# <fcntl.h>
const F_DUPFD* = cint(0)
const F_GETFD* = cint(1)
const F_SETFD* = cint(2)
const F_GETFL* = cint(3)
const F_SETFL* = cint(4)
const F_GETLK* = cint(5)
const F_SETLK* = cint(6)
const F_SETLKW* = cint(7)
const F_GETOWN* = cint(9)
const F_SETOWN* = cint(8)
const FD_CLOEXEC* = cint(1)
const F_RDLCK* = cint(0)
const F_UNLCK* = cint(2)
const F_WRLCK* = cint(1)
const O_CREAT* = cint(64)
const O_EXCL* = cint(128)
const O_NOCTTY* = cint(256)
const O_TRUNC* = cint(512)
const O_APPEND* = cint(1024)
const O_DSYNC* = cint(4096)
const O_NONBLOCK* = cint(2048)
const O_RSYNC* = cint(1052672)
const O_SYNC* = cint(1052672)
const O_ACCMODE* = cint(3)
const O_RDONLY* = cint(0)
const O_RDWR* = cint(2)
const O_WRONLY* = cint(1)
const POSIX_FADV_NORMAL* = cint(0)
const POSIX_FADV_SEQUENTIAL* = cint(2)
const POSIX_FADV_RANDOM* = cint(1)
const POSIX_FADV_WILLNEED* = cint(3)
const POSIX_FADV_DONTNEED* = cint(4)
const POSIX_FADV_NOREUSE* = cint(5)
# <fenv.h>
const FE_DIVBYZERO* = cint(4)
const FE_INEXACT* = cint(32)
const FE_INVALID* = cint(1)
const FE_OVERFLOW* = cint(8)
const FE_UNDERFLOW* = cint(16)
const FE_ALL_EXCEPT* = cint(61)
const FE_DOWNWARD* = cint(1024)
const FE_TONEAREST* = cint(0)
const FE_TOWARDZERO* = cint(3072)
const FE_UPWARD* = cint(2048)
const FE_DFL_ENV* = cint(-1)
# <fmtmsg.h>
const MM_HARD* = cint(1)
const MM_SOFT* = cint(2)
const MM_FIRM* = cint(4)
const MM_APPL* = cint(8)
const MM_UTIL* = cint(16)
const MM_OPSYS* = cint(32)
const MM_RECOVER* = cint(64)
const MM_NRECOV* = cint(128)
const MM_HALT* = cint(1)
const MM_ERROR* = cint(2)
const MM_WARNING* = cint(3)
const MM_INFO* = cint(4)
const MM_NOSEV* = cint(0)
const MM_PRINT* = cint(256)
const MM_CONSOLE* = cint(512)
const MM_OK* = cint(0)
const MM_NOTOK* = cint(-1)
const MM_NOMSG* = cint(1)
const MM_NOCON* = cint(4)
# <fnmatch.h>
const FNM_NOMATCH* = cint(1)
const FNM_PATHNAME* = cint(1)
const FNM_PERIOD* = cint(4)
const FNM_NOESCAPE* = cint(2)
# <ftw.h>
const FTW_F* = cint(0)
const FTW_D* = cint(1)
const FTW_DNR* = cint(2)
const FTW_NS* = cint(3)
const FTW_SL* = cint(4)
# <glob.h>
const GLOB_APPEND* = cint(32)
const GLOB_DOOFFS* = cint(8)
const GLOB_ERR* = cint(1)
const GLOB_MARK* = cint(2)
const GLOB_NOCHECK* = cint(16)
const GLOB_NOESCAPE* = cint(64)
const GLOB_NOSORT* = cint(4)
const GLOB_ABORTED* = cint(2)
const GLOB_NOMATCH* = cint(3)
const GLOB_NOSPACE* = cint(1)
const GLOB_NOSYS* = cint(4)
# <langinfo.h>
const CODESET* = cint(14)
const D_T_FMT* = cint(131112)
const D_FMT* = cint(131113)
const T_FMT* = cint(131114)
const T_FMT_AMPM* = cint(131115)
const AM_STR* = cint(131110)
const PM_STR* = cint(131111)
const DAY_1* = cint(131079)
const DAY_2* = cint(131080)
const DAY_3* = cint(131081)
const DAY_4* = cint(131082)
const DAY_5* = cint(131083)
const DAY_6* = cint(131084)
const DAY_7* = cint(131085)
const ABDAY_1* = cint(131072)
const ABDAY_2* = cint(131073)
const ABDAY_3* = cint(131074)
const ABDAY_4* = cint(131075)
const ABDAY_5* = cint(131076)
const ABDAY_6* = cint(131077)
const ABDAY_7* = cint(131078)
const MON_1* = cint(131098)
const MON_2* = cint(131099)
const MON_3* = cint(131100)
const MON_4* = cint(131101)
const MON_5* = cint(131102)
const MON_6* = cint(131103)
const MON_7* = cint(131104)
const MON_8* = cint(131105)
const MON_9* = cint(131106)
const MON_10* = cint(131107)
const MON_11* = cint(131108)
const MON_12* = cint(131109)
const ABMON_1* = cint(131086)
const ABMON_2* = cint(131087)
const ABMON_3* = cint(131088)
const ABMON_4* = cint(131089)
const ABMON_5* = cint(131090)
const ABMON_6* = cint(131091)
const ABMON_7* = cint(131092)
const ABMON_8* = cint(131093)
const ABMON_9* = cint(131094)
const ABMON_10* = cint(131095)
const ABMON_11* = cint(131096)
const ABMON_12* = cint(131097)
const ERA* = cint(131116)
const ERA_D_FMT* = cint(131118)
const ERA_D_T_FMT* = cint(131120)
const ERA_T_FMT* = cint(131121)
const ALT_DIGITS* = cint(131119)
const RADIXCHAR* = cint(65536)
const THOUSEP* = cint(65537)
const YESEXPR* = cint(327680)
const NOEXPR* = cint(327681)
const CRNCYSTR* = cint(262159)
# <locale.h>
const LC_ALL* = cint(6)
const LC_COLLATE* = cint(3)
const LC_CTYPE* = cint(0)
const LC_MESSAGES* = cint(5)
const LC_MONETARY* = cint(4)
const LC_NUMERIC* = cint(1)
const LC_TIME* = cint(2)
# <netdb.h>
const IPPORT_RESERVED* = cint(1024)
const HOST_NOT_FOUND* = cint(1)
const NO_DATA* = cint(4)
const NO_RECOVERY* = cint(3)
const TRY_AGAIN* = cint(2)
const AI_PASSIVE* = cint(1)
const AI_CANONNAME* = cint(2)
const AI_NUMERICHOST* = cint(4)
const AI_NUMERICSERV* = cint(1024)
const AI_V4MAPPED* = cint(8)
const AI_ALL* = cint(16)
const AI_ADDRCONFIG* = cint(32)
const NI_NOFQDN* = cint(4)
const NI_NUMERICHOST* = cint(1)
const NI_NAMEREQD* = cint(8)
const NI_NUMERICSERV* = cint(2)
const NI_DGRAM* = cint(16)
const EAI_AGAIN* = cint(-3)
const EAI_BADFLAGS* = cint(-1)
const EAI_FAIL* = cint(-4)
const EAI_FAMILY* = cint(-6)
const EAI_MEMORY* = cint(-10)
const EAI_NONAME* = cint(-2)
const EAI_SERVICE* = cint(-8)
const EAI_SOCKTYPE* = cint(-7)
const EAI_SYSTEM* = cint(-11)
const EAI_OVERFLOW* = cint(-12)
# <net/if.h>
const IF_NAMESIZE* = cint(16)
# <netinet/in.h>
const IPPROTO_IP* = cint(0)
const IPPROTO_IPV6* = cint(41)
const IPPROTO_ICMP* = cint(1)
const IPPROTO_RAW* = cint(255)
const IPPROTO_TCP* = cint(6)
const IPPROTO_UDP* = cint(17)
const INADDR_ANY* = InAddrScalar(0)
const INADDR_LOOPBACK* = InAddrScalar(2130706433)
const INADDR_BROADCAST* = InAddrScalar(-1)
const INET_ADDRSTRLEN* = cint(16)
const INET6_ADDRSTRLEN* = cint(46)
const IPV6_JOIN_GROUP* = cint(20)
const IPV6_LEAVE_GROUP* = cint(21)
const IPV6_MULTICAST_HOPS* = cint(18)
const IPV6_MULTICAST_IF* = cint(17)
const IPV6_MULTICAST_LOOP* = cint(19)
const IPV6_UNICAST_HOPS* = cint(16)
const IPV6_V6ONLY* = cint(26)
# <netinet/tcp.h>
const TCP_NODELAY* = cint(1)
# <nl_types.h>
const NL_SETD* = cint(1)
const NL_CAT_LOCALE* = cint(1)
# <poll.h>
const POLLIN* = cshort(1)
const POLLRDNORM* = cshort(64)
const POLLRDBAND* = cshort(128)
const POLLPRI* = cshort(2)
const POLLOUT* = cshort(4)
const POLLWRNORM* = cshort(256)
const POLLWRBAND* = cshort(512)
const POLLERR* = cshort(8)
const POLLHUP* = cshort(16)
const POLLNVAL* = cshort(32)
# <pthread.h>
const PTHREAD_BARRIER_SERIAL_THREAD* = cint(-1)
const PTHREAD_CANCEL_ASYNCHRONOUS* = cint(1)
const PTHREAD_CANCEL_ENABLE* = cint(0)
const PTHREAD_CANCEL_DEFERRED* = cint(0)
const PTHREAD_CANCEL_DISABLE* = cint(1)
const PTHREAD_CREATE_DETACHED* = cint(1)
const PTHREAD_CREATE_JOINABLE* = cint(0)
const PTHREAD_EXPLICIT_SCHED* = cint(1)
const PTHREAD_INHERIT_SCHED* = cint(0)
const PTHREAD_PROCESS_SHARED* = cint(1)
const PTHREAD_PROCESS_PRIVATE* = cint(0)
const PTHREAD_SCOPE_PROCESS* = cint(1)
const PTHREAD_SCOPE_SYSTEM* = cint(0)
# <sched.h>
const SCHED_FIFO* = cint(1)
const SCHED_RR* = cint(2)
const SCHED_OTHER* = cint(0)
# <semaphore.h>
const SEM_FAILED* = cast[pointer]((nil))
# <signal.h>
const SIGEV_NONE* = cint(1)
const SIGEV_SIGNAL* = cint(0)
const SIGEV_THREAD* = cint(2)
const SIGABRT* = cint(6)
const SIGALRM* = cint(14)
const SIGBUS* = cint(7)
const SIGCHLD* = cint(17)
const SIGCONT* = cint(18)
const SIGFPE* = cint(8)
const SIGHUP* = cint(1)
const SIGILL* = cint(4)
const SIGINT* = cint(2)
const SIGKILL* = cint(9)
const SIGPIPE* = cint(13)
const SIGQUIT* = cint(3)
const SIGSEGV* = cint(11)
const SIGSTOP* = cint(19)
const SIGTERM* = cint(15)
const SIGTSTP* = cint(20)
const SIGTTIN* = cint(21)
const SIGTTOU* = cint(22)
const SIGUSR1* = cint(10)
const SIGUSR2* = cint(12)
const SIGPOLL* = cint(29)
const SIGPROF* = cint(27)
const SIGSYS* = cint(31)
const SIGTRAP* = cint(5)
const SIGURG* = cint(23)
const SIGVTALRM* = cint(26)
const SIGXCPU* = cint(24)
const SIGXFSZ* = cint(25)
const SA_NOCLDSTOP* = cint(1)
const SIG_BLOCK* = cint(0)
const SIG_UNBLOCK* = cint(1)
const SIG_SETMASK* = cint(2)
const SA_ONSTACK* = cint(134217728)
const SA_RESETHAND* = cint(-2147483648)
const SA_RESTART* = cint(268435456)
const SA_SIGINFO* = cint(4)
const SA_NOCLDWAIT* = cint(2)
const SA_NODEFER* = cint(1073741824)
const SS_ONSTACK* = cint(1)
const SS_DISABLE* = cint(2)
const MINSIGSTKSZ* = cint(2048)
const SIGSTKSZ* = cint(8192)
# <sys/ipc.h>
const IPC_CREAT* = cint(512)
const IPC_EXCL* = cint(1024)
const IPC_NOWAIT* = cint(2048)
const IPC_PRIVATE* = cint(0)
const IPC_RMID* = cint(0)
const IPC_SET* = cint(1)
const IPC_STAT* = cint(2)
# <sys/mman.h>
const PROT_READ* = cint(1)
const PROT_WRITE* = cint(2)
const PROT_EXEC* = cint(4)
const PROT_NONE* = cint(0)
const MAP_SHARED* = cint(1)
const MAP_PRIVATE* = cint(2)
const MAP_FIXED* = cint(16)
const MS_ASYNC* = cint(1)
const MS_SYNC* = cint(4)
const MS_INVALIDATE* = cint(2)
const MCL_CURRENT* = cint(1)
const MCL_FUTURE* = cint(2)
const MAP_FAILED* = cast[pointer](0xffffffffffffffff)
const POSIX_MADV_NORMAL* = cint(0)
const POSIX_MADV_SEQUENTIAL* = cint(2)
const POSIX_MADV_RANDOM* = cint(1)
const POSIX_MADV_WILLNEED* = cint(3)
const POSIX_MADV_DONTNEED* = cint(4)
const MAP_POPULATE* = cint(32768)
# <sys/select.h>
const FD_SETSIZE* = cint(1024)
# <sys/socket.h>
const MSG_CTRUNC* = cint(8)
const MSG_DONTROUTE* = cint(4)
const MSG_EOR* = cint(128)
const MSG_OOB* = cint(1)
const SCM_RIGHTS* = cint(1)
const SO_ACCEPTCONN* = cint(30)
const SO_BROADCAST* = cint(6)
const SO_DEBUG* = cint(1)
const SO_DONTROUTE* = cint(5)
const SO_ERROR* = cint(4)
const SO_KEEPALIVE* = cint(9)
const SO_LINGER* = cint(13)
const SO_OOBINLINE* = cint(10)
const SO_RCVBUF* = cint(8)
const SO_RCVLOWAT* = cint(18)
const SO_RCVTIMEO* = cint(20)
const SO_REUSEADDR* = cint(2)
const SO_SNDBUF* = cint(7)
const SO_SNDLOWAT* = cint(19)
const SO_SNDTIMEO* = cint(21)
const SO_TYPE* = cint(3)
const SOCK_DGRAM* = cint(2)
const SOCK_RAW* = cint(3)
const SOCK_SEQPACKET* = cint(5)
const SOCK_STREAM* = cint(1)
const SOL_SOCKET* = cint(1)
const SOMAXCONN* = cint(128)
const SO_REUSEPORT* = cint(15)
const MSG_NOSIGNAL* = cint(16384)
const MSG_PEEK* = cint(2)
const MSG_TRUNC* = cint(32)
const MSG_WAITALL* = cint(256)
const AF_INET* = TSa_Family(2)
const AF_INET6* = TSa_Family(10)
const AF_UNIX* = TSa_Family(1)
const AF_UNSPEC* = TSa_Family(0)
const SHUT_RD* = cint(0)
const SHUT_RDWR* = cint(2)
const SHUT_WR* = cint(1)
# <sys/stat.h>
const S_IFBLK* = cint(24576)
const S_IFCHR* = cint(8192)
const S_IFDIR* = cint(16384)
const S_IFIFO* = cint(4096)
const S_IFLNK* = cint(40960)
const S_IFMT* = cint(61440)
const S_IFREG* = cint(32768)
const S_IFSOCK* = cint(49152)
const S_IRGRP* = cint(32)
const S_IROTH* = cint(4)
const S_IRUSR* = cint(256)
const S_IRWXG* = cint(56)
const S_IRWXO* = cint(7)
const S_IRWXU* = cint(448)
const S_ISGID* = cint(1024)
const S_ISUID* = cint(2048)
const S_ISVTX* = cint(512)
const S_IWGRP* = cint(16)
const S_IWOTH* = cint(2)
const S_IWUSR* = cint(128)
const S_IXGRP* = cint(8)
const S_IXOTH* = cint(1)
const S_IXUSR* = cint(64)
# <sys/statvfs.h>
const ST_RDONLY* = cint(1)
const ST_NOSUID* = cint(2)
# <sys/wait.h>
const WNOHANG* = cint(1)
const WUNTRACED* = cint(2)
const WEXITED* = cint(4)
const WSTOPPED* = cint(2)
const WCONTINUED* = cint(8)
const WNOWAIT* = cint(16777216)
# <spawn.h>
const POSIX_SPAWN_RESETIDS* = cint(1)
const POSIX_SPAWN_SETPGROUP* = cint(2)
const POSIX_SPAWN_SETSCHEDPARAM* = cint(16)
const POSIX_SPAWN_SETSCHEDULER* = cint(32)
const POSIX_SPAWN_SETSIGDEF* = cint(4)
const POSIX_SPAWN_SETSIGMASK* = cint(8)
# <stdio.h>
const IOFBF* = cint(0)
const IONBF* = cint(2)
# <time.h>
const CLOCKS_PER_SEC* = clong(1000000)
const CLOCK_PROCESS_CPUTIME_ID* = cint(2)
const CLOCK_THREAD_CPUTIME_ID* = cint(3)
const CLOCK_REALTIME* = cint(0)
const TIMER_ABSTIME* = cint(1)
const CLOCK_MONOTONIC* = cint(1)
# <unistd.h>
const POSIX_ASYNC_IO* = cint(1)
const F_OK* = cint(0)
const R_OK* = cint(4)
const W_OK* = cint(2)
const X_OK* = cint(1)
const CS_PATH* = cint(0)
const CS_POSIX_V6_ILP32_OFF32_CFLAGS* = cint(1116)
const CS_POSIX_V6_ILP32_OFF32_LDFLAGS* = cint(1117)
const CS_POSIX_V6_ILP32_OFF32_LIBS* = cint(1118)
const CS_POSIX_V6_ILP32_OFFBIG_CFLAGS* = cint(1120)
const CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS* = cint(1121)
const CS_POSIX_V6_ILP32_OFFBIG_LIBS* = cint(1122)
const CS_POSIX_V6_LP64_OFF64_CFLAGS* = cint(1124)
const CS_POSIX_V6_LP64_OFF64_LDFLAGS* = cint(1125)
const CS_POSIX_V6_LP64_OFF64_LIBS* = cint(1126)
const CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS* = cint(1128)
const CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS* = cint(1129)
const CS_POSIX_V6_LPBIG_OFFBIG_LIBS* = cint(1130)
const CS_POSIX_V6_WIDTH_RESTRICTED_ENVS* = cint(1)
const F_LOCK* = cint(1)
const F_TEST* = cint(3)
const F_TLOCK* = cint(2)
const F_ULOCK* = cint(0)
const PC_2_SYMLINKS* = cint(20)
const PC_ALLOC_SIZE_MIN* = cint(18)
const PC_ASYNC_IO* = cint(10)
const PC_CHOWN_RESTRICTED* = cint(6)
const PC_FILESIZEBITS* = cint(13)
const PC_LINK_MAX* = cint(0)
const PC_MAX_CANON* = cint(1)
const PC_MAX_INPUT* = cint(2)
const PC_NAME_MAX* = cint(3)
const PC_NO_TRUNC* = cint(7)
const PC_PATH_MAX* = cint(4)
const PC_PIPE_BUF* = cint(5)
const PC_PRIO_IO* = cint(11)
const PC_REC_INCR_XFER_SIZE* = cint(14)
const PC_REC_MIN_XFER_SIZE* = cint(16)
const PC_REC_XFER_ALIGN* = cint(17)
const PC_SYMLINK_MAX* = cint(19)
const PC_SYNC_IO* = cint(9)
const PC_VDISABLE* = cint(8)
const SC_2_C_BIND* = cint(47)
const SC_2_C_DEV* = cint(48)
const SC_2_CHAR_TERM* = cint(95)
const SC_2_FORT_DEV* = cint(49)
const SC_2_FORT_RUN* = cint(50)
const SC_2_LOCALEDEF* = cint(52)
const SC_2_PBS* = cint(168)
const SC_2_PBS_ACCOUNTING* = cint(169)
const SC_2_PBS_CHECKPOINT* = cint(175)
const SC_2_PBS_LOCATE* = cint(170)
const SC_2_PBS_MESSAGE* = cint(171)
const SC_2_PBS_TRACK* = cint(172)
const SC_2_SW_DEV* = cint(51)
const SC_2_UPE* = cint(97)
const SC_2_VERSION* = cint(46)
const SC_ADVISORY_INFO* = cint(132)
const SC_AIO_LISTIO_MAX* = cint(23)
const SC_AIO_MAX* = cint(24)
const SC_AIO_PRIO_DELTA_MAX* = cint(25)
const SC_ARG_MAX* = cint(0)
const SC_ASYNCHRONOUS_IO* = cint(12)
const SC_ATEXIT_MAX* = cint(87)
const SC_BARRIERS* = cint(133)
const SC_BC_BASE_MAX* = cint(36)
const SC_BC_DIM_MAX* = cint(37)
const SC_BC_SCALE_MAX* = cint(38)
const SC_BC_STRING_MAX* = cint(39)
const SC_CHILD_MAX* = cint(1)
const SC_CLK_TCK* = cint(2)
const SC_CLOCK_SELECTION* = cint(137)
const SC_COLL_WEIGHTS_MAX* = cint(40)
const SC_CPUTIME* = cint(138)
const SC_DELAYTIMER_MAX* = cint(26)
const SC_EXPR_NEST_MAX* = cint(42)
const SC_FSYNC* = cint(15)
const SC_GETGR_R_SIZE_MAX* = cint(69)
const SC_GETPW_R_SIZE_MAX* = cint(70)
const SC_HOST_NAME_MAX* = cint(180)
const SC_IOV_MAX* = cint(60)
const SC_IPV6* = cint(235)
const SC_JOB_CONTROL* = cint(7)
const SC_LINE_MAX* = cint(43)
const SC_LOGIN_NAME_MAX* = cint(71)
const SC_MAPPED_FILES* = cint(16)
const SC_MEMLOCK* = cint(17)
const SC_MEMLOCK_RANGE* = cint(18)
const SC_MEMORY_PROTECTION* = cint(19)
const SC_MESSAGE_PASSING* = cint(20)
const SC_MONOTONIC_CLOCK* = cint(149)
const SC_MQ_OPEN_MAX* = cint(27)
const SC_MQ_PRIO_MAX* = cint(28)
const SC_NGROUPS_MAX* = cint(3)
const SC_OPEN_MAX* = cint(4)
const SC_PAGE_SIZE* = cint(30)
const SC_PRIORITIZED_IO* = cint(13)
const SC_PRIORITY_SCHEDULING* = cint(10)
const SC_RAW_SOCKETS* = cint(236)
const SC_RE_DUP_MAX* = cint(44)
const SC_READER_WRITER_LOCKS* = cint(153)
const SC_REALTIME_SIGNALS* = cint(9)
const SC_REGEXP* = cint(155)
const SC_RTSIG_MAX* = cint(31)
const SC_SAVED_IDS* = cint(8)
const SC_SEM_NSEMS_MAX* = cint(32)
const SC_SEM_VALUE_MAX* = cint(33)
const SC_SEMAPHORES* = cint(21)
const SC_SHARED_MEMORY_OBJECTS* = cint(22)
const SC_SHELL* = cint(157)
const SC_SIGQUEUE_MAX* = cint(34)
const SC_SPAWN* = cint(159)
const SC_SPIN_LOCKS* = cint(154)
const SC_SPORADIC_SERVER* = cint(160)
const SC_SS_REPL_MAX* = cint(241)
const SC_STREAM_MAX* = cint(5)
const SC_SYMLOOP_MAX* = cint(173)
const SC_SYNCHRONIZED_IO* = cint(14)
const SC_THREAD_ATTR_STACKADDR* = cint(77)
const SC_THREAD_ATTR_STACKSIZE* = cint(78)
const SC_THREAD_CPUTIME* = cint(139)
const SC_THREAD_DESTRUCTOR_ITERATIONS* = cint(73)
const SC_THREAD_KEYS_MAX* = cint(74)
const SC_THREAD_PRIO_INHERIT* = cint(80)
const SC_THREAD_PRIO_PROTECT* = cint(81)
const SC_THREAD_PRIORITY_SCHEDULING* = cint(79)
const SC_THREAD_PROCESS_SHARED* = cint(82)
const SC_THREAD_SAFE_FUNCTIONS* = cint(68)
const SC_THREAD_SPORADIC_SERVER* = cint(161)
const SC_THREAD_STACK_MIN* = cint(75)
const SC_THREAD_THREADS_MAX* = cint(76)
const SC_THREADS* = cint(67)
const SC_TIMEOUTS* = cint(164)
const SC_TIMER_MAX* = cint(35)
const SC_TIMERS* = cint(11)
const SC_TRACE* = cint(181)
const SC_TRACE_EVENT_FILTER* = cint(182)
const SC_TRACE_EVENT_NAME_MAX* = cint(242)
const SC_TRACE_INHERIT* = cint(183)
const SC_TRACE_LOG* = cint(184)
const SC_TRACE_NAME_MAX* = cint(243)
const SC_TRACE_SYS_MAX* = cint(244)
const SC_TRACE_USER_EVENT_MAX* = cint(245)
const SC_TTY_NAME_MAX* = cint(72)
const SC_TYPED_MEMORY_OBJECTS* = cint(165)
const SC_TZNAME_MAX* = cint(6)
const SC_V6_ILP32_OFF32* = cint(176)
const SC_V6_ILP32_OFFBIG* = cint(177)
const SC_V6_LP64_OFF64* = cint(178)
const SC_V6_LPBIG_OFFBIG* = cint(179)
const SC_VERSION* = cint(29)
const SC_XBS5_ILP32_OFF32* = cint(125)
const SC_XBS5_ILP32_OFFBIG* = cint(126)
const SC_XBS5_LP64_OFF64* = cint(127)
const SC_XBS5_LPBIG_OFFBIG* = cint(128)
const SC_XOPEN_CRYPT* = cint(92)
const SC_XOPEN_ENH_I18N* = cint(93)
const SC_XOPEN_LEGACY* = cint(129)
const SC_XOPEN_REALTIME* = cint(130)
const SC_XOPEN_REALTIME_THREADS* = cint(131)
const SC_XOPEN_SHM* = cint(94)
const SC_XOPEN_STREAMS* = cint(246)
const SC_XOPEN_UNIX* = cint(91)
const SC_XOPEN_VERSION* = cint(89)
const SC_NPROCESSORS_ONLN* = cint(84)
const SEEK_SET* = cint(0)
const SEEK_CUR* = cint(1)
const SEEK_END* = cint(2)

613
lib/posix/posix_other.nim Normal file
View File

@@ -0,0 +1,613 @@
#
#
# Nim's Runtime Library
# (c) Copyright 2012 Andreas Rumpf
#
# See the file "copying.txt", included in this
# distribution, for details about the copyright.
#
{.deadCodeElim:on.}
from times import Time
const
hasSpawnH = not defined(haiku) # should exist for every Posix system nowadays
hasAioH = defined(linux)
when defined(linux):
# On Linux:
# timer_{create,delete,settime,gettime},
# clock_{getcpuclockid, getres, gettime, nanosleep, settime} lives in librt
{.passL: "-lrt".}
when defined(solaris):
# On Solaris hstrerror lives in libresolv
{.passL: "-lresolv".}
type
DIR* {.importc: "DIR", header: "<dirent.h>",
incompleteStruct.} = object
## A type representing a directory stream.
{.deprecated: [TDIR: DIR].}
type
SocketHandle* = distinct cint # The type used to represent socket descriptors
{.deprecated: [TSocketHandle: SocketHandle].}
type
Timespec* {.importc: "struct timespec",
header: "<time.h>", final, pure.} = object ## struct timespec
tv_sec*: Time ## Seconds.
tv_nsec*: int ## Nanoseconds.
Dirent* {.importc: "struct dirent",
header: "<dirent.h>", final, pure.} = object ## dirent_t struct
d_ino*: Ino ## File serial number.
when defined(dragonfly):
# DragonflyBSD doesn't have `d_reclen` field.
d_type*: uint8
elif defined(linux) or defined(macosx) or defined(freebsd) or
defined(netbsd) or defined(openbsd):
d_reclen*: cshort ## Length of this record. (not POSIX)
d_type*: int8 ## Type of file; not supported by all filesystem types.
## (not POSIX)
when defined(linux) or defined(openbsd):
d_off*: Off ## Not an offset. Value that ``telldir()`` would return.
d_name*: array[0..255, char] ## Name of entry.
Tflock* {.importc: "struct flock", final, pure,
header: "<fcntl.h>".} = object ## flock type
l_type*: cshort ## Type of lock; F_RDLCK, F_WRLCK, F_UNLCK.
l_whence*: cshort ## Flag for starting offset.
l_start*: Off ## Relative offset in bytes.
l_len*: Off ## Size; if 0 then until EOF.
l_pid*: Pid ## Process ID of the process holding the lock;
## returned with F_GETLK.
FTW* {.importc: "struct FTW", header: "<ftw.h>", final, pure.} = object
base*: cint
level*: cint
Glob* {.importc: "glob_t", header: "<glob.h>",
final, pure.} = object ## glob_t
gl_pathc*: int ## Count of paths matched by pattern.
gl_pathv*: cstringArray ## Pointer to a list of matched pathnames.
gl_offs*: int ## Slots to reserve at the beginning of gl_pathv.
Group* {.importc: "struct group", header: "<grp.h>",
final, pure.} = object ## struct group
gr_name*: cstring ## The name of the group.
gr_gid*: Gid ## Numerical group ID.
gr_mem*: cstringArray ## Pointer to a null-terminated array of character
## pointers to member names.
Iconv* {.importc: "iconv_t", header: "<iconv.h>", final, pure.} =
object ## Identifies the conversion from one codeset to another.
Lconv* {.importc: "struct lconv", header: "<locale.h>", final,
pure.} = object
currency_symbol*: cstring
decimal_point*: cstring
frac_digits*: char
grouping*: cstring
int_curr_symbol*: cstring
int_frac_digits*: char
int_n_cs_precedes*: char
int_n_sep_by_space*: char
int_n_sign_posn*: char
int_p_cs_precedes*: char
int_p_sep_by_space*: char
int_p_sign_posn*: char
mon_decimal_point*: cstring
mon_grouping*: cstring
mon_thousands_sep*: cstring
negative_sign*: cstring
n_cs_precedes*: char
n_sep_by_space*: char
n_sign_posn*: char
positive_sign*: cstring
p_cs_precedes*: char
p_sep_by_space*: char
p_sign_posn*: char
thousands_sep*: cstring
Mqd* {.importc: "mqd_t", header: "<mqueue.h>", final, pure.} = object
MqAttr* {.importc: "struct mq_attr",
header: "<mqueue.h>",
final, pure.} = object ## message queue attribute
mq_flags*: int ## Message queue flags.
mq_maxmsg*: int ## Maximum number of messages.
mq_msgsize*: int ## Maximum message size.
mq_curmsgs*: int ## Number of messages currently queued.
Passwd* {.importc: "struct passwd", header: "<pwd.h>",
final, pure.} = object ## struct passwd
pw_name*: cstring ## User's login name.
pw_uid*: Uid ## Numerical user ID.
pw_gid*: Gid ## Numerical group ID.
pw_dir*: cstring ## Initial working directory.
pw_shell*: cstring ## Program to use as shell.
Blkcnt* {.importc: "blkcnt_t", header: "<sys/types.h>".} = int
## used for file block counts
Blksize* {.importc: "blksize_t", header: "<sys/types.h>".} = int
## used for block sizes
Clock* {.importc: "clock_t", header: "<sys/types.h>".} = int
ClockId* {.importc: "clockid_t", header: "<sys/types.h>".} = int
Dev* {.importc: "dev_t", header: "<sys/types.h>".} = int
Fsblkcnt* {.importc: "fsblkcnt_t", header: "<sys/types.h>".} = int
Fsfilcnt* {.importc: "fsfilcnt_t", header: "<sys/types.h>".} = int
Gid* {.importc: "gid_t", header: "<sys/types.h>".} = int
Id* {.importc: "id_t", header: "<sys/types.h>".} = int
Ino* {.importc: "ino_t", header: "<sys/types.h>".} = int
Key* {.importc: "key_t", header: "<sys/types.h>".} = int
Mode* {.importc: "mode_t", header: "<sys/types.h>".} = cint
Nlink* {.importc: "nlink_t", header: "<sys/types.h>".} = int
Off* {.importc: "off_t", header: "<sys/types.h>".} = int64
Pid* {.importc: "pid_t", header: "<sys/types.h>".} = int
Pthread_attr* {.importc: "pthread_attr_t", header: "<sys/types.h>".} = int
Pthread_barrier* {.importc: "pthread_barrier_t",
header: "<sys/types.h>".} = int
Pthread_barrierattr* {.importc: "pthread_barrierattr_t",
header: "<sys/types.h>".} = int
Pthread_cond* {.importc: "pthread_cond_t", header: "<sys/types.h>".} = int
Pthread_condattr* {.importc: "pthread_condattr_t",
header: "<sys/types.h>".} = int
Pthread_key* {.importc: "pthread_key_t", header: "<sys/types.h>".} = int
Pthread_mutex* {.importc: "pthread_mutex_t", header: "<sys/types.h>".} = int
Pthread_mutexattr* {.importc: "pthread_mutexattr_t",
header: "<sys/types.h>".} = int
Pthread_once* {.importc: "pthread_once_t", header: "<sys/types.h>".} = int
Pthread_rwlock* {.importc: "pthread_rwlock_t",
header: "<sys/types.h>".} = int
Pthread_rwlockattr* {.importc: "pthread_rwlockattr_t",
header: "<sys/types.h>".} = int
Pthread_spinlock* {.importc: "pthread_spinlock_t",
header: "<sys/types.h>".} = int
Pthread* {.importc: "pthread_t", header: "<sys/types.h>".} = int
Suseconds* {.importc: "suseconds_t", header: "<sys/types.h>".} = int
#Ttime* {.importc: "time_t", header: "<sys/types.h>".} = int
Timer* {.importc: "timer_t", header: "<sys/types.h>".} = int
Trace_attr* {.importc: "trace_attr_t", header: "<sys/types.h>".} = int
Trace_event_id* {.importc: "trace_event_id_t",
header: "<sys/types.h>".} = int
Trace_event_set* {.importc: "trace_event_set_t",
header: "<sys/types.h>".} = int
Trace_id* {.importc: "trace_id_t", header: "<sys/types.h>".} = int
Uid* {.importc: "uid_t", header: "<sys/types.h>".} = int
Useconds* {.importc: "useconds_t", header: "<sys/types.h>".} = int
Utsname* {.importc: "struct utsname",
header: "<sys/utsname.h>",
final, pure.} = object ## struct utsname
sysname*, ## Name of this implementation of the operating system.
nodename*, ## Name of this node within the communications
## network to which this node is attached, if any.
release*, ## Current release level of this implementation.
version*, ## Current version level of this release.
machine*: array[0..255, char] ## Name of the hardware type on which the
## system is running.
Sem* {.importc: "sem_t", header: "<semaphore.h>", final, pure.} = object
Ipc_perm* {.importc: "struct ipc_perm",
header: "<sys/ipc.h>", final, pure.} = object ## struct ipc_perm
uid*: Uid ## Owner's user ID.
gid*: Gid ## Owner's group ID.
cuid*: Uid ## Creator's user ID.
cgid*: Gid ## Creator's group ID.
mode*: Mode ## Read/write permission.
Stat* {.importc: "struct stat",
header: "<sys/stat.h>", final, pure.} = object ## struct stat
st_dev*: Dev ## Device ID of device containing file.
st_ino*: Ino ## File serial number.
st_mode*: Mode ## Mode of file (see below).
st_nlink*: Nlink ## Number of hard links to the file.
st_uid*: Uid ## User ID of file.
st_gid*: Gid ## Group ID of file.
st_rdev*: Dev ## Device ID (if file is character or block special).
st_size*: Off ## For regular files, the file size in bytes.
## For symbolic links, the length in bytes of the
## pathname contained in the symbolic link.
## For a shared memory object, the length in bytes.
## For a typed memory object, the length in bytes.
## For other file types, the use of this field is
## unspecified.
when defined(macosx):
st_atime*: Time ## Time of last access.
st_mtime*: Time ## Time of last data modification.
st_ctime*: Time ## Time of last status change.
else:
st_atim*: Timespec ## Time of last access.
st_mtim*: Timespec ## Time of last data modification.
st_ctim*: Timespec ## Time of last status change.
st_blksize*: Blksize ## A file system-specific preferred I/O block size
## for this object. In some file system types, this
## may vary from file to file.
st_blocks*: Blkcnt ## Number of blocks allocated for this object.
Statvfs* {.importc: "struct statvfs", header: "<sys/statvfs.h>",
final, pure.} = object ## struct statvfs
f_bsize*: int ## File system block size.
f_frsize*: int ## Fundamental file system block size.
f_blocks*: Fsblkcnt ## Total number of blocks on file system
## in units of f_frsize.
f_bfree*: Fsblkcnt ## Total number of free blocks.
f_bavail*: Fsblkcnt ## Number of free blocks available to
## non-privileged process.
f_files*: Fsfilcnt ## Total number of file serial numbers.
f_ffree*: Fsfilcnt ## Total number of free file serial numbers.
f_favail*: Fsfilcnt ## Number of file serial numbers available to
## non-privileged process.
f_fsid*: int ## File system ID.
f_flag*: int ## Bit mask of f_flag values.
f_namemax*: int ## Maximum filename length.
Posix_typed_mem_info* {.importc: "struct posix_typed_mem_info",
header: "<sys/mman.h>", final, pure.} = object
posix_tmi_length*: int
Tm* {.importc: "struct tm", header: "<time.h>",
final, pure.} = object ## struct tm
tm_sec*: cint ## Seconds [0,60].
tm_min*: cint ## Minutes [0,59].
tm_hour*: cint ## Hour [0,23].
tm_mday*: cint ## Day of month [1,31].
tm_mon*: cint ## Month of year [0,11].
tm_year*: cint ## Years since 1900.
tm_wday*: cint ## Day of week [0,6] (Sunday =0).
tm_yday*: cint ## Day of year [0,365].
tm_isdst*: cint ## Daylight Savings flag.
Itimerspec* {.importc: "struct itimerspec", header: "<time.h>",
final, pure.} = object ## struct itimerspec
it_interval*: Timespec ## Timer period.
it_value*: Timespec ## Timer expiration.
Sig_atomic* {.importc: "sig_atomic_t", header: "<signal.h>".} = cint
## Possibly volatile-qualified integer type of an object that can be
## accessed as an atomic entity, even in the presence of asynchronous
## interrupts.
Sigset* {.importc: "sigset_t", header: "<signal.h>", final, pure.} = object
SigEvent* {.importc: "struct sigevent",
header: "<signal.h>", final, pure.} = object ## struct sigevent
sigev_notify*: cint ## Notification type.
sigev_signo*: cint ## Signal number.
sigev_value*: SigVal ## Signal value.
sigev_notify_function*: proc (x: SigVal) {.noconv.} ## Notification func.
sigev_notify_attributes*: ptr PthreadAttr ## Notification attributes.
SigVal* {.importc: "union sigval",
header: "<signal.h>", final, pure.} = object ## struct sigval
sival_ptr*: pointer ## pointer signal value;
## integer signal value not defined!
Sigaction* {.importc: "struct sigaction",
header: "<signal.h>", final, pure.} = object ## struct sigaction
sa_handler*: proc (x: cint) {.noconv.} ## Pointer to a signal-catching
## function or one of the macros
## SIG_IGN or SIG_DFL.
sa_mask*: Sigset ## Set of signals to be blocked during execution of
## the signal handling function.
sa_flags*: cint ## Special flags.
sa_sigaction*: proc (x: cint, y: ptr SigInfo, z: pointer) {.noconv.}
Stack* {.importc: "stack_t",
header: "<signal.h>", final, pure.} = object ## stack_t
ss_sp*: pointer ## Stack base or pointer.
ss_size*: int ## Stack size.
ss_flags*: cint ## Flags.
SigStack* {.importc: "struct sigstack",
header: "<signal.h>", final, pure.} = object ## struct sigstack
ss_onstack*: cint ## Non-zero when signal stack is in use.
ss_sp*: pointer ## Signal stack pointer.
SigInfo* {.importc: "siginfo_t",
header: "<signal.h>", final, pure.} = object ## siginfo_t
si_signo*: cint ## Signal number.
si_code*: cint ## Signal code.
si_errno*: cint ## If non-zero, an errno value associated with
## this signal, as defined in <errno.h>.
si_pid*: Pid ## Sending process ID.
si_uid*: Uid ## Real user ID of sending process.
si_addr*: pointer ## Address of faulting instruction.
si_status*: cint ## Exit value or signal.
si_band*: int ## Band event for SIGPOLL.
si_value*: SigVal ## Signal value.
Nl_item* {.importc: "nl_item", header: "<nl_types.h>".} = cint
Nl_catd* {.importc: "nl_catd", header: "<nl_types.h>".} = cint
Sched_param* {.importc: "struct sched_param",
header: "<sched.h>",
final, pure.} = object ## struct sched_param
sched_priority*: cint
sched_ss_low_priority*: cint ## Low scheduling priority for
## sporadic server.
sched_ss_repl_period*: Timespec ## Replenishment period for
## sporadic server.
sched_ss_init_budget*: Timespec ## Initial budget for sporadic server.
sched_ss_max_repl*: cint ## Maximum pending replenishments for
## sporadic server.
Timeval* {.importc: "struct timeval", header: "<sys/select.h>",
final, pure.} = object ## struct timeval
tv_sec*: int ## Seconds.
tv_usec*: int ## Microseconds.
TFdSet* {.importc: "fd_set", header: "<sys/select.h>",
final, pure.} = object
Mcontext* {.importc: "mcontext_t", header: "<ucontext.h>",
final, pure.} = object
Ucontext* {.importc: "ucontext_t", header: "<ucontext.h>",
final, pure.} = object ## ucontext_t
uc_link*: ptr Ucontext ## Pointer to the context that is resumed
## when this context returns.
uc_sigmask*: Sigset ## The set of signals that are blocked when this
## context is active.
uc_stack*: Stack ## The stack used by this context.
uc_mcontext*: Mcontext ## A machine-specific representation of the saved
## context.
{.deprecated: [TOff: Off, TPid: Pid, TGid: Gid, TMode: Mode, TDev: Dev,
TNlink: Nlink, TStack: Stack, TGroup: Group, TMqd: Mqd,
TPasswd: Passwd, TClock: Clock, TClockId: ClockId, TKey: Key,
TSem: Sem, Tpthread_attr: PthreadAttr, Ttimespec: Timespec,
Tdirent: Dirent, TFTW: FTW, TGlob: Glob,
# Tflock: Flock, # Naming conflict if we drop the `T`
Ticonv: Iconv, Tlconv: Lconv, TMqAttr: MqAttr, Tblkcnt: Blkcnt,
Tblksize: Blksize, Tfsblkcnt: Fsblkcnt, Tfsfilcnt: Fsfilcnt,
Tid: Id, Tino: Ino, Tpthread_barrier: Pthread_barrier,
Tpthread_barrierattr: Pthread_barrierattr, Tpthread_cond: Pthread_cond,
TPthread_condattr: Pthread_condattr, Tpthread_key: Pthread_key,
Tpthread_mutex: Pthread_mutex, Tpthread_mutexattr: Pthread_mutexattr,
Tpthread_once: Pthread_once, Tpthread_rwlock: Pthread_rwlock,
Tpthread_rwlockattr: Pthread_rwlockattr, Tpthread_spinlock: Pthread_spinlock,
Tpthread: Pthread, Tsuseconds: Suseconds, Ttimer: Timer,
Ttrace_attr: Trace_attr, Ttrace_event_id: Trace_event_id,
Ttrace_event_set: Trace_event_set, Ttrace_id: Trace_id,
Tuid: Uid, Tuseconds: Useconds, Tutsname: Utsname, Tipc_perm: Ipc_perm,
TStat: Stat, TStatvfs: Statvfs, Tposix_typed_mem_info: Posix_typed_mem_info,
Ttm: Tm, titimerspec: Itimerspec, Tsig_atomic: Sig_atomic, Tsigset: Sigset,
TsigEvent: SigEvent, TsigVal: SigVal, TSigaction: Sigaction,
TSigStack: SigStack, TsigInfo: SigInfo, Tnl_item: Nl_item,
Tnl_catd: Nl_catd, Tsched_param: Sched_param,
# TFdSet: FdSet, # Naming conflict if we drop the `T`
Tmcontext: Mcontext, Tucontext: Ucontext].}
when hasAioH:
type
Taiocb* {.importc: "struct aiocb", header: "<aio.h>",
final, pure.} = object ## struct aiocb
aio_fildes*: cint ## File descriptor.
aio_offset*: Off ## File offset.
aio_buf*: pointer ## Location of buffer.
aio_nbytes*: int ## Length of transfer.
aio_reqprio*: cint ## Request priority offset.
aio_sigevent*: SigEvent ## Signal number and value.
aio_lio_opcode: cint ## Operation to be performed.
when hasSpawnH:
type
Tposix_spawnattr* {.importc: "posix_spawnattr_t",
header: "<spawn.h>", final, pure.} = object
Tposix_spawn_file_actions* {.importc: "posix_spawn_file_actions_t",
header: "<spawn.h>", final, pure.} = object
when defined(linux):
# from sys/un.h
const Sockaddr_un_path_length* = 108
else:
# according to http://pubs.opengroup.org/onlinepubs/009604499/basedefs/sys/un.h.html
# this is >=92
const Sockaddr_un_path_length* = 92
type
Socklen* {.importc: "socklen_t", header: "<sys/socket.h>".} = cuint
TSa_Family* {.importc: "sa_family_t", header: "<sys/socket.h>".} = cint
SockAddr* {.importc: "struct sockaddr", header: "<sys/socket.h>",
pure, final.} = object ## struct sockaddr
sa_family*: TSa_Family ## Address family.
sa_data*: array[0..255, char] ## Socket address (variable-length data).
Sockaddr_un* {.importc: "struct sockaddr_un", header: "<sys/un.h>",
pure, final.} = object ## struct sockaddr_un
sun_family*: TSa_Family ## Address family.
sun_path*: array[0..Sockaddr_un_path_length-1, char] ## Socket path
Sockaddr_storage* {.importc: "struct sockaddr_storage",
header: "<sys/socket.h>",
pure, final.} = object ## struct sockaddr_storage
ss_family*: TSa_Family ## Address family.
Tif_nameindex* {.importc: "struct if_nameindex", final,
pure, header: "<net/if.h>".} = object ## struct if_nameindex
if_index*: cint ## Numeric index of the interface.
if_name*: cstring ## Null-terminated name of the interface.
IOVec* {.importc: "struct iovec", pure, final,
header: "<sys/uio.h>".} = object ## struct iovec
iov_base*: pointer ## Base address of a memory region for input or output.
iov_len*: int ## The size of the memory pointed to by iov_base.
Tmsghdr* {.importc: "struct msghdr", pure, final,
header: "<sys/socket.h>".} = object ## struct msghdr
msg_name*: pointer ## Optional address.
msg_namelen*: Socklen ## Size of address.
msg_iov*: ptr IOVec ## Scatter/gather array.
msg_iovlen*: cint ## Members in msg_iov.
msg_control*: pointer ## Ancillary data; see below.
msg_controllen*: Socklen ## Ancillary data buffer len.
msg_flags*: cint ## Flags on received message.
Tcmsghdr* {.importc: "struct cmsghdr", pure, final,
header: "<sys/socket.h>".} = object ## struct cmsghdr
cmsg_len*: Socklen ## Data byte count, including the cmsghdr.
cmsg_level*: cint ## Originating protocol.
cmsg_type*: cint ## Protocol-specific type.
TLinger* {.importc: "struct linger", pure, final,
header: "<sys/socket.h>".} = object ## struct linger
l_onoff*: cint ## Indicates whether linger option is enabled.
l_linger*: cint ## Linger time, in seconds.
InPort* = uint16
InAddrScalar* = uint32
InAddrT* {.importc: "in_addr_t", pure, final,
header: "<netinet/in.h>".} = uint32
InAddr* {.importc: "struct in_addr", pure, final,
header: "<netinet/in.h>".} = object ## struct in_addr
s_addr*: InAddrScalar
Sockaddr_in* {.importc: "struct sockaddr_in", pure, final,
header: "<netinet/in.h>".} = object ## struct sockaddr_in
sin_family*: TSa_Family ## AF_INET.
sin_port*: InPort ## Port number.
sin_addr*: InAddr ## IP address.
In6Addr* {.importc: "struct in6_addr", pure, final,
header: "<netinet/in.h>".} = object ## struct in6_addr
s6_addr*: array[0..15, char]
Sockaddr_in6* {.importc: "struct sockaddr_in6", pure, final,
header: "<netinet/in.h>".} = object ## struct sockaddr_in6
sin6_family*: TSa_Family ## AF_INET6.
sin6_port*: InPort ## Port number.
sin6_flowinfo*: int32 ## IPv6 traffic class and flow information.
sin6_addr*: In6Addr ## IPv6 address.
sin6_scope_id*: int32 ## Set of interfaces for a scope.
Tipv6_mreq* {.importc: "struct ipv6_mreq", pure, final,
header: "<netinet/in.h>".} = object ## struct ipv6_mreq
ipv6mr_multiaddr*: In6Addr ## IPv6 multicast address.
ipv6mr_interface*: cint ## Interface index.
Hostent* {.importc: "struct hostent", pure, final,
header: "<netdb.h>".} = object ## struct hostent
h_name*: cstring ## Official name of the host.
h_aliases*: cstringArray ## A pointer to an array of pointers to
## alternative host names, terminated by a
## null pointer.
h_addrtype*: cint ## Address type.
h_length*: cint ## The length, in bytes, of the address.
h_addr_list*: cstringArray ## A pointer to an array of pointers to network
## addresses (in network byte order) for the
## host, terminated by a null pointer.
Tnetent* {.importc: "struct netent", pure, final,
header: "<netdb.h>".} = object ## struct netent
n_name*: cstring ## Official, fully-qualified (including the
## domain) name of the host.
n_aliases*: cstringArray ## A pointer to an array of pointers to
## alternative network names, terminated by a
## null pointer.
n_addrtype*: cint ## The address type of the network.
n_net*: int32 ## The network number, in host byte order.
Protoent* {.importc: "struct protoent", pure, final,
header: "<netdb.h>".} = object ## struct protoent
p_name*: cstring ## Official name of the protocol.
p_aliases*: cstringArray ## A pointer to an array of pointers to
## alternative protocol names, terminated by
## a null pointer.
p_proto*: cint ## The protocol number.
Servent* {.importc: "struct servent", pure, final,
header: "<netdb.h>".} = object ## struct servent
s_name*: cstring ## Official name of the service.
s_aliases*: cstringArray ## A pointer to an array of pointers to
## alternative service names, terminated by
## a null pointer.
s_port*: cint ## The port number at which the service
## resides, in network byte order.
s_proto*: cstring ## The name of the protocol to use when
## contacting the service.
AddrInfo* {.importc: "struct addrinfo", pure, final,
header: "<netdb.h>".} = object ## struct addrinfo
ai_flags*: cint ## Input flags.
ai_family*: cint ## Address family of socket.
ai_socktype*: cint ## Socket type.
ai_protocol*: cint ## Protocol of socket.
ai_addrlen*: Socklen ## Length of socket address.
ai_addr*: ptr SockAddr ## Socket address of socket.
ai_canonname*: cstring ## Canonical name of service location.
ai_next*: ptr AddrInfo ## Pointer to next in list.
TPollfd* {.importc: "struct pollfd", pure, final,
header: "<poll.h>".} = object ## struct pollfd
fd*: cint ## The following descriptor being polled.
events*: cshort ## The input event flags (see below).
revents*: cshort ## The output event flags (see below).
Tnfds* {.importc: "nfds_t", header: "<poll.h>".} = cint
{.deprecated: [TSockaddr_in: Sockaddr_in, TAddrinfo: AddrInfo,
TSockAddr: SockAddr, TSockLen: SockLen, TTimeval: Timeval,
Tsockaddr_storage: Sockaddr_storage, Tsockaddr_in6: Sockaddr_in6,
Thostent: Hostent, TServent: Servent,
TInAddr: InAddr, TIOVec: IOVec, TInPort: InPort, TInAddrT: InAddrT,
TIn6Addr: In6Addr, TInAddrScalar: InAddrScalar, TProtoent: Protoent].}
var
errno* {.importc, header: "<errno.h>".}: cint ## error variable
h_errno* {.importc, header: "<netdb.h>".}: cint
daylight* {.importc, header: "<time.h>".}: cint
timezone* {.importc, header: "<time.h>".}: int
# Regenerate using detect.nim!
include posix_other_consts
when defined(linux):
var
MAP_POPULATE* {.importc, header: "<sys/mman.h>".}: cint
## Populate (prefault) page tables for a mapping.
else:
var
MAP_POPULATE*: cint = 0
when defined(linux) or defined(nimdoc):
when defined(alpha) or defined(mips) or defined(parisc) or
defined(sparc) or defined(nimdoc):
const SO_REUSEPORT* = cint(0x0200)
## Multiple binding: load balancing on incoming TCP connections
## or UDP packets. (Requires Linux kernel > 3.9)
else:
const SO_REUSEPORT* = cint(15)
else:
var SO_REUSEPORT* {.importc, header: "<sys/socket.h>".}: cint
when defined(macosx):
# We can't use the NOSIGNAL flag in the ``send`` function, it has no effect
# Instead we should use SO_NOSIGPIPE in setsockopt
const
MSG_NOSIGNAL* = 0'i32
var
SO_NOSIGPIPE* {.importc, header: "<sys/socket.h>".}: cint
elif defined(solaris):
# Solaris dont have MSG_NOSIGNAL
const
MSG_NOSIGNAL* = 0'i32
else:
var
MSG_NOSIGNAL* {.importc, header: "<sys/socket.h>".}: cint
## No SIGPIPE generated when an attempt to send is made on a stream-oriented socket that is no longer connected.
when hasSpawnH:
when defined(linux):
# better be safe than sorry; Linux has this flag, macosx doesn't, don't
# know about the other OSes
# Non-GNU systems like TCC and musl-libc don't define __USE_GNU, so we
# can't get the magic number from spawn.h
const POSIX_SPAWN_USEVFORK* = cint(0x40)
else:
# macosx lacks this, so we define the constant to be 0 to not affect
# OR'ing of flags:
const POSIX_SPAWN_USEVFORK* = cint(0)

View File

@@ -0,0 +1,723 @@
# Generated by detect.nim
# <aio.h>
var AIO_ALLDONE* {.importc: "AIO_ALLDONE", header: "<aio.h>".}: cint
var AIO_CANCELED* {.importc: "AIO_CANCELED", header: "<aio.h>".}: cint
var AIO_NOTCANCELED* {.importc: "AIO_NOTCANCELED", header: "<aio.h>".}: cint
var LIO_NOP* {.importc: "LIO_NOP", header: "<aio.h>".}: cint
var LIO_NOWAIT* {.importc: "LIO_NOWAIT", header: "<aio.h>".}: cint
var LIO_READ* {.importc: "LIO_READ", header: "<aio.h>".}: cint
var LIO_WAIT* {.importc: "LIO_WAIT", header: "<aio.h>".}: cint
var LIO_WRITE* {.importc: "LIO_WRITE", header: "<aio.h>".}: cint
# <dlfcn.h>
var RTLD_LAZY* {.importc: "RTLD_LAZY", header: "<dlfcn.h>".}: cint
var RTLD_NOW* {.importc: "RTLD_NOW", header: "<dlfcn.h>".}: cint
var RTLD_GLOBAL* {.importc: "RTLD_GLOBAL", header: "<dlfcn.h>".}: cint
var RTLD_LOCAL* {.importc: "RTLD_LOCAL", header: "<dlfcn.h>".}: cint
# <errno.h>
var E2BIG* {.importc: "E2BIG", header: "<errno.h>".}: cint
var EACCES* {.importc: "EACCES", header: "<errno.h>".}: cint
var EADDRINUSE* {.importc: "EADDRINUSE", header: "<errno.h>".}: cint
var EADDRNOTAVAIL* {.importc: "EADDRNOTAVAIL", header: "<errno.h>".}: cint
var EAFNOSUPPORT* {.importc: "EAFNOSUPPORT", header: "<errno.h>".}: cint
var EAGAIN* {.importc: "EAGAIN", header: "<errno.h>".}: cint
var EALREADY* {.importc: "EALREADY", header: "<errno.h>".}: cint
var EBADF* {.importc: "EBADF", header: "<errno.h>".}: cint
var EBADMSG* {.importc: "EBADMSG", header: "<errno.h>".}: cint
var EBUSY* {.importc: "EBUSY", header: "<errno.h>".}: cint
var ECANCELED* {.importc: "ECANCELED", header: "<errno.h>".}: cint
var ECHILD* {.importc: "ECHILD", header: "<errno.h>".}: cint
var ECONNABORTED* {.importc: "ECONNABORTED", header: "<errno.h>".}: cint
var ECONNREFUSED* {.importc: "ECONNREFUSED", header: "<errno.h>".}: cint
var ECONNRESET* {.importc: "ECONNRESET", header: "<errno.h>".}: cint
var EDEADLK* {.importc: "EDEADLK", header: "<errno.h>".}: cint
var EDESTADDRREQ* {.importc: "EDESTADDRREQ", header: "<errno.h>".}: cint
var EDOM* {.importc: "EDOM", header: "<errno.h>".}: cint
var EDQUOT* {.importc: "EDQUOT", header: "<errno.h>".}: cint
var EEXIST* {.importc: "EEXIST", header: "<errno.h>".}: cint
var EFAULT* {.importc: "EFAULT", header: "<errno.h>".}: cint
var EFBIG* {.importc: "EFBIG", header: "<errno.h>".}: cint
var EHOSTUNREACH* {.importc: "EHOSTUNREACH", header: "<errno.h>".}: cint
var EIDRM* {.importc: "EIDRM", header: "<errno.h>".}: cint
var EILSEQ* {.importc: "EILSEQ", header: "<errno.h>".}: cint
var EINPROGRESS* {.importc: "EINPROGRESS", header: "<errno.h>".}: cint
var EINTR* {.importc: "EINTR", header: "<errno.h>".}: cint
var EINVAL* {.importc: "EINVAL", header: "<errno.h>".}: cint
var EIO* {.importc: "EIO", header: "<errno.h>".}: cint
var EISCONN* {.importc: "EISCONN", header: "<errno.h>".}: cint
var EISDIR* {.importc: "EISDIR", header: "<errno.h>".}: cint
var ELOOP* {.importc: "ELOOP", header: "<errno.h>".}: cint
var EMFILE* {.importc: "EMFILE", header: "<errno.h>".}: cint
var EMLINK* {.importc: "EMLINK", header: "<errno.h>".}: cint
var EMSGSIZE* {.importc: "EMSGSIZE", header: "<errno.h>".}: cint
var EMULTIHOP* {.importc: "EMULTIHOP", header: "<errno.h>".}: cint
var ENAMETOOLONG* {.importc: "ENAMETOOLONG", header: "<errno.h>".}: cint
var ENETDOWN* {.importc: "ENETDOWN", header: "<errno.h>".}: cint
var ENETRESET* {.importc: "ENETRESET", header: "<errno.h>".}: cint
var ENETUNREACH* {.importc: "ENETUNREACH", header: "<errno.h>".}: cint
var ENFILE* {.importc: "ENFILE", header: "<errno.h>".}: cint
var ENOBUFS* {.importc: "ENOBUFS", header: "<errno.h>".}: cint
var ENODATA* {.importc: "ENODATA", header: "<errno.h>".}: cint
var ENODEV* {.importc: "ENODEV", header: "<errno.h>".}: cint
var ENOENT* {.importc: "ENOENT", header: "<errno.h>".}: cint
var ENOEXEC* {.importc: "ENOEXEC", header: "<errno.h>".}: cint
var ENOLCK* {.importc: "ENOLCK", header: "<errno.h>".}: cint
var ENOLINK* {.importc: "ENOLINK", header: "<errno.h>".}: cint
var ENOMEM* {.importc: "ENOMEM", header: "<errno.h>".}: cint
var ENOMSG* {.importc: "ENOMSG", header: "<errno.h>".}: cint
var ENOPROTOOPT* {.importc: "ENOPROTOOPT", header: "<errno.h>".}: cint
var ENOSPC* {.importc: "ENOSPC", header: "<errno.h>".}: cint
var ENOSR* {.importc: "ENOSR", header: "<errno.h>".}: cint
var ENOSTR* {.importc: "ENOSTR", header: "<errno.h>".}: cint
var ENOSYS* {.importc: "ENOSYS", header: "<errno.h>".}: cint
var ENOTCONN* {.importc: "ENOTCONN", header: "<errno.h>".}: cint
var ENOTDIR* {.importc: "ENOTDIR", header: "<errno.h>".}: cint
var ENOTEMPTY* {.importc: "ENOTEMPTY", header: "<errno.h>".}: cint
var ENOTSOCK* {.importc: "ENOTSOCK", header: "<errno.h>".}: cint
var ENOTSUP* {.importc: "ENOTSUP", header: "<errno.h>".}: cint
var ENOTTY* {.importc: "ENOTTY", header: "<errno.h>".}: cint
var ENXIO* {.importc: "ENXIO", header: "<errno.h>".}: cint
var EOPNOTSUPP* {.importc: "EOPNOTSUPP", header: "<errno.h>".}: cint
var EOVERFLOW* {.importc: "EOVERFLOW", header: "<errno.h>".}: cint
var EPERM* {.importc: "EPERM", header: "<errno.h>".}: cint
var EPIPE* {.importc: "EPIPE", header: "<errno.h>".}: cint
var EPROTO* {.importc: "EPROTO", header: "<errno.h>".}: cint
var EPROTONOSUPPORT* {.importc: "EPROTONOSUPPORT", header: "<errno.h>".}: cint
var EPROTOTYPE* {.importc: "EPROTOTYPE", header: "<errno.h>".}: cint
var ERANGE* {.importc: "ERANGE", header: "<errno.h>".}: cint
var EROFS* {.importc: "EROFS", header: "<errno.h>".}: cint
var ESPIPE* {.importc: "ESPIPE", header: "<errno.h>".}: cint
var ESRCH* {.importc: "ESRCH", header: "<errno.h>".}: cint
var ESTALE* {.importc: "ESTALE", header: "<errno.h>".}: cint
var ETIME* {.importc: "ETIME", header: "<errno.h>".}: cint
var ETIMEDOUT* {.importc: "ETIMEDOUT", header: "<errno.h>".}: cint
var ETXTBSY* {.importc: "ETXTBSY", header: "<errno.h>".}: cint
var EWOULDBLOCK* {.importc: "EWOULDBLOCK", header: "<errno.h>".}: cint
var EXDEV* {.importc: "EXDEV", header: "<errno.h>".}: cint
# <fcntl.h>
var F_DUPFD* {.importc: "F_DUPFD", header: "<fcntl.h>".}: cint
var F_GETFD* {.importc: "F_GETFD", header: "<fcntl.h>".}: cint
var F_SETFD* {.importc: "F_SETFD", header: "<fcntl.h>".}: cint
var F_GETFL* {.importc: "F_GETFL", header: "<fcntl.h>".}: cint
var F_SETFL* {.importc: "F_SETFL", header: "<fcntl.h>".}: cint
var F_GETLK* {.importc: "F_GETLK", header: "<fcntl.h>".}: cint
var F_SETLK* {.importc: "F_SETLK", header: "<fcntl.h>".}: cint
var F_SETLKW* {.importc: "F_SETLKW", header: "<fcntl.h>".}: cint
var F_GETOWN* {.importc: "F_GETOWN", header: "<fcntl.h>".}: cint
var F_SETOWN* {.importc: "F_SETOWN", header: "<fcntl.h>".}: cint
var FD_CLOEXEC* {.importc: "FD_CLOEXEC", header: "<fcntl.h>".}: cint
var F_RDLCK* {.importc: "F_RDLCK", header: "<fcntl.h>".}: cint
var F_UNLCK* {.importc: "F_UNLCK", header: "<fcntl.h>".}: cint
var F_WRLCK* {.importc: "F_WRLCK", header: "<fcntl.h>".}: cint
var O_CREAT* {.importc: "O_CREAT", header: "<fcntl.h>".}: cint
var O_EXCL* {.importc: "O_EXCL", header: "<fcntl.h>".}: cint
var O_NOCTTY* {.importc: "O_NOCTTY", header: "<fcntl.h>".}: cint
var O_TRUNC* {.importc: "O_TRUNC", header: "<fcntl.h>".}: cint
var O_APPEND* {.importc: "O_APPEND", header: "<fcntl.h>".}: cint
var O_DSYNC* {.importc: "O_DSYNC", header: "<fcntl.h>".}: cint
var O_NONBLOCK* {.importc: "O_NONBLOCK", header: "<fcntl.h>".}: cint
var O_RSYNC* {.importc: "O_RSYNC", header: "<fcntl.h>".}: cint
var O_SYNC* {.importc: "O_SYNC", header: "<fcntl.h>".}: cint
var O_ACCMODE* {.importc: "O_ACCMODE", header: "<fcntl.h>".}: cint
var O_RDONLY* {.importc: "O_RDONLY", header: "<fcntl.h>".}: cint
var O_RDWR* {.importc: "O_RDWR", header: "<fcntl.h>".}: cint
var O_WRONLY* {.importc: "O_WRONLY", header: "<fcntl.h>".}: cint
var POSIX_FADV_NORMAL* {.importc: "POSIX_FADV_NORMAL", header: "<fcntl.h>".}: cint
var POSIX_FADV_SEQUENTIAL* {.importc: "POSIX_FADV_SEQUENTIAL", header: "<fcntl.h>".}: cint
var POSIX_FADV_RANDOM* {.importc: "POSIX_FADV_RANDOM", header: "<fcntl.h>".}: cint
var POSIX_FADV_WILLNEED* {.importc: "POSIX_FADV_WILLNEED", header: "<fcntl.h>".}: cint
var POSIX_FADV_DONTNEED* {.importc: "POSIX_FADV_DONTNEED", header: "<fcntl.h>".}: cint
var POSIX_FADV_NOREUSE* {.importc: "POSIX_FADV_NOREUSE", header: "<fcntl.h>".}: cint
# <fenv.h>
var FE_DIVBYZERO* {.importc: "FE_DIVBYZERO", header: "<fenv.h>".}: cint
var FE_INEXACT* {.importc: "FE_INEXACT", header: "<fenv.h>".}: cint
var FE_INVALID* {.importc: "FE_INVALID", header: "<fenv.h>".}: cint
var FE_OVERFLOW* {.importc: "FE_OVERFLOW", header: "<fenv.h>".}: cint
var FE_UNDERFLOW* {.importc: "FE_UNDERFLOW", header: "<fenv.h>".}: cint
var FE_ALL_EXCEPT* {.importc: "FE_ALL_EXCEPT", header: "<fenv.h>".}: cint
var FE_DOWNWARD* {.importc: "FE_DOWNWARD", header: "<fenv.h>".}: cint
var FE_TONEAREST* {.importc: "FE_TONEAREST", header: "<fenv.h>".}: cint
var FE_TOWARDZERO* {.importc: "FE_TOWARDZERO", header: "<fenv.h>".}: cint
var FE_UPWARD* {.importc: "FE_UPWARD", header: "<fenv.h>".}: cint
var FE_DFL_ENV* {.importc: "FE_DFL_ENV", header: "<fenv.h>".}: cint
# <fmtmsg.h>
var MM_HARD* {.importc: "MM_HARD", header: "<fmtmsg.h>".}: cint
var MM_SOFT* {.importc: "MM_SOFT", header: "<fmtmsg.h>".}: cint
var MM_FIRM* {.importc: "MM_FIRM", header: "<fmtmsg.h>".}: cint
var MM_APPL* {.importc: "MM_APPL", header: "<fmtmsg.h>".}: cint
var MM_UTIL* {.importc: "MM_UTIL", header: "<fmtmsg.h>".}: cint
var MM_OPSYS* {.importc: "MM_OPSYS", header: "<fmtmsg.h>".}: cint
var MM_RECOVER* {.importc: "MM_RECOVER", header: "<fmtmsg.h>".}: cint
var MM_NRECOV* {.importc: "MM_NRECOV", header: "<fmtmsg.h>".}: cint
var MM_HALT* {.importc: "MM_HALT", header: "<fmtmsg.h>".}: cint
var MM_ERROR* {.importc: "MM_ERROR", header: "<fmtmsg.h>".}: cint
var MM_WARNING* {.importc: "MM_WARNING", header: "<fmtmsg.h>".}: cint
var MM_INFO* {.importc: "MM_INFO", header: "<fmtmsg.h>".}: cint
var MM_NOSEV* {.importc: "MM_NOSEV", header: "<fmtmsg.h>".}: cint
var MM_PRINT* {.importc: "MM_PRINT", header: "<fmtmsg.h>".}: cint
var MM_CONSOLE* {.importc: "MM_CONSOLE", header: "<fmtmsg.h>".}: cint
var MM_OK* {.importc: "MM_OK", header: "<fmtmsg.h>".}: cint
var MM_NOTOK* {.importc: "MM_NOTOK", header: "<fmtmsg.h>".}: cint
var MM_NOMSG* {.importc: "MM_NOMSG", header: "<fmtmsg.h>".}: cint
var MM_NOCON* {.importc: "MM_NOCON", header: "<fmtmsg.h>".}: cint
# <fnmatch.h>
var FNM_NOMATCH* {.importc: "FNM_NOMATCH", header: "<fnmatch.h>".}: cint
var FNM_PATHNAME* {.importc: "FNM_PATHNAME", header: "<fnmatch.h>".}: cint
var FNM_PERIOD* {.importc: "FNM_PERIOD", header: "<fnmatch.h>".}: cint
var FNM_NOESCAPE* {.importc: "FNM_NOESCAPE", header: "<fnmatch.h>".}: cint
var FNM_NOSYS* {.importc: "FNM_NOSYS", header: "<fnmatch.h>".}: cint
# <ftw.h>
var FTW_F* {.importc: "FTW_F", header: "<ftw.h>".}: cint
var FTW_D* {.importc: "FTW_D", header: "<ftw.h>".}: cint
var FTW_DNR* {.importc: "FTW_DNR", header: "<ftw.h>".}: cint
var FTW_DP* {.importc: "FTW_DP", header: "<ftw.h>".}: cint
var FTW_NS* {.importc: "FTW_NS", header: "<ftw.h>".}: cint
var FTW_SL* {.importc: "FTW_SL", header: "<ftw.h>".}: cint
var FTW_SLN* {.importc: "FTW_SLN", header: "<ftw.h>".}: cint
var FTW_PHYS* {.importc: "FTW_PHYS", header: "<ftw.h>".}: cint
var FTW_MOUNT* {.importc: "FTW_MOUNT", header: "<ftw.h>".}: cint
var FTW_DEPTH* {.importc: "FTW_DEPTH", header: "<ftw.h>".}: cint
var FTW_CHDIR* {.importc: "FTW_CHDIR", header: "<ftw.h>".}: cint
# <glob.h>
var GLOB_APPEND* {.importc: "GLOB_APPEND", header: "<glob.h>".}: cint
var GLOB_DOOFFS* {.importc: "GLOB_DOOFFS", header: "<glob.h>".}: cint
var GLOB_ERR* {.importc: "GLOB_ERR", header: "<glob.h>".}: cint
var GLOB_MARK* {.importc: "GLOB_MARK", header: "<glob.h>".}: cint
var GLOB_NOCHECK* {.importc: "GLOB_NOCHECK", header: "<glob.h>".}: cint
var GLOB_NOESCAPE* {.importc: "GLOB_NOESCAPE", header: "<glob.h>".}: cint
var GLOB_NOSORT* {.importc: "GLOB_NOSORT", header: "<glob.h>".}: cint
var GLOB_ABORTED* {.importc: "GLOB_ABORTED", header: "<glob.h>".}: cint
var GLOB_NOMATCH* {.importc: "GLOB_NOMATCH", header: "<glob.h>".}: cint
var GLOB_NOSPACE* {.importc: "GLOB_NOSPACE", header: "<glob.h>".}: cint
var GLOB_NOSYS* {.importc: "GLOB_NOSYS", header: "<glob.h>".}: cint
# <langinfo.h>
var CODESET* {.importc: "CODESET", header: "<langinfo.h>".}: cint
var D_T_FMT* {.importc: "D_T_FMT", header: "<langinfo.h>".}: cint
var D_FMT* {.importc: "D_FMT", header: "<langinfo.h>".}: cint
var T_FMT* {.importc: "T_FMT", header: "<langinfo.h>".}: cint
var T_FMT_AMPM* {.importc: "T_FMT_AMPM", header: "<langinfo.h>".}: cint
var AM_STR* {.importc: "AM_STR", header: "<langinfo.h>".}: cint
var PM_STR* {.importc: "PM_STR", header: "<langinfo.h>".}: cint
var DAY_1* {.importc: "DAY_1", header: "<langinfo.h>".}: cint
var DAY_2* {.importc: "DAY_2", header: "<langinfo.h>".}: cint
var DAY_3* {.importc: "DAY_3", header: "<langinfo.h>".}: cint
var DAY_4* {.importc: "DAY_4", header: "<langinfo.h>".}: cint
var DAY_5* {.importc: "DAY_5", header: "<langinfo.h>".}: cint
var DAY_6* {.importc: "DAY_6", header: "<langinfo.h>".}: cint
var DAY_7* {.importc: "DAY_7", header: "<langinfo.h>".}: cint
var ABDAY_1* {.importc: "ABDAY_1", header: "<langinfo.h>".}: cint
var ABDAY_2* {.importc: "ABDAY_2", header: "<langinfo.h>".}: cint
var ABDAY_3* {.importc: "ABDAY_3", header: "<langinfo.h>".}: cint
var ABDAY_4* {.importc: "ABDAY_4", header: "<langinfo.h>".}: cint
var ABDAY_5* {.importc: "ABDAY_5", header: "<langinfo.h>".}: cint
var ABDAY_6* {.importc: "ABDAY_6", header: "<langinfo.h>".}: cint
var ABDAY_7* {.importc: "ABDAY_7", header: "<langinfo.h>".}: cint
var MON_1* {.importc: "MON_1", header: "<langinfo.h>".}: cint
var MON_2* {.importc: "MON_2", header: "<langinfo.h>".}: cint
var MON_3* {.importc: "MON_3", header: "<langinfo.h>".}: cint
var MON_4* {.importc: "MON_4", header: "<langinfo.h>".}: cint
var MON_5* {.importc: "MON_5", header: "<langinfo.h>".}: cint
var MON_6* {.importc: "MON_6", header: "<langinfo.h>".}: cint
var MON_7* {.importc: "MON_7", header: "<langinfo.h>".}: cint
var MON_8* {.importc: "MON_8", header: "<langinfo.h>".}: cint
var MON_9* {.importc: "MON_9", header: "<langinfo.h>".}: cint
var MON_10* {.importc: "MON_10", header: "<langinfo.h>".}: cint
var MON_11* {.importc: "MON_11", header: "<langinfo.h>".}: cint
var MON_12* {.importc: "MON_12", header: "<langinfo.h>".}: cint
var ABMON_1* {.importc: "ABMON_1", header: "<langinfo.h>".}: cint
var ABMON_2* {.importc: "ABMON_2", header: "<langinfo.h>".}: cint
var ABMON_3* {.importc: "ABMON_3", header: "<langinfo.h>".}: cint
var ABMON_4* {.importc: "ABMON_4", header: "<langinfo.h>".}: cint
var ABMON_5* {.importc: "ABMON_5", header: "<langinfo.h>".}: cint
var ABMON_6* {.importc: "ABMON_6", header: "<langinfo.h>".}: cint
var ABMON_7* {.importc: "ABMON_7", header: "<langinfo.h>".}: cint
var ABMON_8* {.importc: "ABMON_8", header: "<langinfo.h>".}: cint
var ABMON_9* {.importc: "ABMON_9", header: "<langinfo.h>".}: cint
var ABMON_10* {.importc: "ABMON_10", header: "<langinfo.h>".}: cint
var ABMON_11* {.importc: "ABMON_11", header: "<langinfo.h>".}: cint
var ABMON_12* {.importc: "ABMON_12", header: "<langinfo.h>".}: cint
var ERA* {.importc: "ERA", header: "<langinfo.h>".}: cint
var ERA_D_FMT* {.importc: "ERA_D_FMT", header: "<langinfo.h>".}: cint
var ERA_D_T_FMT* {.importc: "ERA_D_T_FMT", header: "<langinfo.h>".}: cint
var ERA_T_FMT* {.importc: "ERA_T_FMT", header: "<langinfo.h>".}: cint
var ALT_DIGITS* {.importc: "ALT_DIGITS", header: "<langinfo.h>".}: cint
var RADIXCHAR* {.importc: "RADIXCHAR", header: "<langinfo.h>".}: cint
var THOUSEP* {.importc: "THOUSEP", header: "<langinfo.h>".}: cint
var YESEXPR* {.importc: "YESEXPR", header: "<langinfo.h>".}: cint
var NOEXPR* {.importc: "NOEXPR", header: "<langinfo.h>".}: cint
var CRNCYSTR* {.importc: "CRNCYSTR", header: "<langinfo.h>".}: cint
# <locale.h>
var LC_ALL* {.importc: "LC_ALL", header: "<locale.h>".}: cint
var LC_COLLATE* {.importc: "LC_COLLATE", header: "<locale.h>".}: cint
var LC_CTYPE* {.importc: "LC_CTYPE", header: "<locale.h>".}: cint
var LC_MESSAGES* {.importc: "LC_MESSAGES", header: "<locale.h>".}: cint
var LC_MONETARY* {.importc: "LC_MONETARY", header: "<locale.h>".}: cint
var LC_NUMERIC* {.importc: "LC_NUMERIC", header: "<locale.h>".}: cint
var LC_TIME* {.importc: "LC_TIME", header: "<locale.h>".}: cint
# <netdb.h>
var IPPORT_RESERVED* {.importc: "IPPORT_RESERVED", header: "<netdb.h>".}: cint
var HOST_NOT_FOUND* {.importc: "HOST_NOT_FOUND", header: "<netdb.h>".}: cint
var NO_DATA* {.importc: "NO_DATA", header: "<netdb.h>".}: cint
var NO_RECOVERY* {.importc: "NO_RECOVERY", header: "<netdb.h>".}: cint
var TRY_AGAIN* {.importc: "TRY_AGAIN", header: "<netdb.h>".}: cint
var AI_PASSIVE* {.importc: "AI_PASSIVE", header: "<netdb.h>".}: cint
var AI_CANONNAME* {.importc: "AI_CANONNAME", header: "<netdb.h>".}: cint
var AI_NUMERICHOST* {.importc: "AI_NUMERICHOST", header: "<netdb.h>".}: cint
var AI_NUMERICSERV* {.importc: "AI_NUMERICSERV", header: "<netdb.h>".}: cint
var AI_V4MAPPED* {.importc: "AI_V4MAPPED", header: "<netdb.h>".}: cint
var AI_ALL* {.importc: "AI_ALL", header: "<netdb.h>".}: cint
var AI_ADDRCONFIG* {.importc: "AI_ADDRCONFIG", header: "<netdb.h>".}: cint
var NI_NOFQDN* {.importc: "NI_NOFQDN", header: "<netdb.h>".}: cint
var NI_NUMERICHOST* {.importc: "NI_NUMERICHOST", header: "<netdb.h>".}: cint
var NI_NAMEREQD* {.importc: "NI_NAMEREQD", header: "<netdb.h>".}: cint
var NI_NUMERICSERV* {.importc: "NI_NUMERICSERV", header: "<netdb.h>".}: cint
var NI_NUMERICSCOPE* {.importc: "NI_NUMERICSCOPE", header: "<netdb.h>".}: cint
var NI_DGRAM* {.importc: "NI_DGRAM", header: "<netdb.h>".}: cint
var EAI_AGAIN* {.importc: "EAI_AGAIN", header: "<netdb.h>".}: cint
var EAI_BADFLAGS* {.importc: "EAI_BADFLAGS", header: "<netdb.h>".}: cint
var EAI_FAIL* {.importc: "EAI_FAIL", header: "<netdb.h>".}: cint
var EAI_FAMILY* {.importc: "EAI_FAMILY", header: "<netdb.h>".}: cint
var EAI_MEMORY* {.importc: "EAI_MEMORY", header: "<netdb.h>".}: cint
var EAI_NONAME* {.importc: "EAI_NONAME", header: "<netdb.h>".}: cint
var EAI_SERVICE* {.importc: "EAI_SERVICE", header: "<netdb.h>".}: cint
var EAI_SOCKTYPE* {.importc: "EAI_SOCKTYPE", header: "<netdb.h>".}: cint
var EAI_SYSTEM* {.importc: "EAI_SYSTEM", header: "<netdb.h>".}: cint
var EAI_OVERFLOW* {.importc: "EAI_OVERFLOW", header: "<netdb.h>".}: cint
# <net/if.h>
var IF_NAMESIZE* {.importc: "IF_NAMESIZE", header: "<net/if.h>".}: cint
# <netinet/in.h>
var IPPROTO_IP* {.importc: "IPPROTO_IP", header: "<netinet/in.h>".}: cint
var IPPROTO_IPV6* {.importc: "IPPROTO_IPV6", header: "<netinet/in.h>".}: cint
var IPPROTO_ICMP* {.importc: "IPPROTO_ICMP", header: "<netinet/in.h>".}: cint
var IPPROTO_RAW* {.importc: "IPPROTO_RAW", header: "<netinet/in.h>".}: cint
var IPPROTO_TCP* {.importc: "IPPROTO_TCP", header: "<netinet/in.h>".}: cint
var IPPROTO_UDP* {.importc: "IPPROTO_UDP", header: "<netinet/in.h>".}: cint
var INADDR_ANY* {.importc: "INADDR_ANY", header: "<netinet/in.h>".}: InAddrScalar
var INADDR_LOOPBACK* {.importc: "INADDR_LOOPBACK", header: "<netinet/in.h>".}: InAddrScalar
var INADDR_BROADCAST* {.importc: "INADDR_BROADCAST", header: "<netinet/in.h>".}: InAddrScalar
var INET_ADDRSTRLEN* {.importc: "INET_ADDRSTRLEN", header: "<netinet/in.h>".}: cint
var INET6_ADDRSTRLEN* {.importc: "INET6_ADDRSTRLEN", header: "<netinet/in.h>".}: cint
var IPV6_JOIN_GROUP* {.importc: "IPV6_JOIN_GROUP", header: "<netinet/in.h>".}: cint
var IPV6_LEAVE_GROUP* {.importc: "IPV6_LEAVE_GROUP", header: "<netinet/in.h>".}: cint
var IPV6_MULTICAST_HOPS* {.importc: "IPV6_MULTICAST_HOPS", header: "<netinet/in.h>".}: cint
var IPV6_MULTICAST_IF* {.importc: "IPV6_MULTICAST_IF", header: "<netinet/in.h>".}: cint
var IPV6_MULTICAST_LOOP* {.importc: "IPV6_MULTICAST_LOOP", header: "<netinet/in.h>".}: cint
var IPV6_UNICAST_HOPS* {.importc: "IPV6_UNICAST_HOPS", header: "<netinet/in.h>".}: cint
var IPV6_V6ONLY* {.importc: "IPV6_V6ONLY", header: "<netinet/in.h>".}: cint
# <netinet/tcp.h>
var TCP_NODELAY* {.importc: "TCP_NODELAY", header: "<netinet/tcp.h>".}: cint
# <nl_types.h>
var NL_SETD* {.importc: "NL_SETD", header: "<nl_types.h>".}: cint
var NL_CAT_LOCALE* {.importc: "NL_CAT_LOCALE", header: "<nl_types.h>".}: cint
# <poll.h>
var POLLIN* {.importc: "POLLIN", header: "<poll.h>".}: cshort
var POLLRDNORM* {.importc: "POLLRDNORM", header: "<poll.h>".}: cshort
var POLLRDBAND* {.importc: "POLLRDBAND", header: "<poll.h>".}: cshort
var POLLPRI* {.importc: "POLLPRI", header: "<poll.h>".}: cshort
var POLLOUT* {.importc: "POLLOUT", header: "<poll.h>".}: cshort
var POLLWRNORM* {.importc: "POLLWRNORM", header: "<poll.h>".}: cshort
var POLLWRBAND* {.importc: "POLLWRBAND", header: "<poll.h>".}: cshort
var POLLERR* {.importc: "POLLERR", header: "<poll.h>".}: cshort
var POLLHUP* {.importc: "POLLHUP", header: "<poll.h>".}: cshort
var POLLNVAL* {.importc: "POLLNVAL", header: "<poll.h>".}: cshort
# <pthread.h>
var PTHREAD_BARRIER_SERIAL_THREAD* {.importc: "PTHREAD_BARRIER_SERIAL_THREAD", header: "<pthread.h>".}: cint
var PTHREAD_CANCEL_ASYNCHRONOUS* {.importc: "PTHREAD_CANCEL_ASYNCHRONOUS", header: "<pthread.h>".}: cint
var PTHREAD_CANCEL_ENABLE* {.importc: "PTHREAD_CANCEL_ENABLE", header: "<pthread.h>".}: cint
var PTHREAD_CANCEL_DEFERRED* {.importc: "PTHREAD_CANCEL_DEFERRED", header: "<pthread.h>".}: cint
var PTHREAD_CANCEL_DISABLE* {.importc: "PTHREAD_CANCEL_DISABLE", header: "<pthread.h>".}: cint
var PTHREAD_CREATE_DETACHED* {.importc: "PTHREAD_CREATE_DETACHED", header: "<pthread.h>".}: cint
var PTHREAD_CREATE_JOINABLE* {.importc: "PTHREAD_CREATE_JOINABLE", header: "<pthread.h>".}: cint
var PTHREAD_EXPLICIT_SCHED* {.importc: "PTHREAD_EXPLICIT_SCHED", header: "<pthread.h>".}: cint
var PTHREAD_INHERIT_SCHED* {.importc: "PTHREAD_INHERIT_SCHED", header: "<pthread.h>".}: cint
var PTHREAD_MUTEX_DEFAULT* {.importc: "PTHREAD_MUTEX_DEFAULT", header: "<pthread.h>".}: cint
var PTHREAD_MUTEX_ERRORCHECK* {.importc: "PTHREAD_MUTEX_ERRORCHECK", header: "<pthread.h>".}: cint
var PTHREAD_MUTEX_NORMAL* {.importc: "PTHREAD_MUTEX_NORMAL", header: "<pthread.h>".}: cint
var PTHREAD_MUTEX_RECURSIVE* {.importc: "PTHREAD_MUTEX_RECURSIVE", header: "<pthread.h>".}: cint
var PTHREAD_PRIO_INHERIT* {.importc: "PTHREAD_PRIO_INHERIT", header: "<pthread.h>".}: cint
var PTHREAD_PRIO_NONE* {.importc: "PTHREAD_PRIO_NONE", header: "<pthread.h>".}: cint
var PTHREAD_PRIO_PROTECT* {.importc: "PTHREAD_PRIO_PROTECT", header: "<pthread.h>".}: cint
var PTHREAD_PROCESS_SHARED* {.importc: "PTHREAD_PROCESS_SHARED", header: "<pthread.h>".}: cint
var PTHREAD_PROCESS_PRIVATE* {.importc: "PTHREAD_PROCESS_PRIVATE", header: "<pthread.h>".}: cint
var PTHREAD_SCOPE_PROCESS* {.importc: "PTHREAD_SCOPE_PROCESS", header: "<pthread.h>".}: cint
var PTHREAD_SCOPE_SYSTEM* {.importc: "PTHREAD_SCOPE_SYSTEM", header: "<pthread.h>".}: cint
# <sched.h>
var SCHED_FIFO* {.importc: "SCHED_FIFO", header: "<sched.h>".}: cint
var SCHED_RR* {.importc: "SCHED_RR", header: "<sched.h>".}: cint
var SCHED_SPORADIC* {.importc: "SCHED_SPORADIC", header: "<sched.h>".}: cint
var SCHED_OTHER* {.importc: "SCHED_OTHER", header: "<sched.h>".}: cint
# <semaphore.h>
var SEM_FAILED* {.importc: "SEM_FAILED", header: "<semaphore.h>".}: pointer
# <signal.h>
var SIGEV_NONE* {.importc: "SIGEV_NONE", header: "<signal.h>".}: cint
var SIGEV_SIGNAL* {.importc: "SIGEV_SIGNAL", header: "<signal.h>".}: cint
var SIGEV_THREAD* {.importc: "SIGEV_THREAD", header: "<signal.h>".}: cint
var SIGABRT* {.importc: "SIGABRT", header: "<signal.h>".}: cint
var SIGALRM* {.importc: "SIGALRM", header: "<signal.h>".}: cint
var SIGBUS* {.importc: "SIGBUS", header: "<signal.h>".}: cint
var SIGCHLD* {.importc: "SIGCHLD", header: "<signal.h>".}: cint
var SIGCONT* {.importc: "SIGCONT", header: "<signal.h>".}: cint
var SIGFPE* {.importc: "SIGFPE", header: "<signal.h>".}: cint
var SIGHUP* {.importc: "SIGHUP", header: "<signal.h>".}: cint
var SIGILL* {.importc: "SIGILL", header: "<signal.h>".}: cint
var SIGINT* {.importc: "SIGINT", header: "<signal.h>".}: cint
var SIGKILL* {.importc: "SIGKILL", header: "<signal.h>".}: cint
var SIGPIPE* {.importc: "SIGPIPE", header: "<signal.h>".}: cint
var SIGQUIT* {.importc: "SIGQUIT", header: "<signal.h>".}: cint
var SIGSEGV* {.importc: "SIGSEGV", header: "<signal.h>".}: cint
var SIGSTOP* {.importc: "SIGSTOP", header: "<signal.h>".}: cint
var SIGTERM* {.importc: "SIGTERM", header: "<signal.h>".}: cint
var SIGTSTP* {.importc: "SIGTSTP", header: "<signal.h>".}: cint
var SIGTTIN* {.importc: "SIGTTIN", header: "<signal.h>".}: cint
var SIGTTOU* {.importc: "SIGTTOU", header: "<signal.h>".}: cint
var SIGUSR1* {.importc: "SIGUSR1", header: "<signal.h>".}: cint
var SIGUSR2* {.importc: "SIGUSR2", header: "<signal.h>".}: cint
var SIGPOLL* {.importc: "SIGPOLL", header: "<signal.h>".}: cint
var SIGPROF* {.importc: "SIGPROF", header: "<signal.h>".}: cint
var SIGSYS* {.importc: "SIGSYS", header: "<signal.h>".}: cint
var SIGTRAP* {.importc: "SIGTRAP", header: "<signal.h>".}: cint
var SIGURG* {.importc: "SIGURG", header: "<signal.h>".}: cint
var SIGVTALRM* {.importc: "SIGVTALRM", header: "<signal.h>".}: cint
var SIGXCPU* {.importc: "SIGXCPU", header: "<signal.h>".}: cint
var SIGXFSZ* {.importc: "SIGXFSZ", header: "<signal.h>".}: cint
var SA_NOCLDSTOP* {.importc: "SA_NOCLDSTOP", header: "<signal.h>".}: cint
var SIG_BLOCK* {.importc: "SIG_BLOCK", header: "<signal.h>".}: cint
var SIG_UNBLOCK* {.importc: "SIG_UNBLOCK", header: "<signal.h>".}: cint
var SIG_SETMASK* {.importc: "SIG_SETMASK", header: "<signal.h>".}: cint
var SA_ONSTACK* {.importc: "SA_ONSTACK", header: "<signal.h>".}: cint
var SA_RESETHAND* {.importc: "SA_RESETHAND", header: "<signal.h>".}: cint
var SA_RESTART* {.importc: "SA_RESTART", header: "<signal.h>".}: cint
var SA_SIGINFO* {.importc: "SA_SIGINFO", header: "<signal.h>".}: cint
var SA_NOCLDWAIT* {.importc: "SA_NOCLDWAIT", header: "<signal.h>".}: cint
var SA_NODEFER* {.importc: "SA_NODEFER", header: "<signal.h>".}: cint
var SS_ONSTACK* {.importc: "SS_ONSTACK", header: "<signal.h>".}: cint
var SS_DISABLE* {.importc: "SS_DISABLE", header: "<signal.h>".}: cint
var MINSIGSTKSZ* {.importc: "MINSIGSTKSZ", header: "<signal.h>".}: cint
var SIGSTKSZ* {.importc: "SIGSTKSZ", header: "<signal.h>".}: cint
# <sys/ipc.h>
var IPC_CREAT* {.importc: "IPC_CREAT", header: "<sys/ipc.h>".}: cint
var IPC_EXCL* {.importc: "IPC_EXCL", header: "<sys/ipc.h>".}: cint
var IPC_NOWAIT* {.importc: "IPC_NOWAIT", header: "<sys/ipc.h>".}: cint
var IPC_PRIVATE* {.importc: "IPC_PRIVATE", header: "<sys/ipc.h>".}: cint
var IPC_RMID* {.importc: "IPC_RMID", header: "<sys/ipc.h>".}: cint
var IPC_SET* {.importc: "IPC_SET", header: "<sys/ipc.h>".}: cint
var IPC_STAT* {.importc: "IPC_STAT", header: "<sys/ipc.h>".}: cint
# <sys/mman.h>
var PROT_READ* {.importc: "PROT_READ", header: "<sys/mman.h>".}: cint
var PROT_WRITE* {.importc: "PROT_WRITE", header: "<sys/mman.h>".}: cint
var PROT_EXEC* {.importc: "PROT_EXEC", header: "<sys/mman.h>".}: cint
var PROT_NONE* {.importc: "PROT_NONE", header: "<sys/mman.h>".}: cint
var MAP_SHARED* {.importc: "MAP_SHARED", header: "<sys/mman.h>".}: cint
var MAP_PRIVATE* {.importc: "MAP_PRIVATE", header: "<sys/mman.h>".}: cint
var MAP_FIXED* {.importc: "MAP_FIXED", header: "<sys/mman.h>".}: cint
var MS_ASYNC* {.importc: "MS_ASYNC", header: "<sys/mman.h>".}: cint
var MS_SYNC* {.importc: "MS_SYNC", header: "<sys/mman.h>".}: cint
var MS_INVALIDATE* {.importc: "MS_INVALIDATE", header: "<sys/mman.h>".}: cint
var MCL_CURRENT* {.importc: "MCL_CURRENT", header: "<sys/mman.h>".}: cint
var MCL_FUTURE* {.importc: "MCL_FUTURE", header: "<sys/mman.h>".}: cint
var MAP_FAILED* {.importc: "MAP_FAILED", header: "<sys/mman.h>".}: pointer
var POSIX_MADV_NORMAL* {.importc: "POSIX_MADV_NORMAL", header: "<sys/mman.h>".}: cint
var POSIX_MADV_SEQUENTIAL* {.importc: "POSIX_MADV_SEQUENTIAL", header: "<sys/mman.h>".}: cint
var POSIX_MADV_RANDOM* {.importc: "POSIX_MADV_RANDOM", header: "<sys/mman.h>".}: cint
var POSIX_MADV_WILLNEED* {.importc: "POSIX_MADV_WILLNEED", header: "<sys/mman.h>".}: cint
var POSIX_MADV_DONTNEED* {.importc: "POSIX_MADV_DONTNEED", header: "<sys/mman.h>".}: cint
var POSIX_TYPED_MEM_ALLOCATE* {.importc: "POSIX_TYPED_MEM_ALLOCATE", header: "<sys/mman.h>".}: cint
var POSIX_TYPED_MEM_ALLOCATE_CONTIG* {.importc: "POSIX_TYPED_MEM_ALLOCATE_CONTIG", header: "<sys/mman.h>".}: cint
var POSIX_TYPED_MEM_MAP_ALLOCATABLE* {.importc: "POSIX_TYPED_MEM_MAP_ALLOCATABLE", header: "<sys/mman.h>".}: cint
# <sys/select.h>
var FD_SETSIZE* {.importc: "FD_SETSIZE", header: "<sys/select.h>".}: cint
# <sys/socket.h>
var MSG_CTRUNC* {.importc: "MSG_CTRUNC", header: "<sys/socket.h>".}: cint
var MSG_DONTROUTE* {.importc: "MSG_DONTROUTE", header: "<sys/socket.h>".}: cint
var MSG_EOR* {.importc: "MSG_EOR", header: "<sys/socket.h>".}: cint
var MSG_OOB* {.importc: "MSG_OOB", header: "<sys/socket.h>".}: cint
var SCM_RIGHTS* {.importc: "SCM_RIGHTS", header: "<sys/socket.h>".}: cint
var SO_ACCEPTCONN* {.importc: "SO_ACCEPTCONN", header: "<sys/socket.h>".}: cint
var SO_BROADCAST* {.importc: "SO_BROADCAST", header: "<sys/socket.h>".}: cint
var SO_DEBUG* {.importc: "SO_DEBUG", header: "<sys/socket.h>".}: cint
var SO_DONTROUTE* {.importc: "SO_DONTROUTE", header: "<sys/socket.h>".}: cint
var SO_ERROR* {.importc: "SO_ERROR", header: "<sys/socket.h>".}: cint
var SO_KEEPALIVE* {.importc: "SO_KEEPALIVE", header: "<sys/socket.h>".}: cint
var SO_LINGER* {.importc: "SO_LINGER", header: "<sys/socket.h>".}: cint
var SO_OOBINLINE* {.importc: "SO_OOBINLINE", header: "<sys/socket.h>".}: cint
var SO_RCVBUF* {.importc: "SO_RCVBUF", header: "<sys/socket.h>".}: cint
var SO_RCVLOWAT* {.importc: "SO_RCVLOWAT", header: "<sys/socket.h>".}: cint
var SO_RCVTIMEO* {.importc: "SO_RCVTIMEO", header: "<sys/socket.h>".}: cint
var SO_REUSEADDR* {.importc: "SO_REUSEADDR", header: "<sys/socket.h>".}: cint
var SO_SNDBUF* {.importc: "SO_SNDBUF", header: "<sys/socket.h>".}: cint
var SO_SNDLOWAT* {.importc: "SO_SNDLOWAT", header: "<sys/socket.h>".}: cint
var SO_SNDTIMEO* {.importc: "SO_SNDTIMEO", header: "<sys/socket.h>".}: cint
var SO_TYPE* {.importc: "SO_TYPE", header: "<sys/socket.h>".}: cint
var SOCK_DGRAM* {.importc: "SOCK_DGRAM", header: "<sys/socket.h>".}: cint
var SOCK_RAW* {.importc: "SOCK_RAW", header: "<sys/socket.h>".}: cint
var SOCK_SEQPACKET* {.importc: "SOCK_SEQPACKET", header: "<sys/socket.h>".}: cint
var SOCK_STREAM* {.importc: "SOCK_STREAM", header: "<sys/socket.h>".}: cint
var SOL_SOCKET* {.importc: "SOL_SOCKET", header: "<sys/socket.h>".}: cint
var SOMAXCONN* {.importc: "SOMAXCONN", header: "<sys/socket.h>".}: cint
var MSG_PEEK* {.importc: "MSG_PEEK", header: "<sys/socket.h>".}: cint
var MSG_TRUNC* {.importc: "MSG_TRUNC", header: "<sys/socket.h>".}: cint
var MSG_WAITALL* {.importc: "MSG_WAITALL", header: "<sys/socket.h>".}: cint
var AF_INET* {.importc: "AF_INET", header: "<sys/socket.h>".}: TSa_Family
var AF_INET6* {.importc: "AF_INET6", header: "<sys/socket.h>".}: TSa_Family
var AF_UNIX* {.importc: "AF_UNIX", header: "<sys/socket.h>".}: TSa_Family
var AF_UNSPEC* {.importc: "AF_UNSPEC", header: "<sys/socket.h>".}: TSa_Family
var SHUT_RD* {.importc: "SHUT_RD", header: "<sys/socket.h>".}: cint
var SHUT_RDWR* {.importc: "SHUT_RDWR", header: "<sys/socket.h>".}: cint
var SHUT_WR* {.importc: "SHUT_WR", header: "<sys/socket.h>".}: cint
# <sys/stat.h>
var S_IFBLK* {.importc: "S_IFBLK", header: "<sys/stat.h>".}: cint
var S_IFCHR* {.importc: "S_IFCHR", header: "<sys/stat.h>".}: cint
var S_IFDIR* {.importc: "S_IFDIR", header: "<sys/stat.h>".}: cint
var S_IFIFO* {.importc: "S_IFIFO", header: "<sys/stat.h>".}: cint
var S_IFLNK* {.importc: "S_IFLNK", header: "<sys/stat.h>".}: cint
var S_IFMT* {.importc: "S_IFMT", header: "<sys/stat.h>".}: cint
var S_IFREG* {.importc: "S_IFREG", header: "<sys/stat.h>".}: cint
var S_IFSOCK* {.importc: "S_IFSOCK", header: "<sys/stat.h>".}: cint
var S_IRGRP* {.importc: "S_IRGRP", header: "<sys/stat.h>".}: cint
var S_IROTH* {.importc: "S_IROTH", header: "<sys/stat.h>".}: cint
var S_IRUSR* {.importc: "S_IRUSR", header: "<sys/stat.h>".}: cint
var S_IRWXG* {.importc: "S_IRWXG", header: "<sys/stat.h>".}: cint
var S_IRWXO* {.importc: "S_IRWXO", header: "<sys/stat.h>".}: cint
var S_IRWXU* {.importc: "S_IRWXU", header: "<sys/stat.h>".}: cint
var S_ISGID* {.importc: "S_ISGID", header: "<sys/stat.h>".}: cint
var S_ISUID* {.importc: "S_ISUID", header: "<sys/stat.h>".}: cint
var S_ISVTX* {.importc: "S_ISVTX", header: "<sys/stat.h>".}: cint
var S_IWGRP* {.importc: "S_IWGRP", header: "<sys/stat.h>".}: cint
var S_IWOTH* {.importc: "S_IWOTH", header: "<sys/stat.h>".}: cint
var S_IWUSR* {.importc: "S_IWUSR", header: "<sys/stat.h>".}: cint
var S_IXGRP* {.importc: "S_IXGRP", header: "<sys/stat.h>".}: cint
var S_IXOTH* {.importc: "S_IXOTH", header: "<sys/stat.h>".}: cint
var S_IXUSR* {.importc: "S_IXUSR", header: "<sys/stat.h>".}: cint
# <sys/statvfs.h>
var ST_RDONLY* {.importc: "ST_RDONLY", header: "<sys/statvfs.h>".}: cint
var ST_NOSUID* {.importc: "ST_NOSUID", header: "<sys/statvfs.h>".}: cint
# <sys/wait.h>
var WNOHANG* {.importc: "WNOHANG", header: "<sys/wait.h>".}: cint
var WUNTRACED* {.importc: "WUNTRACED", header: "<sys/wait.h>".}: cint
var WEXITED* {.importc: "WEXITED", header: "<sys/wait.h>".}: cint
var WSTOPPED* {.importc: "WSTOPPED", header: "<sys/wait.h>".}: cint
var WCONTINUED* {.importc: "WCONTINUED", header: "<sys/wait.h>".}: cint
var WNOWAIT* {.importc: "WNOWAIT", header: "<sys/wait.h>".}: cint
var P_ALL* {.importc: "P_ALL", header: "<sys/wait.h>".}: cint
var P_PID* {.importc: "P_PID", header: "<sys/wait.h>".}: cint
var P_PGID* {.importc: "P_PGID", header: "<sys/wait.h>".}: cint
# <spawn.h>
var POSIX_SPAWN_RESETIDS* {.importc: "POSIX_SPAWN_RESETIDS", header: "<spawn.h>".}: cint
var POSIX_SPAWN_SETPGROUP* {.importc: "POSIX_SPAWN_SETPGROUP", header: "<spawn.h>".}: cint
var POSIX_SPAWN_SETSCHEDPARAM* {.importc: "POSIX_SPAWN_SETSCHEDPARAM", header: "<spawn.h>".}: cint
var POSIX_SPAWN_SETSCHEDULER* {.importc: "POSIX_SPAWN_SETSCHEDULER", header: "<spawn.h>".}: cint
var POSIX_SPAWN_SETSIGDEF* {.importc: "POSIX_SPAWN_SETSIGDEF", header: "<spawn.h>".}: cint
var POSIX_SPAWN_SETSIGMASK* {.importc: "POSIX_SPAWN_SETSIGMASK", header: "<spawn.h>".}: cint
# <stdio.h>
var IOFBF* {.importc: "_IOFBF", header: "<stdio.h>".}: cint
var IONBF* {.importc: "_IONBF", header: "<stdio.h>".}: cint
# <time.h>
var CLOCKS_PER_SEC* {.importc: "CLOCKS_PER_SEC", header: "<time.h>".}: clong
var CLOCK_PROCESS_CPUTIME_ID* {.importc: "CLOCK_PROCESS_CPUTIME_ID", header: "<time.h>".}: cint
var CLOCK_THREAD_CPUTIME_ID* {.importc: "CLOCK_THREAD_CPUTIME_ID", header: "<time.h>".}: cint
var CLOCK_REALTIME* {.importc: "CLOCK_REALTIME", header: "<time.h>".}: cint
var TIMER_ABSTIME* {.importc: "TIMER_ABSTIME", header: "<time.h>".}: cint
var CLOCK_MONOTONIC* {.importc: "CLOCK_MONOTONIC", header: "<time.h>".}: cint
# <unistd.h>
var POSIX_ASYNC_IO* {.importc: "_POSIX_ASYNC_IO", header: "<unistd.h>".}: cint
var POSIX_PRIO_IO* {.importc: "_POSIX_PRIO_IO", header: "<unistd.h>".}: cint
var POSIX_SYNC_IO* {.importc: "_POSIX_SYNC_IO", header: "<unistd.h>".}: cint
var F_OK* {.importc: "F_OK", header: "<unistd.h>".}: cint
var R_OK* {.importc: "R_OK", header: "<unistd.h>".}: cint
var W_OK* {.importc: "W_OK", header: "<unistd.h>".}: cint
var X_OK* {.importc: "X_OK", header: "<unistd.h>".}: cint
var CS_PATH* {.importc: "_CS_PATH", header: "<unistd.h>".}: cint
var CS_POSIX_V6_ILP32_OFF32_CFLAGS* {.importc: "_CS_POSIX_V6_ILP32_OFF32_CFLAGS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_ILP32_OFF32_LDFLAGS* {.importc: "_CS_POSIX_V6_ILP32_OFF32_LDFLAGS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_ILP32_OFF32_LIBS* {.importc: "_CS_POSIX_V6_ILP32_OFF32_LIBS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_ILP32_OFFBIG_CFLAGS* {.importc: "_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS* {.importc: "_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_ILP32_OFFBIG_LIBS* {.importc: "_CS_POSIX_V6_ILP32_OFFBIG_LIBS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_LP64_OFF64_CFLAGS* {.importc: "_CS_POSIX_V6_LP64_OFF64_CFLAGS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_LP64_OFF64_LDFLAGS* {.importc: "_CS_POSIX_V6_LP64_OFF64_LDFLAGS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_LP64_OFF64_LIBS* {.importc: "_CS_POSIX_V6_LP64_OFF64_LIBS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS* {.importc: "_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS* {.importc: "_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_LPBIG_OFFBIG_LIBS* {.importc: "_CS_POSIX_V6_LPBIG_OFFBIG_LIBS", header: "<unistd.h>".}: cint
var CS_POSIX_V6_WIDTH_RESTRICTED_ENVS* {.importc: "_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS", header: "<unistd.h>".}: cint
var F_LOCK* {.importc: "F_LOCK", header: "<unistd.h>".}: cint
var F_TEST* {.importc: "F_TEST", header: "<unistd.h>".}: cint
var F_TLOCK* {.importc: "F_TLOCK", header: "<unistd.h>".}: cint
var F_ULOCK* {.importc: "F_ULOCK", header: "<unistd.h>".}: cint
var PC_2_SYMLINKS* {.importc: "_PC_2_SYMLINKS", header: "<unistd.h>".}: cint
var PC_ALLOC_SIZE_MIN* {.importc: "_PC_ALLOC_SIZE_MIN", header: "<unistd.h>".}: cint
var PC_ASYNC_IO* {.importc: "_PC_ASYNC_IO", header: "<unistd.h>".}: cint
var PC_CHOWN_RESTRICTED* {.importc: "_PC_CHOWN_RESTRICTED", header: "<unistd.h>".}: cint
var PC_FILESIZEBITS* {.importc: "_PC_FILESIZEBITS", header: "<unistd.h>".}: cint
var PC_LINK_MAX* {.importc: "_PC_LINK_MAX", header: "<unistd.h>".}: cint
var PC_MAX_CANON* {.importc: "_PC_MAX_CANON", header: "<unistd.h>".}: cint
var PC_MAX_INPUT* {.importc: "_PC_MAX_INPUT", header: "<unistd.h>".}: cint
var PC_NAME_MAX* {.importc: "_PC_NAME_MAX", header: "<unistd.h>".}: cint
var PC_NO_TRUNC* {.importc: "_PC_NO_TRUNC", header: "<unistd.h>".}: cint
var PC_PATH_MAX* {.importc: "_PC_PATH_MAX", header: "<unistd.h>".}: cint
var PC_PIPE_BUF* {.importc: "_PC_PIPE_BUF", header: "<unistd.h>".}: cint
var PC_PRIO_IO* {.importc: "_PC_PRIO_IO", header: "<unistd.h>".}: cint
var PC_REC_INCR_XFER_SIZE* {.importc: "_PC_REC_INCR_XFER_SIZE", header: "<unistd.h>".}: cint
var PC_REC_MIN_XFER_SIZE* {.importc: "_PC_REC_MIN_XFER_SIZE", header: "<unistd.h>".}: cint
var PC_REC_XFER_ALIGN* {.importc: "_PC_REC_XFER_ALIGN", header: "<unistd.h>".}: cint
var PC_SYMLINK_MAX* {.importc: "_PC_SYMLINK_MAX", header: "<unistd.h>".}: cint
var PC_SYNC_IO* {.importc: "_PC_SYNC_IO", header: "<unistd.h>".}: cint
var PC_VDISABLE* {.importc: "_PC_VDISABLE", header: "<unistd.h>".}: cint
var SC_2_C_BIND* {.importc: "_SC_2_C_BIND", header: "<unistd.h>".}: cint
var SC_2_C_DEV* {.importc: "_SC_2_C_DEV", header: "<unistd.h>".}: cint
var SC_2_CHAR_TERM* {.importc: "_SC_2_CHAR_TERM", header: "<unistd.h>".}: cint
var SC_2_FORT_DEV* {.importc: "_SC_2_FORT_DEV", header: "<unistd.h>".}: cint
var SC_2_FORT_RUN* {.importc: "_SC_2_FORT_RUN", header: "<unistd.h>".}: cint
var SC_2_LOCALEDEF* {.importc: "_SC_2_LOCALEDEF", header: "<unistd.h>".}: cint
var SC_2_PBS* {.importc: "_SC_2_PBS", header: "<unistd.h>".}: cint
var SC_2_PBS_ACCOUNTING* {.importc: "_SC_2_PBS_ACCOUNTING", header: "<unistd.h>".}: cint
var SC_2_PBS_CHECKPOINT* {.importc: "_SC_2_PBS_CHECKPOINT", header: "<unistd.h>".}: cint
var SC_2_PBS_LOCATE* {.importc: "_SC_2_PBS_LOCATE", header: "<unistd.h>".}: cint
var SC_2_PBS_MESSAGE* {.importc: "_SC_2_PBS_MESSAGE", header: "<unistd.h>".}: cint
var SC_2_PBS_TRACK* {.importc: "_SC_2_PBS_TRACK", header: "<unistd.h>".}: cint
var SC_2_SW_DEV* {.importc: "_SC_2_SW_DEV", header: "<unistd.h>".}: cint
var SC_2_UPE* {.importc: "_SC_2_UPE", header: "<unistd.h>".}: cint
var SC_2_VERSION* {.importc: "_SC_2_VERSION", header: "<unistd.h>".}: cint
var SC_ADVISORY_INFO* {.importc: "_SC_ADVISORY_INFO", header: "<unistd.h>".}: cint
var SC_AIO_LISTIO_MAX* {.importc: "_SC_AIO_LISTIO_MAX", header: "<unistd.h>".}: cint
var SC_AIO_MAX* {.importc: "_SC_AIO_MAX", header: "<unistd.h>".}: cint
var SC_AIO_PRIO_DELTA_MAX* {.importc: "_SC_AIO_PRIO_DELTA_MAX", header: "<unistd.h>".}: cint
var SC_ARG_MAX* {.importc: "_SC_ARG_MAX", header: "<unistd.h>".}: cint
var SC_ASYNCHRONOUS_IO* {.importc: "_SC_ASYNCHRONOUS_IO", header: "<unistd.h>".}: cint
var SC_ATEXIT_MAX* {.importc: "_SC_ATEXIT_MAX", header: "<unistd.h>".}: cint
var SC_BARRIERS* {.importc: "_SC_BARRIERS", header: "<unistd.h>".}: cint
var SC_BC_BASE_MAX* {.importc: "_SC_BC_BASE_MAX", header: "<unistd.h>".}: cint
var SC_BC_DIM_MAX* {.importc: "_SC_BC_DIM_MAX", header: "<unistd.h>".}: cint
var SC_BC_SCALE_MAX* {.importc: "_SC_BC_SCALE_MAX", header: "<unistd.h>".}: cint
var SC_BC_STRING_MAX* {.importc: "_SC_BC_STRING_MAX", header: "<unistd.h>".}: cint
var SC_CHILD_MAX* {.importc: "_SC_CHILD_MAX", header: "<unistd.h>".}: cint
var SC_CLK_TCK* {.importc: "_SC_CLK_TCK", header: "<unistd.h>".}: cint
var SC_CLOCK_SELECTION* {.importc: "_SC_CLOCK_SELECTION", header: "<unistd.h>".}: cint
var SC_COLL_WEIGHTS_MAX* {.importc: "_SC_COLL_WEIGHTS_MAX", header: "<unistd.h>".}: cint
var SC_CPUTIME* {.importc: "_SC_CPUTIME", header: "<unistd.h>".}: cint
var SC_DELAYTIMER_MAX* {.importc: "_SC_DELAYTIMER_MAX", header: "<unistd.h>".}: cint
var SC_EXPR_NEST_MAX* {.importc: "_SC_EXPR_NEST_MAX", header: "<unistd.h>".}: cint
var SC_FSYNC* {.importc: "_SC_FSYNC", header: "<unistd.h>".}: cint
var SC_GETGR_R_SIZE_MAX* {.importc: "_SC_GETGR_R_SIZE_MAX", header: "<unistd.h>".}: cint
var SC_GETPW_R_SIZE_MAX* {.importc: "_SC_GETPW_R_SIZE_MAX", header: "<unistd.h>".}: cint
var SC_HOST_NAME_MAX* {.importc: "_SC_HOST_NAME_MAX", header: "<unistd.h>".}: cint
var SC_IOV_MAX* {.importc: "_SC_IOV_MAX", header: "<unistd.h>".}: cint
var SC_IPV6* {.importc: "_SC_IPV6", header: "<unistd.h>".}: cint
var SC_JOB_CONTROL* {.importc: "_SC_JOB_CONTROL", header: "<unistd.h>".}: cint
var SC_LINE_MAX* {.importc: "_SC_LINE_MAX", header: "<unistd.h>".}: cint
var SC_LOGIN_NAME_MAX* {.importc: "_SC_LOGIN_NAME_MAX", header: "<unistd.h>".}: cint
var SC_MAPPED_FILES* {.importc: "_SC_MAPPED_FILES", header: "<unistd.h>".}: cint
var SC_MEMLOCK* {.importc: "_SC_MEMLOCK", header: "<unistd.h>".}: cint
var SC_MEMLOCK_RANGE* {.importc: "_SC_MEMLOCK_RANGE", header: "<unistd.h>".}: cint
var SC_MEMORY_PROTECTION* {.importc: "_SC_MEMORY_PROTECTION", header: "<unistd.h>".}: cint
var SC_MESSAGE_PASSING* {.importc: "_SC_MESSAGE_PASSING", header: "<unistd.h>".}: cint
var SC_MONOTONIC_CLOCK* {.importc: "_SC_MONOTONIC_CLOCK", header: "<unistd.h>".}: cint
var SC_MQ_OPEN_MAX* {.importc: "_SC_MQ_OPEN_MAX", header: "<unistd.h>".}: cint
var SC_MQ_PRIO_MAX* {.importc: "_SC_MQ_PRIO_MAX", header: "<unistd.h>".}: cint
var SC_NGROUPS_MAX* {.importc: "_SC_NGROUPS_MAX", header: "<unistd.h>".}: cint
var SC_OPEN_MAX* {.importc: "_SC_OPEN_MAX", header: "<unistd.h>".}: cint
var SC_PAGE_SIZE* {.importc: "_SC_PAGE_SIZE", header: "<unistd.h>".}: cint
var SC_PRIORITIZED_IO* {.importc: "_SC_PRIORITIZED_IO", header: "<unistd.h>".}: cint
var SC_PRIORITY_SCHEDULING* {.importc: "_SC_PRIORITY_SCHEDULING", header: "<unistd.h>".}: cint
var SC_RAW_SOCKETS* {.importc: "_SC_RAW_SOCKETS", header: "<unistd.h>".}: cint
var SC_RE_DUP_MAX* {.importc: "_SC_RE_DUP_MAX", header: "<unistd.h>".}: cint
var SC_READER_WRITER_LOCKS* {.importc: "_SC_READER_WRITER_LOCKS", header: "<unistd.h>".}: cint
var SC_REALTIME_SIGNALS* {.importc: "_SC_REALTIME_SIGNALS", header: "<unistd.h>".}: cint
var SC_REGEXP* {.importc: "_SC_REGEXP", header: "<unistd.h>".}: cint
var SC_RTSIG_MAX* {.importc: "_SC_RTSIG_MAX", header: "<unistd.h>".}: cint
var SC_SAVED_IDS* {.importc: "_SC_SAVED_IDS", header: "<unistd.h>".}: cint
var SC_SEM_NSEMS_MAX* {.importc: "_SC_SEM_NSEMS_MAX", header: "<unistd.h>".}: cint
var SC_SEM_VALUE_MAX* {.importc: "_SC_SEM_VALUE_MAX", header: "<unistd.h>".}: cint
var SC_SEMAPHORES* {.importc: "_SC_SEMAPHORES", header: "<unistd.h>".}: cint
var SC_SHARED_MEMORY_OBJECTS* {.importc: "_SC_SHARED_MEMORY_OBJECTS", header: "<unistd.h>".}: cint
var SC_SHELL* {.importc: "_SC_SHELL", header: "<unistd.h>".}: cint
var SC_SIGQUEUE_MAX* {.importc: "_SC_SIGQUEUE_MAX", header: "<unistd.h>".}: cint
var SC_SPAWN* {.importc: "_SC_SPAWN", header: "<unistd.h>".}: cint
var SC_SPIN_LOCKS* {.importc: "_SC_SPIN_LOCKS", header: "<unistd.h>".}: cint
var SC_SPORADIC_SERVER* {.importc: "_SC_SPORADIC_SERVER", header: "<unistd.h>".}: cint
var SC_SS_REPL_MAX* {.importc: "_SC_SS_REPL_MAX", header: "<unistd.h>".}: cint
var SC_STREAM_MAX* {.importc: "_SC_STREAM_MAX", header: "<unistd.h>".}: cint
var SC_SYMLOOP_MAX* {.importc: "_SC_SYMLOOP_MAX", header: "<unistd.h>".}: cint
var SC_SYNCHRONIZED_IO* {.importc: "_SC_SYNCHRONIZED_IO", header: "<unistd.h>".}: cint
var SC_THREAD_ATTR_STACKADDR* {.importc: "_SC_THREAD_ATTR_STACKADDR", header: "<unistd.h>".}: cint
var SC_THREAD_ATTR_STACKSIZE* {.importc: "_SC_THREAD_ATTR_STACKSIZE", header: "<unistd.h>".}: cint
var SC_THREAD_CPUTIME* {.importc: "_SC_THREAD_CPUTIME", header: "<unistd.h>".}: cint
var SC_THREAD_DESTRUCTOR_ITERATIONS* {.importc: "_SC_THREAD_DESTRUCTOR_ITERATIONS", header: "<unistd.h>".}: cint
var SC_THREAD_KEYS_MAX* {.importc: "_SC_THREAD_KEYS_MAX", header: "<unistd.h>".}: cint
var SC_THREAD_PRIO_INHERIT* {.importc: "_SC_THREAD_PRIO_INHERIT", header: "<unistd.h>".}: cint
var SC_THREAD_PRIO_PROTECT* {.importc: "_SC_THREAD_PRIO_PROTECT", header: "<unistd.h>".}: cint
var SC_THREAD_PRIORITY_SCHEDULING* {.importc: "_SC_THREAD_PRIORITY_SCHEDULING", header: "<unistd.h>".}: cint
var SC_THREAD_PROCESS_SHARED* {.importc: "_SC_THREAD_PROCESS_SHARED", header: "<unistd.h>".}: cint
var SC_THREAD_SAFE_FUNCTIONS* {.importc: "_SC_THREAD_SAFE_FUNCTIONS", header: "<unistd.h>".}: cint
var SC_THREAD_SPORADIC_SERVER* {.importc: "_SC_THREAD_SPORADIC_SERVER", header: "<unistd.h>".}: cint
var SC_THREAD_STACK_MIN* {.importc: "_SC_THREAD_STACK_MIN", header: "<unistd.h>".}: cint
var SC_THREAD_THREADS_MAX* {.importc: "_SC_THREAD_THREADS_MAX", header: "<unistd.h>".}: cint
var SC_THREADS* {.importc: "_SC_THREADS", header: "<unistd.h>".}: cint
var SC_TIMEOUTS* {.importc: "_SC_TIMEOUTS", header: "<unistd.h>".}: cint
var SC_TIMER_MAX* {.importc: "_SC_TIMER_MAX", header: "<unistd.h>".}: cint
var SC_TIMERS* {.importc: "_SC_TIMERS", header: "<unistd.h>".}: cint
var SC_TRACE* {.importc: "_SC_TRACE", header: "<unistd.h>".}: cint
var SC_TRACE_EVENT_FILTER* {.importc: "_SC_TRACE_EVENT_FILTER", header: "<unistd.h>".}: cint
var SC_TRACE_EVENT_NAME_MAX* {.importc: "_SC_TRACE_EVENT_NAME_MAX", header: "<unistd.h>".}: cint
var SC_TRACE_INHERIT* {.importc: "_SC_TRACE_INHERIT", header: "<unistd.h>".}: cint
var SC_TRACE_LOG* {.importc: "_SC_TRACE_LOG", header: "<unistd.h>".}: cint
var SC_TRACE_NAME_MAX* {.importc: "_SC_TRACE_NAME_MAX", header: "<unistd.h>".}: cint
var SC_TRACE_SYS_MAX* {.importc: "_SC_TRACE_SYS_MAX", header: "<unistd.h>".}: cint
var SC_TRACE_USER_EVENT_MAX* {.importc: "_SC_TRACE_USER_EVENT_MAX", header: "<unistd.h>".}: cint
var SC_TTY_NAME_MAX* {.importc: "_SC_TTY_NAME_MAX", header: "<unistd.h>".}: cint
var SC_TYPED_MEMORY_OBJECTS* {.importc: "_SC_TYPED_MEMORY_OBJECTS", header: "<unistd.h>".}: cint
var SC_TZNAME_MAX* {.importc: "_SC_TZNAME_MAX", header: "<unistd.h>".}: cint
var SC_V6_ILP32_OFF32* {.importc: "_SC_V6_ILP32_OFF32", header: "<unistd.h>".}: cint
var SC_V6_ILP32_OFFBIG* {.importc: "_SC_V6_ILP32_OFFBIG", header: "<unistd.h>".}: cint
var SC_V6_LP64_OFF64* {.importc: "_SC_V6_LP64_OFF64", header: "<unistd.h>".}: cint
var SC_V6_LPBIG_OFFBIG* {.importc: "_SC_V6_LPBIG_OFFBIG", header: "<unistd.h>".}: cint
var SC_VERSION* {.importc: "_SC_VERSION", header: "<unistd.h>".}: cint
var SC_XBS5_ILP32_OFF32* {.importc: "_SC_XBS5_ILP32_OFF32", header: "<unistd.h>".}: cint
var SC_XBS5_ILP32_OFFBIG* {.importc: "_SC_XBS5_ILP32_OFFBIG", header: "<unistd.h>".}: cint
var SC_XBS5_LP64_OFF64* {.importc: "_SC_XBS5_LP64_OFF64", header: "<unistd.h>".}: cint
var SC_XBS5_LPBIG_OFFBIG* {.importc: "_SC_XBS5_LPBIG_OFFBIG", header: "<unistd.h>".}: cint
var SC_XOPEN_CRYPT* {.importc: "_SC_XOPEN_CRYPT", header: "<unistd.h>".}: cint
var SC_XOPEN_ENH_I18N* {.importc: "_SC_XOPEN_ENH_I18N", header: "<unistd.h>".}: cint
var SC_XOPEN_LEGACY* {.importc: "_SC_XOPEN_LEGACY", header: "<unistd.h>".}: cint
var SC_XOPEN_REALTIME* {.importc: "_SC_XOPEN_REALTIME", header: "<unistd.h>".}: cint
var SC_XOPEN_REALTIME_THREADS* {.importc: "_SC_XOPEN_REALTIME_THREADS", header: "<unistd.h>".}: cint
var SC_XOPEN_SHM* {.importc: "_SC_XOPEN_SHM", header: "<unistd.h>".}: cint
var SC_XOPEN_STREAMS* {.importc: "_SC_XOPEN_STREAMS", header: "<unistd.h>".}: cint
var SC_XOPEN_UNIX* {.importc: "_SC_XOPEN_UNIX", header: "<unistd.h>".}: cint
var SC_XOPEN_VERSION* {.importc: "_SC_XOPEN_VERSION", header: "<unistd.h>".}: cint
var SC_NPROCESSORS_ONLN* {.importc: "_SC_NPROCESSORS_ONLN", header: "<unistd.h>".}: cint
var SEEK_SET* {.importc: "SEEK_SET", header: "<unistd.h>".}: cint
var SEEK_CUR* {.importc: "SEEK_CUR", header: "<unistd.h>".}: cint
var SEEK_END* {.importc: "SEEK_END", header: "<unistd.h>".}: cint

View File

@@ -312,7 +312,7 @@ proc setFilePos*(f: AsyncFile, pos: int64) =
## operations. The file's first byte has the index zero.
f.offset = pos
when not defined(windows) and not defined(nimdoc):
let ret = lseek(f.fd.cint, pos, SEEK_SET)
let ret = lseek(f.fd.cint, pos.Off, SEEK_SET)
if ret == -1:
raiseOSError(osLastError())
@@ -481,7 +481,8 @@ proc setFileSize*(f: AsyncFile, length: int64) =
(setEndOfFile(f.fd.Handle) == 0):
raiseOSError(osLastError())
else:
if ftruncate(f.fd.cint, length) == -1:
# will truncate if Off is a 32-bit type!
if ftruncate(f.fd.cint, length.Off) == -1:
raiseOSError(osLastError())
proc close*(f: AsyncFile) =

View File

@@ -113,7 +113,7 @@ proc `==`*(a, b: Port): bool {.borrow.}
proc `$`*(p: Port): string {.borrow.}
## returns the port number as a string
proc toInt*(domain: Domain): cint
proc toInt*(domain: Domain): cshort
## Converts the Domain enum to a platform-dependent ``cint``.
proc toInt*(typ: SockType): cint
@@ -123,11 +123,11 @@ proc toInt*(p: Protocol): cint
## Converts the Protocol enum to a platform-dependent ``cint``.
when not useWinVersion:
proc toInt(domain: Domain): cint =
proc toInt(domain: Domain): cshort =
case domain
of AF_UNIX: result = posix.AF_UNIX
of AF_INET: result = posix.AF_INET
of AF_INET6: result = posix.AF_INET6
of AF_UNIX: result = posix.AF_UNIX.cshort
of AF_INET: result = posix.AF_INET.cshort
of AF_INET6: result = posix.AF_INET6.cshort
else: discard
proc toInt(typ: SockType): cint =
@@ -149,7 +149,7 @@ when not useWinVersion:
else: discard
else:
proc toInt(domain: Domain): cint =
proc toInt(domain: Domain): cshort =
result = toU16(ord(domain))
proc toInt(typ: SockType): cint =

View File

@@ -1716,7 +1716,7 @@ template rawToFormalFileInfo(rawInfo, path, formalInfo): untyped =
formalInfo.permissions.incl(formalMode)
formalInfo.id = (rawInfo.st_dev, rawInfo.st_ino)
formalInfo.size = rawInfo.st_size
formalInfo.linkCount = rawInfo.st_Nlink
formalInfo.linkCount = rawInfo.st_Nlink.BiggestInt
formalInfo.lastAccessTime = rawInfo.st_atime
formalInfo.lastWriteTime = rawInfo.st_mtime
formalInfo.creationTime = rawInfo.st_ctime

5
tools/detect/.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
pre.c
pre.i
genconsts.c
other_consts.nim
linux_amd64_consts.nim

File diff suppressed because it is too large Load Diff

View File

@@ -1,631 +0,0 @@
# Generated by detect.nim
const
AIO_ALLDONE* = cint(2)
AIO_CANCELED* = cint(0)
AIO_NOTCANCELED* = cint(1)
LIO_NOP* = cint(2)
LIO_NOWAIT* = cint(1)
LIO_READ* = cint(0)
LIO_WAIT* = cint(0)
LIO_WRITE* = cint(1)
RTLD_LAZY* = cint(1)
RTLD_NOW* = cint(2)
RTLD_GLOBAL* = cint(256)
RTLD_LOCAL* = cint(0)
E2BIG* = cint(7)
EACCES* = cint(13)
EADDRINUSE* = cint(98)
EADDRNOTAVAIL* = cint(99)
EAFNOSUPPORT* = cint(97)
EAGAIN* = cint(11)
EALREADY* = cint(114)
EBADF* = cint(9)
EBADMSG* = cint(74)
EBUSY* = cint(16)
ECANCELED* = cint(125)
ECHILD* = cint(10)
ECONNABORTED* = cint(103)
ECONNREFUSED* = cint(111)
ECONNRESET* = cint(104)
EDEADLK* = cint(35)
EDESTADDRREQ* = cint(89)
EDOM* = cint(33)
EDQUOT* = cint(122)
EEXIST* = cint(17)
EFAULT* = cint(14)
EFBIG* = cint(27)
EHOSTUNREACH* = cint(113)
EIDRM* = cint(43)
EILSEQ* = cint(84)
EINPROGRESS* = cint(115)
EINTR* = cint(4)
EINVAL* = cint(22)
EIO* = cint(5)
EISCONN* = cint(106)
EISDIR* = cint(21)
ELOOP* = cint(40)
EMFILE* = cint(24)
EMLINK* = cint(31)
EMSGSIZE* = cint(90)
EMULTIHOP* = cint(72)
ENAMETOOLONG* = cint(36)
ENETDOWN* = cint(100)
ENETRESET* = cint(102)
ENETUNREACH* = cint(101)
ENFILE* = cint(23)
ENOBUFS* = cint(105)
ENODATA* = cint(61)
ENODEV* = cint(19)
ENOENT* = cint(2)
ENOEXEC* = cint(8)
ENOLCK* = cint(37)
ENOLINK* = cint(67)
ENOMEM* = cint(12)
ENOMSG* = cint(42)
ENOPROTOOPT* = cint(92)
ENOSPC* = cint(28)
ENOSR* = cint(63)
ENOSTR* = cint(60)
ENOSYS* = cint(38)
ENOTCONN* = cint(107)
ENOTDIR* = cint(20)
ENOTEMPTY* = cint(39)
ENOTSOCK* = cint(88)
ENOTSUP* = cint(95)
ENOTTY* = cint(25)
ENXIO* = cint(6)
EOPNOTSUPP* = cint(95)
EOVERFLOW* = cint(75)
EPERM* = cint(1)
EPIPE* = cint(32)
EPROTO* = cint(71)
EPROTONOSUPPORT* = cint(93)
EPROTOTYPE* = cint(91)
ERANGE* = cint(34)
EROFS* = cint(30)
ESPIPE* = cint(29)
ESRCH* = cint(3)
ESTALE* = cint(116)
ETIME* = cint(62)
ETIMEDOUT* = cint(110)
ETXTBSY* = cint(26)
EWOULDBLOCK* = cint(11)
EXDEV* = cint(18)
F_DUPFD* = cint(0)
F_GETFD* = cint(1)
F_SETFD* = cint(2)
F_GETFL* = cint(3)
F_SETFL* = cint(4)
F_GETLK* = cint(5)
F_SETLK* = cint(6)
F_SETLKW* = cint(7)
F_GETOWN* = cint(9)
F_SETOWN* = cint(8)
FD_CLOEXEC* = cint(1)
F_RDLCK* = cint(0)
F_UNLCK* = cint(2)
F_WRLCK* = cint(1)
O_CREAT* = cint(64)
O_EXCL* = cint(128)
O_NOCTTY* = cint(256)
O_TRUNC* = cint(512)
O_APPEND* = cint(1024)
O_DSYNC* = cint(4096)
O_NONBLOCK* = cint(2048)
O_RSYNC* = cint(1052672)
O_SYNC* = cint(1052672)
O_ACCMODE* = cint(3)
O_RDONLY* = cint(0)
O_RDWR* = cint(2)
O_WRONLY* = cint(1)
POSIX_FADV_NORMAL* = cint(0)
POSIX_FADV_SEQUENTIAL* = cint(2)
POSIX_FADV_RANDOM* = cint(1)
POSIX_FADV_WILLNEED* = cint(3)
POSIX_FADV_DONTNEED* = cint(4)
POSIX_FADV_NOREUSE* = cint(5)
FE_DIVBYZERO* = cint(4)
FE_INEXACT* = cint(32)
FE_INVALID* = cint(1)
FE_OVERFLOW* = cint(8)
FE_UNDERFLOW* = cint(16)
FE_ALL_EXCEPT* = cint(61)
FE_DOWNWARD* = cint(1024)
FE_TONEAREST* = cint(0)
FE_TOWARDZERO* = cint(3072)
FE_UPWARD* = cint(2048)
FE_DFL_ENV* = cast[pointer](0xffffffffffffffff)
MM_HARD* = cint(1)
MM_SOFT* = cint(2)
MM_FIRM* = cint(4)
MM_APPL* = cint(8)
MM_UTIL* = cint(16)
MM_OPSYS* = cint(32)
MM_RECOVER* = cint(64)
MM_NRECOV* = cint(128)
MM_HALT* = cint(1)
MM_ERROR* = cint(2)
MM_WARNING* = cint(3)
MM_INFO* = cint(4)
MM_NOSEV* = cint(0)
MM_PRINT* = cint(256)
MM_CONSOLE* = cint(512)
MM_OK* = cint(0)
MM_NOTOK* = cint(-1)
MM_NOMSG* = cint(1)
MM_NOCON* = cint(4)
FNM_NOMATCH* = cint(1)
FNM_PATHNAME* = cint(1)
FNM_PERIOD* = cint(4)
FNM_NOESCAPE* = cint(2)
FTW_F* = cint(0)
FTW_D* = cint(1)
FTW_DNR* = cint(2)
FTW_NS* = cint(3)
FTW_SL* = cint(4)
GLOB_APPEND* = cint(32)
GLOB_DOOFFS* = cint(8)
GLOB_ERR* = cint(1)
GLOB_MARK* = cint(2)
GLOB_NOCHECK* = cint(16)
GLOB_NOESCAPE* = cint(64)
GLOB_NOSORT* = cint(4)
GLOB_ABORTED* = cint(2)
GLOB_NOMATCH* = cint(3)
GLOB_NOSPACE* = cint(1)
GLOB_NOSYS* = cint(4)
CODESET* = cint(14)
D_T_FMT* = cint(131112)
D_FMT* = cint(131113)
T_FMT* = cint(131114)
T_FMT_AMPM* = cint(131115)
AM_STR* = cint(131110)
PM_STR* = cint(131111)
DAY_1* = cint(131079)
DAY_2* = cint(131080)
DAY_3* = cint(131081)
DAY_4* = cint(131082)
DAY_5* = cint(131083)
DAY_6* = cint(131084)
DAY_7* = cint(131085)
ABDAY_1* = cint(131072)
ABDAY_2* = cint(131073)
ABDAY_3* = cint(131074)
ABDAY_4* = cint(131075)
ABDAY_5* = cint(131076)
ABDAY_6* = cint(131077)
ABDAY_7* = cint(131078)
MON_1* = cint(131098)
MON_2* = cint(131099)
MON_3* = cint(131100)
MON_4* = cint(131101)
MON_5* = cint(131102)
MON_6* = cint(131103)
MON_7* = cint(131104)
MON_8* = cint(131105)
MON_9* = cint(131106)
MON_10* = cint(131107)
MON_11* = cint(131108)
MON_12* = cint(131109)
ABMON_1* = cint(131086)
ABMON_2* = cint(131087)
ABMON_3* = cint(131088)
ABMON_4* = cint(131089)
ABMON_5* = cint(131090)
ABMON_6* = cint(131091)
ABMON_7* = cint(131092)
ABMON_8* = cint(131093)
ABMON_9* = cint(131094)
ABMON_10* = cint(131095)
ABMON_11* = cint(131096)
ABMON_12* = cint(131097)
ERA* = cint(131116)
ERA_D_FMT* = cint(131118)
ERA_D_T_FMT* = cint(131120)
ERA_T_FMT* = cint(131121)
ALT_DIGITS* = cint(131119)
RADIXCHAR* = cint(65536)
THOUSEP* = cint(65537)
YESEXPR* = cint(327680)
NOEXPR* = cint(327681)
CRNCYSTR* = cint(262159)
LC_ALL* = cint(6)
LC_COLLATE* = cint(3)
LC_CTYPE* = cint(0)
LC_MESSAGES* = cint(5)
LC_MONETARY* = cint(4)
LC_NUMERIC* = cint(1)
LC_TIME* = cint(2)
PTHREAD_BARRIER_SERIAL_THREAD* = cint(-1)
PTHREAD_CANCEL_ASYNCHRONOUS* = cint(1)
PTHREAD_CANCEL_ENABLE* = cint(0)
PTHREAD_CANCEL_DEFERRED* = cint(0)
PTHREAD_CANCEL_DISABLE* = cint(1)
PTHREAD_CREATE_DETACHED* = cint(1)
PTHREAD_CREATE_JOINABLE* = cint(0)
PTHREAD_EXPLICIT_SCHED* = cint(1)
PTHREAD_INHERIT_SCHED* = cint(0)
PTHREAD_PROCESS_SHARED* = cint(1)
PTHREAD_PROCESS_PRIVATE* = cint(0)
PTHREAD_SCOPE_PROCESS* = cint(1)
PTHREAD_SCOPE_SYSTEM* = cint(0)
POSIX_ASYNC_IO* = cint(1)
F_OK* = cint(0)
R_OK* = cint(4)
W_OK* = cint(2)
X_OK* = cint(1)
CS_PATH* = cint(0)
CS_POSIX_V6_ILP32_OFF32_CFLAGS* = cint(1116)
CS_POSIX_V6_ILP32_OFF32_LDFLAGS* = cint(1117)
CS_POSIX_V6_ILP32_OFF32_LIBS* = cint(1118)
CS_POSIX_V6_ILP32_OFFBIG_CFLAGS* = cint(1120)
CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS* = cint(1121)
CS_POSIX_V6_ILP32_OFFBIG_LIBS* = cint(1122)
CS_POSIX_V6_LP64_OFF64_CFLAGS* = cint(1124)
CS_POSIX_V6_LP64_OFF64_LDFLAGS* = cint(1125)
CS_POSIX_V6_LP64_OFF64_LIBS* = cint(1126)
CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS* = cint(1128)
CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS* = cint(1129)
CS_POSIX_V6_LPBIG_OFFBIG_LIBS* = cint(1130)
CS_POSIX_V6_WIDTH_RESTRICTED_ENVS* = cint(1)
F_LOCK* = cint(1)
F_TEST* = cint(3)
F_TLOCK* = cint(2)
F_ULOCK* = cint(0)
PC_2_SYMLINKS* = cint(20)
PC_ALLOC_SIZE_MIN* = cint(18)
PC_ASYNC_IO* = cint(10)
PC_CHOWN_RESTRICTED* = cint(6)
PC_FILESIZEBITS* = cint(13)
PC_LINK_MAX* = cint(0)
PC_MAX_CANON* = cint(1)
PC_MAX_INPUT* = cint(2)
PC_NAME_MAX* = cint(3)
PC_NO_TRUNC* = cint(7)
PC_PATH_MAX* = cint(4)
PC_PIPE_BUF* = cint(5)
PC_PRIO_IO* = cint(11)
PC_REC_INCR_XFER_SIZE* = cint(14)
PC_REC_MIN_XFER_SIZE* = cint(16)
PC_REC_XFER_ALIGN* = cint(17)
PC_SYMLINK_MAX* = cint(19)
PC_SYNC_IO* = cint(9)
PC_VDISABLE* = cint(8)
SC_2_C_BIND* = cint(47)
SC_2_C_DEV* = cint(48)
SC_2_CHAR_TERM* = cint(95)
SC_2_FORT_DEV* = cint(49)
SC_2_FORT_RUN* = cint(50)
SC_2_LOCALEDEF* = cint(52)
SC_2_PBS* = cint(168)
SC_2_PBS_ACCOUNTING* = cint(169)
SC_2_PBS_CHECKPOINT* = cint(175)
SC_2_PBS_LOCATE* = cint(170)
SC_2_PBS_MESSAGE* = cint(171)
SC_2_PBS_TRACK* = cint(172)
SC_2_SW_DEV* = cint(51)
SC_2_UPE* = cint(97)
SC_2_VERSION* = cint(46)
SC_ADVISORY_INFO* = cint(132)
SC_AIO_LISTIO_MAX* = cint(23)
SC_AIO_MAX* = cint(24)
SC_AIO_PRIO_DELTA_MAX* = cint(25)
SC_ARG_MAX* = cint(0)
SC_ASYNCHRONOUS_IO* = cint(12)
SC_ATEXIT_MAX* = cint(87)
SC_BARRIERS* = cint(133)
SC_BC_BASE_MAX* = cint(36)
SC_BC_DIM_MAX* = cint(37)
SC_BC_SCALE_MAX* = cint(38)
SC_BC_STRING_MAX* = cint(39)
SC_CHILD_MAX* = cint(1)
SC_CLK_TCK* = cint(2)
SC_CLOCK_SELECTION* = cint(137)
SC_COLL_WEIGHTS_MAX* = cint(40)
SC_CPUTIME* = cint(138)
SC_DELAYTIMER_MAX* = cint(26)
SC_EXPR_NEST_MAX* = cint(42)
SC_FSYNC* = cint(15)
SC_GETGR_R_SIZE_MAX* = cint(69)
SC_GETPW_R_SIZE_MAX* = cint(70)
SC_HOST_NAME_MAX* = cint(180)
SC_IOV_MAX* = cint(60)
SC_IPV6* = cint(235)
SC_JOB_CONTROL* = cint(7)
SC_LINE_MAX* = cint(43)
SC_LOGIN_NAME_MAX* = cint(71)
SC_MAPPED_FILES* = cint(16)
SC_MEMLOCK* = cint(17)
SC_MEMLOCK_RANGE* = cint(18)
SC_MEMORY_PROTECTION* = cint(19)
SC_MESSAGE_PASSING* = cint(20)
SC_MONOTONIC_CLOCK* = cint(149)
SC_MQ_OPEN_MAX* = cint(27)
SC_MQ_PRIO_MAX* = cint(28)
SC_NGROUPS_MAX* = cint(3)
SC_OPEN_MAX* = cint(4)
SC_PAGE_SIZE* = cint(30)
SC_PRIORITIZED_IO* = cint(13)
SC_PRIORITY_SCHEDULING* = cint(10)
SC_RAW_SOCKETS* = cint(236)
SC_RE_DUP_MAX* = cint(44)
SC_READER_WRITER_LOCKS* = cint(153)
SC_REALTIME_SIGNALS* = cint(9)
SC_REGEXP* = cint(155)
SC_RTSIG_MAX* = cint(31)
SC_SAVED_IDS* = cint(8)
SC_SEM_NSEMS_MAX* = cint(32)
SC_SEM_VALUE_MAX* = cint(33)
SC_SEMAPHORES* = cint(21)
SC_SHARED_MEMORY_OBJECTS* = cint(22)
SC_SHELL* = cint(157)
SC_SIGQUEUE_MAX* = cint(34)
SC_SPAWN* = cint(159)
SC_SPIN_LOCKS* = cint(154)
SC_SPORADIC_SERVER* = cint(160)
SC_SS_REPL_MAX* = cint(241)
SC_STREAM_MAX* = cint(5)
SC_SYMLOOP_MAX* = cint(173)
SC_SYNCHRONIZED_IO* = cint(14)
SC_THREAD_ATTR_STACKADDR* = cint(77)
SC_THREAD_ATTR_STACKSIZE* = cint(78)
SC_THREAD_CPUTIME* = cint(139)
SC_THREAD_DESTRUCTOR_ITERATIONS* = cint(73)
SC_THREAD_KEYS_MAX* = cint(74)
SC_THREAD_PRIO_INHERIT* = cint(80)
SC_THREAD_PRIO_PROTECT* = cint(81)
SC_THREAD_PRIORITY_SCHEDULING* = cint(79)
SC_THREAD_PROCESS_SHARED* = cint(82)
SC_THREAD_SAFE_FUNCTIONS* = cint(68)
SC_THREAD_SPORADIC_SERVER* = cint(161)
SC_THREAD_STACK_MIN* = cint(75)
SC_THREAD_THREADS_MAX* = cint(76)
SC_THREADS* = cint(67)
SC_TIMEOUTS* = cint(164)
SC_TIMER_MAX* = cint(35)
SC_TIMERS* = cint(11)
SC_TRACE* = cint(181)
SC_TRACE_EVENT_FILTER* = cint(182)
SC_TRACE_EVENT_NAME_MAX* = cint(242)
SC_TRACE_INHERIT* = cint(183)
SC_TRACE_LOG* = cint(184)
SC_TRACE_NAME_MAX* = cint(243)
SC_TRACE_SYS_MAX* = cint(244)
SC_TRACE_USER_EVENT_MAX* = cint(245)
SC_TTY_NAME_MAX* = cint(72)
SC_TYPED_MEMORY_OBJECTS* = cint(165)
SC_TZNAME_MAX* = cint(6)
SC_V6_ILP32_OFF32* = cint(176)
SC_V6_ILP32_OFFBIG* = cint(177)
SC_V6_LP64_OFF64* = cint(178)
SC_V6_LPBIG_OFFBIG* = cint(179)
SC_VERSION* = cint(29)
SC_XBS5_ILP32_OFF32* = cint(125)
SC_XBS5_ILP32_OFFBIG* = cint(126)
SC_XBS5_LP64_OFF64* = cint(127)
SC_XBS5_LPBIG_OFFBIG* = cint(128)
SC_XOPEN_CRYPT* = cint(92)
SC_XOPEN_ENH_I18N* = cint(93)
SC_XOPEN_LEGACY* = cint(129)
SC_XOPEN_REALTIME* = cint(130)
SC_XOPEN_REALTIME_THREADS* = cint(131)
SC_XOPEN_SHM* = cint(94)
SC_XOPEN_STREAMS* = cint(246)
SC_XOPEN_UNIX* = cint(91)
SC_XOPEN_VERSION* = cint(89)
SEEK_SET* = cint(0)
SEEK_CUR* = cint(1)
SEEK_END* = cint(2)
SEM_FAILED* = cast[pointer]((nil))
IPC_CREAT* = cint(512)
IPC_EXCL* = cint(1024)
IPC_NOWAIT* = cint(2048)
IPC_PRIVATE* = cint(0)
IPC_RMID* = cint(0)
IPC_SET* = cint(1)
IPC_STAT* = cint(2)
S_IFMT* = cint(61440)
S_IFBLK* = cint(24576)
S_IFCHR* = cint(8192)
S_IFIFO* = cint(4096)
S_IFREG* = cint(32768)
S_IFDIR* = cint(16384)
S_IFLNK* = cint(40960)
S_IFSOCK* = cint(49152)
S_IRWXU* = cint(448)
S_IRUSR* = cint(256)
S_IWUSR* = cint(128)
S_IXUSR* = cint(64)
S_IRWXG* = cint(56)
S_IRGRP* = cint(32)
S_IWGRP* = cint(16)
S_IXGRP* = cint(8)
S_IRWXO* = cint(7)
S_IROTH* = cint(4)
S_IWOTH* = cint(2)
S_IXOTH* = cint(1)
S_ISUID* = cint(2048)
S_ISGID* = cint(1024)
S_ISVTX* = cint(512)
ST_RDONLY* = cint(1)
ST_NOSUID* = cint(2)
PROT_READ* = cint(1)
PROT_WRITE* = cint(2)
PROT_EXEC* = cint(4)
PROT_NONE* = cint(0)
MAP_SHARED* = cint(1)
MAP_PRIVATE* = cint(2)
MAP_FIXED* = cint(16)
MS_ASYNC* = cint(1)
MS_SYNC* = cint(4)
MS_INVALIDATE* = cint(2)
MCL_CURRENT* = cint(1)
MCL_FUTURE* = cint(2)
MAP_FAILED* = cast[pointer](0xffffffffffffffff)
POSIX_MADV_NORMAL* = cint(0)
POSIX_MADV_SEQUENTIAL* = cint(2)
POSIX_MADV_RANDOM* = cint(1)
POSIX_MADV_WILLNEED* = cint(3)
POSIX_MADV_DONTNEED* = cint(4)
CLOCKS_PER_SEC* = clong(1000000)
CLOCK_PROCESS_CPUTIME_ID* = cint(2)
CLOCK_THREAD_CPUTIME_ID* = cint(3)
CLOCK_REALTIME* = cint(0)
TIMER_ABSTIME* = cint(1)
CLOCK_MONOTONIC* = cint(1)
WNOHANG* = cint(1)
WUNTRACED* = cint(2)
WEXITED* = cint(4)
WSTOPPED* = cint(2)
WCONTINUED* = cint(8)
WNOWAIT* = cint(16777216)
SIGEV_NONE* = cint(1)
SIGEV_SIGNAL* = cint(0)
SIGEV_THREAD* = cint(2)
SIGABRT* = cint(6)
SIGALRM* = cint(14)
SIGBUS* = cint(7)
SIGCHLD* = cint(17)
SIGCONT* = cint(18)
SIGFPE* = cint(8)
SIGHUP* = cint(1)
SIGILL* = cint(4)
SIGINT* = cint(2)
SIGKILL* = cint(9)
SIGPIPE* = cint(13)
SIGQUIT* = cint(3)
SIGSEGV* = cint(11)
SIGSTOP* = cint(19)
SIGTERM* = cint(15)
SIGTSTP* = cint(20)
SIGTTIN* = cint(21)
SIGTTOU* = cint(22)
SIGUSR1* = cint(10)
SIGUSR2* = cint(12)
SIGPOLL* = cint(29)
SIGPROF* = cint(27)
SIGSYS* = cint(31)
SIGTRAP* = cint(5)
SIGURG* = cint(23)
SIGVTALRM* = cint(26)
SIGXCPU* = cint(24)
SIGXFSZ* = cint(25)
SA_NOCLDSTOP* = cint(1)
SIG_BLOCK* = cint(0)
SIG_UNBLOCK* = cint(1)
SIG_SETMASK* = cint(2)
SA_ONSTACK* = cint(134217728)
SA_RESETHAND* = cint(-2147483648)
SA_RESTART* = cint(268435456)
SA_SIGINFO* = cint(4)
SA_NOCLDWAIT* = cint(2)
SA_NODEFER* = cint(1073741824)
SS_ONSTACK* = cint(1)
SS_DISABLE* = cint(2)
MINSIGSTKSZ* = cint(2048)
SIGSTKSZ* = cint(8192)
NL_SETD* = cint(1)
NL_CAT_LOCALE* = cint(1)
SCHED_FIFO* = cint(1)
SCHED_RR* = cint(2)
SCHED_OTHER* = cint(0)
FD_SETSIZE* = cint(1024)
IF_NAMESIZE* = cint(16)
SCM_RIGHTS* = cint(1)
SOCK_DGRAM* = cint(2)
SOCK_RAW* = cint(3)
SOCK_SEQPACKET* = cint(5)
SOCK_STREAM* = cint(1)
SOL_SOCKET* = cint(1)
SO_ACCEPTCONN* = cint(30)
SO_BROADCAST* = cint(6)
SO_DEBUG* = cint(1)
SO_DONTROUTE* = cint(5)
SO_ERROR* = cint(4)
SO_KEEPALIVE* = cint(9)
SO_LINGER* = cint(13)
SO_OOBINLINE* = cint(10)
SO_RCVBUF* = cint(8)
SO_RCVLOWAT* = cint(18)
SO_RCVTIMEO* = cint(20)
SO_REUSEADDR* = cint(2)
SO_SNDBUF* = cint(7)
SO_SNDLOWAT* = cint(19)
SO_SNDTIMEO* = cint(21)
SO_TYPE* = cint(3)
SOMAXCONN* = cint(128)
MSG_CTRUNC* = cint(8)
MSG_DONTROUTE* = cint(4)
MSG_EOR* = cint(128)
MSG_OOB* = cint(1)
MSG_PEEK* = cint(2)
MSG_TRUNC* = cint(32)
MSG_WAITALL* = cint(256)
AF_INET* = cint(2)
AF_INET6* = cint(10)
AF_UNIX* = cint(1)
AF_UNSPEC* = cint(0)
SHUT_RD* = cint(0)
SHUT_RDWR* = cint(2)
SHUT_WR* = cint(1)
IPPROTO_IP* = cint(0)
IPPROTO_IPV6* = cint(41)
IPPROTO_ICMP* = cint(1)
IPPROTO_RAW* = cint(255)
IPPROTO_TCP* = cint(6)
IPPROTO_UDP* = cint(17)
INADDR_ANY* = cint(0)
INADDR_BROADCAST* = cint(-1)
INET_ADDRSTRLEN* = cint(16)
IPV6_JOIN_GROUP* = cint(20)
IPV6_LEAVE_GROUP* = cint(21)
IPV6_MULTICAST_HOPS* = cint(18)
IPV6_MULTICAST_IF* = cint(17)
IPV6_MULTICAST_LOOP* = cint(19)
IPV6_UNICAST_HOPS* = cint(16)
IPV6_V6ONLY* = cint(26)
IPPORT_RESERVED* = cint(1024)
HOST_NOT_FOUND* = cint(1)
NO_DATA* = cint(4)
NO_RECOVERY* = cint(3)
TRY_AGAIN* = cint(2)
AI_PASSIVE* = cint(1)
AI_CANONNAME* = cint(2)
AI_NUMERICHOST* = cint(4)
AI_NUMERICSERV* = cint(1024)
AI_V4MAPPED* = cint(8)
AI_ALL* = cint(16)
AI_ADDRCONFIG* = cint(32)
NI_NOFQDN* = cint(4)
NI_NUMERICHOST* = cint(1)
NI_NAMEREQD* = cint(8)
NI_NUMERICSERV* = cint(2)
NI_DGRAM* = cint(16)
EAI_AGAIN* = cint(-3)
EAI_BADFLAGS* = cint(-1)
EAI_FAIL* = cint(-4)
EAI_FAMILY* = cint(-6)
EAI_MEMORY* = cint(-10)
EAI_NONAME* = cint(-2)
EAI_SERVICE* = cint(-8)
EAI_SOCKTYPE* = cint(-7)
EAI_SYSTEM* = cint(-11)
EAI_OVERFLOW* = cint(-12)
POLLIN* = cshort(1)
POLLRDNORM* = cshort(64)
POLLRDBAND* = cshort(128)
POLLPRI* = cshort(2)
POLLOUT* = cshort(4)
POLLWRNORM* = cshort(256)
POLLWRBAND* = cshort(512)
POLLERR* = cshort(8)
POLLHUP* = cshort(16)
POLLNVAL* = cshort(32)
POSIX_SPAWN_RESETIDS* = cint(1)
POSIX_SPAWN_SETPGROUP* = cint(2)
POSIX_SPAWN_SETSCHEDPARAM* = cint(16)
POSIX_SPAWN_SETSCHEDULER* = cint(32)
POSIX_SPAWN_SETSIGDEF* = cint(4)
POSIX_SPAWN_SETSIGMASK* = cint(8)
IOFBF* = cint(0)
IONBF* = cint(2)