#ifndef _INET_H_
#define _INET_H_

#include <sys/socket.h>
/* AmiTCP's Inlines */
#include <exec/types.h>
#include <utility/tagitem.h>

static __inline int
TCP_Accept (void *tcpbase, int s,struct sockaddr * addr,int * addrlen)
{
  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register struct sockaddr *a0 __asm("a0") =  addr;
  register int *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 int
TCP_Bind (void *tcpbase, int s,const struct sockaddr * name,int  namelen)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register const struct sockaddr *a0 __asm("a0") =  name;
  register int 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 int
TCP_CloseSocket (void *tcpbase, int d)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = d;
  __asm __volatile ("jsr a6@(-0x78)"
  : "=r" (_res)
  : "r" (a6), "r" (d0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_Connect (void *tcpbase, int s,const struct sockaddr * name,int  namelen)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register const struct sockaddr *a0 __asm("a0") =  name;
  register int 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 int
TCP_Dup2Socket (void *tcpbase, int fd1,int  fd2)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = fd1;
  register int d1 __asm("d1") =  fd2;
  __asm __volatile ("jsr a6@(-0x108)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_GetSockName (void *tcpbase, int s,struct sockaddr * hostname,int * namelen)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register struct sockaddr *a0 __asm("a0") =  hostname;
  register int *a1 __asm("a1") =  namelen;
  __asm __volatile ("jsr a6@(-0x66)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_GetSockOpt (void *tcpbase, int s,int  level,int  optname,void * optval,int * optlen)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") =  level;
  register int d2 __asm("d2") =  optname;
  register void *a0 __asm("a0") =  optval;
  register int *a1 __asm("a1") =  optlen;
  __asm __volatile ("jsr a6@(-0x60)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (a1)
  : "a0","a1","d0","d1","d2", "memory");
  return _res;
}
static __inline int
TCP_GetPeerName (void *tcpbase, int s,struct sockaddr * hostname,int * namelen)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register struct sockaddr *a0 __asm("a0") =  hostname;
  register int *a1 __asm("a1") =  namelen;
  __asm __volatile ("jsr a6@(-0x6c)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_IoctlSocket (void *tcpbase, int d,ULONG  request,char * argp)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = d;
  register ULONG d1 __asm("d1") =  request;
  register char *a0 __asm("a0") =  argp;
  __asm __volatile ("jsr a6@(-0x72)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_Listen (void *tcpbase, int s,int  backlog)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") =  backlog;
  __asm __volatile ("jsr a6@(-0x2a)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_ObtainSocket (void *tcpbase, int id,int  domain,int  type,int  protocol)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = id;
  register int d1 __asm("d1") =  domain;
  register int d2 __asm("d2") =  type;
  register int 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 int
TCP_Recv (void *tcpbase, int s,void *buf,int  len,int  flags)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register void *a0 __asm("a0") =  buf;
  register int d1 __asm("d1") =  len;
  register int d2 __asm("d2") =  flags;
  __asm __volatile ("jsr a6@(-0x4e)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2)
  : "a0","a1","d0","d1","d2", "memory");
  return _res;
}
static __inline int
TCP_RecvFrom (void *tcpbase, int s,void * buf,int  len,int  flags,struct sockaddr * from,int * fromlen)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register void *a0 __asm("a0") =  buf;
  register int d1 __asm("d1") =  len;
  register int d2 __asm("d2") =  flags;
  register struct sockaddr *a1 __asm("a1") =  from;
  register int *a2 __asm("a2") =  fromlen;
  __asm __volatile ("jsr a6@(-0x48)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2), "r" (a1), "r" (a2)
  : "a0","a1","a2","d0","d1","d2", "memory");
  return _res;
}
static __inline int
TCP_RecvMsg (void *tcpbase, int s,struct msghdr *  msg,int  flags)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register struct msghdr * a0 __asm("a0") =  msg;
  register int d1 __asm("d1") =  flags;
  __asm __volatile ("jsr a6@(-0x114)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_ReleaseCopyOfSocket (void *tcpbase, int fd,int  id)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = fd;
  register int d1 __asm("d1") =  id;
  __asm __volatile ("jsr a6@(-0x9c)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_ReleaseSocket (void *tcpbase, int fd,int  id)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = fd;
  register int d1 __asm("d1") =  id;
  __asm __volatile ("jsr a6@(-0x96)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_Send (void *tcpbase, int s,const void * msg,int  len,int  flags)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register const void *a0 __asm("a0") =  msg;
  register int d1 __asm("d1") =  len;
  register int d2 __asm("d2") =  flags;
  __asm __volatile ("jsr a6@(-0x42)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2)
  : "a0","a1","d0","d1","d2", "memory");
  return _res;
}
static __inline int
TCP_SendMsg (void *tcpbase, int s,const struct msghdr *  msg,int  flags)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register const struct msghdr * a0 __asm("a0") =  msg;
  register int d1 __asm("d1") =  flags;
  __asm __volatile ("jsr a6@(-0x10e)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_SendTo (void *tcpbase, int s,const void * msg,int  len,int  flags,const struct sockaddr * to,int  tolen)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register const void *a0 __asm("a0") =  msg;
  register int d1 __asm("d1") =  len;
  register int d2 __asm("d2") =  flags;
  register const struct sockaddr *a1 __asm("a1") =  to;
  register int d3 __asm("d3") =  tolen;
  __asm __volatile ("jsr a6@(-0x3c)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2), "r" (a1), "r" (d3)
  : "a0","a1","d0","d1","d2","d3", "memory");
  return _res;
}
static __inline int
TCP_SetSockOpt (void *tcpbase, int s,int  level,int  optname,const void * optval,int  optlen)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") =  level;
  register int d2 __asm("d2") =  optname;
  register const void *a0 __asm("a0") =  optval;
  register int d3 __asm("d3") =  optlen;
  __asm __volatile ("jsr a6@(-0x5a)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (d3)
  : "a0","a1","d0","d1","d2","d3", "memory");
  return _res;
}
static __inline int
TCP_ShutDown (void *tcpbase, int s,int  how)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") =  how;
  __asm __volatile ("jsr a6@(-0x54)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_Socket (void *tcpbase, int domain,int  type,int  protocol)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = domain;
  register int d1 __asm("d1") =  type;
  register int d2 __asm("d2") =  protocol;
  __asm __volatile ("jsr a6@(-0x1e)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  : "a0","a1","d0","d1","d2", "memory");
  return _res;
}
static __inline LONG
TCP_WaitSelect (void *tcpbase,int nfds,fd_set *readfds,fd_set * writefds,fd_set * execptfds,struct timeval * timeout,ULONG * maskp)
{

  register LONG  _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  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 int
TCP_GetDTableSize (void *tcpbase)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  __asm __volatile ("jsr a6@(-0x8a)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct hostent *
TCP_GetHostByAddr (void *tcpbase, const char *addr,int  len,int  type)
{

  register struct hostent * _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register const char *a0 __asm("a0") = addr;
  register int d0 __asm("d0") =  len;
  register int 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 *
TCP_GetHostByName (void *tcpbase, char *name)
{

  register struct hostent * _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register char *a0 __asm("a0") = name;
  __asm __volatile ("jsr a6@(-0xd2)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline long
TCP_GetHostId (void *tcpbase)
{

  register int _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  __asm __volatile ("jsr a6@(-0x120)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_GetHostName (void *tcpbase, char *hostname,int  size)
{

  register int	_res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register const char *a0 __asm("a0") = hostname;
  register int d0 __asm("d0") =  size;
  __asm __volatile ("jsr a6@(-0x11a)"
  : "=r" (_res)
  : "r" (a6), "r" (a0), "r" (d0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct netent *
TCP_GetNetByAddr (void *tcpbase, long net,int  type)
{

  register struct netent * _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register long d0 __asm("d0") = net;
  register int d1 __asm("d1") =  type;
  __asm __volatile ("jsr a6@(-0xe4)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct netent *
TCP_GetNetByName (void *tcpbase, const char *name)
{

  register struct netent * _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register const char *a0 __asm("a0") = name;
  __asm __volatile ("jsr a6@(-0xde)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct protoent *
TCP_GetProtoByName (void *tcpbase, const char *name)
{

  register struct protoent * _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register const char *a0 __asm("a0") = name;
  __asm __volatile ("jsr a6@(-0xf6)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct protoent *
TCP_GetProtoByNumber (void *tcpbase, int proto)
{

  register struct protoent * _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = proto;
  __asm __volatile ("jsr a6@(-0xfc)"
  : "=r" (_res)
  : "r" (a6), "r" (d0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct servent *
TCP_GetServByName (void *tcpbase, const char *name,const char * proto)
{

  register struct servent * _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register const char *a0 __asm("a0") = name;
  register const char *a1 __asm("a1") =  proto;
  __asm __volatile ("jsr a6@(-0xea)"
  : "=r" (_res)
  : "r" (a6), "r" (a0), "r" (a1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct servent *
TCP_GetServByPort (void *tcpbase, int port,const char * proto)
{

  register struct servent * _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = port;
  register const char *a0 __asm("a0") =  proto;
  __asm __volatile ("jsr a6@(-0xf0)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
TCP_GetSocketEvents (void *tcpbase, ULONG *eventmaskp)
{

  register LONG  _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register ULONG *a0 __asm("a0") = eventmaskp;
  __asm __volatile ("jsr a6@(-0x12c)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline ULONG
TCP_Inet_Addr (void *tcpbase, const char * cp)
{

  register unsigned long  _res	__asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register const char * a0 __asm("a0") = cp;
  __asm __volatile ("jsr a6@(-0xb4)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline ULONG
TCP_Inet_LnaOf (void *tcpbase, LONG in)
{

  register ULONG  _res	__asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register LONG d0 __asm("d0") = in;
  __asm __volatile ("jsr a6@(-0xba)"
  : "=r" (_res)
  : "r" (a6), "r" (d0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline ULONG
TCP_Inet_MakeAddr (void *tcpbase, u_long net,u_long host)
{

  register ULONG  _res	__asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register u_long d0 __asm("d0") = net;
  register u_long 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
TCP_Inet_NetOf (void *tcpbase, LONG in)
{

  register unsigned long _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register LONG d0 __asm("d0") = in;
  __asm __volatile ("jsr a6@(-0xc0)"
  : "=r" (_res)
  : "r" (a6), "r" (d0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline ULONG
TCP_Inet_Network (void *tcpbase, const char * cp)
{

  register unsigned long  _res	__asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register const char * a0 __asm("a0") = cp;
  __asm __volatile ("jsr a6@(-0xcc)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline char *
TCP_Inet_NtoA (void *tcpbase, ULONG in)
{

  register char * _res	__asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register ULONG d0 __asm("d0") = in;
  __asm __volatile ("jsr a6@(-0xae)"
  : "=r" (_res)
  : "r" (a6), "r" (d0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline void
TCP_SetErrnoPtr (void *tcpbase, void *errno_p,int  size)
{

  register struct Library * a6 __asm("a6") = tcpbase;
  register void *a0 __asm("a0") = errno_p;
  register int 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
TCP_SetSocketSignals (void *tcpbase, ULONG SGINTR,ULONG  SGIO,ULONG  SGURG)
{

  register struct Library * a6 __asm("a6") = tcpbase;
  register ULONG d0 __asm("d0") = SGINTR;
  register ULONG d1 __asm("d1") =  SGIO;
  register ULONG d2 __asm("d2") =  SGURG;
  __asm __volatile ("jsr a6@(-0x84)"
  : /* no output */
  : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  : "a0","a1","d0","d1","d2", "memory");
}
static __inline LONG
TCP_SocketBaseTagList (void *tcpbase, struct TagItem *taglist)
{

  register LONG  _res  __asm("d0");
  register struct Library * a6 __asm("a6") = tcpbase;
  register struct TagItem *a0 __asm("a0") = taglist;
  __asm __volatile ("jsr a6@(-0x126)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a1","d0","d1", "memory");
  return _res;
}

#include <stdarg.h>
static __inline void
TCP_SyslogA (void *tcpbase, int level,const char * format,va_list ap)
{

  register struct Library *a6 __asm("a6") = tcpbase;
  register int d0 __asm("d0") = level;
  register const char *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");
}

/* AS225's socket.library inlines */
static __inline int
SOCK_accept (void *sockbase,int s,struct sockaddr * name,int * lenp)
{
  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register struct sockaddr * a0 __asm("a0") = name;
  register int * a1 __asm("a1") = lenp;
  __asm __volatile ("jsr a6@(-0xba)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  : "a0","a1","d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_bind (void *sockbase,int s,const struct sockaddr * name,int namelen)
{
  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register const struct sockaddr * a1 __asm("a1") = name;
  register int d1 __asm("d1") = namelen;
  __asm __volatile ("jsr a6@(-0xc0)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a1), "r" (d1)
  : "a1","d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline void
SOCK_cleanup_sockets (void *sockbase)
{
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x24)"
  : /* no output */
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
}
static __inline int
SOCK_connect (void *sockbase,int s,const struct sockaddr * name,int namelen)
{
  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register const struct sockaddr * a1 __asm("a1") = name;
  register int d1 __asm("d1") = namelen;
  __asm __volatile ("jsr a6@(-0xc6)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a1), "r" (d1)
  : "a1","d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline void
SOCK_endhostent (void *sockbase)
{
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x7e)"
  : /* no output */
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
}
static __inline void
SOCK_endnetent (void *sockbase)
{

  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x120)"
  : /* no output */
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
}
static __inline void
SOCK_endprotoent (void *sockbase)
{

  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x13e)"
  : /* no output */
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
}
static __inline void
SOCK_endpwent (void *sockbase)
{

  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x18c)"
  : /* no output */
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
}
static __inline void
SOCK_endservent (void *sockbase)
{

  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x15c)"
  : /* no output */
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
}
static __inline int
SOCK_getdomainname (void *sockbase, char * name,int namelen)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register char * a1 __asm("a1") = name;
  register int d1 __asm("d1") = namelen;
  __asm __volatile ("jsr a6@(-0x60)"
  : "=r" (_res)
  : "r" (a6), "r" (a1), "r" (d1)
  : "a1","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline gid_t
SOCK_getgid (void *sockbase)
{

  register gid_t  _res	__asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x48)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_getgroups (void *sockbase, int num,int * gids)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = num;
  register int *a0 __asm("a0") = gids;
  __asm __volatile ("jsr a6@(-0x4e)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0)
  : "a0","d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct hostent *
SOCK_gethostbyaddr (void *sockbase, const char * addr,int len,int type)
{

  register struct hostent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register const char * a0 __asm("a0") = addr;
  register int d0 __asm("d0") = len;
  register int d1 __asm("d1") = type;
  __asm __volatile ("jsr a6@(-0x90)"
  : "=r" (_res)
  : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  : "a0","d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct hostent *
SOCK_gethostbyname (void *sockbase, char * name)
{

  register struct hostent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register char * a0 __asm("a0") = name;
  __asm __volatile ("jsr a6@(-0x8a)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct hostent *
SOCK_gethostent (void *sockbase)
{

  register struct hostent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x84)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_gethostname (void *sockbase, char * name,int length)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register char * a0 __asm("a0") = name;
  register int d0 __asm("d0") = length;
  __asm __volatile ("jsr a6@(-0x72)"
  : "=r" (_res)
  : "r" (a6), "r" (a0), "r" (d0)
  : "a0","d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct netent *
SOCK_getnetbyaddr (void *sockbase, long net,int type)
{

  register struct netent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register long d0 __asm("d0") = net;
  register int d1 __asm("d1") = type;
  __asm __volatile ("jsr a6@(-0x12c)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct netent *
SOCK_getnetbyname (void *sockbase, const char * name)
{

  register struct netent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register const char * a0 __asm("a0") = name;
  __asm __volatile ("jsr a6@(-0x132)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct netent *
SOCK_getnetent (void *sockbase)
{

  register struct netent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x126)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_getpeername (void *sockbase, int s,struct sockaddr * name,int * lenp)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register struct sockaddr * a0 __asm("a0") = name;
  register int * a1 __asm("a1") = lenp;
  __asm __volatile ("jsr a6@(-0x198)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  : "a0","a1","d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct protoent *
SOCK_getprotobyname (void *sockbase, const char * name)
{

  register struct protoent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register const char * a0 __asm("a0") = name;
  __asm __volatile ("jsr a6@(-0x14a)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct protoent *
SOCK_getprotobynumber (void *sockbase, int proto)
{

  register struct protoent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = proto;
  __asm __volatile ("jsr a6@(-0x150)"
  : "=r" (_res)
  : "r" (a6), "r" (d0)
  : "d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct protoent *
SOCK_getprotoent (void *sockbase)
{

  register struct protoent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x144)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct AS225_passwd *
SOCK_getpwent (void *sockbase)
{

  register struct AS225_passwd * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x180)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct AS225_passwd *
SOCK_getpwnam (void *sockbase, const char * name)
{

  register struct AS225_passwd * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register const char * a0 __asm("a0") = name;
  __asm __volatile ("jsr a6@(-0x17a)"
  : "=r" (_res)
  : "r" (a6), "r" (a0)
  : "a0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct AS225_passwd *
SOCK_getpwuid (void *sockbase, uid_t uid)
{

  register struct AS225_passwd * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register uid_t d1 __asm("d1") = uid;
  __asm __volatile ("jsr a6@(-0x174)"
  : "=r" (_res)
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct servent *
SOCK_getservbyname (void *sockbase, const char * name, const char * proto)
{

  register struct servent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register const char * a0 __asm("a0") = name;
  register const char * a1 __asm("a1") = proto;
  __asm __volatile ("jsr a6@(-0x168)"
  : "=r" (_res)
  : "r" (a6), "r" (a0), "r" (a1)
  : "a0","a1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct servent *
SOCK_getservbyport (void *sockbase, int port,const char * proto)
{

  register struct servent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register u_short d0 __asm("d0") = (u_short)port;
  register const char * a0 __asm("a0") = proto;
  __asm __volatile ("jsr a6@(-0x16e)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0)
  : "a0","d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline struct servent *
SOCK_getservent (void *sockbase)
{

  register struct servent * _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x162)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_getsockname (void *sockbase, int s,struct sockaddr * name,int * lenp)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register struct sockaddr * a0 __asm("a0") = name;
  register int * a1 __asm("a1") = lenp;
  __asm __volatile ("jsr a6@(-0x19e)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  : "a0","a1","d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_getsockopt (void *sockbase, int s,int level,int optname,char * optval,int * optlenp)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") = level;
  register int d2 __asm("d2") = optname;
  register char * a0 __asm("a0") = optval;
  register int * a1 __asm("a1") = optlenp;
  __asm __volatile ("jsr a6@(-0x114)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (a1)
  : "a0","a1","d0","d1","d2","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline uid_t
SOCK_getuid (void *sockbase)
{

  register uid_t  _res	__asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x42)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline mode_t
SOCK_getumask (void *sockbase)
{

  register mode_t  _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x66)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_listen (void *sockbase, int s,int backlog)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") = backlog;
  __asm __volatile ("jsr a6@(-0xd2)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_reconfig (void *sockbase)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  __asm __volatile ("jsr a6@(-0x1aa)"
  : "=r" (_res)
  : "r" (a6)
  : "a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_recv (void *sockbase, int s,void * buf,int len,int flags)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register char * a0 __asm("a0") = buf;
  register int d1 __asm("d1") = len;
  register int d2 __asm("d2") = flags;
  __asm __volatile ("jsr a6@(-0xd8)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2)
  : "a0","d0","d1","d2","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_recvfrom (void *sockbase, int s,char * buf,int len,int flags,struct sockaddr * from,int * fromlen)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register char * a0 __asm("a0") = buf;
  register int d1 __asm("d1") = len;
  register int d2 __asm("d2") = flags;
  register struct sockaddr * a1 __asm("a1") = from;
  register int * a2 __asm("a2") = fromlen;
  __asm __volatile ("jsr a6@(-0xde)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2), "r" (a1), "r" (a2)
  : "a0","a1","a2","d0","d1","d2","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_recvmsg (void *sockbase, int s,struct msghdr * msg,int flags)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register struct msghdr *a0 __asm("a0") = msg;
  register int d1 __asm("d1") = flags;
  __asm __volatile ("jsr a6@(-0xe4)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  : "a0","d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_close (void *sockbase,  int socket)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register  int d0 __asm("d0") = socket;
  __asm __volatile ("jsr a6@(-0x30)"
  : "=r" (_res)
  : "r" (a6), "r" (d0)
  : "d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline BYTE
SOCK_getsignal (void *sockbase, UWORD type)
{

  register BYTE  _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register UWORD d1 __asm("d1") = type;
  __asm __volatile ("jsr a6@(-0x36)"
  : "=r" (_res)
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_inherit (void *sockbase, void * sp)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register void * d1 __asm("d1") = sp;
  __asm __volatile ("jsr a6@(-0x1b6)"
  : "=r" (_res)
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_ioctl (void *sockbase, int s,int cmd,char * data)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") = cmd;
  register char * a0 __asm("a0") = data;
  __asm __volatile ("jsr a6@(-0xcc)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1), "r" (a0)
  : "a0","d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline void *
SOCK_release (void *sockbase, int s)
{

  register void * _res	__asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d1 __asm("d1") = s;
  __asm __volatile ("jsr a6@(-0x1b0)"
  : "=r" (_res)
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_syslog (void *sockbase, int pri,char * msg)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = pri;
  register char * a0 __asm("a0") = msg;
  __asm __volatile ("jsr a6@(-0x1a4)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0)
  : "a0","d0","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_select (void *sockbase, int numfds,fd_set * rfds,fd_set * wfds,fd_set * efds,struct timeval * timeout)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = numfds;
  register fd_set * a0 __asm("a0") = rfds;
  register fd_set * a1 __asm("a1") = wfds;
  register fd_set * a2 __asm("a2") = efds;
  register struct timeval * d1 __asm("d1") = timeout;
  __asm __volatile ("jsr a6@(-0xea)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2), "r" (d1)
  : "a0","a1","a2","d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_selectwait (void *sockbase, int numfds,fd_set * rfds,fd_set * wfds,fd_set * efds,struct timeval * timeout,long * umask)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = numfds;
  register fd_set * a0 __asm("a0") = rfds;
  register fd_set * a1 __asm("a1") = wfds;
  register fd_set * a2 __asm("a2") = efds;
  register struct timeval * d1 __asm("d1") = timeout;
  register long * d2 __asm("d2") = umask;
  __asm __volatile ("jsr a6@(-0xf0)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2), "r" (d1), "r" (d2)
  : "a0","a1","a2","d0","d1","d2","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_send (void *sockbase, int s,const void * buf,int len,int flags)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register const void * a0 __asm("a0") = buf;
  register int d1 __asm("d1") = len;
  register int a1 __asm("a1") = flags;
  __asm __volatile ("jsr a6@(-0xf6)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (a1)
  : "a0","a1","d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_sendmsg (void *sockbase, int s,const struct msghdr * msg,int flags)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register const struct msghdr *a0 __asm("a0") = msg;
  register int d1 __asm("d1") = flags;
  __asm __volatile ("jsr a6@(-0x102)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  : "a0","d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_sendto (void *sockbase, int s,const void * buf,int len,int flags,const struct sockaddr * to,int to_len)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register const void *a0 __asm("a0") = buf;
  register int d1 __asm("d1") = len;
  register int d2 __asm("d2") = flags;
  register const struct sockaddr * a1 __asm("a1") = to;
  register int d3 __asm("d3") = to_len;
  __asm __volatile ("jsr a6@(-0xfc)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2), "r" (a1), "r" (d3)
  : "a0","a1","d0","d1","d2","d3","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline void
SOCK_sethostent (void *sockbase, int flag)
{

  register struct Library *a6 __asm("a6") = sockbase;
  register int d1 __asm("d1") = flag;
  __asm __volatile ("jsr a6@(-0x78)"
  : /* no output */
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
}
static __inline void
SOCK_setnetent (void *sockbase, int flag)
{

  register struct Library *a6 __asm("a6") = sockbase;
  register int d1 __asm("d1") = flag;
  __asm __volatile ("jsr a6@(-0x11a)"
  : /* no output */
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
}
static __inline void
SOCK_setprotoent (void *sockbase, int flag)
{

  register struct Library *a6 __asm("a6") = sockbase;
  register int d1 __asm("d1") = flag;
  __asm __volatile ("jsr a6@(-0x138)"
  : /* no output */
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
}
static __inline int
SOCK_setpwent (void *sockbase)
{

  register struct Library *a6 __asm("a6") = sockbase;
  register int d1 __asm("d1") = 0/*flag*/;
  __asm __volatile ("jsr a6@(-0x186)"
  : /* no output */
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
 return 0;
}
static __inline void
SOCK_setservent (void *sockbase, int flag)
{

  register struct Library *a6 __asm("a6") = sockbase;
  register int d1 __asm("d1") = flag;
  __asm __volatile ("jsr a6@(-0x156)"
  : /* no output */
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
}
static __inline int
SOCK_setsockopt (void *sockbase, int s,int level,int optname,const void *optval,int optlen)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") = level;
  register int d2 __asm("d2") = optname;
  register const void *a0 __asm("a0") = optval;
  register int d3 __asm("d3") = optlen;
  __asm __volatile ("jsr a6@(-0x10e)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (d3)
  : "a0","d0","d1","d2","d3","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline ULONG
SOCK_setup_sockets (void *sockbase, UWORD max_socks,int * errno_ptr)
{

  register ULONG  _res	__asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register UWORD d1 __asm("d1") = max_socks;
  register int * a0 __asm("a0") = errno_ptr;
  __asm __volatile ("jsr a6@(-0x1e)"
  : "=r" (_res)
  : "r" (a6), "r" (d1), "r" (a0)
  : "a0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_shutdown (void *sockbase, int s,int how)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = s;
  register int d1 __asm("d1") = how;
  __asm __volatile ("jsr a6@(-0x108)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "d0","d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline int
SOCK_socket (void *sockbase, int family,int type,int protocol)
{

  register int _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d0 __asm("d0") = family;
  register int d1 __asm("d1") = type;
  register int d2 __asm("d2") = protocol;
  __asm __volatile ("jsr a6@(-0x2a)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  : "d0","d1","d2","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline char *
SOCK_strerror (void *sockbase, int num)
{

  register char * _res	__asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register int d1 __asm("d1") = num;
  __asm __volatile ("jsr a6@(-0x3c)"
  : "=r" (_res)
  : "r" (a6), "r" (d1)
  : "d1","a0","a1","d0","d1", "memory");
  return _res;
}
static __inline mode_t
SOCK_umask (void *sockbase, mode_t cmask)
{

  register mode_t  _res  __asm("d0");
  register struct Library *a6 __asm("a6") = sockbase;
  register mode_t d0 __asm("d0") = cmask;
  __asm __volatile ("jsr a6@(-0x6c)"
  : "=r" (_res)
  : "r" (a6), "r" (d0)
  : "d0","a0","a1","d0","d1", "memory");
  return _res;
}

#endif
