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 >
Wrap
C/C++ Source or Header
|
1994-01-04
|
18KB
|
580 lines
#ifndef API_APICALLS_GNUC_H
#define API_APICALLS_GNUC_H
#ifndef API_APICALLS_H
#error include <api/apicalls.h> instead of __FILE__.
#endif
#define BASE_EXT_DECL
#define BASE_PAR_DECL struct SocketBase * SocketBase,
#define BASE_PAR_DECL0 struct SocketBase * SocketBase
#define BASE_NAME SocketBase
static __inline LONG
CloseSocket (BASE_PAR_DECL LONG d)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = d;
__asm __volatile ("jsr a6@(-0x78)"
: "=r" (_res)
: "r" (a6), "r" (d0)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline LONG
Errno (BASE_PAR_DECL0)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
__asm __volatile ("jsr a6@(-0xa2)"
: "=r" (_res)
: "r" (a6)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline ULONG
Inet_LnaOf (BASE_PAR_DECL LONG in)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG a0 __asm("a0") = in;
__asm __volatile ("jsr a6@(-0xba)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline ULONG
Inet_MakeAddr (BASE_PAR_DECL int net,int host)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register int d0 __asm("d0") = net;
register int d1 __asm("d1") = host;
__asm __volatile ("jsr a6@(-0xc6)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (d1)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline ULONG
Inet_NetOf (BASE_PAR_DECL LONG in)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG a0 __asm("a0") = in;
__asm __volatile ("jsr a6@(-0xc0)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline char *
Inet_NtoA (BASE_PAR_DECL ULONG in)
{
BASE_EXT_DECL
register char * _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register ULONG a0 __asm("a0") = in;
__asm __volatile ("jsr a6@(-0xae)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline LONG
ObtainSocket (BASE_PAR_DECL LONG id,LONG domain,LONG type,LONG protocol)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = id;
register LONG d1 __asm("d1") = domain;
register LONG d2 __asm("d2") = type;
register LONG d3 __asm("d3") = protocol;
__asm __volatile ("jsr a6@(-0x90)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
: "a0","a1","d0","d1","d2","d3", "memory");
return _res;
}
static __inline LONG
ReleaseCopyOfSocket (BASE_PAR_DECL LONG id,LONG fd)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = id;
register LONG d1 __asm("d1") = fd;
__asm __volatile ("jsr a6@(-0x9c)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (d1)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline LONG
ReleaseSocket (BASE_PAR_DECL LONG id,LONG fd)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = id;
register LONG d1 __asm("d1") = fd;
__asm __volatile ("jsr a6@(-0x96)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (d1)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline LONG
SetDTableSize (BASE_PAR_DECL LONG size)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = size;
__asm __volatile ("jsr a6@(-0x8a)"
: "=r" (_res)
: "r" (a6), "r" (d0)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline void
SetErrnoPtr (BASE_PAR_DECL void *errno_p,LONG size)
{
BASE_EXT_DECL
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register void *a0 __asm("a0") = errno_p;
register LONG d0 __asm("d0") = size;
__asm __volatile ("jsr a6@(-0xa8)"
: /* no output */
: "r" (a6), "r" (a0), "r" (d0)
: "a0","a1","d0","d1", "memory");
}
static __inline void
SetSocketSignals (BASE_PAR_DECL ULONG SIGINTR,ULONG SIGIO,ULONG SIGURG)
{
BASE_EXT_DECL
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register ULONG d0 __asm("d0") = SIGINTR;
register ULONG d1 __asm("d1") = SIGIO;
register ULONG d2 __asm("d2") = SIGURG;
__asm __volatile ("jsr a6@(-0x84)"
: /* no output */
: "r" (a6), "r" (d0), "r" (d1), "r" (d2)
: "a0","a1","d0","d1","d2", "memory");
}
static __inline void
Syslog (BASE_PAR_DECL ULONG level,const STRPTR format,va_list ap)
{
BASE_EXT_DECL
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register ULONG d0 __asm("d0") = level;
register const STRPTR a0 __asm("a0") = format;
register va_list a1 __asm("a1") = ap;
__asm __volatile ("jsr a6@(-0x102)"
: /* no output */
: "r" (a6), "r" (d0), "r" (a0), "r" (a1)
: "a0","a1","d0","d1", "memory");
}
static __inline LONG
WaitSelect (BASE_PAR_DECL LONG nfds,fd_set * readfds,fd_set * writefds,fd_set * execptfds,struct timeval * timeout,ULONG * maskp)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = nfds;
register fd_set *a0 __asm("a0") = readfds;
register fd_set *a1 __asm("a1") = writefds;
register fd_set *a2 __asm("a2") = execptfds;
register struct timeval *a3 __asm("a3") = timeout;
register ULONG *d1 __asm("d1") = maskp;
__asm __volatile ("jsr a6@(-0x7e)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2), "r" (a3), "r" (d1)
: "a0","a1","a2","a3","d0","d1", "memory");
return _res;
}
static __inline LONG
accept (BASE_PAR_DECL LONG s,struct sockaddr * addr,LONG * addrlen)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register struct sockaddr *a0 __asm("a0") = addr;
register LONG *a1 __asm("a1") = addrlen;
__asm __volatile ("jsr a6@(-0x30)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (a0), "r" (a1)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline LONG
bind (BASE_PAR_DECL LONG s,struct sockaddr * name,LONG namelen)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register struct sockaddr *a0 __asm("a0") = name;
register LONG d1 __asm("d1") = namelen;
__asm __volatile ("jsr a6@(-0x24)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline LONG
connect (BASE_PAR_DECL LONG s,struct sockaddr * name,LONG namelen)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register struct sockaddr *a0 __asm("a0") = name;
register LONG d1 __asm("d1") = namelen;
__asm __volatile ("jsr a6@(-0x36)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline struct hostent *
gethostbyaddr (BASE_PAR_DECL const char *addr,LONG len,LONG type)
{
BASE_EXT_DECL
register struct hostent * _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register const char *a0 __asm("a0") = addr;
register LONG d0 __asm("d0") = len;
register LONG d1 __asm("d1") = type;
__asm __volatile ("jsr a6@(-0xd8)"
: "=r" (_res)
: "r" (a6), "r" (a0), "r" (d0), "r" (d1)
: "a0","a1","d0","d1", "memory");
return _res;
}
static __inline struct hostent *
gethostbyname (BASE_PAR_DECL const char *name)
{
BASE_EXT_DECL
register struct hostent * _res __asm("d0");
register struct SocketBase* a6 __asm("a6") = BASE_NAME;
register const char *a0 __asm("a0") = name;
__asm __volatile ("jsr