1. Edit procedure check exception 12 (overflow stack)
[kolibrios.git] / programs / network.inc
blob0c878afb393cd3d21812debb1f3b415e50562a0f
1 ; Socket types\r
2 SOCK_STREAM     = 1\r
3 SOCK_DGRAM      = 2\r
4 SOCK_RAW        = 3\r
5 \r
6 ; IP protocols\r
7 IPPROTO_IP      = 0\r
8 IPPROTO_ICMP    = 1\r
9 IPPROTO_TCP     = 6\r
10 IPPROTO_UDP     = 17\r
11 IPPROTO_RAW     = 255\r
13 ; IP options\r
14 IP_TTL          = 2\r
16 ; Address families\r
17 AF_UNSPEC       = 0\r
18 AF_LOCAL        = 1\r
19 AF_INET4        = 2     ; IPv4\r
20 AF_INET6        = 10    ; IPv6\r
22 PF_UNSPEC       = AF_UNSPEC\r
23 PF_LOCAL        = AF_LOCAL\r
24 PF_INET4        = AF_INET4\r
25 PF_INET6        = AF_INET6\r
27 ; Flags for addrinfo\r
28 AI_PASSIVE      = 1\r
29 AI_CANONNAME    = 2\r
30 AI_NUMERICHOST  = 4\r
31 AI_NUMERICSERV  = 8\r
32 AI_ADDRCONFIG   = 0x400\r
34 ; internal definition\r
35 AI_SUPPORTED    = 0x40F\r
37 ; for system function 76\r
38 API_ETH         = 0 shl 16\r
39 API_IPv4        = 1 shl 16\r
40 API_ICMP        = 2 shl 16\r
41 API_UDP         = 3 shl 16\r
42 API_TCP         = 4 shl 16\r
43 API_ARP         = 5 shl 16\r
44 API_PPPOE       = 6 shl 16\r
46 ; Socket flags for user calls\r
47 MSG_PEEK        = 0x02\r
48 MSG_DONTWAIT    = 0x40\r
50 ; Socket levels\r
51 SOL_SOCKET      = 0xffff\r
53 ; Socket options\r
54 SO_BINDTODEVICE = 1 shl 9\r
55 SO_NONBLOCK     = 1 shl 31\r
57 struct sockaddr_in\r
58         sin_family      dw      ?       ; sa_family_t\r
59         sin_port        dw      ?       ; in_port_t\r
60         sin_addr        dd      ?       ; struct in_addr\r
61         sin_zero        rb      8       ; zero\r
62 ends\r
64 struct addrinfo\r
65         ai_flags        dd      ?       ; bitmask of AI_*\r
66         ai_family       dd      ?       ; PF_*\r
67         ai_socktype     dd      ?       ; SOCK_*\r
68         ai_protocol     dd      ?       ; 0 or IPPROTO_*\r
69         ai_addrlen      dd      ?       ; length of ai_addr\r
70         ai_canonname    dd      ?       ; char*\r
71         ai_addr         dd      ?       ; struct sockaddr*\r
72         ai_next         dd      ?       ; struct addrinfo*\r
73 ends\r
75 EAI_ADDRFAMILY  = 1\r
76 EAI_AGAIN       = 2\r
77 EAI_BADFLAGS    = 3\r
78 EAI_FAIL        = 4\r
79 EAI_FAMILY      = 5\r
80 EAI_MEMORY      = 6\r
81 EAI_NONAME      = 8\r
82 EAI_SERVICE     = 9\r
83 EAI_SOCKTYPE    = 10\r
84 EAI_BADHINTS    = 12\r
85 EAI_PROTOCOL    = 13\r
86 EAI_OVERFLOW    = 14\r
88 socket          fix 75, 0\r
89 close           fix 75, 1\r
90 bind            fix 75, 2\r
91 listen          fix 75, 3\r
92 connect         fix 75, 4\r
93 accept          fix 75, 5\r
94 send            fix 75, 6\r
95 recv            fix 75, 7\r
96 setsockopt      fix 75, 8\r
97 getsockopt      fix 75, 9\r
98 socketpair      fix 75, 10\r
101 struct  ARP_entry\r
102         IP      dd ?\r
103         MAC     dp ?\r
104         status  dw ?\r
105         TTL     dw ?\r
106 ends\r
109 ; Socket error codes\r
110 ; Error Codes\r
111 ENOBUFS                 = 1\r
112 EINPROGRESS             = 2\r
113 EOPNOTSUPP              = 4\r
114 EWOULDBLOCK             = 6\r
115 ENOTCONN                = 9\r
116 EALREADY                = 10\r
117 EINVAL                  = 11\r
118 EMSGSIZE                = 12\r
119 ENOMEM                  = 18\r
120 EADDRINUSE              = 20\r
121 ECONNREFUSED            = 61\r
122 ECONNRESET              = 52\r
123 EISCONN                 = 56\r
124 ETIMEDOUT               = 60\r
125 ECONNABORTED            = 53