52 lines
1.4 KiB
C
52 lines
1.4 KiB
C
// Public NTLite net ABI declarations shared between kernel, drivers, and user mode.
|
|
|
|
#pragma once
|
|
// net_abi.h - native networking ABI shared by the kernel socket facade
|
|
// and network stack provider drivers.
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
#define SYS_AF_INET 2u
|
|
#define SYS_AF_INET6 10u
|
|
#define SYS_SOCK_STREAM 1u
|
|
#define SYS_SOCK_DGRAM 2u
|
|
#define SYS_SOCK_RAW 3u
|
|
#define SYS_IPPROTO_ICMP 1u
|
|
#define SYS_IPPROTO_TCP 6u
|
|
#define SYS_IPPROTO_UDP 17u
|
|
#define SYS_IPPROTO_ICMPV6 58u
|
|
|
|
#define SYS_SHUTDOWN_READ 0u
|
|
#define SYS_SHUTDOWN_WRITE 1u
|
|
#define SYS_SHUTDOWN_BOTH 2u
|
|
|
|
#define SYS_SOCKET_ADDRESS_SIZE 28u
|
|
#define SYS_RESOLVE_HOST_NAME_MAX 255u
|
|
|
|
#define SYS_SOCKET_OPT_RECV_TIMEOUT_MS 1u
|
|
#define SYS_SOCKET_OPT_SEND_TIMEOUT_MS 2u
|
|
#define SYS_SOCKET_OPT_NONBLOCKING 3u
|
|
|
|
#define SYS_POLL_READ 0x0001u
|
|
#define SYS_POLL_WRITE 0x0002u
|
|
#define SYS_POLL_ERROR 0x0004u
|
|
#define SYS_POLL_HANGUP 0x0008u
|
|
#define SYS_POLL_INVALID 0x0010u
|
|
#define SYS_POLL_TIMEOUT_INFINITE 0xFFFFFFFFu
|
|
|
|
// Kernel socket providers use the same tagged native address shape as syscalls.
|
|
typedef struct SYS_SOCKET_ADDRESS_K {
|
|
uint16_t Family;
|
|
uint16_t Size;
|
|
uint16_t Port;
|
|
uint8_t Address[16];
|
|
uint32_t ScopeId;
|
|
} SYS_SOCKET_ADDRESS_K;
|
|
|
|
typedef struct SYS_POLLFD_K {
|
|
uint32_t Handle;
|
|
uint32_t Events;
|
|
uint32_t ReturnedEvents;
|
|
} SYS_POLLFD_K;
|