home *** CD-ROM | disk | FTP | other *** search
- #ifndef _INL_SOCKET_H_
- #define _INL_SOCKET_H_
-
- #include <sys/cdefs.h>
-
- __BEGIN_DECLS
-
- #ifndef BASE_EXT_DECL
- #define BASE_EXT_DECL extern struct Library * SocketBase;
- #endif
- #ifndef BASE_PAR_DECL
- #define BASE_PAR_DECL
- #define BASE_PAR_DECL0 void
- #endif
- #ifndef BASE_NAME
- #define BASE_NAME SocketBase
- #endif
-
-
- static __inline LONG
- CloseSocket (BASE_PAR_DECL LONG d)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * 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
- Dup2Socket (BASE_PAR_DECL LONG fd1,LONG fd2)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG d0 __asm("d0") = fd1;
- register LONG 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 LONG
- Errno (BASE_PAR_DECL0)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- __asm __volatile ("jsr a6@(-0xa2)"
- : "=r" (_res)
- : "r" (a6)
- : "a0","a1","d0","d1", "memory");
- return _res;
- }
- static __inline LONG
- IoctlSocket (BASE_PAR_DECL LONG d,ULONG request,char * argp)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG 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 LONG
- ObtainSocket (BASE_PAR_DECL LONG id,LONG domain,LONG type,LONG protocol)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * 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
- SocketBaseTagList (BASE_PAR_DECL struct TagItem *taglist)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = SocketBase;
- 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;
- }
-
- #ifndef NO_INLINE_STDARG
- #define SocketBaseTags(tags...) \
- ({ struct TagItem _tags[] = { tags }; SocketBaseTagList(_tags); })
- #endif
-
- static __inline void
- Syslog (BASE_PAR_DECL ULONG level,const STRPTR format,LONG * ap)
- {
- BASE_EXT_DECL
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register ULONG d0 __asm("d0") = level;
- register const STRPTR a0 __asm("a0") = format;
- register LONG * a1 __asm("a1") = ap;
- __asm __volatile ("jsr a6@(-0x102)"
- : /* no output */
- : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
- : "a0","a1","d0","d1", "memory");
- }
- #ifndef NO_INLINE_STDARG
- #define syslog(d0, a0, args...) \
- ({ LONG _args[] = { args }; Syslog ((d0), (a0), (LONG *)_args); })
- #endif /* not NO_INLINE_STDARG */
-
- 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 Library * 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 Library * 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,const struct sockaddr * name,LONG namelen)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG d0 __asm("d0") = s;
- register const 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,const struct sockaddr * name,LONG namelen)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG d0 __asm("d0") = s;
- register const 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 *
- gethostbyname (BASE_PAR_DECL const char *name)
- {
- BASE_EXT_DECL
- register struct hostent * _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register const 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 struct servent *
- getservbyname (BASE_PAR_DECL const char *name,const char * proto)
- {
- BASE_EXT_DECL
- register struct servent * _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- 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 LONG
- listen (BASE_PAR_DECL LONG s,LONG backlog)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG d0 __asm("d0") = s;
- register LONG 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 LONG
- recv (BASE_PAR_DECL LONG s,char * buf,LONG len,LONG flags)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG d0 __asm("d0") = s;
- register char *a0 __asm("a0") = buf;
- register LONG d1 __asm("d1") = len;
- register LONG 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 LONG
- send (BASE_PAR_DECL LONG s,const char * msg,LONG len,LONG flags)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG d0 __asm("d0") = s;
- register const char *a0 __asm("a0") = msg;
- register LONG d1 __asm("d1") = len;
- register LONG 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 LONG
- setsockopt (BASE_PAR_DECL LONG s,LONG level,LONG optname,char * optval,LONG optlen)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG d0 __asm("d0") = s;
- register LONG d1 __asm("d1") = level;
- register LONG d2 __asm("d2") = optname;
- register char *a0 __asm("a0") = optval;
- register LONG 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 LONG
- socket (BASE_PAR_DECL LONG domain,LONG type,LONG protocol)
- {
- BASE_EXT_DECL
- register LONG _res __asm("d0");
- register struct Library * a6 __asm("a6") = BASE_NAME;
- register LONG d0 __asm("d0") = domain;
- register LONG d1 __asm("d1") = type;
- register LONG 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;
- }
- #undef BASE_EXT_DECL
- #undef BASE_PAR_DECL
- #undef BASE_PAR_DECL0
- #undef BASE_NAME
-
- __END_DECLS
-
- #endif /* _INL_SOCKET_H_ */
-