home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / comm / amitcp-3.0ß2.lha / AmiTCP / src / amitcp / api / apicalls_gnuc.h < prev    next >
C/C++ Source or Header  |  1994-01-04  |  18KB  |  580 lines

  1. #ifndef API_APICALLS_GNUC_H
  2. #define API_APICALLS_GNUC_H
  3.  
  4. #ifndef API_APICALLS_H
  5. #error include <api/apicalls.h> instead of __FILE__.
  6. #endif
  7.  
  8. #define BASE_EXT_DECL
  9. #define BASE_PAR_DECL  struct SocketBase * SocketBase,
  10. #define BASE_PAR_DECL0 struct SocketBase * SocketBase
  11. #define BASE_NAME SocketBase  
  12.  
  13. static __inline LONG 
  14. CloseSocket (BASE_PAR_DECL LONG d)
  15. {
  16.   BASE_EXT_DECL
  17.   register LONG  _res  __asm("d0");
  18.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  19.   register LONG d0 __asm("d0") = d;
  20.   __asm __volatile ("jsr a6@(-0x78)"
  21.   : "=r" (_res)
  22.   : "r" (a6), "r" (d0)
  23.   : "a0","a1","d0","d1", "memory");
  24.   return _res;
  25. }
  26. static __inline LONG 
  27. Errno (BASE_PAR_DECL0)
  28. {
  29.   BASE_EXT_DECL
  30.   register LONG  _res  __asm("d0");
  31.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  32.   __asm __volatile ("jsr a6@(-0xa2)"
  33.   : "=r" (_res)
  34.   : "r" (a6)
  35.   : "a0","a1","d0","d1", "memory");
  36.   return _res;
  37. }
  38. static __inline ULONG 
  39. Inet_LnaOf (BASE_PAR_DECL LONG in)
  40. {
  41.   BASE_EXT_DECL
  42.   register ULONG  _res  __asm("d0");
  43.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  44.   register LONG a0 __asm("a0") = in;
  45.   __asm __volatile ("jsr a6@(-0xba)"
  46.   : "=r" (_res)
  47.   : "r" (a6), "r" (a0)
  48.   : "a0","a1","d0","d1", "memory");
  49.   return _res;
  50. }
  51. static __inline ULONG 
  52. Inet_MakeAddr (BASE_PAR_DECL int net,int  host)
  53. {
  54.   BASE_EXT_DECL
  55.   register ULONG  _res  __asm("d0");
  56.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  57.   register int d0 __asm("d0") = net;
  58.   register int d1 __asm("d1") =  host;
  59.   __asm __volatile ("jsr a6@(-0xc6)"
  60.   : "=r" (_res)
  61.   : "r" (a6), "r" (d0), "r" (d1)
  62.   : "a0","a1","d0","d1", "memory");
  63.   return _res;
  64. }
  65. static __inline ULONG 
  66. Inet_NetOf (BASE_PAR_DECL LONG in)
  67. {
  68.   BASE_EXT_DECL
  69.   register ULONG  _res  __asm("d0");
  70.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  71.   register LONG a0 __asm("a0") = in;
  72.   __asm __volatile ("jsr a6@(-0xc0)"
  73.   : "=r" (_res)
  74.   : "r" (a6), "r" (a0)
  75.   : "a0","a1","d0","d1", "memory");
  76.   return _res;
  77. }
  78. static __inline char *
  79. Inet_NtoA (BASE_PAR_DECL ULONG in)
  80. {
  81.   BASE_EXT_DECL
  82.   register char * _res  __asm("d0");
  83.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  84.   register ULONG a0 __asm("a0") = in;
  85.   __asm __volatile ("jsr a6@(-0xae)"
  86.   : "=r" (_res)
  87.   : "r" (a6), "r" (a0)
  88.   : "a0","a1","d0","d1", "memory");
  89.   return _res;
  90. }
  91. static __inline LONG 
  92. ObtainSocket (BASE_PAR_DECL LONG id,LONG  domain,LONG  type,LONG  protocol)
  93. {
  94.   BASE_EXT_DECL
  95.   register LONG  _res  __asm("d0");
  96.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  97.   register LONG d0 __asm("d0") = id;
  98.   register LONG d1 __asm("d1") =  domain;
  99.   register LONG d2 __asm("d2") =  type;
  100.   register LONG d3 __asm("d3") =  protocol;
  101.   __asm __volatile ("jsr a6@(-0x90)"
  102.   : "=r" (_res)
  103.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  104.   : "a0","a1","d0","d1","d2","d3", "memory");
  105.   return _res;
  106. }
  107. static __inline LONG 
  108. ReleaseCopyOfSocket (BASE_PAR_DECL LONG id,LONG  fd)
  109. {
  110.   BASE_EXT_DECL
  111.   register LONG  _res  __asm("d0");
  112.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  113.   register LONG d0 __asm("d0") = id;
  114.   register LONG d1 __asm("d1") =  fd;
  115.   __asm __volatile ("jsr a6@(-0x9c)"
  116.   : "=r" (_res)
  117.   : "r" (a6), "r" (d0), "r" (d1)
  118.   : "a0","a1","d0","d1", "memory");
  119.   return _res;
  120. }
  121. static __inline LONG 
  122. ReleaseSocket (BASE_PAR_DECL LONG id,LONG  fd)
  123. {
  124.   BASE_EXT_DECL
  125.   register LONG  _res  __asm("d0");
  126.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  127.   register LONG d0 __asm("d0") = id;
  128.   register LONG d1 __asm("d1") =  fd;
  129.   __asm __volatile ("jsr a6@(-0x96)"
  130.   : "=r" (_res)
  131.   : "r" (a6), "r" (d0), "r" (d1)
  132.   : "a0","a1","d0","d1", "memory");
  133.   return _res;
  134. }
  135. static __inline LONG 
  136. SetDTableSize (BASE_PAR_DECL LONG size)
  137. {
  138.   BASE_EXT_DECL
  139.   register LONG  _res  __asm("d0");
  140.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  141.   register LONG d0 __asm("d0") = size;
  142.   __asm __volatile ("jsr a6@(-0x8a)"
  143.   : "=r" (_res)
  144.   : "r" (a6), "r" (d0)
  145.   : "a0","a1","d0","d1", "memory");
  146.   return _res;
  147. }
  148. static __inline void 
  149. SetErrnoPtr (BASE_PAR_DECL void *errno_p,LONG  size)
  150. {
  151.   BASE_EXT_DECL
  152.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  153.   register void *a0 __asm("a0") = errno_p;
  154.   register LONG d0 __asm("d0") =  size;
  155.   __asm __volatile ("jsr a6@(-0xa8)"
  156.   : /* no output */
  157.   : "r" (a6), "r" (a0), "r" (d0)
  158.   : "a0","a1","d0","d1", "memory");
  159. }
  160. static __inline void 
  161. SetSocketSignals (BASE_PAR_DECL ULONG SIGINTR,ULONG  SIGIO,ULONG  SIGURG)
  162. {
  163.   BASE_EXT_DECL
  164.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  165.   register ULONG d0 __asm("d0") = SIGINTR;
  166.   register ULONG d1 __asm("d1") =  SIGIO;
  167.   register ULONG d2 __asm("d2") =  SIGURG;
  168.   __asm __volatile ("jsr a6@(-0x84)"
  169.   : /* no output */
  170.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  171.   : "a0","a1","d0","d1","d2", "memory");
  172. }
  173. static __inline void 
  174. Syslog (BASE_PAR_DECL ULONG level,const STRPTR  format,va_list  ap)
  175. {
  176.   BASE_EXT_DECL
  177.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  178.   register ULONG d0 __asm("d0") = level;
  179.   register const STRPTR a0 __asm("a0") =  format;
  180.   register va_list a1 __asm("a1") =  ap;
  181.   __asm __volatile ("jsr a6@(-0x102)"
  182.   : /* no output */
  183.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  184.   : "a0","a1","d0","d1", "memory");
  185. }
  186. static __inline LONG 
  187. WaitSelect (BASE_PAR_DECL LONG nfds,fd_set * readfds,fd_set * writefds,fd_set * execptfds,struct timeval * timeout,ULONG * maskp)
  188. {
  189.   BASE_EXT_DECL
  190.   register LONG  _res  __asm("d0");
  191.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  192.   register LONG d0 __asm("d0") = nfds;
  193.   register fd_set *a0 __asm("a0") =  readfds;
  194.   register fd_set *a1 __asm("a1") =  writefds;
  195.   register fd_set *a2 __asm("a2") =  execptfds;
  196.   register struct timeval *a3 __asm("a3") =  timeout;
  197.   register ULONG *d1 __asm("d1") =  maskp;
  198.   __asm __volatile ("jsr a6@(-0x7e)"
  199.   : "=r" (_res)
  200.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2), "r" (a3), "r" (d1)
  201.   : "a0","a1","a2","a3","d0","d1", "memory");
  202.   return _res;
  203. }
  204. static __inline LONG 
  205. accept (BASE_PAR_DECL LONG s,struct sockaddr * addr,LONG * addrlen)
  206. {
  207.   BASE_EXT_DECL
  208.   register LONG  _res  __asm("d0");
  209.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  210.   register LONG d0 __asm("d0") = s;
  211.   register struct sockaddr *a0 __asm("a0") =  addr;
  212.   register LONG *a1 __asm("a1") =  addrlen;
  213.   __asm __volatile ("jsr a6@(-0x30)"
  214.   : "=r" (_res)
  215.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  216.   : "a0","a1","d0","d1", "memory");
  217.   return _res;
  218. }
  219. static __inline LONG 
  220. bind (BASE_PAR_DECL LONG s,struct sockaddr * name,LONG  namelen)
  221. {
  222.   BASE_EXT_DECL
  223.   register LONG  _res  __asm("d0");
  224.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  225.   register LONG d0 __asm("d0") = s;
  226.   register struct sockaddr *a0 __asm("a0") =  name;
  227.   register LONG d1 __asm("d1") =  namelen;
  228.   __asm __volatile ("jsr a6@(-0x24)"
  229.   : "=r" (_res)
  230.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  231.   : "a0","a1","d0","d1", "memory");
  232.   return _res;
  233. }
  234. static __inline LONG 
  235. connect (BASE_PAR_DECL LONG s,struct sockaddr * name,LONG  namelen)
  236. {
  237.   BASE_EXT_DECL
  238.   register LONG  _res  __asm("d0");
  239.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  240.   register LONG d0 __asm("d0") = s;
  241.   register struct sockaddr *a0 __asm("a0") =  name;
  242.   register LONG d1 __asm("d1") =  namelen;
  243.   __asm __volatile ("jsr a6@(-0x36)"
  244.   : "=r" (_res)
  245.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  246.   : "a0","a1","d0","d1", "memory");
  247.   return _res;
  248. }
  249. static __inline struct hostent *
  250. gethostbyaddr (BASE_PAR_DECL const char *addr,LONG  len,LONG  type)
  251. {
  252.   BASE_EXT_DECL
  253.   register struct hostent * _res  __asm("d0");
  254.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  255.   register const char *a0 __asm("a0") = addr;
  256.   register LONG d0 __asm("d0") =  len;
  257.   register LONG d1 __asm("d1") =  type;
  258.   __asm __volatile ("jsr a6@(-0xd8)"
  259.   : "=r" (_res)
  260.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  261.   : "a0","a1","d0","d1", "memory");
  262.   return _res;
  263. }
  264. static __inline struct hostent *
  265. gethostbyname (BASE_PAR_DECL const char *name)
  266. {
  267.   BASE_EXT_DECL
  268.   register struct hostent * _res  __asm("d0");
  269.   register struct SocketBase* a6 __asm("a6") = BASE_NAME;
  270.   register const char *a0 __asm("a0") = name;
  271.   __asm __volatile ("jsr