Subversion Repositories Kolibri OS

Rev

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