1# Generated by detect.nim
2
3
4
5# <errno.h>
6var E2BIG* {.importc: "E2BIG", header: "<errno.h>".}: cint
7var EACCES* {.importc: "EACCES", header: "<errno.h>".}: cint
8var EADDRINUSE* {.importc: "EADDRINUSE", header: "<errno.h>".}: cint
9var EADDRNOTAVAIL* {.importc: "EADDRNOTAVAIL", header: "<errno.h>".}: cint
10var EAFNOSUPPORT* {.importc: "EAFNOSUPPORT", header: "<errno.h>".}: cint
11var EAGAIN* {.importc: "EAGAIN", header: "<errno.h>".}: cint
12var EALREADY* {.importc: "EALREADY", header: "<errno.h>".}: cint
13var EBADF* {.importc: "EBADF", header: "<errno.h>".}: cint
14var EBADMSG* {.importc: "EBADMSG", header: "<errno.h>".}: cint
15var EBUSY* {.importc: "EBUSY", header: "<errno.h>".}: cint
16var ECANCELED* {.importc: "ECANCELED", header: "<errno.h>".}: cint
17var ECHILD* {.importc: "ECHILD", header: "<errno.h>".}: cint
18var ECONNABORTED* {.importc: "ECONNABORTED", header: "<errno.h>".}: cint
19var ECONNREFUSED* {.importc: "ECONNREFUSED", header: "<errno.h>".}: cint
20var ECONNRESET* {.importc: "ECONNRESET", header: "<errno.h>".}: cint
21var EDEADLK* {.importc: "EDEADLK", header: "<errno.h>".}: cint
22var EDESTADDRREQ* {.importc: "EDESTADDRREQ", header: "<errno.h>".}: cint
23var EDOM* {.importc: "EDOM", header: "<errno.h>".}: cint
24var EDQUOT* {.importc: "EDQUOT", header: "<errno.h>".}: cint
25var EEXIST* {.importc: "EEXIST", header: "<errno.h>".}: cint
26var EFAULT* {.importc: "EFAULT", header: "<errno.h>".}: cint
27var EFBIG* {.importc: "EFBIG", header: "<errno.h>".}: cint
28var EHOSTUNREACH* {.importc: "EHOSTUNREACH", header: "<errno.h>".}: cint
29var EIDRM* {.importc: "EIDRM", header: "<errno.h>".}: cint
30var EILSEQ* {.importc: "EILSEQ", header: "<errno.h>".}: cint
31var EINPROGRESS* {.importc: "EINPROGRESS", header: "<errno.h>".}: cint
32var EINTR* {.importc: "EINTR", header: "<errno.h>".}: cint
33var EINVAL* {.importc: "EINVAL", header: "<errno.h>".}: cint
34var EIO* {.importc: "EIO", header: "<errno.h>".}: cint
35var EISCONN* {.importc: "EISCONN", header: "<errno.h>".}: cint
36var EISDIR* {.importc: "EISDIR", header: "<errno.h>".}: cint
37var ELOOP* {.importc: "ELOOP", header: "<errno.h>".}: cint
38var EMFILE* {.importc: "EMFILE", header: "<errno.h>".}: cint
39var EMLINK* {.importc: "EMLINK", header: "<errno.h>".}: cint
40var EMSGSIZE* {.importc: "EMSGSIZE", header: "<errno.h>".}: cint
41var EMULTIHOP* {.importc: "EMULTIHOP", header: "<errno.h>".}: cint
42var ENAMETOOLONG* {.importc: "ENAMETOOLONG", header: "<errno.h>".}: cint
43var ENETDOWN* {.importc: "ENETDOWN", header: "<errno.h>".}: cint
44var ENETRESET* {.importc: "ENETRESET", header: "<errno.h>".}: cint
45var ENETUNREACH* {.importc: "ENETUNREACH", header: "<errno.h>".}: cint
46var ENFILE* {.importc: "ENFILE", header: "<errno.h>".}: cint
47var ENOBUFS* {.importc: "ENOBUFS", header: "<errno.h>".}: cint
48var ENODATA* {.importc: "ENODATA", header: "<errno.h>".}: cint
49var ENODEV* {.importc: "ENODEV", header: "<errno.h>".}: cint
50var ENOENT* {.importc: "ENOENT", header: "<errno.h>".}: cint
51var ENOEXEC* {.importc: "ENOEXEC", header: "<errno.h>".}: cint
52var ENOLCK* {.importc: "ENOLCK", header: "<errno.h>".}: cint
53var ENOLINK* {.importc: "ENOLINK", header: "<errno.h>".}: cint
54var ENOMEM* {.importc: "ENOMEM", header: "<errno.h>".}: cint
55var ENOMSG* {.importc: "ENOMSG", header: "<errno.h>".}: cint
56var ENOPROTOOPT* {.importc: "ENOPROTOOPT", header: "<errno.h>".}: cint
57var ENOSPC* {.importc: "ENOSPC", header: "<errno.h>".}: cint
58var ENOSR* {.importc: "ENOSR", header: "<errno.h>".}: cint
59var ENOSTR* {.importc: "ENOSTR", header: "<errno.h>".}: cint
60var ENOSYS* {.importc: "ENOSYS", header: "<errno.h>".}: cint
61var ENOTCONN* {.importc: "ENOTCONN", header: "<errno.h>".}: cint
62var ENOTDIR* {.importc: "ENOTDIR", header: "<errno.h>".}: cint
63var ENOTEMPTY* {.importc: "ENOTEMPTY", header: "<errno.h>".}: cint
64var ENOTSOCK* {.importc: "ENOTSOCK", header: "<errno.h>".}: cint
65var ENOTSUP* {.importc: "ENOTSUP", header: "<errno.h>".}: cint
66var ENOTTY* {.importc: "ENOTTY", header: "<errno.h>".}: cint
67var ENXIO* {.importc: "ENXIO", header: "<errno.h>".}: cint
68var EOPNOTSUPP* {.importc: "EOPNOTSUPP", header: "<errno.h>".}: cint
69var EOVERFLOW* {.importc: "EOVERFLOW", header: "<errno.h>".}: cint
70var EPERM* {.importc: "EPERM", header: "<errno.h>".}: cint
71var EPIPE* {.importc: "EPIPE", header: "<errno.h>".}: cint
72var EPROTO* {.importc: "EPROTO", header: "<errno.h>".}: cint
73var EPROTONOSUPPORT* {.importc: "EPROTONOSUPPORT", header: "<errno.h>".}: cint
74var EPROTOTYPE* {.importc: "EPROTOTYPE", header: "<errno.h>".}: cint
75var ERANGE* {.importc: "ERANGE", header: "<errno.h>".}: cint
76var EROFS* {.importc: "EROFS", header: "<errno.h>".}: cint
77var ESPIPE* {.importc: "ESPIPE", header: "<errno.h>".}: cint
78var ESRCH* {.importc: "ESRCH", header: "<errno.h>".}: cint
79var ESTALE* {.importc: "ESTALE", header: "<errno.h>".}: cint
80var ETIME* {.importc: "ETIME", header: "<errno.h>".}: cint
81var ETIMEDOUT* {.importc: "ETIMEDOUT", header: "<errno.h>".}: cint
82var ETXTBSY* {.importc: "ETXTBSY", header: "<errno.h>".}: cint
83var EWOULDBLOCK* {.importc: "EWOULDBLOCK", header: "<errno.h>".}: cint
84var EXDEV* {.importc: "EXDEV", header: "<errno.h>".}: cint
85
86# <sys/fcntl.h>
87var F_GETFD* {.importc: "F_GETFD", header: "<sys/fcntl.h>".}: cint
88# var F_SETFD* {.importc: "F_SETFD", header: "<sys/fcntl.h>".}: cint
89var F_GETFL* {.importc: "F_GETFL", header: "<sys/fcntl.h>".}: cint
90var F_SETFL* {.importc: "F_SETFL", header: "<sys/fcntl.h>".}: cint
91# var F_GETLK* {.importc: "F_GETLK", header: "<sys/fcntl.h>".}: cint
92# var F_SETLK* {.importc: "F_SETLK", header: "<sys/fcntl.h>".}: cint
93# var F_SETLKW* {.importc: "F_SETLKW", header: "<sys/fcntl.h>".}: cint
94# var F_GETOWN* {.importc: "F_GETOWN", header: "<sys/fcntl.h>".}: cint
95# var F_SETOWN* {.importc: "F_SETOWN", header: "<sys/fcntl.h>".}: cint
96# var FD_CLOEXEC* {.importc: "FD_CLOEXEC", header: "<sys/fcntl.h>".}: cint
97# var F_RDLCK* {.importc: "F_RDLCK", header: "<sys/fcntl.h>".}: cint
98# var F_UNLCK* {.importc: "F_UNLCK", header: "<sys/fcntl.h>".}: cint
99# var F_WRLCK* {.importc: "F_WRLCK", header: "<sys/fcntl.h>".}: cint
100var O_CREAT* {.importc: "O_CREAT", header: "<sys/fcntl.h>".}: cint
101var O_EXCL* {.importc: "O_EXCL", header: "<sys/fcntl.h>".}: cint
102# var O_NOCTTY* {.importc: "O_NOCTTY", header: "<sys/fcntl.h>".}: cint
103var O_TRUNC* {.importc: "O_TRUNC", header: "<sys/fcntl.h>".}: cint
104var O_APPEND* {.importc: "O_APPEND", header: "<sys/fcntl.h>".}: cint
105# var O_DSYNC* {.importc: "O_DSYNC", header: "<sys/fcntl.h>".}: cint
106var O_NONBLOCK* {.importc: "O_NONBLOCK", header: "<sys/fcntl.h>".}: cint
107# var O_RSYNC* {.importc: "O_RSYNC", header: "<sys/fcntl.h>".}: cint
108# var O_SYNC* {.importc: "O_SYNC", header: "<sys/fcntl.h>".}: cint
109# var O_ACCMODE* {.importc: "O_ACCMODE", header: "<sys/fcntl.h>".}: cint
110var O_RDONLY* {.importc: "O_RDONLY", header: "<sys/fcntl.h>".}: cint
111var O_RDWR* {.importc: "O_RDWR", header: "<sys/fcntl.h>".}: cint
112var O_WRONLY* {.importc: "O_WRONLY", header: "<sys/fcntl.h>".}: cint
113# var O_CLOEXEC* {.importc: "O_CLOEXEC", header: "<sys/fcntl.h>".}: cint
114
115# # <locale.h>
116# var LC_ALL* {.importc: "LC_ALL", header: "<locale.h>".}: cint
117# var LC_COLLATE* {.importc: "LC_COLLATE", header: "<locale.h>".}: cint
118# var LC_CTYPE* {.importc: "LC_CTYPE", header: "<locale.h>".}: cint
119# var LC_MESSAGES* {.importc: "LC_MESSAGES", header: "<locale.h>".}: cint
120# var LC_MONETARY* {.importc: "LC_MONETARY", header: "<locale.h>".}: cint
121# var LC_NUMERIC* {.importc: "LC_NUMERIC", header: "<locale.h>".}: cint
122# var LC_TIME* {.importc: "LC_TIME", header: "<locale.h>".}: cint
123
124# <netdb.h>
125var HOST_NOT_FOUND* {.importc: "HOST_NOT_FOUND", header: "<netdb.h>".}: cint
126var NO_DATA* {.importc: "NO_DATA", header: "<netdb.h>".}: cint
127var NO_RECOVERY* {.importc: "NO_RECOVERY", header: "<netdb.h>".}: cint
128var TRY_AGAIN* {.importc: "TRY_AGAIN", header: "<netdb.h>".}: cint
129var AI_PASSIVE* {.importc: "AI_PASSIVE", header: "<netdb.h>".}: cint
130var AI_CANONNAME* {.importc: "AI_CANONNAME", header: "<netdb.h>".}: cint
131var AI_NUMERICHOST* {.importc: "AI_NUMERICHOST", header: "<netdb.h>".}: cint
132var AI_NUMERICSERV* {.importc: "AI_NUMERICSERV", header: "<netdb.h>".}: cint
133var AI_V4MAPPED* {.importc: "AI_V4MAPPED", header: "<netdb.h>".}: cint
134var AI_ALL* {.importc: "AI_ALL", header: "<netdb.h>".}: cint
135var AI_ADDRCONFIG* {.importc: "AI_ADDRCONFIG", header: "<netdb.h>".}: cint
136var NI_NOFQDN* {.importc: "NI_NOFQDN", header: "<netdb.h>".}: cint
137var NI_NUMERICHOST* {.importc: "NI_NUMERICHOST", header: "<netdb.h>".}: cint
138var NI_NAMEREQD* {.importc: "NI_NAMEREQD", header: "<netdb.h>".}: cint
139var NI_NUMERICSERV* {.importc: "NI_NUMERICSERV", header: "<netdb.h>".}: cint
140var NI_DGRAM* {.importc: "NI_DGRAM", header: "<netdb.h>".}: cint
141var EAI_AGAIN* {.importc: "EAI_AGAIN", header: "<netdb.h>".}: cint
142var EAI_BADFLAGS* {.importc: "EAI_BADFLAGS", header: "<netdb.h>".}: cint
143var EAI_FAIL* {.importc: "EAI_FAIL", header: "<netdb.h>".}: cint
144var EAI_FAMILY* {.importc: "EAI_FAMILY", header: "<netdb.h>".}: cint
145var EAI_MEMORY* {.importc: "EAI_MEMORY", header: "<netdb.h>".}: cint
146var EAI_NONAME* {.importc: "EAI_NONAME", header: "<netdb.h>".}: cint
147var EAI_SERVICE* {.importc: "EAI_SERVICE", header: "<netdb.h>".}: cint
148var EAI_SOCKTYPE* {.importc: "EAI_SOCKTYPE", header: "<netdb.h>".}: cint
149
150var LWIP_DNS_API_DECLARE_H_ERRNO* {.importc: "LWIP_DNS_API_DECLARE_H_ERRNO", header: "<netdb.h>".}: cint
151var LWIP_DNS_API_DEFINE_ERRORS* {.importc: "LWIP_DNS_API_DEFINE_ERRORS", header: "<netdb.h>".}: cint
152var LWIP_DNS_API_DEFINE_FLAGS* {.importc: "LWIP_DNS_API_DEFINE_FLAGS", header: "<netdb.h>".}: cint
153var LWIP_DNS_API_DECLARE_STRUCTS* {.importc: "LWIP_DNS_API_DECLARE_STRUCTS", header: "<netdb.h>".}: cint
154var NETDB_ELEM_SIZE* {.importc: "NETDB_ELEM_SIZE", header: "<netdb.h>".}: cint
155
156
157# <netif.h>
158var ENABLE_LOOPBACK* {.importc: "ENABLE_LOOPBACK", header: "<netif.h>".}: cint
159var NETIF_MAX_HWADDR_LEN* {.importc: "NETIF_MAX_HWADDR_LEN", header: "<netif.h>".}: cint
160var NETIF_NAMESIZE* {.importc: "NETIF_NAMESIZE", header: "<netif.h>".}: cint
161var NETIF_FLAG_UP* {.importc: "NETIF_FLAG_UP", header: "<netif.h>".}: cint
162var NETIF_FLAG_BROADCAST* {.importc: "NETIF_FLAG_BROADCAST", header: "<netif.h>".}: cint
163var NETIF_FLAG_LINK_UP* {.importc: "NETIF_FLAG_LINK_UP", header: "<netif.h>".}: cint
164var NETIF_FLAG_ETHARP* {.importc: "NETIF_FLAG_ETHARP", header: "<netif.h>".}: cint
165var NETIF_FLAG_ETHERNET* {.importc: "NETIF_FLAG_ETHERNET", header: "<netif.h>".}: cint
166var NETIF_FLAG_IGMP* {.importc: "NETIF_FLAG_IGMP", header: "<netif.h>".}: cint
167var NETIF_FLAG_MLD6* {.importc: "NETIF_FLAG_MLD6", header: "<netif.h>".}: cint
168var NETIF_FLAG_GARP* {.importc: "NETIF_FLAG_GARP", header: "<netif.h>".}: cint
169var NETIF_CHECKSUM_GEN_IP* {.importc: "NETIF_CHECKSUM_GEN_IP", header: "<netif.h>".}: cint
170var NETIF_CHECKSUM_GEN_UDP* {.importc: "NETIF_CHECKSUM_GEN_UDP", header: "<netif.h>".}: cint
171var NETIF_CHECKSUM_GEN_TCP* {.importc: "NETIF_CHECKSUM_GEN_TCP", header: "<netif.h>".}: cint
172var NETIF_CHECKSUM_GEN_ICMP* {.importc: "NETIF_CHECKSUM_GEN_ICMP", header: "<netif.h>".}: cint
173var NETIF_CHECKSUM_GEN_ICMP6* {.importc: "NETIF_CHECKSUM_GEN_ICMP6", header: "<netif.h>".}: cint
174var NETIF_CHECKSUM_CHECK_IP* {.importc: "NETIF_CHECKSUM_CHECK_IP", header: "<netif.h>".}: cint
175var NETIF_CHECKSUM_CHECK_UDP* {.importc: "NETIF_CHECKSUM_CHECK_UDP", header: "<netif.h>".}: cint
176var NETIF_CHECKSUM_CHECK_TCP* {.importc: "NETIF_CHECKSUM_CHECK_TCP", header: "<netif.h>".}: cint
177var NETIF_CHECKSUM_CHECK_ICMP* {.importc: "NETIF_CHECKSUM_CHECK_ICMP", header: "<netif.h>".}: cint
178var NETIF_CHECKSUM_CHECK_ICMP6* {.importc: "NETIF_CHECKSUM_CHECK_ICMP6", header: "<netif.h>".}: cint
179var NETIF_CHECKSUM_ENABLE_ALL* {.importc: "NETIF_CHECKSUM_ENABLE_ALL", header: "<netif.h>".}: cint
180var NETIF_CHECKSUM_DISABLE_ALL* {.importc: "NETIF_CHECKSUM_DISABLE_ALL", header: "<netif.h>".}: cint
181var NETIF_ADDR_IDX_MAX* {.importc: "NETIF_ADDR_IDX_MAX", header: "<netif.h>".}: cint
182var LWIP_NETIF_USE_HINTS* {.importc: "LWIP_NETIF_USE_HINTS", header: "<netif.h>".}: cint
183var NETIF_NO_INDEX* {.importc: "NETIF_NO_INDEX", header: "<netif.h>".}: cint
184var LWIP_NSC_NONE* {.importc: "LWIP_NSC_NONE", header: "<netif.h>".}: cint
185var LWIP_NSC_NETIF_ADDED* {.importc: "LWIP_NSC_NETIF_ADDED", header: "<netif.h>".}: cint
186var LWIP_NSC_NETIF_REMOVED* {.importc: "LWIP_NSC_NETIF_REMOVED", header: "<netif.h>".}: cint
187var LWIP_NSC_LINK_CHANGED* {.importc: "LWIP_NSC_LINK_CHANGED", header: "<netif.h>".}: cint
188var LWIP_NSC_STATUS_CHANGED* {.importc: "LWIP_NSC_STATUS_CHANGED", header: "<netif.h>".}: cint
189var LWIP_NSC_IPV4_ADDRESS_CHANGED* {.importc: "LWIP_NSC_IPV4_ADDRESS_CHANGED", header: "<netif.h>".}: cint
190var LWIP_NSC_IPV4_GATEWAY_CHANGED* {.importc: "LWIP_NSC_IPV4_GATEWAY_CHANGED", header: "<netif.h>".}: cint
191var LWIP_NSC_IPV4_NETMASK_CHANGED* {.importc: "LWIP_NSC_IPV4_NETMASK_CHANGED", header: "<netif.h>".}: cint
192var LWIP_NSC_IPV4_SETTINGS_CHANGED* {.importc: "LWIP_NSC_IPV4_SETTINGS_CHANGED", header: "<netif.h>".}: cint
193var LWIP_NSC_IPV6_SET* {.importc: "LWIP_NSC_IPV6_SET", header: "<netif.h>".}: cint
194var LWIP_NSC_IPV6_ADDR_STATE_CHANGED* {.importc: "LWIP_NSC_IPV6_ADDR_STATE_CHANGED", header: "<netif.h>".}: cint
195#define NETIF_DECLARE_EXT_CALLBACK(name)
196
197
198# <net/if.h>
199var IF_NAMESIZE* {.importc: "IF_NAMESIZE", header: "<net/if.h>".}: cint
200
201# <sys/socket.h>
202var IPPROTO_IP* {.importc: "IPPROTO_IP", header: "<sys/socket.h>".}: cint
203var IPPROTO_IPV6* {.importc: "IPPROTO_IPV6", header: "<sys/socket.h>".}: cint
204var IPPROTO_ICMP* {.importc: "IPPROTO_ICMP", header: "<sys/socket.h>".}: cint
205var IPPROTO_ICMPV6* {.importc: "IPPROTO_ICMPV6", header: "<sys/socket.h>".}: cint
206var IPPROTO_RAW* {.importc: "IPPROTO_RAW", header: "<sys/socket.h>".}: cint
207var IPPROTO_TCP* {.importc: "IPPROTO_TCP", header: "<sys/socket.h>".}: cint
208var IPPROTO_UDP* {.importc: "IPPROTO_UDP", header: "<sys/socket.h>".}: cint
209var INADDR_ANY* {.importc: "INADDR_ANY", header: "<sys/socket.h>".}: InAddrScalar
210var INADDR_LOOPBACK* {.importc: "INADDR_LOOPBACK", header: "<sys/socket.h>".}: InAddrScalar
211var INADDR_BROADCAST* {.importc: "INADDR_BROADCAST", header: "<sys/socket.h>".}: InAddrScalar
212var INET_ADDRSTRLEN* {.importc: "INET_ADDRSTRLEN", header: "<sys/socket.h>".}: cint
213var INET6_ADDRSTRLEN* {.importc: "INET6_ADDRSTRLEN", header: "<sys/socket.h>".}: cint
214var IPV6_JOIN_GROUP* {.importc: "IPV6_JOIN_GROUP", header: "<sys/socket.h>".}: cint
215var IPV6_LEAVE_GROUP* {.importc: "IPV6_LEAVE_GROUP", header: "<sys/socket.h>".}: cint
216var IPV6_MULTICAST_HOPS* {.importc: "IPV6_MULTICAST_HOPS", header: "<sys/socket.h>".}: cint
217var IPV6_MULTICAST_IF* {.importc: "IPV6_MULTICAST_IF", header: "<sys/socket.h>".}: cint
218var IPV6_MULTICAST_LOOP* {.importc: "IPV6_MULTICAST_LOOP", header: "<sys/socket.h>".}: cint
219var IPV6_UNICAST_HOPS* {.importc: "IPV6_UNICAST_HOPS", header: "<sys/socket.h>".}: cint
220var IPV6_V6ONLY* {.importc: "IPV6_V6ONLY", header: "<sys/socket.h>".}: cint
221
222# <netinet/tcp.h>
223const TCP_NODELAY*    = 0x01    # don't delay send to coalesce packets
224const TCP_KEEPALIVE*  = 0x02    # send KEEPALIVE probes when idle for pcb->keep_idle milliseconds
225const TCP_KEEPIDLE*   = 0x03    # set pcb->keep_idle  - Same as TCP_KEEPALIVE, but use seconds for get/setsockopt
226const TCP_KEEPINTVL*  = 0x04    # set pcb->keep_intvl - Use seconds for get/setsockopt
227const TCP_KEEPCNT*    = 0x05    # set pcb->keep_cnt   - Use number of probes sent for get/setsockopt
228
229# <nl_types.h>
230# var NL_SETD* {.importc: "NL_SETD", header: "<nl_types.h>".}: cint
231# var NL_CAT_LOCALE* {.importc: "NL_CAT_LOCALE", header: "<nl_types.h>".}: cint
232
233# <sys/poll.h>
234# var POLLIN* {.importc: "POLLIN", header: "<sys/poll.h>".}: cshort
235# var POLLRDNORM* {.importc: "POLLRDNORM", header: "<sys/poll.h>".}: cshort
236# var POLLRDBAND* {.importc: "POLLRDBAND", header: "<sys/poll.h>".}: cshort
237# var POLLPRI* {.importc: "POLLPRI", header: "<sys/poll.h>".}: cshort
238# var POLLOUT* {.importc: "POLLOUT", header: "<sys/poll.h>".}: cshort
239# var POLLWRNORM* {.importc: "POLLWRNORM", header: "<sys/poll.h>".}: cshort
240# var POLLWRBAND* {.importc: "POLLWRBAND", header: "<sys/poll.h>".}: cshort
241# var POLLERR* {.importc: "POLLERR", header: "<sys/poll.h>".}: cshort
242# var POLLHUP* {.importc: "POLLHUP", header: "<sys/poll.h>".}: cshort
243# var POLLNVAL* {.importc: "POLLNVAL", header: "<sys/poll.h>".}: cshort
244
245# <pthread.h>
246var PTHREAD_STACK_MIN* {.importc: "PTHREAD_STACK_MIN", header: "<pthread.h>".}: cint
247# var PTHREAD_BARRIER_SERIAL_THREAD* {.importc: "PTHREAD_BARRIER_SERIAL_THREAD", header: "<pthread.h>".}: cint
248# var PTHREAD_CANCEL_ASYNCHRONOUS* {.importc: "PTHREAD_CANCEL_ASYNCHRONOUS", header: "<pthread.h>".}: cint
249# var PTHREAD_CANCEL_ENABLE* {.importc: "PTHREAD_CANCEL_ENABLE", header: "<pthread.h>".}: cint
250# var PTHREAD_CANCEL_DEFERRED* {.importc: "PTHREAD_CANCEL_DEFERRED", header: "<pthread.h>".}: cint
251# var PTHREAD_CANCEL_DISABLE* {.importc: "PTHREAD_CANCEL_DISABLE", header: "<pthread.h>".}: cint
252# var PTHREAD_CREATE_DETACHED* {.importc: "PTHREAD_CREATE_DETACHED", header: "<pthread.h>".}: cint
253# var PTHREAD_CREATE_JOINABLE* {.importc: "PTHREAD_CREATE_JOINABLE", header: "<pthread.h>".}: cint
254# var PTHREAD_EXPLICIT_SCHED* {.importc: "PTHREAD_EXPLICIT_SCHED", header: "<pthread.h>".}: cint
255# var PTHREAD_INHERIT_SCHED* {.importc: "PTHREAD_INHERIT_SCHED", header: "<pthread.h>".}: cint
256# var PTHREAD_MUTEX_DEFAULT* {.importc: "PTHREAD_MUTEX_DEFAULT", header: "<pthread.h>".}: cint
257# var PTHREAD_MUTEX_ERRORCHECK* {.importc: "PTHREAD_MUTEX_ERRORCHECK", header: "<pthread.h>".}: cint
258# var PTHREAD_MUTEX_NORMAL* {.importc: "PTHREAD_MUTEX_NORMAL", header: "<pthread.h>".}: cint
259# var PTHREAD_MUTEX_RECURSIVE* {.importc: "PTHREAD_MUTEX_RECURSIVE", header: "<pthread.h>".}: cint
260# var PTHREAD_PRIO_INHERIT* {.importc: "PTHREAD_PRIO_INHERIT", header: "<pthread.h>".}: cint
261# var PTHREAD_PRIO_NONE* {.importc: "PTHREAD_PRIO_NONE", header: "<pthread.h>".}: cint
262# var PTHREAD_PRIO_PROTECT* {.importc: "PTHREAD_PRIO_PROTECT", header: "<pthread.h>".}: cint
263# var PTHREAD_PROCESS_SHARED* {.importc: "PTHREAD_PROCESS_SHARED", header: "<pthread.h>".}: cint
264# var PTHREAD_PROCESS_PRIVATE* {.importc: "PTHREAD_PROCESS_PRIVATE", header: "<pthread.h>".}: cint
265# var PTHREAD_SCOPE_PROCESS* {.importc: "PTHREAD_SCOPE_PROCESS", header: "<pthread.h>".}: cint
266# var PTHREAD_SCOPE_SYSTEM* {.importc: "PTHREAD_SCOPE_SYSTEM", header: "<pthread.h>".}: cint
267
268# # <sched.h>
269# var SCHED_FIFO* {.importc: "SCHED_FIFO", header: "<sched.h>".}: cint
270# var SCHED_RR* {.importc: "SCHED_RR", header: "<sched.h>".}: cint
271# var SCHED_SPORADIC* {.importc: "SCHED_SPORADIC", header: "<sched.h>".}: cint
272# var SCHED_OTHER* {.importc: "SCHED_OTHER", header: "<sched.h>".}: cint
273
274# <semaphore.h>
275var SEM_FAILED* {.importc: "SEM_FAILED", header: "<semaphore.h>".}: pointer
276
277# # <signal.h>
278# var SIGEV_NONE* {.importc: "SIGEV_NONE", header: "<signal.h>".}: cint
279# var SIGEV_SIGNAL* {.importc: "SIGEV_SIGNAL", header: "<signal.h>".}: cint
280# var SIGEV_THREAD* {.importc: "SIGEV_THREAD", header: "<signal.h>".}: cint
281# var SIGABRT* {.importc: "SIGABRT", header: "<signal.h>".}: cint
282# var SIGALRM* {.importc: "SIGALRM", header: "<signal.h>".}: cint
283# var SIGBUS* {.importc: "SIGBUS", header: "<signal.h>".}: cint
284# var SIGCHLD* {.importc: "SIGCHLD", header: "<signal.h>".}: cint
285# var SIGCONT* {.importc: "SIGCONT", header: "<signal.h>".}: cint
286# var SIGFPE* {.importc: "SIGFPE", header: "<signal.h>".}: cint
287# var SIGHUP* {.importc: "SIGHUP", header: "<signal.h>".}: cint
288# var SIGILL* {.importc: "SIGILL", header: "<signal.h>".}: cint
289# var SIGINT* {.importc: "SIGINT", header: "<signal.h>".}: cint
290# var SIGKILL* {.importc: "SIGKILL", header: "<signal.h>".}: cint
291# var SIGPIPE* {.importc: "SIGPIPE", header: "<signal.h>".}: cint
292# var SIGQUIT* {.importc: "SIGQUIT", header: "<signal.h>".}: cint
293# var SIGSEGV* {.importc: "SIGSEGV", header: "<signal.h>".}: cint
294# var SIGSTOP* {.importc: "SIGSTOP", header: "<signal.h>".}: cint
295# var SIGTERM* {.importc: "SIGTERM", header: "<signal.h>".}: cint
296# var SIGTSTP* {.importc: "SIGTSTP", header: "<signal.h>".}: cint
297# var SIGTTIN* {.importc: "SIGTTIN", header: "<signal.h>".}: cint
298# var SIGTTOU* {.importc: "SIGTTOU", header: "<signal.h>".}: cint
299# var SIGUSR1* {.importc: "SIGUSR1", header: "<signal.h>".}: cint
300# var SIGUSR2* {.importc: "SIGUSR2", header: "<signal.h>".}: cint
301# var SIGPOLL* {.importc: "SIGPOLL", header: "<signal.h>".}: cint
302# var SIGPROF* {.importc: "SIGPROF", header: "<signal.h>".}: cint
303# var SIGSYS* {.importc: "SIGSYS", header: "<signal.h>".}: cint
304# var SIGTRAP* {.importc: "SIGTRAP", header: "<signal.h>".}: cint
305# var SIGURG* {.importc: "SIGURG", header: "<signal.h>".}: cint
306# var SIGVTALRM* {.importc: "SIGVTALRM", header: "<signal.h>".}: cint
307# var SIGXCPU* {.importc: "SIGXCPU", header: "<signal.h>".}: cint
308# var SIGXFSZ* {.importc: "SIGXFSZ", header: "<signal.h>".}: cint
309# var SA_NOCLDSTOP* {.importc: "SA_NOCLDSTOP", header: "<signal.h>".}: cint
310# var SIG_BLOCK* {.importc: "SIG_BLOCK", header: "<signal.h>".}: cint
311# var SIG_UNBLOCK* {.importc: "SIG_UNBLOCK", header: "<signal.h>".}: cint
312# var SIG_SETMASK* {.importc: "SIG_SETMASK", header: "<signal.h>".}: cint
313# var SA_ONSTACK* {.importc: "SA_ONSTACK", header: "<signal.h>".}: cint
314# var SA_RESETHAND* {.importc: "SA_RESETHAND", header: "<signal.h>".}: cint
315# var SA_RESTART* {.importc: "SA_RESTART", header: "<signal.h>".}: cint
316# var SA_SIGINFO* {.importc: "SA_SIGINFO", header: "<signal.h>".}: cint
317# var SA_NOCLDWAIT* {.importc: "SA_NOCLDWAIT", header: "<signal.h>".}: cint
318# var SA_NODEFER* {.importc: "SA_NODEFER", header: "<signal.h>".}: cint
319# var SS_ONSTACK* {.importc: "SS_ONSTACK", header: "<signal.h>".}: cint
320# var SS_DISABLE* {.importc: "SS_DISABLE", header: "<signal.h>".}: cint
321# var MINSIGSTKSZ* {.importc: "MINSIGSTKSZ", header: "<signal.h>".}: cint
322# var SIGSTKSZ* {.importc: "SIGSTKSZ", header: "<signal.h>".}: cint
323# var SIG_HOLD* {.importc: "SIG_HOLD", header: "<signal.h>".}: Sighandler
324# var SIG_DFL* {.importc: "SIG_DFL", header: "<signal.h>".}: Sighandler
325# var SIG_ERR* {.importc: "SIG_ERR", header: "<signal.h>".}: Sighandler
326# var SIG_IGN* {.importc: "SIG_IGN", header: "<signal.h>".}: Sighandler
327
328# # <sys/ipc.h>
329# var IPC_CREAT* {.importc: "IPC_CREAT", header: "<sys/ipc.h>".}: cint
330# var IPC_EXCL* {.importc: "IPC_EXCL", header: "<sys/ipc.h>".}: cint
331# var IPC_NOWAIT* {.importc: "IPC_NOWAIT", header: "<sys/ipc.h>".}: cint
332# var IPC_PRIVATE* {.importc: "IPC_PRIVATE", header: "<sys/ipc.h>".}: cint
333# var IPC_RMID* {.importc: "IPC_RMID", header: "<sys/ipc.h>".}: cint
334# var IPC_SET* {.importc: "IPC_SET", header: "<sys/ipc.h>".}: cint
335# var IPC_STAT* {.importc: "IPC_STAT", header: "<sys/ipc.h>".}: cint
336
337# # <sys/mman.h>
338# var PROT_READ* {.importc: "PROT_READ", header: "<sys/mman.h>".}: cint
339# var PROT_WRITE* {.importc: "PROT_WRITE", header: "<sys/mman.h>".}: cint
340# var PROT_EXEC* {.importc: "PROT_EXEC", header: "<sys/mman.h>".}: cint
341# var PROT_NONE* {.importc: "PROT_NONE", header: "<sys/mman.h>".}: cint
342# var MAP_ANONYMOUS* {.importc: "MAP_ANONYMOUS", header: "<sys/mman.h>".}: cint
343# var MAP_FIXED_NOREPLACE* {.importc: "MAP_FIXED_NOREPLACE", header: "<sys/mman.h>".}: cint
344# var MAP_NORESERVE* {.importc: "MAP_NORESERVE", header: "<sys/mman.h>".}: cint
345# var MAP_SHARED* {.importc: "MAP_SHARED", header: "<sys/mman.h>".}: cint
346# var MAP_PRIVATE* {.importc: "MAP_PRIVATE", header: "<sys/mman.h>".}: cint
347# var MAP_FIXED* {.importc: "MAP_FIXED", header: "<sys/mman.h>".}: cint
348# var MS_ASYNC* {.importc: "MS_ASYNC", header: "<sys/mman.h>".}: cint
349# var MS_SYNC* {.importc: "MS_SYNC", header: "<sys/mman.h>".}: cint
350# var MS_INVALIDATE* {.importc: "MS_INVALIDATE", header: "<sys/mman.h>".}: cint
351# var MCL_CURRENT* {.importc: "MCL_CURRENT", header: "<sys/mman.h>".}: cint
352# var MCL_FUTURE* {.importc: "MCL_FUTURE", header: "<sys/mman.h>".}: cint
353# var MAP_FAILED* {.importc: "MAP_FAILED", header: "<sys/mman.h>".}: pointer
354# var POSIX_MADV_NORMAL* {.importc: "POSIX_MADV_NORMAL", header: "<sys/mman.h>".}: cint
355# var POSIX_MADV_SEQUENTIAL* {.importc: "POSIX_MADV_SEQUENTIAL", header: "<sys/mman.h>".}: cint
356# var POSIX_MADV_RANDOM* {.importc: "POSIX_MADV_RANDOM", header: "<sys/mman.h>".}: cint
357# var POSIX_MADV_WILLNEED* {.importc: "POSIX_MADV_WILLNEED", header: "<sys/mman.h>".}: cint
358# var POSIX_MADV_DONTNEED* {.importc: "POSIX_MADV_DONTNEED", header: "<sys/mman.h>".}: cint
359# var POSIX_TYPED_MEM_ALLOCATE* {.importc: "POSIX_TYPED_MEM_ALLOCATE", header: "<sys/mman.h>".}: cint
360# var POSIX_TYPED_MEM_ALLOCATE_CONTIG* {.importc: "POSIX_TYPED_MEM_ALLOCATE_CONTIG", header: "<sys/mman.h>".}: cint
361# var POSIX_TYPED_MEM_MAP_ALLOCATABLE* {.importc: "POSIX_TYPED_MEM_MAP_ALLOCATABLE", header: "<sys/mman.h>".}: cint
362
363# <sys/resource.h>
364# var RLIMIT_NOFILE* {.importc: "RLIMIT_NOFILE", header: "<sys/resource.h>".}: cint
365
366# <sys/select.h>
367var FD_SETSIZE* {.importc: "FD_SETSIZE", header: "<sys/select.h>".}: cint
368
369# <sys/socket.h>
370# struct msghdr->msg_flags bit field values
371const MSG_TRUNC*   = 0x04
372const MSG_CTRUNC*  = 0x08
373
374# Flags we can use with send and recv.
375const MSG_PEEK*       = 0x01    # Peeks at an incoming message
376const MSG_WAITALL*    = 0x02    # Unimplemented: Requests that the function block until the full amount of data requested can be returned
377const MSG_OOB*        = 0x04    # Unimplemented: Requests out-of-band data. The significance and semantics of out-of-band data are protocol-specific
378const MSG_DONTWAIT*   = 0x08    # Nonblocking i/o for this operation only
379const MSG_MORE*       = 0x10    # Sender will send more
380# const MSG_NOSIGNAL*   = 0x20    # Uninmplemented: Requests not to send the SIGPIPE signal if an attempt to send is made on a stream-oriented socket that is no longer connected.
381
382# Alternately, they can defined like this, but the above seems better when they're known/stable values:
383# var MSG_TRUNC* {.importc: "MSG_TRUNC", header: "<sys/socket.h>".}: cint
384# var MSG_CTRUNC* {.importc: "MSG_CTRUNC", header: "<sys/socket.h>".}: cint
385# var MSG_DONTROUTE* {.importc: "MSG_DONTROUTE", header: "<sys/socket.h>".}: cint # not defined in lwip
386# var MSG_EOR* {.importc: "MSG_EOR", header: "<sys/socket.h>".}: cint # not defined in lwip
387# var MSG_OOB* {.importc: "MSG_OOB", header: "<sys/socket.h>".}: cint
388
389
390# var SCM_RIGHTS* {.importc: "SCM_RIGHTS", header: "<sys/socket.h>".}: cint
391var SO_ACCEPTCONN* {.importc: "SO_ACCEPTCONN", header: "<sys/socket.h>".}: cint
392var SO_BROADCAST* {.importc: "SO_BROADCAST", header: "<sys/socket.h>".}: cint
393var SO_DEBUG* {.importc: "SO_DEBUG", header: "<sys/socket.h>".}: cint
394var SO_DONTROUTE* {.importc: "SO_DONTROUTE", header: "<sys/socket.h>".}: cint
395var SO_ERROR* {.importc: "SO_ERROR", header: "<sys/socket.h>".}: cint
396var SO_KEEPALIVE* {.importc: "SO_KEEPALIVE", header: "<sys/socket.h>".}: cint
397var SO_LINGER* {.importc: "SO_LINGER", header: "<sys/socket.h>".}: cint
398var SO_OOBINLINE* {.importc: "SO_OOBINLINE", header: "<sys/socket.h>".}: cint
399var SO_RCVBUF* {.importc: "SO_RCVBUF", header: "<sys/socket.h>".}: cint
400var SO_RCVLOWAT* {.importc: "SO_RCVLOWAT", header: "<sys/socket.h>".}: cint
401var SO_RCVTIMEO* {.importc: "SO_RCVTIMEO", header: "<sys/socket.h>".}: cint
402var SO_REUSEADDR* {.importc: "SO_REUSEADDR", header: "<sys/socket.h>".}: cint
403var SO_SNDBUF* {.importc: "SO_SNDBUF", header: "<sys/socket.h>".}: cint
404var SO_SNDLOWAT* {.importc: "SO_SNDLOWAT", header: "<sys/socket.h>".}: cint
405var SO_SNDTIMEO* {.importc: "SO_SNDTIMEO", header: "<sys/socket.h>".}: cint
406var SO_TYPE* {.importc: "SO_TYPE", header: "<sys/socket.h>".}: cint
407var SOCK_DGRAM* {.importc: "SOCK_DGRAM", header: "<sys/socket.h>".}: cint
408var SOCK_RAW* {.importc: "SOCK_RAW", header: "<sys/socket.h>".}: cint
409
410# var SOCK_SEQPACKET* {.importc: "SOCK_SEQPACKET", header: "<sys/socket.h>".}: cint
411const SOCK_SEQPACKET* = cint(5)
412
413var SOCK_STREAM* {.importc: "SOCK_STREAM", header: "<sys/socket.h>".}: cint
414var SOL_SOCKET* {.importc: "SOL_SOCKET", header: "<sys/socket.h>".}: cint
415
416const SocketMaxConnections {.intdefine.}: int = 32
417var SOMAXCONN*: cint = SocketMaxConnections.cint
418
419var AF_INET* {.importc: "AF_INET", header: "<sys/socket.h>".}: cint
420var AF_INET6* {.importc: "AF_INET6", header: "<sys/socket.h>".}: cint
421# var AF_UNIX* {.importc: "AF_UNIX", header: "<sys/socket.h>".}: cint
422const AF_UNIX*: cint = 1 # for compat with Nim libraries, doesn't exist on freertos
423var AF_UNSPEC* {.importc: "AF_UNSPEC", header: "<sys/socket.h>".}: cint
424var SHUT_RD* {.importc: "SHUT_RD", header: "<sys/socket.h>".}: cint
425var SHUT_RDWR* {.importc: "SHUT_RDWR", header: "<sys/socket.h>".}: cint
426var SHUT_WR* {.importc: "SHUT_WR", header: "<sys/socket.h>".}: cint
427
428# # <sys/stat.h>
429# <sys/stat.h>
430
431# var S_IFBLK* {.importc: "S_IFBLK", header: "<sys/stat.h>".}: cint
432# var S_IFCHR* {.importc: "S_IFCHR", header: "<sys/stat.h>".}: cint
433# var S_IFDIR* {.importc: "S_IFDIR", header: "<sys/stat.h>".}: cint
434# var S_IFIFO* {.importc: "S_IFIFO", header: "<sys/stat.h>".}: cint
435# var S_IFLNK* {.importc: "S_IFLNK", header: "<sys/stat.h>".}: cint
436# var S_IFMT* {.importc: "S_IFMT", header: "<sys/stat.h>".}: cint
437# var S_IFREG* {.importc: "S_IFREG", header: "<sys/stat.h>".}: cint
438# var S_IFSOCK* {.importc: "S_IFSOCK", header: "<sys/stat.h>".}: cint
439var S_IRGRP* {.importc: "S_IRGRP", header: "<sys/stat.h>".}: cint
440var S_IROTH* {.importc: "S_IROTH", header: "<sys/stat.h>".}: cint
441var S_IRUSR* {.importc: "S_IRUSR", header: "<sys/stat.h>".}: cint
442# var S_IRWXG* {.importc: "S_IRWXG", header: "<sys/stat.h>".}: cint
443# var S_IRWXO* {.importc: "S_IRWXO", header: "<sys/stat.h>".}: cint
444# var S_IRWXU* {.importc: "S_IRWXU", header: "<sys/stat.h>".}: cint
445# var S_ISGID* {.importc: "S_ISGID", header: "<sys/stat.h>".}: cint
446# var S_ISUID* {.importc: "S_ISUID", header: "<sys/stat.h>".}: cint
447# var S_ISVTX* {.importc: "S_ISVTX", header: "<sys/stat.h>".}: cint
448var S_IWGRP* {.importc: "S_IWGRP", header: "<sys/stat.h>".}: cint
449var S_IWOTH* {.importc: "S_IWOTH", header: "<sys/stat.h>".}: cint
450var S_IWUSR* {.importc: "S_IWUSR", header: "<sys/stat.h>".}: cint
451var S_IXGRP* {.importc: "S_IXGRP", header: "<sys/stat.h>".}: cint
452var S_IXOTH* {.importc: "S_IXOTH", header: "<sys/stat.h>".}: cint
453var S_IXUSR* {.importc: "S_IXUSR", header: "<sys/stat.h>".}: cint
454
455# # <sys/statvfs.h>
456# var ST_RDONLY* {.importc: "ST_RDONLY", header: "<sys/statvfs.h>".}: cint
457# var ST_NOSUID* {.importc: "ST_NOSUID", header: "<sys/statvfs.h>".}: cint
458
459# # <sys/wait.h>
460# var WNOHANG* {.importc: "WNOHANG", header: "<sys/wait.h>".}: cint
461# var WUNTRACED* {.importc: "WUNTRACED", header: "<sys/wait.h>".}: cint
462# var WEXITED* {.importc: "WEXITED", header: "<sys/wait.h>".}: cint
463# var WSTOPPED* {.importc: "WSTOPPED", header: "<sys/wait.h>".}: cint
464# var WCONTINUED* {.importc: "WCONTINUED", header: "<sys/wait.h>".}: cint
465# var WNOWAIT* {.importc: "WNOWAIT", header: "<sys/wait.h>".}: cint
466# var P_ALL* {.importc: "P_ALL", header: "<sys/wait.h>".}: cint
467# var P_PID* {.importc: "P_PID", header: "<sys/wait.h>".}: cint
468# var P_PGID* {.importc: "P_PGID", header: "<sys/wait.h>".}: cint
469
470# # <spawn.h>
471# var POSIX_SPAWN_RESETIDS* {.importc: "POSIX_SPAWN_RESETIDS", header: "<spawn.h>".}: cint
472# var POSIX_SPAWN_SETPGROUP* {.importc: "POSIX_SPAWN_SETPGROUP", header: "<spawn.h>".}: cint
473# var POSIX_SPAWN_SETSCHEDPARAM* {.importc: "POSIX_SPAWN_SETSCHEDPARAM", header: "<spawn.h>".}: cint
474# var POSIX_SPAWN_SETSCHEDULER* {.importc: "POSIX_SPAWN_SETSCHEDULER", header: "<spawn.h>".}: cint
475# var POSIX_SPAWN_SETSIGDEF* {.importc: "POSIX_SPAWN_SETSIGDEF", header: "<spawn.h>".}: cint
476# var POSIX_SPAWN_SETSIGMASK* {.importc: "POSIX_SPAWN_SETSIGMASK", header: "<spawn.h>".}: cint
477
478## <stdio.h>
479# var IOFBF* {.importc: "_IOFBF", header: "<stdio.h>".}: cint
480# var IONBF* {.importc: "_IONBF", header: "<stdio.h>".}: cint
481
482# <time.h>
483var CLOCKS_PER_SEC* {.importc: "CLOCKS_PER_SEC", header: "<time.h>".}: clong
484var CLOCK_PROCESS_CPUTIME_ID* {.importc: "CLOCK_PROCESS_CPUTIME_ID", header: "<time.h>".}: cint
485var CLOCK_THREAD_CPUTIME_ID* {.importc: "CLOCK_THREAD_CPUTIME_ID", header: "<time.h>".}: cint
486var CLOCK_REALTIME* {.importc: "CLOCK_REALTIME", header: "<time.h>".}: cint
487var TIMER_ABSTIME* {.importc: "TIMER_ABSTIME", header: "<time.h>".}: cint
488var CLOCK_MONOTONIC* {.importc: "CLOCK_MONOTONIC", header: "<time.h>".}: cint
489
490# <unistd.h>
491
492const F_OK* = cint(0)
493const R_OK* = cint(4)
494const W_OK* = cint(2)
495const X_OK* = cint(1)
496const F_LOCK* = cint(1)
497const F_TEST* = cint(3)
498const F_TLOCK* = cint(2)
499const F_ULOCK* = cint(0)
500
501