home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / Computer / Hdr / Socket < prev   
Encoding:
Text File  |  1995-08-22  |  13.9 KB  |  453 lines

  1. ;Assembler header file for Socket
  2. ;written by DefMod (Jun 30 1995) on Tue Aug 22 14:43:35 1995
  3. ;Jonathan Coxhead, Acorn Computers Ltd
  4.  
  5.         [       :LNOT: :DEF: Get_Types
  6.         GBLS    Get_Types
  7.         ]
  8.         [       :LNOT: :DEF: Types_Hdr
  9. Get_Types                       SETS    "GET OS:Hdr.Types"
  10.         |
  11. Get_Types                       SETS    ""
  12.         ]
  13.         $Get_Types
  14.  
  15.         [       :LNOT: :DEF: Get_OS
  16.         GBLS    Get_OS
  17.         ]
  18.         [       :LNOT: :DEF: OS_Hdr
  19. Get_OS                          SETS    "GET OS:Hdr.OS"
  20.         |
  21. Get_OS                          SETS    ""
  22.         ]
  23.         $Get_OS
  24.  
  25.         [       :LNOT: :DEF: Socket_Hdr
  26.         GBLS    Socket_Hdr
  27.  
  28. ;Symbols for constants
  29. Socket_AFInet                   *       &2
  30. Socket_SockStream               *       &1
  31. Socket_SockDGram                *       &2
  32. Socket_SockRaw                  *       &3
  33. Socket_IpprotoIP                *       &0
  34. Socket_IpprotoICMP              *       &1
  35. Socket_IpprotoTCP               *       &6
  36. Socket_IpprotoUDP               *       &11
  37. Socket_IpprotoRaw               *       &FF
  38. Socket_SolSocket                *       &FFFF
  39. Socket_EBadf                    *       &9
  40. Socket_EAgain                   *       &B
  41. Socket_EFault                   *       &E
  42. Socket_EInval                   *       &16
  43. Socket_EWouldblock              *       &23
  44. Socket_EInprogress              *       &24
  45. Socket_EAlready                 *       &25
  46. Socket_ENotsock                 *       &26
  47. Socket_EDestaddrreq             *       &27
  48. Socket_EMsgsize                 *       &28
  49. Socket_EPrototype               *       &29
  50. Socket_ENoprotoopt              *       &2A
  51. Socket_EProtonosupport          *       &2B
  52. Socket_ESocktnosupport          *       &2C
  53. Socket_EOpnotsupp               *       &2D
  54. Socket_EPfnosupport             *       &2E
  55. Socket_EAfnosupport             *       &2F
  56. Socket_EAddrinuse               *       &30
  57. Socket_EAddrnotavail            *       &31
  58. Socket_ENetdown                 *       &32
  59. Socket_ENetunreach              *       &33
  60. Socket_ENetreset                *       &34
  61. Socket_EConnaborted             *       &35
  62. Socket_EConnreset               *       &36
  63. Socket_ENobufs                  *       &37
  64. Socket_EIsconn                  *       &38
  65. Socket_ENotconn                 *       &39
  66. Socket_EShutdown                *       &3A
  67. Socket_EToomanyrefs             *       &3B
  68. Socket_ETimedout                *       &3C
  69. Socket_EConnrefused             *       &3D
  70. Socket_EHostdown                *       &40
  71. Socket_EHostunreach             *       &41
  72. Socket_SoAcceptconn             *       &2
  73. Socket_SoReuseaddr              *       &4
  74. Socket_SoKeepalive              *       &8
  75. Socket_SoDontroute              *       &10
  76. Socket_SoBroadcast              *       &20
  77. Socket_SoUseloopback            *       &40
  78. Socket_SoLinger                 *       &80
  79. Socket_SoOobinline              *       &100
  80. Socket_SoSndbuf                 *       &1001
  81. Socket_SoRcvbuf                 *       &1002
  82. Socket_SoSndlowat               *       &1003
  83. Socket_SoRcvlowat               *       &1004
  84. Socket_SoSndtimeo               *       &1005
  85. Socket_SoRcvtimeo               *       &1006
  86. Socket_SoError                  *       &1007
  87. Socket_SoType                   *       &1008
  88. Socket_IFNameLimit              *       16
  89. Socket_IFUp                     *       &1
  90. Socket_IFBroadcast              *       &2
  91. Socket_IFDebug                  *       &4
  92. Socket_IFLoopback               *       &8
  93. Socket_IFPointToPoint           *       &10
  94. Socket_IFNoTrailers             *       &20
  95. Socket_IFRunning                *       &40
  96. Socket_IFNoARP                  *       &80
  97. Socket_SIOCSHIWAT               *       &80047300
  98. Socket_SIOCGHIWAT               *       &40047301
  99. Socket_SIOCSLOWAT               *       &80047302
  100. Socket_SIOCGLOWAT               *       &40047303
  101. Socket_SIOCATMARK               *       &40047307
  102. Socket_SIOCSIFADDR              *       &8020690C
  103. Socket_SIOCGIFADDR              *       &C020690D
  104. Socket_SIOCSIFDSTADDR           *       &8020690E
  105. Socket_SIOCGIFDSTADDR           *       &C020690F
  106. Socket_SIOCSIFFLAGS             *       &80206910
  107. Socket_SIOCGIFFLAGS             *       &C0206911
  108. Socket_SIOCGIFBRDADDR           *       &C0206912
  109. Socket_SIOCSIFBRDADDR           *       &80206913
  110. Socket_SIOCGIFCONF              *       &C0086914
  111. Socket_SIOCGIFNETMASK           *       &C0206915
  112. Socket_SIOCSIFNETMASK           *       &80206916
  113. Socket_SIOCGIFMETRIC            *       &C0206917
  114. Socket_SIOCSIFMETRIC            *       &80206918
  115. Socket_FIONREAD                 *       &4004667F
  116. Socket_FIONBIO                  *       &8004667E
  117. Socket_FIOASYNC                 *       &8004667D
  118. Socket_MsgOob                   *       &1
  119. Socket_MsgPeek                  *       &2
  120. Socket_MsgDontroute             *       &4
  121. Socket_ShutdownRecv             *       &0
  122. Socket_ShutdownSend             *       &1
  123. Socket_ShutdownAll              *       &2
  124. Socket_AsyncEvent               *       &1
  125. Socket_UrgentEvent              *       &2
  126. Socket_BrokenEvent              *       &3
  127.  
  128. ;Symbols for structure offsets and sizes
  129. Socket_AF                       *       Short
  130.  
  131. Socket_Sock                     *       Int
  132.  
  133. Socket_Ipproto                  *       Int
  134.  
  135. Socket_Level                    *       Int
  136.  
  137.                                 ^       0
  138. Socket_SockaddrIn_af            #       Socket_AF
  139. Socket_SockaddrIn_port          #       Short
  140. Socket_SockaddrIn_addr          #       Bits
  141. Socket_SockaddrIn_data          #       8*Byte
  142. Socket_SockaddrIn               *       @
  143.  
  144.                                 ^       0
  145. Socket_Sockaddr_sockaddr_af     #       Socket_AF
  146. Socket_Sockaddr_sockaddr_data   #       14*Byte
  147.                                 ^       0
  148. Socket_Sockaddr_sockaddr_in     #       Socket_SockaddrIn
  149. Socket_Sockaddr                 *       @
  150.  
  151.                                 ^       0
  152. Socket_Linger_onoff             #       Int
  153. Socket_Linger_linger            #       Int
  154. Socket_Linger                   *       @
  155.  
  156.                                 ^       0
  157. Socket_Timeval_sec              #       Int
  158. Socket_Timeval_usec             #       Int
  159. Socket_Timeval                  *       @
  160.  
  161. Socket_So                       *       Int
  162.  
  163. Socket_IFFlags                  *       Short
  164.  
  165.                                 ^       0
  166. Socket_Ifreq_name               #       16*Char
  167. Socket_Ifreq_u                  *       @
  168. Socket_Ifreq_u_sockaddr         #       Socket_Sockaddr
  169.                                 ^       Socket_Ifreq_u
  170. Socket_Ifreq_u_broadaddr        #       Socket_Sockaddr
  171.                                 ^       Socket_Ifreq_u
  172. Socket_Ifreq_u_flags            #       Socket_IFFlags
  173.                                 ^       Socket_Ifreq_u
  174. Socket_Ifreq_u_metric           #       Int
  175.                                 ^       Socket_Ifreq_u
  176. Socket_Ifreq_u_data             #       Ptr
  177.                                 ^       Socket_Ifreq_u
  178. Socket_Ifreq_u_reserved         #       16*Byte
  179. Socket_Ifreq                    *       @
  180.  
  181.                                 ^       0
  182. Socket_Ifconf_len               #       Int
  183. Socket_Ifconf_u                 *       @
  184. Socket_Ifconf_u_buf             #       Ptr
  185.                                 ^       Socket_Ifconf_u
  186. Socket_Ifconf_u_req             #       Ptr
  187. Socket_Ifconf                   *       @
  188.  
  189. Socket_IoctlNo                  *       Bits
  190.  
  191. Socket_MsgFlags                 *       Bits
  192.  
  193. Socket_S                        *       4 ;abstract type
  194.                                 ^       0
  195. Socket_Iovec_base               #       Ptr
  196. Socket_Iovec_len                #       Int
  197. Socket_Iovec                    *       @
  198.  
  199.                                 ^       0
  200. Socket_Msghdr_name              #       Ptr
  201. Socket_Msghdr_namelen           #       Int
  202. Socket_Msghdr_iov               #       Ptr
  203. Socket_Msghdr_iov_count         #       Int
  204. Socket_Msghdr_accrights         #       Ptr
  205. Socket_Msghdr_accrightslen      #       Int
  206. Socket_Msghdr                   *       @
  207.  
  208. Socket_ShutdownType             *       Int
  209.  
  210. Socket_Fdset                    *       Skip
  211.  
  212. Socket_EventType                *       Int
  213.  
  214.  
  215. ;Symbols for SWI's and SWI reason codes
  216. XSocket_Creat                   *       &61200
  217. Socket_Creat                    *       &41200
  218.    ;Entry
  219.    ;  R0 = af (Socket_AF)
  220.    ;  R1 = sock (Socket_Sock)
  221.    ;  R2 = proto (Socket_Ipproto)
  222.    ;Exit
  223.    ;  R0 = s (Socket_S)
  224.  
  225. XSocket_Bind                    *       &61201
  226. Socket_Bind                     *       &41201
  227.    ;Entry
  228.    ;  R0 = s (Socket_S)
  229.    ;  R1 -> sockaddr (Socket_Sockaddr)
  230.    ;  R2 = namelen (Int)
  231.  
  232. XSocket_Listen                  *       &61202
  233. Socket_Listen                   *       &41202
  234.    ;Entry
  235.    ;  R0 = s (Socket_S)
  236.    ;  R1 = backlog (Int)
  237.  
  238. XSocket_Accept                  *       &61203
  239. Socket_Accept                   *       &41203
  240.    ;Entry
  241.    ;  R0 = s (Socket_S)
  242.    ;  R1 = sockaddr (pointer to Socket_Sockaddr)
  243.    ;  R2 = addrlen (pointer to Int)
  244.    ;Exit
  245.    ;  R0 = ns (Socket_S)
  246.  
  247. XSocket_Connect                 *       &61204
  248. Socket_Connect                  *       &41204
  249.    ;Entry
  250.    ;  R0 = s (Socket_S)
  251.    ;  R1 = sockaddr (pointer to Socket_Sockaddr)
  252.    ;  R2 = namelen (Int)
  253.  
  254. XSocket_Recv                    *       &61205
  255. Socket_Recv                     *       &41205
  256.    ;Entry
  257.    ;  R0 = s (Socket_S)
  258.    ;  R1 = buf (pointer to data)
  259.    ;  R2 = len (Int)
  260.    ;  R3 = flags (Socket_MsgFlags)
  261.    ;Exit
  262.    ;  R0 = cc (Int)
  263.  
  264. XSocket_Recvfrom                *       &61206
  265. Socket_Recvfrom                 *       &41206
  266.    ;Entry
  267.    ;  R0 = s (Socket_S)
  268.    ;  R1 = buf (pointer to data)
  269.    ;  R2 = len (Int)
  270.    ;  R3 = flags (Socket_MsgFlags)
  271.    ;  R4 = from (pointer to Socket_Sockaddr)
  272.    ;  R5 = fromlen (pointer to Int)
  273.    ;Exit
  274.    ;  R0 = cc (Int)
  275.  
  276. XSocket_Recvmsg                 *       &61207
  277. Socket_Recvmsg                  *       &41207
  278.    ;Entry
  279.    ;  R0 = s (Socket_S)
  280.    ;  R1 = msg (pointer to Socket_Msghdr)
  281.    ;  R2 = flags (Socket_MsgFlags)
  282.    ;Exit
  283.    ;  R0 = cc (Int)
  284.  
  285. XSocket_Send                    *       &61208
  286. Socket_Send                     *       &41208
  287.    ;Entry
  288.    ;  R0 = s (Socket_S)
  289.    ;  R1 -> msg (data)
  290.    ;  R2 = len (Int)
  291.    ;  R3 = flags (Socket_MsgFlags)
  292.    ;Exit
  293.    ;  R0 = cc (Int)
  294.  
  295. XSocket_Sendto                  *       &61209
  296. Socket_Sendto                   *       &41209
  297.    ;Entry
  298.    ;  R0 = s (Socket_S)
  299.    ;  R1 -> msg (data)
  300.    ;  R2 = len (Int)
  301.    ;  R3 = flags (Socket_MsgFlags)
  302.    ;  R4 -> to (Socket_Sockaddr)
  303.    ;  R5 = tolen (Int)
  304.    ;Exit
  305.    ;  R0 = cc (Int)
  306.  
  307. XSocket_Sendmsg                 *       &6120A
  308. Socket_Sendmsg                  *       &4120A
  309.    ;Entry
  310.    ;  R0 = s (Socket_S)
  311.    ;  R1 -> msg (Socket_Msghdr)
  312.    ;  R2 = flags (Socket_MsgFlags)
  313.    ;Exit
  314.    ;  R0 = cc (Int)
  315.  
  316. XSocket_Shutdown                *       &6120B
  317. Socket_Shutdown                 *       &4120B
  318.    ;Entry
  319.    ;  R0 = s (Socket_S)
  320.    ;  R1 = type (Socket_ShutdownType)
  321.  
  322. XSocket_Setsockopt              *       &6120C
  323. Socket_Setsockopt               *       &4120C
  324.    ;Entry
  325.    ;  R0 = s (Socket_S)
  326.    ;  R1 = level (Socket_Level)
  327.    ;  R2 = optname (Socket_So)
  328.    ;  R3 -> optval (data)
  329.    ;  R4 = optlen (Int)
  330.  
  331. XSocket_Getsockopt              *       &6120D
  332. Socket_Getsockopt               *       &4120D
  333.    ;Entry
  334.    ;  R0 = s (Socket_S)
  335.    ;  R1 = level (Socket_Level)
  336.    ;  R2 = optname (Socket_So)
  337.    ;  R3 = optval (pointer to data)
  338.    ;  R4 = optlen (pointer to Int)
  339.  
  340. XSocket_Getpeername             *       &6120E
  341. Socket_Getpeername              *       &4120E
  342.    ;Entry
  343.    ;  R0 = s (Socket_S)
  344.    ;  R1 = sockaddr (pointer to Socket_Sockaddr)
  345.    ;  R2 = namelen (pointer to Int)
  346.  
  347. XSocket_Getsockname             *       &6120F
  348. Socket_Getsockname              *       &4120F
  349.    ;Entry
  350.    ;  R0 = s (Socket_S)
  351.    ;  R1 = sockaddr (pointer to Socket_Sockaddr)
  352.    ;  R2 = namelen (pointer to Int)
  353.  
  354. XSocket_Close                   *       &61210
  355. Socket_Close                    *       &41210
  356.    ;Entry
  357.    ;  R0 = s (Socket_S)
  358.  
  359. XSocket_Select                  *       &61211
  360. Socket_Select                   *       &41211
  361.    ;Entry
  362.    ;  R0 = nfds (Int)
  363.    ;  R1 -> readfds (Socket_Fdset)
  364.    ;  R2 -> writefds (Socket_Fdset)
  365.    ;  R3 -> exceptfds (Socket_Fdset)
  366.    ;  R4 -> timeout (Socket_Timeval)
  367.    ;Exit
  368.    ;  R0 = nfound (Int)
  369.  
  370. XSocket_Ioctl                   *       &61212
  371. Socket_Ioctl                    *       &41212
  372.    ;Entry
  373.    ;  R0 = s (Socket_S)
  374.    ;  R1 = flags (Socket_IoctlNo)
  375.    ;  R2 = argp (pointer to data)
  376.  
  377. XSocket_Read                    *       &61213
  378. Socket_Read                     *       &41213
  379.    ;Entry
  380.    ;  R0 = s (Socket_S)
  381.    ;  R1 = buf (pointer to data)
  382.    ;  R2 = len (Int)
  383.    ;Exit
  384.    ;  R0 = cc (Int)
  385.  
  386. XSocket_Write                   *       &61214
  387. Socket_Write                    *       &41214
  388.    ;Entry
  389.    ;  R0 = s (Socket_S)
  390.    ;  R1 -> msg (data)
  391.    ;  R2 = len (Int)
  392.    ;Exit
  393.    ;  R0 = cc (Int)
  394.  
  395. XSocket_Stat                    *       &61215
  396. Socket_Stat                     *       &41215
  397.  
  398. XSocket_Readv                   *       &61216
  399. Socket_Readv                    *       &41216
  400.    ;Entry
  401.    ;  R0 = s (Socket_S)
  402.    ;  R1 = iov (pointer to Socket_Iovec)
  403.    ;  R2 = iov_count (Int)
  404.    ;Exit
  405.    ;  R0 = cc (Int)
  406.  
  407. XSocket_Writev                  *       &61217
  408. Socket_Writev                   *       &41217
  409.    ;Entry
  410.    ;  R0 = s (Socket_S)
  411.    ;  R1 -> iov (Socket_Iovec)
  412.    ;  R2 = iov_count (Int)
  413.    ;Exit
  414.    ;  R0 = cc (Int)
  415.  
  416. XSocket_Gettsize                *       &61218
  417. Socket_Gettsize                 *       &41218
  418.    ;Exit
  419.    ;  R0 = size (Int)
  420.  
  421. Event_Internet                  *       &13
  422.    ;Entry
  423.    ;  R0 = &13
  424.    ;  R1 = event_type (Socket_EventType)
  425.    ;  R2 = s (Socket_S)
  426.  
  427. EventInternet_Async             *       &1
  428.    ;Entry
  429.    ;  R0 = &13
  430.    ;  R1 = &1
  431.    ;  R2 = s (Socket_S)
  432.  
  433. EventInternet_Urgent            *       &2
  434.    ;Entry
  435.    ;  R0 = &13
  436.    ;  R1 = &2
  437.    ;  R2 = s (Socket_S)
  438.  
  439. EventInternet_Broken            *       &3
  440.    ;Entry
  441.    ;  R0 = &13
  442.    ;  R1 = &3
  443.    ;  R2 = s (Socket_S)
  444.  
  445. EventInternet_RARPReply         *       &4
  446.    ;Entry
  447.    ;  R0 = &13
  448.    ;  R1 = &4
  449.    ;  R2 = addr (Bits)
  450.  
  451.         ]
  452.         END
  453.