Changes for FreeRTOS/LwIP Port for the ESP32 (ESP-IDF) (#15250)
* Changes for FreeRTOS/LwIP Port for the ESP32 (ESP-IDF) Adding FreeRTOS/LwIP to compiler: * adding freertos option * dyncalls for freertos * add freertos to posix os list * adding lwip option Setting up networking FreeRTOS/LwIP Port: * setting up lwip network for freertos * fixing posix / networking for freertos * disable setInheritable for freerots * using lwip for net control items * Fix builds by ignoring lib/posix/posix_freertos_consts.nim similar to lib/posix/posix_other_consts.nim
This commit is contained in:
parent
b5424b826e
commit
a76ae8f795
11 changed files with 589 additions and 32 deletions
|
|
@ -494,7 +494,7 @@ proc isDefined*(conf: ConfigRef; symbol: string): bool =
|
||||||
osQnx, osAtari, osAix,
|
osQnx, osAtari, osAix,
|
||||||
osHaiku, osVxWorks, osSolaris, osNetbsd,
|
osHaiku, osVxWorks, osSolaris, osNetbsd,
|
||||||
osFreebsd, osOpenbsd, osDragonfly, osMacosx, osIos,
|
osFreebsd, osOpenbsd, osDragonfly, osMacosx, osIos,
|
||||||
osAndroid, osNintendoSwitch}
|
osAndroid, osNintendoSwitch, osFreeRTOS}
|
||||||
of "linux":
|
of "linux":
|
||||||
result = conf.target.targetOS in {osLinux, osAndroid}
|
result = conf.target.targetOS in {osLinux, osAndroid}
|
||||||
of "bsd":
|
of "bsd":
|
||||||
|
|
@ -510,6 +510,10 @@ proc isDefined*(conf: ConfigRef; symbol: string): bool =
|
||||||
of "sunos": result = conf.target.targetOS == osSolaris
|
of "sunos": result = conf.target.targetOS == osSolaris
|
||||||
of "nintendoswitch":
|
of "nintendoswitch":
|
||||||
result = conf.target.targetOS == osNintendoSwitch
|
result = conf.target.targetOS == osNintendoSwitch
|
||||||
|
of "freertos":
|
||||||
|
result = conf.target.targetOS == osFreeRTOS
|
||||||
|
of "lwip":
|
||||||
|
result = conf.target.targetOS in {osFreeRTOS}
|
||||||
of "littleendian": result = CPU[conf.target.targetCPU].endian == platform.littleEndian
|
of "littleendian": result = CPU[conf.target.targetCPU].endian == platform.littleEndian
|
||||||
of "bigendian": result = CPU[conf.target.targetCPU].endian == platform.bigEndian
|
of "bigendian": result = CPU[conf.target.targetCPU].endian == platform.bigEndian
|
||||||
of "cpu8": result = CPU[conf.target.targetCPU].bit == 8
|
of "cpu8": result = CPU[conf.target.targetCPU].bit == 8
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ type
|
||||||
osNone, osDos, osWindows, osOs2, osLinux, osMorphos, osSkyos, osSolaris,
|
osNone, osDos, osWindows, osOs2, osLinux, osMorphos, osSkyos, osSolaris,
|
||||||
osIrix, osNetbsd, osFreebsd, osOpenbsd, osDragonfly, osAix, osPalmos, osQnx,
|
osIrix, osNetbsd, osFreebsd, osOpenbsd, osDragonfly, osAix, osPalmos, osQnx,
|
||||||
osAmiga, osAtari, osNetware, osMacos, osMacosx, osIos, osHaiku, osAndroid, osVxWorks
|
osAmiga, osAtari, osNetware, osMacos, osMacosx, osIos, osHaiku, osAndroid, osVxWorks
|
||||||
osGenode, osJS, osNimVM, osStandalone, osNintendoSwitch, osAny
|
osGenode, osJS, osNimVM, osStandalone, osNintendoSwitch, osFreeRTOS, osAny
|
||||||
|
|
||||||
type
|
type
|
||||||
TInfoOSProp* = enum
|
TInfoOSProp* = enum
|
||||||
|
|
@ -177,6 +177,10 @@ const
|
||||||
objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/",
|
objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/",
|
||||||
scriptExt: ".sh", curDir: ".", exeExt: ".elf", extSep: ".",
|
scriptExt: ".sh", curDir: ".", exeExt: ".elf", extSep: ".",
|
||||||
props: {ospNeedsPIC, ospPosix}),
|
props: {ospNeedsPIC, ospPosix}),
|
||||||
|
(name: "FreeRTOS", parDir: "..", dllFrmt: "lib$1.so", altDirSep: "/",
|
||||||
|
objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/",
|
||||||
|
scriptExt: ".sh", curDir: ".", exeExt: ".elf", extSep: ".",
|
||||||
|
props: {ospPosix}),
|
||||||
(name: "Any", parDir: "..", dllFrmt: "lib$1.so", altDirSep: "/",
|
(name: "Any", parDir: "..", dllFrmt: "lib$1.so", altDirSep: "/",
|
||||||
objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/",
|
objExt: ".o", newLine: "\x0A", pathSep: ":", dirSep: "/",
|
||||||
scriptExt: ".sh", curDir: ".", exeExt: "", extSep: ".",
|
scriptExt: ".sh", curDir: ".", exeExt: "", extSep: ".",
|
||||||
|
|
@ -189,7 +193,7 @@ type
|
||||||
cpuNone, cpuI386, cpuM68k, cpuAlpha, cpuPowerpc, cpuPowerpc64,
|
cpuNone, cpuI386, cpuM68k, cpuAlpha, cpuPowerpc, cpuPowerpc64,
|
||||||
cpuPowerpc64el, cpuSparc, cpuVm, cpuHppa, cpuIa64, cpuAmd64, cpuMips,
|
cpuPowerpc64el, cpuSparc, cpuVm, cpuHppa, cpuIa64, cpuAmd64, cpuMips,
|
||||||
cpuMipsel, cpuArm, cpuArm64, cpuJS, cpuNimVM, cpuAVR, cpuMSP430,
|
cpuMipsel, cpuArm, cpuArm64, cpuJS, cpuNimVM, cpuAVR, cpuMSP430,
|
||||||
cpuSparc64, cpuMips64, cpuMips64el, cpuRiscV64, cpuWasm32
|
cpuSparc64, cpuMips64, cpuMips64el, cpuRiscV64, cpuEsp, cpuWasm32
|
||||||
|
|
||||||
type
|
type
|
||||||
TEndian* = enum
|
TEndian* = enum
|
||||||
|
|
@ -223,6 +227,7 @@ const
|
||||||
(name: "mips64", intSize: 64, endian: bigEndian, floatSize: 64, bit: 64),
|
(name: "mips64", intSize: 64, endian: bigEndian, floatSize: 64, bit: 64),
|
||||||
(name: "mips64el", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64),
|
(name: "mips64el", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64),
|
||||||
(name: "riscv64", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64),
|
(name: "riscv64", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64),
|
||||||
|
(name: "esp", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32),
|
||||||
(name: "wasm32", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32)]
|
(name: "wasm32", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32)]
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
|
||||||
|
|
@ -962,9 +962,15 @@ proc IN6_IS_ADDR_LINKLOCAL* (a1: ptr In6Addr): cint {.
|
||||||
proc IN6_IS_ADDR_SITELOCAL* (a1: ptr In6Addr): cint {.
|
proc IN6_IS_ADDR_SITELOCAL* (a1: ptr In6Addr): cint {.
|
||||||
importc, header: "<netinet/in.h>".}
|
importc, header: "<netinet/in.h>".}
|
||||||
## Unicast site-local address.
|
## Unicast site-local address.
|
||||||
proc IN6_IS_ADDR_V4MAPPED* (a1: ptr In6Addr): cint {.
|
when defined(lwip):
|
||||||
|
proc IN6_IS_ADDR_V4MAPPED*(ipv6_address: ptr In6Addr): cint =
|
||||||
|
var bits32: ptr array[4, uint32] = cast[ptr array[4, uint32]](ipv6_address)
|
||||||
|
return (bits32[1] == 0'u32 and bits32[2] == htonl(0x0000FFFF)).cint
|
||||||
|
else:
|
||||||
|
proc IN6_IS_ADDR_V4MAPPED* (a1: ptr In6Addr): cint {.
|
||||||
importc, header: "<netinet/in.h>".}
|
importc, header: "<netinet/in.h>".}
|
||||||
## IPv4 mapped address.
|
## IPv4 mapped address.
|
||||||
|
|
||||||
proc IN6_IS_ADDR_V4COMPAT* (a1: ptr In6Addr): cint {.
|
proc IN6_IS_ADDR_V4COMPAT* (a1: ptr In6Addr): cint {.
|
||||||
importc, header: "<netinet/in.h>".}
|
importc, header: "<netinet/in.h>".}
|
||||||
## IPv4-compatible address.
|
## IPv4-compatible address.
|
||||||
|
|
@ -1026,7 +1032,8 @@ proc setnetent*(a1: cint) {.importc, header: "<netdb.h>".}
|
||||||
proc setprotoent*(a1: cint) {.importc, header: "<netdb.h>".}
|
proc setprotoent*(a1: cint) {.importc, header: "<netdb.h>".}
|
||||||
proc setservent*(a1: cint) {.importc, header: "<netdb.h>".}
|
proc setservent*(a1: cint) {.importc, header: "<netdb.h>".}
|
||||||
|
|
||||||
proc poll*(a1: ptr TPollfd, a2: Tnfds, a3: int): cint {.
|
when not defined(lwip):
|
||||||
|
proc poll*(a1: ptr TPollfd, a2: Tnfds, a3: int): cint {.
|
||||||
importc, header: "<poll.h>", sideEffect.}
|
importc, header: "<poll.h>", sideEffect.}
|
||||||
|
|
||||||
proc realpath*(name, resolved: cstring): cstring {.
|
proc realpath*(name, resolved: cstring): cstring {.
|
||||||
|
|
|
||||||
488
lib/posix/posix_freertos_consts.nim
Normal file
488
lib/posix/posix_freertos_consts.nim
Normal file
|
|
@ -0,0 +1,488 @@
|
||||||
|
# Generated by detect.nim
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# <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
|
||||||
|
|
||||||
|
# <sys/fcntl.h>
|
||||||
|
var F_GETFD* {.importc: "F_GETFD", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_SETFD* {.importc: "F_SETFD", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var F_GETFL* {.importc: "F_GETFL", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var F_SETFL* {.importc: "F_SETFL", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_GETLK* {.importc: "F_GETLK", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_SETLK* {.importc: "F_SETLK", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_SETLKW* {.importc: "F_SETLKW", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_GETOWN* {.importc: "F_GETOWN", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_SETOWN* {.importc: "F_SETOWN", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var FD_CLOEXEC* {.importc: "FD_CLOEXEC", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_RDLCK* {.importc: "F_RDLCK", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_UNLCK* {.importc: "F_UNLCK", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var F_WRLCK* {.importc: "F_WRLCK", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var O_CREAT* {.importc: "O_CREAT", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var O_EXCL* {.importc: "O_EXCL", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var O_NOCTTY* {.importc: "O_NOCTTY", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var O_TRUNC* {.importc: "O_TRUNC", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var O_APPEND* {.importc: "O_APPEND", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var O_DSYNC* {.importc: "O_DSYNC", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var O_NONBLOCK* {.importc: "O_NONBLOCK", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var O_RSYNC* {.importc: "O_RSYNC", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var O_SYNC* {.importc: "O_SYNC", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var O_ACCMODE* {.importc: "O_ACCMODE", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var O_RDONLY* {.importc: "O_RDONLY", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var O_RDWR* {.importc: "O_RDWR", header: "<sys/fcntl.h>".}: cint
|
||||||
|
var O_WRONLY* {.importc: "O_WRONLY", header: "<sys/fcntl.h>".}: cint
|
||||||
|
# var O_CLOEXEC* {.importc: "O_CLOEXEC", header: "<sys/fcntl.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 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_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 LWIP_DNS_API_DECLARE_H_ERRNO* {.importc: "LWIP_DNS_API_DECLARE_H_ERRNO", header: "<netdb.h>".}: cint
|
||||||
|
var LWIP_DNS_API_DEFINE_ERRORS* {.importc: "LWIP_DNS_API_DEFINE_ERRORS", header: "<netdb.h>".}: cint
|
||||||
|
var LWIP_DNS_API_DEFINE_FLAGS* {.importc: "LWIP_DNS_API_DEFINE_FLAGS", header: "<netdb.h>".}: cint
|
||||||
|
var LWIP_DNS_API_DECLARE_STRUCTS* {.importc: "LWIP_DNS_API_DECLARE_STRUCTS", header: "<netdb.h>".}: cint
|
||||||
|
var NETDB_ELEM_SIZE* {.importc: "NETDB_ELEM_SIZE", header: "<netdb.h>".}: cint
|
||||||
|
|
||||||
|
|
||||||
|
# <netif.h>
|
||||||
|
var ENABLE_LOOPBACK* {.importc: "ENABLE_LOOPBACK", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_MAX_HWADDR_LEN* {.importc: "NETIF_MAX_HWADDR_LEN", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_NAMESIZE* {.importc: "NETIF_NAMESIZE", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_FLAG_UP* {.importc: "NETIF_FLAG_UP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_FLAG_BROADCAST* {.importc: "NETIF_FLAG_BROADCAST", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_FLAG_LINK_UP* {.importc: "NETIF_FLAG_LINK_UP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_FLAG_ETHARP* {.importc: "NETIF_FLAG_ETHARP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_FLAG_ETHERNET* {.importc: "NETIF_FLAG_ETHERNET", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_FLAG_IGMP* {.importc: "NETIF_FLAG_IGMP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_FLAG_MLD6* {.importc: "NETIF_FLAG_MLD6", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_FLAG_GARP* {.importc: "NETIF_FLAG_GARP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_GEN_IP* {.importc: "NETIF_CHECKSUM_GEN_IP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_GEN_UDP* {.importc: "NETIF_CHECKSUM_GEN_UDP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_GEN_TCP* {.importc: "NETIF_CHECKSUM_GEN_TCP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_GEN_ICMP* {.importc: "NETIF_CHECKSUM_GEN_ICMP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_GEN_ICMP6* {.importc: "NETIF_CHECKSUM_GEN_ICMP6", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_CHECK_IP* {.importc: "NETIF_CHECKSUM_CHECK_IP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_CHECK_UDP* {.importc: "NETIF_CHECKSUM_CHECK_UDP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_CHECK_TCP* {.importc: "NETIF_CHECKSUM_CHECK_TCP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_CHECK_ICMP* {.importc: "NETIF_CHECKSUM_CHECK_ICMP", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_CHECK_ICMP6* {.importc: "NETIF_CHECKSUM_CHECK_ICMP6", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_ENABLE_ALL* {.importc: "NETIF_CHECKSUM_ENABLE_ALL", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_CHECKSUM_DISABLE_ALL* {.importc: "NETIF_CHECKSUM_DISABLE_ALL", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_ADDR_IDX_MAX* {.importc: "NETIF_ADDR_IDX_MAX", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NETIF_USE_HINTS* {.importc: "LWIP_NETIF_USE_HINTS", header: "<netif.h>".}: cint
|
||||||
|
var NETIF_NO_INDEX* {.importc: "NETIF_NO_INDEX", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_NONE* {.importc: "LWIP_NSC_NONE", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_NETIF_ADDED* {.importc: "LWIP_NSC_NETIF_ADDED", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_NETIF_REMOVED* {.importc: "LWIP_NSC_NETIF_REMOVED", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_LINK_CHANGED* {.importc: "LWIP_NSC_LINK_CHANGED", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_STATUS_CHANGED* {.importc: "LWIP_NSC_STATUS_CHANGED", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_IPV4_ADDRESS_CHANGED* {.importc: "LWIP_NSC_IPV4_ADDRESS_CHANGED", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_IPV4_GATEWAY_CHANGED* {.importc: "LWIP_NSC_IPV4_GATEWAY_CHANGED", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_IPV4_NETMASK_CHANGED* {.importc: "LWIP_NSC_IPV4_NETMASK_CHANGED", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_IPV4_SETTINGS_CHANGED* {.importc: "LWIP_NSC_IPV4_SETTINGS_CHANGED", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_IPV6_SET* {.importc: "LWIP_NSC_IPV6_SET", header: "<netif.h>".}: cint
|
||||||
|
var LWIP_NSC_IPV6_ADDR_STATE_CHANGED* {.importc: "LWIP_NSC_IPV6_ADDR_STATE_CHANGED", header: "<netif.h>".}: cint
|
||||||
|
#define NETIF_DECLARE_EXT_CALLBACK(name)
|
||||||
|
|
||||||
|
|
||||||
|
# <net/if.h>
|
||||||
|
var IF_NAMESIZE* {.importc: "IF_NAMESIZE", header: "<net/if.h>".}: cint
|
||||||
|
|
||||||
|
# <sys/socket.h>
|
||||||
|
var IPPROTO_IP* {.importc: "IPPROTO_IP", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPPROTO_IPV6* {.importc: "IPPROTO_IPV6", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPPROTO_ICMP* {.importc: "IPPROTO_ICMP", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPPROTO_ICMPV6* {.importc: "IPPROTO_ICMPV6", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPPROTO_RAW* {.importc: "IPPROTO_RAW", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPPROTO_TCP* {.importc: "IPPROTO_TCP", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPPROTO_UDP* {.importc: "IPPROTO_UDP", header: "<sys/socket.h>".}: cint
|
||||||
|
var INADDR_ANY* {.importc: "INADDR_ANY", header: "<sys/socket.h>".}: InAddrScalar
|
||||||
|
var INADDR_LOOPBACK* {.importc: "INADDR_LOOPBACK", header: "<sys/socket.h>".}: InAddrScalar
|
||||||
|
var INADDR_BROADCAST* {.importc: "INADDR_BROADCAST", header: "<sys/socket.h>".}: InAddrScalar
|
||||||
|
var INET_ADDRSTRLEN* {.importc: "INET_ADDRSTRLEN", header: "<sys/socket.h>".}: cint
|
||||||
|
var INET6_ADDRSTRLEN* {.importc: "INET6_ADDRSTRLEN", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPV6_JOIN_GROUP* {.importc: "IPV6_JOIN_GROUP", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPV6_LEAVE_GROUP* {.importc: "IPV6_LEAVE_GROUP", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPV6_MULTICAST_HOPS* {.importc: "IPV6_MULTICAST_HOPS", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPV6_MULTICAST_IF* {.importc: "IPV6_MULTICAST_IF", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPV6_MULTICAST_LOOP* {.importc: "IPV6_MULTICAST_LOOP", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPV6_UNICAST_HOPS* {.importc: "IPV6_UNICAST_HOPS", header: "<sys/socket.h>".}: cint
|
||||||
|
var IPV6_V6ONLY* {.importc: "IPV6_V6ONLY", header: "<sys/socket.h>".}: cint
|
||||||
|
|
||||||
|
# <netinet/tcp.h>
|
||||||
|
var TCP_NODELAY* {.importc: "TCP_NODELAY", header: "<sys/socket.h>".}: cint
|
||||||
|
var TCP_KEEPALIVE* {.importc: "TCP_KEEPALIVE", header: "<sys/socket.h>".}: cint
|
||||||
|
var TCP_KEEPIDLE* {.importc: "TCP_KEEPIDLE", header: "<sys/socket.h>".}: cint
|
||||||
|
var TCP_KEEPINTVL* {.importc: "TCP_KEEPINTVL", header: "<sys/socket.h>".}: cint
|
||||||
|
var TCP_KEEPCNT* {.importc: "TCP_KEEPCNT", header: "<sys/socket.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
|
||||||
|
|
||||||
|
# <sys/poll.h>
|
||||||
|
# var POLLIN* {.importc: "POLLIN", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLRDNORM* {.importc: "POLLRDNORM", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLRDBAND* {.importc: "POLLRDBAND", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLPRI* {.importc: "POLLPRI", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLOUT* {.importc: "POLLOUT", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLWRNORM* {.importc: "POLLWRNORM", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLWRBAND* {.importc: "POLLWRBAND", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLERR* {.importc: "POLLERR", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLHUP* {.importc: "POLLHUP", header: "<sys/poll.h>".}: cshort
|
||||||
|
# var POLLNVAL* {.importc: "POLLNVAL", header: "<sys/poll.h>".}: cshort
|
||||||
|
|
||||||
|
# <pthread.h>
|
||||||
|
var PTHREAD_STACK_MIN* {.importc: "PTHREAD_STACK_MIN", header: "<pthread.h>".}: cint
|
||||||
|
# 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
|
||||||
|
# var SIG_HOLD* {.importc: "SIG_HOLD", header: "<signal.h>".}: Sighandler
|
||||||
|
# var SIG_DFL* {.importc: "SIG_DFL", header: "<signal.h>".}: Sighandler
|
||||||
|
# var SIG_ERR* {.importc: "SIG_ERR", header: "<signal.h>".}: Sighandler
|
||||||
|
# var SIG_IGN* {.importc: "SIG_IGN", header: "<signal.h>".}: Sighandler
|
||||||
|
|
||||||
|
# # <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_ANONYMOUS* {.importc: "MAP_ANONYMOUS", header: "<sys/mman.h>".}: cint
|
||||||
|
# var MAP_FIXED_NOREPLACE* {.importc: "MAP_FIXED_NOREPLACE", header: "<sys/mman.h>".}: cint
|
||||||
|
# var MAP_NORESERVE* {.importc: "MAP_NORESERVE", 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/resource.h>
|
||||||
|
# var RLIMIT_NOFILE* {.importc: "RLIMIT_NOFILE", header: "<sys/resource.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
|
||||||
|
const SOCK_SEQPACKET* = cint(5)
|
||||||
|
|
||||||
|
var SOCK_STREAM* {.importc: "SOCK_STREAM", header: "<sys/socket.h>".}: cint
|
||||||
|
var SOL_SOCKET* {.importc: "SOL_SOCKET", header: "<sys/socket.h>".}: cint
|
||||||
|
|
||||||
|
const SocketMaxConnections {.intdefine.}: int = 32
|
||||||
|
var SOMAXCONN*: cint = SocketMaxConnections.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>".}: cint
|
||||||
|
var AF_INET6* {.importc: "AF_INET6", header: "<sys/socket.h>".}: cint
|
||||||
|
# var AF_UNIX* {.importc: "AF_UNIX", header: "<sys/socket.h>".}: cint
|
||||||
|
const AF_UNIX*: cint = 1 # for compat with Nim libraries, doesn't exist on freertos
|
||||||
|
var AF_UNSPEC* {.importc: "AF_UNSPEC", header: "<sys/socket.h>".}: cint
|
||||||
|
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>
|
||||||
|
# <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>
|
||||||
|
|
||||||
|
const F_OK* = cint(0)
|
||||||
|
const R_OK* = cint(4)
|
||||||
|
const W_OK* = cint(2)
|
||||||
|
const X_OK* = cint(1)
|
||||||
|
const F_LOCK* = cint(1)
|
||||||
|
const F_TEST* = cint(3)
|
||||||
|
const F_TLOCK* = cint(2)
|
||||||
|
const F_ULOCK* = cint(0)
|
||||||
|
|
||||||
|
|
@ -10,7 +10,12 @@
|
||||||
when defined(nimHasStyleChecks):
|
when defined(nimHasStyleChecks):
|
||||||
{.push styleChecks: off.}
|
{.push styleChecks: off.}
|
||||||
|
|
||||||
const
|
when defined(freertos):
|
||||||
|
const
|
||||||
|
hasSpawnH = false # should exist for every Posix system nowadays
|
||||||
|
hasAioH = false
|
||||||
|
else:
|
||||||
|
const
|
||||||
hasSpawnH = true # should exist for every Posix system nowadays
|
hasSpawnH = true # should exist for every Posix system nowadays
|
||||||
hasAioH = defined(linux)
|
hasAioH = defined(linux)
|
||||||
|
|
||||||
|
|
@ -397,21 +402,55 @@ type
|
||||||
SockLen* {.importc: "socklen_t", header: "<sys/socket.h>".} = cuint
|
SockLen* {.importc: "socklen_t", header: "<sys/socket.h>".} = cuint
|
||||||
TSa_Family* {.importc: "sa_family_t", header: "<sys/socket.h>".} = cushort
|
TSa_Family* {.importc: "sa_family_t", header: "<sys/socket.h>".} = cushort
|
||||||
|
|
||||||
|
when defined(lwip):
|
||||||
|
type
|
||||||
|
SockAddr* {.importc: "struct sockaddr", header: "<sys/socket.h>",
|
||||||
|
pure, final.} = object ## struct sockaddr
|
||||||
|
sa_len*: uint8 ## Address family.
|
||||||
|
sa_family*: TSa_Family ## Address family.
|
||||||
|
sa_data*: array[0..255, char] ## Socket address (variable-length data).
|
||||||
|
else:
|
||||||
|
type
|
||||||
SockAddr* {.importc: "struct sockaddr", header: "<sys/socket.h>",
|
SockAddr* {.importc: "struct sockaddr", header: "<sys/socket.h>",
|
||||||
pure, final.} = object ## struct sockaddr
|
pure, final.} = object ## struct sockaddr
|
||||||
sa_family*: TSa_Family ## Address family.
|
sa_family*: TSa_Family ## Address family.
|
||||||
sa_data*: array[0..255, char] ## Socket address (variable-length data).
|
sa_data*: array[0..255, char] ## Socket address (variable-length data).
|
||||||
|
|
||||||
|
type
|
||||||
Sockaddr_un* {.importc: "struct sockaddr_un", header: "<sys/un.h>",
|
Sockaddr_un* {.importc: "struct sockaddr_un", header: "<sys/un.h>",
|
||||||
pure, final.} = object ## struct sockaddr_un
|
pure, final.} = object ## struct sockaddr_un
|
||||||
sun_family*: TSa_Family ## Address family.
|
sun_family*: TSa_Family ## Address family.
|
||||||
sun_path*: array[0..Sockaddr_un_path_length-1, char] ## Socket path
|
sun_path*: array[0..Sockaddr_un_path_length-1, char] ## Socket path
|
||||||
|
|
||||||
|
|
||||||
|
when defined(lwip):
|
||||||
|
when not defined(lwip6):
|
||||||
|
type
|
||||||
|
Sockaddr_storage* {.importc: "struct sockaddr_storage",
|
||||||
|
header: "<sys/socket.h>",
|
||||||
|
pure, final.} = object ## struct sockaddr_storage
|
||||||
|
s2_len*: uint8 ## Address family.
|
||||||
|
ss_family*: TSa_Family ## Address family.
|
||||||
|
s2_data1*: array[2, char] ## Address family.
|
||||||
|
s2_data2*: array[3, uint32] ## Address family.
|
||||||
|
else:
|
||||||
|
type
|
||||||
|
Sockaddr_storage* {.importc: "struct sockaddr_storage",
|
||||||
|
header: "<sys/socket.h>",
|
||||||
|
pure, final.} = object ## struct sockaddr_storage
|
||||||
|
s2_len*: uint8 ## Address family.
|
||||||
|
ss_family*: TSa_Family ## Address family.
|
||||||
|
s2_data1*: array[2, char] ## Address family.
|
||||||
|
s2_data2*: array[3, uint32] ## Address family.
|
||||||
|
s2_data3*: array[3, uint32] ## Address family.
|
||||||
|
else:
|
||||||
|
type
|
||||||
Sockaddr_storage* {.importc: "struct sockaddr_storage",
|
Sockaddr_storage* {.importc: "struct sockaddr_storage",
|
||||||
header: "<sys/socket.h>",
|
header: "<sys/socket.h>",
|
||||||
pure, final.} = object ## struct sockaddr_storage
|
pure, final.} = object ## struct sockaddr_storage
|
||||||
ss_family*: TSa_Family ## Address family.
|
ss_family*: TSa_Family ## Address family.
|
||||||
|
|
||||||
|
type
|
||||||
Tif_nameindex* {.importc: "struct if_nameindex", final,
|
Tif_nameindex* {.importc: "struct if_nameindex", final,
|
||||||
pure, header: "<net/if.h>".} = object ## struct if_nameindex
|
pure, header: "<net/if.h>".} = object ## struct if_nameindex
|
||||||
if_index*: cint ## Numeric index of the interface.
|
if_index*: cint ## Numeric index of the interface.
|
||||||
|
|
@ -530,6 +569,8 @@ type
|
||||||
ai_canonname*: cstring ## Canonical name of service location.
|
ai_canonname*: cstring ## Canonical name of service location.
|
||||||
ai_next*: ptr AddrInfo ## Pointer to next in list.
|
ai_next*: ptr AddrInfo ## Pointer to next in list.
|
||||||
|
|
||||||
|
when not defined(lwip):
|
||||||
|
type
|
||||||
TPollfd* {.importc: "struct pollfd", pure, final,
|
TPollfd* {.importc: "struct pollfd", pure, final,
|
||||||
header: "<poll.h>".} = object ## struct pollfd
|
header: "<poll.h>".} = object ## struct pollfd
|
||||||
fd*: cint ## The following descriptor being polled.
|
fd*: cint ## The following descriptor being polled.
|
||||||
|
|
@ -545,7 +586,10 @@ var
|
||||||
timezone* {.importc, header: "<time.h>".}: int
|
timezone* {.importc, header: "<time.h>".}: int
|
||||||
|
|
||||||
# Regenerate using detect.nim!
|
# Regenerate using detect.nim!
|
||||||
include posix_other_consts
|
when defined(lwip):
|
||||||
|
include posix_freertos_consts
|
||||||
|
else:
|
||||||
|
include posix_other_consts
|
||||||
|
|
||||||
when defined(linux):
|
when defined(linux):
|
||||||
var
|
var
|
||||||
|
|
|
||||||
|
|
@ -312,7 +312,7 @@ proc selectInto*[T](s: Selector[T], timeout: int,
|
||||||
verifySelectParams(timeout)
|
verifySelectParams(timeout)
|
||||||
|
|
||||||
if timeout != -1:
|
if timeout != -1:
|
||||||
when defined(genode):
|
when defined(genode) or defined(freertos):
|
||||||
tv.tv_sec = Time(timeout div 1_000)
|
tv.tv_sec = Time(timeout div 1_000)
|
||||||
else:
|
else:
|
||||||
tv.tv_sec = timeout.int32 div 1_000
|
tv.tv_sec = timeout.int32 div 1_000
|
||||||
|
|
|
||||||
|
|
@ -269,7 +269,7 @@ proc getAddrInfo*(address: string, port: Port, domain: Domain = AF_INET,
|
||||||
let socketPort = if sockType == SOCK_RAW: "" else: $port
|
let socketPort = if sockType == SOCK_RAW: "" else: $port
|
||||||
var gaiResult = getaddrinfo(address, socketPort, addr(hints), result)
|
var gaiResult = getaddrinfo(address, socketPort, addr(hints), result)
|
||||||
if gaiResult != 0'i32:
|
if gaiResult != 0'i32:
|
||||||
when useWinVersion:
|
when useWinVersion or defined(freertos):
|
||||||
raiseOSError(osLastError())
|
raiseOSError(osLastError())
|
||||||
else:
|
else:
|
||||||
raiseOSError(osLastError(), $gai_strerror(gaiResult))
|
raiseOSError(osLastError(), $gai_strerror(gaiResult))
|
||||||
|
|
|
||||||
|
|
@ -332,5 +332,7 @@ else:
|
||||||
include ioselects/ioselectors_select # TODO: use the native VFS layer
|
include ioselects/ioselectors_select # TODO: use the native VFS layer
|
||||||
elif defined(nintendoswitch):
|
elif defined(nintendoswitch):
|
||||||
include ioselects/ioselectors_select
|
include ioselects/ioselectors_select
|
||||||
|
elif defined(freertos) or defined(lwip):
|
||||||
|
include ioselects/ioselectors_select
|
||||||
else:
|
else:
|
||||||
include ioselects/ioselectors_poll
|
include ioselects/ioselectors_poll
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,7 @@ elif defined(genode):
|
||||||
proc nimGetProcAddr(lib: LibHandle, name: cstring): ProcAddr {.
|
proc nimGetProcAddr(lib: LibHandle, name: cstring): ProcAddr {.
|
||||||
error: "nimGetProcAddr not implemented".}
|
error: "nimGetProcAddr not implemented".}
|
||||||
|
|
||||||
elif defined(nintendoswitch):
|
elif defined(nintendoswitch) or defined(freertos):
|
||||||
proc nimUnloadLibrary(lib: LibHandle) =
|
proc nimUnloadLibrary(lib: LibHandle) =
|
||||||
cstderr.rawWrite("nimUnLoadLibrary not implemented")
|
cstderr.rawWrite("nimUnLoadLibrary not implemented")
|
||||||
cstderr.rawWrite("\n")
|
cstderr.rawWrite("\n")
|
||||||
|
|
|
||||||
|
|
@ -269,7 +269,7 @@ when SupportIoctlInheritCtl:
|
||||||
|
|
||||||
proc c_ioctl(fd: cint, request: cint): cint {.
|
proc c_ioctl(fd: cint, request: cint): cint {.
|
||||||
importc: "ioctl", header: "<sys/ioctl.h>", varargs.}
|
importc: "ioctl", header: "<sys/ioctl.h>", varargs.}
|
||||||
elif defined(posix) and not defined(nimscript):
|
elif defined(posix) and not defined(lwip) and not defined(nimscript):
|
||||||
var
|
var
|
||||||
F_GETFD {.importc, header: "<fcntl.h>".}: cint
|
F_GETFD {.importc, header: "<fcntl.h>".}: cint
|
||||||
F_SETFD {.importc, header: "<fcntl.h>".}: cint
|
F_SETFD {.importc, header: "<fcntl.h>".}: cint
|
||||||
|
|
@ -336,6 +336,8 @@ when defined(nimdoc) or (defined(posix) and not defined(nimscript)) or defined(w
|
||||||
## availability with `declared() <system.html#declared,untyped>`.
|
## availability with `declared() <system.html#declared,untyped>`.
|
||||||
when SupportIoctlInheritCtl:
|
when SupportIoctlInheritCtl:
|
||||||
result = c_ioctl(f, if inheritable: FIONCLEX else: FIOCLEX) != -1
|
result = c_ioctl(f, if inheritable: FIONCLEX else: FIOCLEX) != -1
|
||||||
|
elif defined(freertos):
|
||||||
|
result = true
|
||||||
elif defined(posix):
|
elif defined(posix):
|
||||||
var flags = c_fcntl(f, F_GETFD)
|
var flags = c_fcntl(f, F_GETFD)
|
||||||
if flags == -1:
|
if flags == -1:
|
||||||
|
|
@ -767,6 +769,10 @@ when declared(stdout):
|
||||||
var echoLock: SysLock
|
var echoLock: SysLock
|
||||||
initSysLock echoLock
|
initSysLock echoLock
|
||||||
|
|
||||||
|
const stdOutLock = not defined(windows) and not defined(android) and
|
||||||
|
not defined(nintendoswitch) and not defined(freertos) and
|
||||||
|
hostOS != "any"
|
||||||
|
|
||||||
proc echoBinSafe(args: openArray[string]) {.compilerproc.} =
|
proc echoBinSafe(args: openArray[string]) {.compilerproc.} =
|
||||||
when defined(androidNDK):
|
when defined(androidNDK):
|
||||||
var s = ""
|
var s = ""
|
||||||
|
|
@ -775,7 +781,7 @@ when declared(stdout):
|
||||||
android_log_print(ANDROID_LOG_VERBOSE, "nim", s)
|
android_log_print(ANDROID_LOG_VERBOSE, "nim", s)
|
||||||
else:
|
else:
|
||||||
# flockfile deadlocks some versions of Android 5.x.x
|
# flockfile deadlocks some versions of Android 5.x.x
|
||||||
when not defined(windows) and not defined(android) and not defined(nintendoswitch) and hostOS != "any":
|
when stdOutLock:
|
||||||
proc flockfile(f: File) {.importc, nodecl.}
|
proc flockfile(f: File) {.importc, nodecl.}
|
||||||
proc funlockfile(f: File) {.importc, nodecl.}
|
proc funlockfile(f: File) {.importc, nodecl.}
|
||||||
flockfile(stdout)
|
flockfile(stdout)
|
||||||
|
|
@ -789,7 +795,7 @@ when declared(stdout):
|
||||||
const linefeed = "\n"
|
const linefeed = "\n"
|
||||||
discard c_fwrite(linefeed.cstring, linefeed.len, 1, stdout)
|
discard c_fwrite(linefeed.cstring, linefeed.len, 1, stdout)
|
||||||
discard c_fflush(stdout)
|
discard c_fflush(stdout)
|
||||||
when not defined(windows) and not defined(android) and not defined(nintendoswitch) and hostOS != "any":
|
when stdOutLock:
|
||||||
funlockfile(stdout)
|
funlockfile(stdout)
|
||||||
when defined(windows) and compileOption("threads"):
|
when defined(windows) and compileOption("threads"):
|
||||||
releaseSys echoLock
|
releaseSys echoLock
|
||||||
|
|
|
||||||
|
|
@ -158,6 +158,7 @@ lib/posix/posix_nintendoswitch_consts.nim
|
||||||
lib/posix/posix_linux_amd64.nim
|
lib/posix/posix_linux_amd64.nim
|
||||||
lib/posix/posix_linux_amd64_consts.nim
|
lib/posix/posix_linux_amd64_consts.nim
|
||||||
lib/posix/posix_other_consts.nim
|
lib/posix/posix_other_consts.nim
|
||||||
|
lib/posix/posix_freertos_consts.nim
|
||||||
lib/posix/posix_openbsd_amd64.nim
|
lib/posix/posix_openbsd_amd64.nim
|
||||||
lib/posix/posix_haiku.nim
|
lib/posix/posix_haiku.nim
|
||||||
lib/js/jsre.nim
|
lib/js/jsre.nim
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue