Subversion Repositories Kolibri OS

Rev

Rev 4208 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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