home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 9 / FreshFishVol9-CD2.bin / bbs / cbm / os-include-bin.lha / GNU / os-include / inline / socket.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-26  |  26.6 KB  |  970 lines

  1. #ifndef _INLINE_SOCKET_H
  2. #define _INLINE_SOCKET_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6. /* for struct in ;-( */
  7. #include <netinet/in.h>
  8.  
  9. __BEGIN_DECLS
  10.  
  11. #ifndef BASE_EXT_DECL
  12. #define BASE_EXT_DECL extern struct Library * SockBase;
  13. #endif
  14. #ifndef BASE_PAR_DECL
  15. #define BASE_PAR_DECL
  16. #define BASE_PAR_DECL0 void
  17. #endif
  18. #ifndef BASE_NAME
  19. #define BASE_NAME SockBase
  20. #endif
  21.  
  22. static __inline int
  23. accept (BASE_PAR_DECL int s,struct sockaddr * name,int * lenp)
  24. {
  25.   BASE_EXT_DECL
  26.   register int    _res  __asm("d0");
  27.   register struct Library *a6 __asm("a6") = BASE_NAME;
  28.   register int d0 __asm("d0") = s;
  29.   register struct sockaddr * a0 __asm("a0") = name;
  30.   register int * a1 __asm("a1") = lenp;
  31.   __asm __volatile ("jsr a6@(-0xba)"
  32.   : "=r" (_res)
  33.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  34.   : "a0","a1","d0","d1", "memory");
  35.   return _res;
  36. }
  37. static __inline int
  38. bind (BASE_PAR_DECL int s,struct sockaddr * name,int namelen)
  39. {
  40.   BASE_EXT_DECL
  41.   register int    _res  __asm("d0");
  42.   register struct Library *a6 __asm("a6") = BASE_NAME;
  43.   register int d0 __asm("d0") = s;
  44.   register struct sockaddr * a1 __asm("a1") = name;
  45.   register int d1 __asm("d1") = namelen;
  46.   __asm __volatile ("jsr a6@(-0xc0)"
  47.   : "=r" (_res)
  48.   : "r" (a6), "r" (d0), "r" (a1), "r" (d1)
  49.   : "a0","a1","d0","d1", "memory");
  50.   return _res;
  51. }
  52. static __inline void
  53. cleanup_sockets (BASE_PAR_DECL0)
  54. {
  55.   BASE_EXT_DECL
  56.   register struct Library *a6 __asm("a6") = BASE_NAME;
  57.   __asm __volatile ("jsr a6@(-0x24)"
  58.   : /* no output */
  59.   : "r" (a6)
  60.   : "a0","a1","d0","d1", "memory");
  61. }
  62. static __inline int
  63. connect (BASE_PAR_DECL int s,struct sockaddr * name,int namelen)
  64. {
  65.   BASE_EXT_DECL
  66.   register int    _res  __asm("d0");
  67.   register struct Library *a6 __asm("a6") = BASE_NAME;
  68.   register int d0 __asm("d0") = s;
  69.   register struct sockaddr * a1 __asm("a1") = name;
  70.   register int d1 __asm("d1") = namelen;
  71.   __asm __volatile ("jsr a6@(-0xc6)"
  72.   : "=r" (_res)
  73.   : "r" (a6), "r" (d0), "r" (a1), "r" (d1)
  74.   : "a0","a1","d0","d1", "memory");
  75.   return _res;
  76. }
  77. static __inline void
  78. endhostent (BASE_PAR_DECL0)
  79. {
  80.   BASE_EXT_DECL
  81.   register struct Library *a6 __asm("a6") = BASE_NAME;
  82.   __asm __volatile ("jsr a6@(-0x7e)"
  83.   : /* no output */
  84.   : "r" (a6)
  85.   : "a0","a1","d0","d1", "memory");
  86. }
  87. static __inline void
  88. endnetent (BASE_PAR_DECL0)
  89. {
  90.   BASE_EXT_DECL
  91.   register struct Library *a6 __asm("a6") = BASE_NAME;
  92.   __asm __volatile ("jsr a6@(-0x120)"
  93.   : /* no output */
  94.   : "r" (a6)
  95.   : "a0","a1","d0","d1", "memory");
  96. }
  97. static __inline void
  98. endprotoent (BASE_PAR_DECL0)
  99. {
  100.   BASE_EXT_DECL
  101.   register struct Library *a6 __asm("a6") = BASE_NAME;
  102.   __asm __volatile ("jsr a6@(-0x13e)"
  103.   : /* no output */
  104.   : "r" (a6)
  105.   : "a0","a1","d0","d1", "memory");
  106. }
  107. static __inline void
  108. endpwent (BASE_PAR_DECL0)
  109. {
  110.   BASE_EXT_DECL
  111.   register struct Library *a6 __asm("a6") = BASE_NAME;
  112.   __asm __volatile ("jsr a6@(-0x18c)"
  113.   : /* no output */
  114.   : "r" (a6)
  115.   : "a0","a1","d0","d1", "memory");
  116. }
  117. static __inline void
  118. endservent (BASE_PAR_DECL0)
  119. {
  120.   BASE_EXT_DECL
  121.   register struct Library *a6 __asm("a6") = BASE_NAME;
  122.   __asm __volatile ("jsr a6@(-0x15c)"
  123.   : /* no output */
  124.   : "r" (a6)
  125.   : "a0","a1","d0","d1", "memory");
  126. }
  127. static __inline short
  128. get_tz (BASE_PAR_DECL0)
  129. {
  130.   BASE_EXT_DECL
  131.   register short  _res    __asm("d0");
  132.   register struct Library *a6 __asm("a6") = BASE_NAME;
  133.   __asm __volatile ("jsr a6@(-0x5a)"
  134.   : "=r" (_res)
  135.   : "r" (a6)
  136.   : "a0","a1","d0","d1", "memory");
  137.   return _res;
  138. }
  139. static __inline int
  140. getdomainname (BASE_PAR_DECL char * name,int namelen)
  141. {
  142.   BASE_EXT_DECL
  143.   register int    _res  __asm("d0");
  144.   register struct Library *a6 __asm("a6") = BASE_NAME;
  145.   register char * a1 __asm("a1") = name;
  146.   register int d1 __asm("d1") = namelen;
  147.   __asm __volatile ("jsr a6@(-0x60)"
  148.   : "=r" (_res)
  149.   : "r" (a6), "r" (a1), "r" (d1)
  150.   : "a0","a1","d0","d1", "memory");
  151.   return _res;
  152. }
  153. static __inline gid_t
  154. getgid (BASE_PAR_DECL0)
  155. {
  156.   BASE_EXT_DECL
  157.   register gid_t  _res    __asm("d0");
  158.   register struct Library *a6 __asm("a6") = BASE_NAME;
  159.   __asm __volatile ("jsr a6@(-0x48)"
  160.   : "=r" (_res)
  161.   : "r" (a6)
  162.   : "a0","a1","d0","d1", "memory");
  163.   return _res;
  164. }
  165. static __inline int
  166. getgroups (BASE_PAR_DECL int num,gid_t * gids)
  167. {
  168.   BASE_EXT_DECL
  169.   register int    _res  __asm("d0");
  170.   register struct Library *a6 __asm("a6") = BASE_NAME;
  171.   register int d0 __asm("d0") = num;
  172.   register gid_t * a0 __asm("a0") = gids;
  173.   __asm __volatile ("jsr a6@(-0x4e)"
  174.   : "=r" (_res)
  175.   : "r" (a6), "r" (d0), "r" (a0)
  176.   : "a0","a1","d0","d1", "memory");
  177.   return _res;
  178. }
  179. static __inline struct hostent *
  180. gethostbyaddr (BASE_PAR_DECL char * addr,int len,int type)
  181. {
  182.   BASE_EXT_DECL
  183.   register struct hostent * _res  __asm("d0");
  184.   register struct Library *a6 __asm("a6") = BASE_NAME;
  185.   register char * a0 __asm("a0") = addr;
  186.   register int d0 __asm("d0") = len;
  187.   register int d1 __asm("d1") = type;
  188.   __asm __volatile ("jsr a6@(-0x90)"
  189.   : "=r" (_res)
  190.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  191.   : "a0","a1","d0","d1", "memory");
  192.   return _res;
  193. }
  194. static __inline struct hostent *
  195. gethostbyname (BASE_PAR_DECL char * name)
  196. {
  197.   BASE_EXT_DECL
  198.   register struct hostent * _res  __asm("d0");
  199.   register struct Library *a6 __asm("a6") = BASE_NAME;
  200.   register char * a0 __asm("a0") = name;
  201.   __asm __volatile ("jsr a6@(-0x8a)"
  202.   : "=r" (_res)
  203.   : "r" (a6), "r" (a0)
  204.   : "a0","a1","d0","d1", "memory");
  205.   return _res;
  206. }
  207. static __inline struct hostent *
  208. gethostent (BASE_PAR_DECL0)
  209. {
  210.   BASE_EXT_DECL
  211.   register struct hostent * _res  __asm("d0");
  212.   register struct Library *a6 __asm("a6") = BASE_NAME;
  213.   __asm __volatile ("jsr a6@(-0x84)"
  214.   : "=r" (_res)
  215.   : "r" (a6)
  216.   : "a0","a1","d0","d1", "memory");
  217.   return _res;
  218. }
  219. static __inline int
  220. gethostname (BASE_PAR_DECL char * name,int length)
  221. {
  222.   BASE_EXT_DECL
  223.   register int    _res  __asm("d0");
  224.   register struct Library *a6 __asm("a6") = BASE_NAME;
  225.   register char * a0 __asm("a0") = name;
  226.   register int d0 __asm("d0") = length;
  227.   __asm __volatile ("jsr a6@(-0x72)"
  228.   : "=r" (_res)
  229.   : "r" (a6), "r" (a0), "r" (d0)
  230.   : "a0","a1","d0","d1", "memory");
  231.   return _res;
  232. }
  233. static __inline char *
  234. getlogin (BASE_PAR_DECL0)
  235. {
  236.   BASE_EXT_DECL
  237.   register char * _res    __asm("d0");
  238.   register struct Library *a6 __asm("a6") = BASE_NAME;
  239.   __asm __volatile ("jsr a6@(-0x54)"
  240.   : "=r" (_res)
  241.   : "r" (a6)
  242.   : "a0","a1","d0","d1", "memory");
  243.   return _res;
  244. }
  245. static __inline struct netent *
  246. getnetbyaddr (BASE_PAR_DECL long net,int type)
  247. {
  248.   BASE_EXT_DECL
  249.   register struct netent * _res  __asm("d0");
  250.   register struct Library *a6 __asm("a6") = BASE_NAME;
  251.   register long d0 __asm("d0") = net;
  252.   register int d1 __asm("d1") = type;
  253.   __asm __volatile ("jsr a6@(-0x12c)"
  254.   : "=r" (_res)
  255.   : "r" (a6), "r" (d0), "r" (d1)
  256.   : "a0","a1","d0","d1", "memory");
  257.   return _res;
  258. }
  259. static __inline struct netent *
  260. getnetbyname (BASE_PAR_DECL char * name)
  261. {
  262.   BASE_EXT_DECL
  263.   register struct netent * _res  __asm("d0");
  264.   register struct Library *a6 __asm("a6") = BASE_NAME;
  265.   register char * a0 __asm("a0") = name;
  266.   __asm __volatile ("jsr a6@(-0x132)"
  267.   : "=r" (_res)
  268.   : "r" (a6), "r" (a0)
  269.   : "a0","a1","d0","d1", "memory");
  270.   return _res;
  271. }
  272. static __inline struct netent *
  273. getnetent (BASE_PAR_DECL0)
  274. {
  275.   BASE_EXT_DECL
  276.   register struct netent * _res  __asm("d0");
  277.   register struct Library *a6 __asm("a6") = BASE_NAME;
  278.   __asm __volatile ("jsr a6@(-0x126)"
  279.   : "=r" (_res)
  280.   : "r" (a6)
  281.   : "a0","a1","d0","d1", "memory");
  282.   return _res;
  283. }
  284. static __inline int
  285. getpeername (BASE_PAR_DECL int s,struct sockaddr * name,int * lenp)
  286. {
  287.   BASE_EXT_DECL
  288.   register int    _res  __asm("d0");
  289.   register struct Library *a6 __asm("a6") = BASE_NAME;
  290.   register int d0 __asm("d0") = s;
  291.   register struct sockaddr * a0 __asm("a0") = name;
  292.   register int * a1 __asm("a1") = lenp;
  293.   __asm __volatile ("jsr a6@(-0x198)"
  294.   : "=r" (_res)
  295.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  296.   : "a0","a1","d0","d1", "memory");
  297.   return _res;
  298. }
  299. static __inline struct protoent *
  300. getprotobyname (BASE_PAR_DECL char * name)
  301. {
  302.   BASE_EXT_DECL
  303.   register struct protoent * _res  __asm("d0");
  304.   register struct Library *a6 __asm("a6") = BASE_NAME;
  305.   register char * a0 __asm("a0") = name;
  306.   __asm __volatile ("jsr a6@(-0x14a)"
  307.   : "=r" (_res)
  308.   : "r" (a6), "r" (a0)
  309.   : "a0","a1","d0","d1", "memory");
  310.   return _res;
  311. }
  312. static __inline struct protoent *
  313. getprotobynumber (BASE_PAR_DECL int proto)
  314. {
  315.   BASE_EXT_DECL
  316.   register struct protoent * _res  __asm("d0");
  317.   register struct Library *a6 __asm("a6") = BASE_NAME;
  318.   register int d0 __asm("d0") = proto;
  319.   __asm __volatile ("jsr a6@(-0x150)"
  320.   : "=r" (_res)
  321.   : "r" (a6), "r" (d0)
  322.   : "a0","a1","d0","d1", "memory");
  323.   return _res;
  324. }
  325. static __inline struct protoent *
  326. getprotoent (BASE_PAR_DECL0)
  327. {
  328.   BASE_EXT_DECL
  329.   register struct protoent * _res  __asm("d0");
  330.   register struct Library *a6 __asm("a6") = BASE_NAME;
  331.   __asm __volatile ("jsr a6@(-0x144)"
  332.   : "=r" (_res)
  333.   : "r" (a6)
  334.   : "a0","a1","d0","d1", "memory");
  335.   return _res;
  336. }
  337. static __inline struct passwd *
  338. getpwent (BASE_PAR_DECL0)
  339. {
  340.   BASE_EXT_DECL
  341.   register struct passwd * _res  __asm("d0");
  342.   register struct Library *a6 __asm("a6") = BASE_NAME;
  343.   __asm __volatile ("jsr a6@(-0x180)"
  344.   : "=r" (_res)
  345.   : "r" (a6)
  346.   : "a0","a1","d0","d1", "memory");
  347.   return _res;
  348. }
  349. static __inline struct passwd *
  350. getpwnam (BASE_PAR_DECL char * name)
  351. {
  352.   BASE_EXT_DECL
  353.   register struct passwd * _res  __asm("d0");
  354.   register struct Library *a6 __asm("a6") = BASE_NAME;
  355.   register char * a0 __asm("a0") = name;
  356.   __asm __volatile ("jsr a6@(-0x17a)"
  357.   : "=r" (_res)
  358.   : "r" (a6), "r" (a0)
  359.   : "a0","a1","d0","d1", "memory");
  360.   return _res;
  361. }
  362. static __inline struct passwd *
  363. getpwuid (BASE_PAR_DECL uid_t uid)
  364. {
  365.   BASE_EXT_DECL
  366.   register struct passwd * _res  __asm("d0");
  367.   register struct Library *a6 __asm("a6") = BASE_NAME;
  368.   register uid_t d1 __asm("d1") = uid;
  369.   __asm __volatile ("jsr a6@(-0x174)"
  370.   : "=r" (_res)
  371.   : "r" (a6), "r" (d1)
  372.   : "a0","a1","d0","d1", "memory");
  373.   return _res;
  374. }
  375. static __inline struct servent *
  376. getservbyname (BASE_PAR_DECL char * name,char * proto)
  377. {
  378.   BASE_EXT_DECL
  379.   register struct servent * _res  __asm("d0");
  380.   register struct Library *a6 __asm("a6") = BASE_NAME;
  381.   register char * a0 __asm("a0") = name;
  382.   register char * a1 __asm("a1") = proto;
  383.   __asm __volatile ("jsr a6@(-0x168)"
  384.   : "=r" (_res)
  385.   : "r" (a6), "r" (a0), "r" (a1)
  386.   : "a0","a1","d0","d1", "memory");
  387.   return _res;
  388. }
  389. static __inline struct servent *
  390. getservbyport (BASE_PAR_DECL u_short port,char * proto)
  391. {
  392.   BASE_EXT_DECL
  393.   register struct servent * _res  __asm("d0");
  394.   register struct Library *a6 __asm("a6") = BASE_NAME;
  395.   register u_short d0 __asm("d0") = port;
  396.   register char * a0 __asm("a0") = proto;
  397.   __asm __volatile ("jsr a6@(-0x16e)"
  398.   : "=r" (_res)
  399.   : "r" (a6), "r" (d0), "r" (a0)
  400.   : "a0","a1","d0","d1", "memory");
  401.   return _res;
  402. }
  403. static __inline struct servent *
  404. getservent (BASE_PAR_DECL0)
  405. {
  406.   BASE_EXT_DECL
  407.   register struct servent * _res  __asm("d0");
  408.   register struct Library *a6 __asm("a6") = BASE_NAME;
  409.   __asm __volatile ("jsr a6@(-0x162)"
  410.   : "=r" (_res)
  411.   : "r" (a6)
  412.   : "a0","a1","d0","d1", "memory");
  413.   return _res;
  414. }
  415. static __inline int
  416. getsockname (BASE_PAR_DECL int s,struct sockaddr * name,int * lenp)
  417. {
  418.   BASE_EXT_DECL
  419.   register int    _res  __asm("d0");
  420.   register struct Library *a6 __asm("a6") = BASE_NAME;
  421.   register int d0 __asm("d0") = s;
  422.   register struct sockaddr * a0 __asm("a0") = name;
  423.   register int * a1 __asm("a1") = lenp;
  424.   __asm __volatile ("jsr a6@(-0x19e)"
  425.   : "=r" (_res)
  426.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  427.   : "a0","a1","d0","d1", "memory");
  428.   return _res;
  429. }
  430. static __inline int
  431. getsockopt (BASE_PAR_DECL int s,int level,int optname,char * optval,int * optlenp)
  432. {
  433.   BASE_EXT_DECL
  434.   register int    _res  __asm("d0");
  435.   register struct Library *a6 __asm("a6") = BASE_NAME;
  436.   register int d0 __asm("d0") = s;
  437.   register int d1 __asm("d1") = level;
  438.   register int d2 __asm("d2") = optname;
  439.   register char * a0 __asm("a0") = optval;
  440.   register int * a1 __asm("a1") = optlenp;
  441.   __asm __volatile ("jsr a6@(-0x114)"
  442.   : "=r" (_res)
  443.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (a1)
  444.   : "a0","a1","d0","d1","d2", "memory");
  445.   return _res;
  446. }
  447. static __inline uid_t
  448. getuid (BASE_PAR_DECL0)
  449. {
  450.   BASE_EXT_DECL
  451.   register uid_t  _res    __asm("d0");
  452.   register struct Library *a6 __asm("a6") = BASE_NAME;
  453.   __asm __volatile ("jsr a6@(-0x42)"
  454.   : "=r" (_res)
  455.   : "r" (a6)
  456.   : "a0","a1","d0","d1", "memory");
  457.   return _res;
  458. }
  459. static __inline mode_t
  460. getumask (BASE_PAR_DECL0)
  461. {
  462.   BASE_EXT_DECL
  463.   register mode_t  _res  __asm("d0");
  464.   register struct Library *a6 __asm("a6") = BASE_NAME;
  465.   __asm __volatile ("jsr a6@(-0x66)"
  466.   : "=r" (_res)
  467.   : "r" (a6)
  468.   : "a0","a1","d0","d1", "memory");
  469.   return _res;
  470. }
  471. static __inline u_long
  472. inet_addr (BASE_PAR_DECL char * cp)
  473. {
  474.   BASE_EXT_DECL
  475.   register u_long  _res  __asm("d0");
  476.   register struct Library *a6 __asm("a6") = BASE_NAME;
  477.   register char * a1 __asm("a1") = cp;
  478.   __asm __volatile ("jsr a6@(-0x96)"
  479.   : "=r" (_res)
  480.   : "r" (a6), "r" (a1)
  481.   : "a0","a1","d0","d1", "memory");
  482.   return _res;
  483. }
  484. static __inline int
  485. inet_lnaof (BASE_PAR_DECL struct in_addr in)
  486. {
  487.   BASE_EXT_DECL
  488.   register int    _res  __asm("d0");
  489.   register struct Library *a6 __asm("a6") = BASE_NAME;
  490.   register struct in_addr d1 __asm("d1") = in;
  491.   __asm __volatile ("jsr a6@(-0xa2)"
  492.   : "=r" (_res)
  493.   : "r" (a6), "r" (d1)
  494.   : "a0","a1","d0","d1", "memory");
  495.   return _res;
  496. }
  497. static __inline struct in_addr
  498. inet_makeaddr (BASE_PAR_DECL int net,int lna)
  499. {
  500.   BASE_EXT_DECL
  501.   register struct in_addr  _res  __asm("d0");
  502.   register struct Library *a6 __asm("a6") = BASE_NAME;
  503.   register int d0 __asm("d0") = net;
  504.   register int d1 __asm("d1") = lna;
  505.   __asm __volatile ("jsr a6@(-0x9c)"
  506.   : "=r" (_res)
  507.   : "r" (a6), "r" (d0), "r" (d1)
  508.   : "a0","a1","d0","d1", "memory");
  509.   return _res;
  510. }
  511. static __inline int
  512. inet_netof (BASE_PAR_DECL struct in_addr in)
  513. {
  514.   BASE_EXT_DECL
  515.   register int    _res  __asm("d0");
  516.   register struct Library *a6 __asm("a6") = BASE_NAME;
  517.   register struct in_addr d1 __asm("d1") = in;
  518.   __asm __volatile ("jsr a6@(-0xa8)"
  519.   : "=r" (_res)
  520.   : "r" (a6), "r" (d1)
  521.   : "a0","a1","d0","d1", "memory");
  522.   return _res;
  523. }
  524. static __inline int
  525. inet_network (BASE_PAR_DECL char * str)
  526. {
  527.   BASE_EXT_DECL
  528.   register int    _res  __asm("d0");
  529.   register struct Library *a6 __asm("a6") = BASE_NAME;
  530.   register char * a1 __asm("a1") = str;
  531.   __asm __volatile ("jsr a6@(-0xae)"
  532.   : "=r" (_res)
  533.   : "r" (a6), "r" (a1)
  534.   : "a0","a1","d0","d1", "memory");
  535.   return _res;
  536. }
  537. static __inline char *
  538. inet_ntoa (BASE_PAR_DECL struct in_addr in)
  539. {
  540.   BASE_EXT_DECL
  541.   register char * _res    __asm("d0");
  542.   register struct Library *a6 __asm("a6") = BASE_NAME;
  543.   register struct in_addr d1 __asm("d1") = in;
  544.   __asm __volatile ("jsr a6@(-0xb4)"
  545.   : "=r" (_res)
  546.   : "r" (a6), "r" (d1)
  547.   : "a0","a1","d0","d1", "memory");
  548.   return _res;
  549. }
  550. static __inline int
  551. listen (BASE_PAR_DECL int s,int backlog)
  552. {
  553.   BASE_EXT_DECL
  554.   register int    _res  __asm("d0");
  555.   register struct Library *a6 __asm("a6") = BASE_NAME;
  556.   register int d0 __asm("d0") = s;
  557.   register int d1 __asm("d1") = backlog;
  558.   __asm __volatile ("jsr a6@(-0xd2)"
  559.   : "=r" (_res)
  560.   : "r" (a6), "r" (d0), "r" (d1)
  561.   : "a0","a1","d0","d1", "memory");
  562.   return _res;
  563. }
  564. static __inline int
  565. rcmd (BASE_PAR_DECL char **ahost,u_short inport,char * luser,char * ruser,char * cmd,int * fd2p)
  566. {
  567.   BASE_EXT_DECL
  568.   register int    _res  __asm("d0");
  569.   register struct Library *a6 __asm("a6") = BASE_NAME;
  570.   register char **d0 __asm("d0") = ahost;
  571.   register u_short d1 __asm("d1") = inport;
  572.   register char * a0 __asm("a0") = luser;
  573.   register char * a1 __asm("a1") = ruser;
  574.   register char * a2 __asm("a2") = cmd;
  575.   register int * d2 __asm("d2") = fd2p;
  576.   __asm __volatile ("jsr a6@(-0x192)"
  577.   : "=r" (_res)
  578.   : "r" (a6), "r" (d0), "r" (d1), "r" (a0), "r" (a1), "r" (a2), "r" (d2)
  579.   : "a0","a1","a2","d0","d1","d2", "memory");
  580.   return _res;
  581. }
  582. static __inline int
  583. reconfig (BASE_PAR_DECL0)
  584. {
  585.   BASE_EXT_DECL
  586.   register int    _res  __asm("d0");
  587.   register struct Library *a6 __asm("a6") = BASE_NAME;
  588.   __asm __volatile ("jsr a6@(-0x1aa)"
  589.   : "=r" (_res)
  590.   : "r" (a6)
  591.   : "a0","a1","d0","d1", "memory");
  592.   return _res;
  593. }
  594. static __inline int
  595. recv (BASE_PAR_DECL int s,char * buf,int len,int flags)
  596. {
  597.   BASE_EXT_DECL
  598.   register int    _res  __asm("d0");
  599.   register struct Library *a6 __asm("a6") = BASE_NAME;
  600.   register int d0 __asm("d0") = s;
  601.   register char * a0 __asm("a0") = buf;
  602.   register int d1 __asm("d1") = len;
  603.   register int d2 __asm("d2") = flags;
  604.   __asm __volatile ("jsr a6@(-0xd8)"
  605.   : "=r" (_res)
  606.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2)
  607.   : "a0","a1","d0","d1","d2", "memory");
  608.   return _res;
  609. }
  610. static __inline int
  611. recvfrom (BASE_PAR_DECL int s,char * buf,int len,int flags,struct sockaddr * from,int * fromlen)
  612. {
  613.   BASE_EXT_DECL
  614.   register int    _res  __asm("d0");
  615.   register struct Library *a6 __asm("a6") = BASE_NAME;
  616.   register int d0 __asm("d0") = s;
  617.   register char * a0 __asm("a0") = buf;
  618.   register int d1 __asm("d1") = len;
  619.   register int d2 __asm("d2") = flags;
  620.   register struct sockaddr * a1 __asm("a1") = from;
  621.   register int * a2 __asm("a2") = fromlen;
  622.   __asm __volatile ("jsr a6@(-0xde)"
  623.   : "=r" (_res)
  624.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2), "r" (a1), "r" (a2)
  625.   : "a0","a1","a2","d0","d1","d2", "memory");
  626.   return _res;
  627. }
  628. static __inline int
  629. recvmsg (BASE_PAR_DECL int s,struct msghdr * msg,int flags)
  630. {
  631.   BASE_EXT_DECL
  632.   register int    _res  __asm("d0");
  633.   register struct Library *a6 __asm("a6") = BASE_NAME;
  634.   register int d0 __asm("d0") = s;
  635.   register struct msghdr *a0 __asm("a0") = msg;
  636.   register int d1 __asm("d1") = flags;
  637.   __asm __volatile ("jsr a6@(-0xe4)"
  638.   : "=r" (_res)
  639.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  640.   : "a0","a1","d0","d1", "memory");
  641.   return _res;
  642. }
  643. static __inline int
  644. s_close (BASE_PAR_DECL    int socket)
  645. {
  646.   BASE_EXT_DECL
  647.   register int    _res  __asm("d0");
  648.   register struct Library *a6 __asm("a6") = BASE_NAME;
  649.   register  int d0 __asm("d0") = socket;
  650.   __asm __volatile ("jsr a6@(-0x30)"
  651.   : "=r" (_res)
  652.   : "r" (a6), "r" (d0)
  653.   : "a0","a1","d0","d1", "memory");
  654.   return _res;
  655. }
  656. static __inline void
  657. s_dev_list (BASE_PAR_DECL u_long res,int size)
  658. {
  659.   BASE_EXT_DECL
  660.   register struct Library *a6 __asm("a6") = BASE_NAME;
  661.   register u_long d0 __asm("d0") = res;
  662.   register int d1 __asm("d1") = size;
  663.   __asm __volatile ("jsr a6@(-0x1bc)"
  664.   : /* no output */
  665.   : "r" (a6), "r" (d0), "r" (d1)
  666.   : "a0","a1","d0","d1", "memory");
  667. }
  668. static __inline BYTE
  669. s_getsignal (BASE_PAR_DECL UWORD type)
  670. {
  671.   BASE_EXT_DECL
  672.   register BYTE  _res  __asm("d0");
  673.   register struct Library *a6 __asm("a6") = BASE_NAME;
  674.   register UWORD d1 __asm("d1") = type;
  675.   __asm __volatile ("jsr a6@(-0x36)"
  676.   : "=r" (_res)
  677.   : "r" (a6), "r" (d1)
  678.   : "a0","a1","d0","d1", "memory");
  679.   return _res;
  680. }
  681. static __inline int
  682. s_inherit (BASE_PAR_DECL void * sp)
  683. {
  684.   BASE_EXT_DECL
  685.   register int    _res  __asm("d0");
  686.   register struct Library *a6 __asm("a6") = BASE_NAME;
  687.   register void * d1 __asm("d1") = sp;
  688.   __asm __volatile ("jsr a6@(-0x1b6)"
  689.   : "=r" (_res)
  690.   : "r" (a6), "r" (d1)
  691.   : "a0","a1","d0","d1", "memory");
  692.   return _res;
  693. }
  694. static __inline int
  695. s_ioctl (BASE_PAR_DECL int s,int cmd,char * data)
  696. {
  697.   BASE_EXT_DECL
  698.   register int    _res  __asm("d0");
  699.   register struct Library *a6 __asm("a6") = BASE_NAME;
  700.   register int d0 __asm("d0") = s;
  701.   register int d1 __asm("d1") = cmd;
  702.   register char * a0 __asm("a0") = data;
  703.   __asm __volatile ("jsr a6@(-0xcc)"
  704.   : "=r" (_res)
  705.   : "r" (a6), "r" (d0), "r" (d1), "r" (a0)
  706.   : "a0","a1","d0","d1", "memory");
  707.   return _res;
  708. }
  709. static __inline void *
  710. s_release (BASE_PAR_DECL int s)
  711. {
  712.   BASE_EXT_DECL
  713.   register void * _res    __asm("d0");
  714.   register struct Library *a6 __asm("a6") = BASE_NAME;
  715.   register int d1 __asm("d1") = s;
  716.   __asm __volatile ("jsr a6@(-0x1b0)"
  717.   : "=r" (_res)
  718.   : "r" (a6), "r" (d1)
  719.   : "a0","a1","d0","d1", "memory");
  720.   return _res;
  721. }
  722. static __inline int
  723. s_syslog (BASE_PAR_DECL int pri,char * msg)
  724. {
  725.   BASE_EXT_DECL
  726.   register int    _res  __asm("d0");
  727.   register struct Library *a6 __asm("a6") = BASE_NAME;
  728.   register int d0 __asm("d0") = pri;
  729.   register char * a0 __asm("a0") = msg;
  730.   __asm __volatile ("jsr a6@(-0x1a4)"
  731.   : "=r" (_res)
  732.   : "r" (a6), "r" (d0), "r" (a0)
  733.   : "a0","a1","d0","d1", "memory");
  734.   return _res;
  735. }
  736. static __inline int
  737. select (BASE_PAR_DECL int numfds,fd_set * rfds,fd_set * wfds,fd_set * efds,struct timeval * timeout)
  738. {
  739.   BASE_EXT_DECL
  740.   register int    _res  __asm("d0");
  741.   register struct Library *a6 __asm("a6") = BASE_NAME;
  742.   register int d0 __asm("d0") = numfds;
  743.   register fd_set * a0 __asm("a0") = rfds;
  744.   register fd_set * a1 __asm("a1") = wfds;
  745.   register fd_set * a2 __asm("a2") = efds;
  746.   register struct timeval * d1 __asm("d1") = timeout;
  747.   __asm __volatile ("jsr a6@(-0xea)"
  748.   : "=r" (_res)
  749.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2), "r" (d1)
  750.   : "a0","a1","a2","d0","d1", "memory");
  751.   return _res;
  752. }
  753. static __inline int
  754. selectwait (BASE_PAR_DECL int numfds,fd_set * rfds,fd_set * wfds,fd_set * efds,struct timeval * timeout,long * umask)
  755. {
  756.   BASE_EXT_DECL
  757.   register int    _res  __asm("d0");
  758.   register struct Library *a6 __asm("a6") = BASE_NAME;
  759.   register int d0 __asm("d0") = numfds;
  760.   register fd_set * a0 __asm("a0") = rfds;
  761.   register fd_set * a1 __asm("a1") = wfds;
  762.   register fd_set * a2 __asm("a2") = efds;
  763.   register struct timeval * d1 __asm("d1") = timeout;
  764.   register long * d2 __asm("d2") = umask;
  765.   __asm __volatile ("jsr a6@(-0xf0)"
  766.   : "=r" (_res)
  767.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2), "r" (d1), "r" (d2)
  768.   : "a0","a1","a2","d0","d1","d2", "memory");
  769.   return _res;
  770. }
  771. static __inline int
  772. send (BASE_PAR_DECL int s,char * buf,int len,int flags)
  773. {
  774.   BASE_EXT_DECL
  775.   register int    _res  __asm("d0");
  776.   register struct Library *a6 __asm("a6") = BASE_NAME;
  777.   register int d0 __asm("d0") = s;
  778.   register char * a0 __asm("a0") = buf;
  779.   register int d1 __asm("d1") = len;
  780.   register int a1 __asm("a1") = flags;
  781.   __asm __volatile ("jsr a6@(-0xf6)"
  782.   : "=r" (_res)
  783.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (a1)
  784.   : "a0","a1","d0","d1", "memory");
  785.   return _res;
  786. }
  787. static __inline int
  788. sendmsg (BASE_PAR_DECL int s,struct msghdr * msg,int flags)
  789. {
  790.   BASE_EXT_DECL
  791.   register int    _res  __asm("d0");
  792.   register struct Library *a6 __asm("a6") = BASE_NAME;
  793.   register int d0 __asm("d0") = s;
  794.   register struct msghdr *a0 __asm("a0") = msg;
  795.   register int d1 __asm("d1") = flags;
  796.   __asm __volatile ("jsr a6@(-0x102)"
  797.   : "=r" (_res)
  798.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  799.   : "a0","a1","d0","d1", "memory");
  800.   return _res;
  801. }
  802. static __inline int
  803. sendto (BASE_PAR_DECL int s,char * buf,int len,int flags,struct sockaddr * to,int to_len)
  804. {
  805.   BASE_EXT_DECL
  806.   register int    _res  __asm("d0");
  807.   register struct Library *a6 __asm("a6") = BASE_NAME;
  808.   register int d0 __asm("d0") = s;
  809.   register char * a0 __asm("a0") = buf;
  810.   register int d1 __asm("d1") = len;
  811.   register int d2 __asm("d2") = flags;
  812.   register struct sockaddr * a1 __asm("a1") = to;
  813.   register int d3 __asm("d3") = to_len;
  814.   __asm __volatile ("jsr a6@(-0xfc)"
  815.   : "=r" (_res)
  816.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2), "r" (a1), "r" (d3)
  817.   : "a0","a1","d0","d1","d2","d3", "memory");
  818.   return _res;
  819. }
  820. static __inline void
  821. sethostent (BASE_PAR_DECL int flag)
  822. {
  823.   BASE_EXT_DECL
  824.   register struct Library *a6 __asm("a6") = BASE_NAME;
  825.   register int d1 __asm("d1") = flag;
  826.   __asm __volatile ("jsr a6@(-0x78)"
  827.   : /* no output */
  828.   : "r" (a6), "r" (d1)
  829.   : "a0","a1","d0","d1", "memory");
  830. }
  831. static __inline void
  832. setnetent (BASE_PAR_DECL int flag)
  833. {
  834.   BASE_EXT_DECL
  835.   register struct Library *a6 __asm("a6") = BASE_NAME;
  836.   register int d1 __asm("d1") = flag;
  837.   __asm __volatile ("jsr a6@(-0x11a)"
  838.   : /* no output */
  839.   : "r" (a6), "r" (d1)
  840.   : "a0","a1","d0","d1", "memory");
  841. }
  842. static __inline void
  843. setprotoent (BASE_PAR_DECL int flag)
  844. {
  845.   BASE_EXT_DECL
  846.   register struct Library *a6 __asm("a6") = BASE_NAME;
  847.   register int d1 __asm("d1") = flag;
  848.   __asm __volatile ("jsr a6@(-0x138)"
  849.   : /* no output */
  850.   : "r" (a6), "r" (d1)
  851.   : "a0","a1","d0","d1", "memory");
  852. }
  853. static __inline void
  854. setpwent (BASE_PAR_DECL int flag)
  855. {
  856.   BASE_EXT_DECL
  857.   register struct Library *a6 __asm("a6") = BASE_NAME;
  858.   register int d1 __asm("d1") = flag;
  859.   __asm __volatile ("jsr a6@(-0x186)"
  860.   : /* no output */
  861.   : "r" (a6), "r" (d1)
  862.   : "a0","a1","d0","d1", "memory");
  863. }
  864. static __inline void
  865. setservent (BASE_PAR_DECL int flag)
  866. {
  867.   BASE_EXT_DECL
  868.   register struct Library *a6 __asm("a6") = BASE_NAME;
  869.   register int d1 __asm("d1") = flag;
  870.   __asm __volatile ("jsr a6@(-0x156)"
  871.   : /* no output */
  872.   : "r" (a6), "r" (d1)
  873.   : "a0","a1","d0","d1", "memory");
  874. }
  875. static __inline int
  876. setsockopt (BASE_PAR_DECL int s,int level,int optname,char * optval,int optlen)
  877. {
  878.   BASE_EXT_DECL
  879.   register int    _res  __asm("d0");
  880.   register struct Library *a6 __asm("a6") = BASE_NAME;
  881.   register int d0 __asm("d0") = s;
  882.   register int d1 __asm("d1") = level;
  883.   register int d2 __asm("d2") = optname;
  884.   register char * a0 __asm("a0") = optval;
  885.   register int d3 __asm("d3") = optlen;
  886.   __asm __volatile ("jsr a6@(-0x10e)"
  887.   : "=r" (_res)
  888.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (d3)
  889.   : "a0","a1","d0","d1","d2","d3", "memory");
  890.   return _res;
  891. }
  892. static __inline ULONG
  893. setup_sockets (BASE_PAR_DECL UWORD max_socks,int * errno_ptr)
  894. {
  895.   BASE_EXT_DECL
  896.   register ULONG  _res    __asm("d0");
  897.   register struct Library *a6 __asm("a6") = BASE_NAME;
  898.   register UWORD d1 __asm("d1") = max_socks;
  899.   register int * a0 __asm("a0") = errno_ptr;
  900.   __asm __volatile ("jsr a6@(-0x1e)"
  901.   : "=r" (_res)
  902.   : "r" (a6), "r" (d1), "r" (a0)
  903.   : "a0","a1","d0","d1", "memory");
  904.   return _res;
  905. }
  906. static __inline int
  907. shutdown (BASE_PAR_DECL int s,int how)
  908. {
  909.   BASE_EXT_DECL
  910.   register int    _res  __asm("d0");
  911.   register struct Library *a6 __asm("a6") = BASE_NAME;
  912.   register int d0 __asm("d0") = s;
  913.   register int d1 __asm("d1") = how;
  914.   __asm __volatile ("jsr a6@(-0x108)"
  915.   : "=r" (_res)
  916.   : "r" (a6), "r" (d0), "r" (d1)
  917.   : "a0","a1","d0","d1", "memory");
  918.   return _res;
  919. }
  920. static __inline int
  921. socket (BASE_PAR_DECL int family,int type,int protocol)
  922. {
  923.   BASE_EXT_DECL
  924.   register int    _res  __asm("d0");
  925.   register struct Library *a6 __asm("a6") = BASE_NAME;
  926.   register int d0 __asm("d0") = family;
  927.   register int d1 __asm("d1") = type;
  928.   register int d2 __asm("d2") = protocol;
  929.   __asm __volatile ("jsr a6@(-0x2a)"
  930.   : "=r" (_res)
  931.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  932.   : "a0","a1","d0","d1","d2", "memory");
  933.   return _res;
  934. }
  935. static __inline char *
  936. strerror (BASE_PAR_DECL int num)
  937. {
  938.   BASE_EXT_DECL
  939.   register char * _res    __asm("d0");
  940.   register struct Library *a6 __asm("a6") = BASE_NAME;
  941.   register int d1 __asm("d1") = num;
  942.   __asm __volatile ("jsr a6@(-0x3c)"
  943.   : "=r" (_res)
  944.   : "r" (a6), "r" (d1)
  945.   : "a0","a1","d0","d1", "memory");
  946.   return _res;
  947. }
  948. static __inline mode_t
  949. umask (BASE_PAR_DECL mode_t cmask)
  950. {
  951.   BASE_EXT_DECL
  952.   register mode_t  _res  __asm("d0");
  953.   register struct Library *a6 __asm("a6") = BASE_NAME;
  954.   register mode_t d0 __asm("d0") = cmask;
  955.   __asm __volatile ("jsr a6@(-0x6c)"
  956.   : "=r" (_res)
  957.   : "r" (a6), "r" (d0)
  958.   : "a0","a1","d0","d1", "memory");
  959.   return _res;
  960. }
  961. #undef BASE_EXT_DECL
  962. #undef BASE_PAR_DECL
  963. #undef BASE_PAR_DECL0
  964. #undef BASE_NAME
  965.  
  966. __END_DECLS
  967.  
  968. #endif /* _INLINE_SOCKET_H */
  969.  
  970.