Files
c3c/lib/std/net/os/linux.c3

91 lines
4.0 KiB
C

module std::net::os @if(env::LINUX);
import libc;
const AIFamily PLATFORM_AF_AX25 = 3;
const AIFamily PLATFORM_AF_IPX = 4;
const AIFamily PLATFORM_AF_APPLETALK = 5;
const AIFamily PLATFORM_AF_NETROM = 6;
const AIFamily PLATFORM_AF_BRIDGE = 7;
const AIFamily PLATFORM_AF_AAL5 = 8;
const AIFamily PLATFORM_AF_X25 = 9;
const AIFamily PLATFORM_AF_INET6 = 10;
const PLATFORM_O_NONBLOCK = 0o4000;
// https://github.com/torvalds/linux/blob/master/include/uapi/asm-generic/socket.h
const int SOL_SOCKET = 1;
const int SO_DEBUG = 1; // turn on debugging info recording
const int SO_REUSEADDR = 2; // allow local address reuse
const int SO_TYPE = 3;
const int SO_ERROR = 4;
const int SO_DONTROUTE = 5; // just use interface addresses
const int SO_BROADCAST = 6; // permit sending of broadcast msgs
const int SO_SNDBUF = 7; // Send buffer size
const int SO_RCVBUF = 8; // Recieve buffer size
const int SO_KEEPALIVE = 9; // keep connections alive
const int SO_OOBINLINE = 10; // leave received OOB data in line
const int SO_NO_CHECK = 11;
const int SO_PRIORITY = 12;
const int SO_LINGER = 13; // linger on close if data present (in ticks)
const int SO_BSDCOMPAT = 14;
const int SO_REUSEPORT = 15; // allow local address & port reuse
const int SO_RCVLOWAT = 18;
const int SO_SNDLOWAT = 19;
const int SO_RCVTIMEO = 20; // IMPORTANT Verify before use
const int SO_SNDTIMEO = 21; // IMPORTANT Verify before use
const int SO_BINDTODEVICE = 25;
const int SO_ATTACH_FILTER = 26;
const int SO_DETACH_FILTER = 27;
const int SO_PEERNAME = 28;
const int SO_TIMESTAMP = 29; // IMPORTANT Verify before use timestamp received dgram traffic
const int SO_ACCEPTCONN = 30;
const int SO_PEERSEC = 31;
const int SO_SNDBUFFORCE = 32;
const int SO_RCVBUFFORCE = 33;
const int SO_PASSSEC = 34;
const int SO_MARK = 36;
const int SO_PROTOCOL = 38;
const int SO_DOMAIN = 39;
const int SO_RXQ_OVFL = 40;
const int SO_WIFI_STATUS = 41;
const int SO_PEEK_OFF = 42;
const int SO_NOFCS = 43;
const int SO_LOCK_FILTER = 44;
const int SO_SELECT_ERR_QUEUE = 45;
const int SO_BUSY_POLL = 46;
const int SO_MAX_PACING_RATE = 47;
const int SO_BPF_EXTENSIONS = 48;
const int SO_INCOMING_CPU = 49;
const int SO_ATTACH_BPF = 50;
const int SO_ATTACH_REUSEPORT_CBPF = 51;
const int SO_ATTACH_REUSEPORT_EBPF = 52;
const int SO_CNX_ADVICE = 53;
const int SO_MEMINFO = 55;
const int SO_INCOMING_NAPI_ID = 56;
const int SO_COOKIE = 57;
const int SO_PEERGROUPS = 59;
const int SO_ZEROCOPY = 60;
const int SO_TXTIME = 61;
const int SO_BINDTOIFINDEX = 62;
const int SO_DETACH_REUSEPORT_BPF = 68;
const int SO_PREFER_BUSY_POLL = 69;
const int SO_BUSY_POLL_BUDGET = 70;
const int SO_NETNS_COOKIE = 71;
const int SO_BUF_LOCK = 72;
const int SO_RESERVE_MEM = 73;
const int SO_TXREHASH = 74;
const int SO_RCVMARK = 75;
const int SO_PASSPIDFD = 76;
const int SO_PEERPIDFD = 77;
const CUShort POLLRDNORM = 0x0040;
const CUShort POLLRDBAND = 0x0080;
const CUShort POLLWRNORM = 0x0100;
const CUShort POLLWRBAND = 0x0200;
const CUShort POLLMSG = 0x0400;
const CUShort POLLREMOVE = 0x1000;
const CUShort POLLRDHUP = 0x2000;
const CUShort POLLFREE = 0x4000;
const CUShort POLL_BUSY_LOOP = 0x8000;