amiga-roadshow/sfd/bsdsocket_lib.sfd

188 lines
9.0 KiB
Plaintext

==id $Id: bsdsocket_lib.sfd,v 1.12 2006-02-18 11:04:35 obarthel Exp $
* "bsdsocket.library"
==base _SocketBase
==bias 30
==public
==include <exec/lists.h>
==include <devices/timer.h>
==include <utility/tagitem.h>
==include <utility/hooks.h>
==include <netinet/in.h>
==include <sys/socket.h>
==include <sys/mbuf.h>
==include <net/route.h>
==include <netdb.h>
==include <libraries/bsdsocket.h>
==include <dos/dosextens.h>
*
LONG socket(LONG domain,LONG type,LONG protocol) (d0,d1,d2)
LONG bind(LONG sock,struct sockaddr *name,socklen_t namelen) (d0,a0,d1)
LONG listen(LONG sock,LONG backlog) (d0,d1)
LONG accept(LONG sock,struct sockaddr *addr,socklen_t *addrlen) (d0,a0,a1)
LONG connect(LONG sock,struct sockaddr *name,socklen_t namelen) (d0,a0,d1)
LONG sendto(LONG sock,APTR buf,LONG len,LONG flags,struct sockaddr *to,socklen_t tolen) (d0,a0,d1,d2,a1,d3)
LONG send(LONG sock,APTR buf,LONG len,LONG flags) (d0,a0,d1,d2)
LONG recvfrom(LONG sock,APTR buf,LONG len,LONG flags,struct sockaddr *addr,socklen_t *addrlen) (d0,a0,d1,d2,a1,a2)
LONG recv(LONG sock,APTR buf,LONG len,LONG flags) (d0,a0,d1,d2)
LONG shutdown(LONG sock,LONG how) (d0,d1)
LONG setsockopt(LONG sock,LONG level,LONG optname,APTR optval,socklen_t optlen) (d0,d1,d2,a0,d3)
LONG getsockopt(LONG sock,LONG level,LONG optname,APTR optval,socklen_t *optlen) (d0,d1,d2,a0,a1)
LONG getsockname(LONG sock,struct sockaddr *name,socklen_t *namelen) (d0,a0,a1)
LONG getpeername(LONG sock,struct sockaddr *name,socklen_t *namelen) (d0,a0,a1)
LONG IoctlSocket(LONG sock,ULONG req,APTR argp) (d0,d1,a0)
LONG CloseSocket(LONG sock) (d0)
LONG WaitSelect(LONG nfds,APTR read_fds,APTR write_fds,APTR except_fds,struct timeval *_timeout,ULONG *signals) (d0,a0,a1,a2,a3,d1)
VOID SetSocketSignals(ULONG int_mask,ULONG io_mask,ULONG urgent_mask) (d0,d1,d2)
LONG getdtablesize() ()
LONG ObtainSocket(LONG id,LONG domain,LONG type,LONG protocol) (d0,d1,d2,d3)
LONG ReleaseSocket(LONG sock,LONG id) (d0,d1)
LONG ReleaseCopyOfSocket(LONG sock,LONG id) (d0,d1)
LONG Errno() ()
VOID SetErrnoPtr(APTR errno_ptr,LONG size) (a0,d0)
STRPTR Inet_NtoA(in_addr_t ip) (d0)
in_addr_t inet_addr(STRPTR cp) (a0)
in_addr_t Inet_LnaOf(in_addr_t in) (d0)
in_addr_t Inet_NetOf(in_addr_t in) (d0)
in_addr_t Inet_MakeAddr(in_addr_t net,in_addr_t host) (d0,d1)
in_addr_t inet_network(STRPTR cp) (a0)
struct hostent *gethostbyname(STRPTR name) (a0)
struct hostent *gethostbyaddr(STRPTR addr,LONG len,LONG type) (a0,d0,d1)
struct netent *getnetbyname(STRPTR name) (a0)
struct netent *getnetbyaddr(in_addr_t net,LONG type) (d0,d1)
struct servent *getservbyname(STRPTR name,STRPTR proto) (a0,a1)
struct servent *getservbyport(LONG port,STRPTR proto) (d0,a0)
struct protoent *getprotobyname(STRPTR name) (a0)
struct protoent *getprotobynumber(LONG proto) (d0)
VOID vsyslog(LONG pri,STRPTR msg,APTR args) (d0,a0,a1)
==varargs
VOID syslog(LONG pri,STRPTR msg,LONG first_parameter,...) (d0,a0,a1)
LONG Dup2Socket(LONG old_socket,LONG new_socket) (d0,d1)
LONG sendmsg(LONG sock,struct msghdr *msg,LONG flags) (d0,a0,d1)
LONG recvmsg(LONG sock,struct msghdr *msg,LONG flags) (d0,a0,d1)
LONG gethostname(STRPTR name,LONG namelen) (a0,d0)
in_addr_t gethostid() ()
LONG SocketBaseTagList(struct TagItem *tags) (a0)
==varargs
LONG SocketBaseTags(Tag first_tag,...) (a0)
LONG GetSocketEvents(ULONG *event_ptr) (a0)
* Ten reserved slots for future expansion
==reserve 10
* Berkeley Packet Filter (Roadshow extensions start here)
LONG bpf_open(LONG channel) (d0)
LONG bpf_close(LONG channel) (d0)
LONG bpf_read(LONG channel, APTR buffer, LONG len) (d0,a0,d1)
LONG bpf_write(LONG channel, APTR buffer, LONG len) (d0,a0,d1)
LONG bpf_set_notify_mask(LONG channel, ULONG signal_mask) (d1,d0)
LONG bpf_set_interrupt_mask(LONG channel, ULONG signal_mask) (d0,d1)
LONG bpf_ioctl(LONG channel, ULONG command, APTR buffer) (d0,d1,a0)
LONG bpf_data_waiting(LONG channel) (d0)
* Route management
LONG AddRouteTagList(struct TagItem *tags) (a0)
==varargs
LONG AddRouteTags(Tag first_tag,...) (a0)
LONG DeleteRouteTagList(struct TagItem *tags) (a0)
==varargs
LONG DeleteRouteTags(Tag first_tag,...) (a0)
==private
* This is still unimplemented...
LONG ChangeRouteTagList(struct TagItem *tags) (a0)
==varargs
LONG ChangeRouteTags(Tag first_tag,...) (a0)
==public
VOID FreeRouteInfo(struct rt_msghdr *buf) (a0)
struct rt_msghdr * GetRouteInfo(LONG address_family, LONG flags) (d0,d1)
* Interface management
LONG AddInterfaceTagList(STRPTR interface_name,STRPTR device_name,LONG unit,struct TagItem *tags) (a0,a1,d0,a2)
==varargs
LONG AddInterfaceTags(STRPTR interface_name,STRPTR device_name,LONG unit,Tag first_tag,...) (a0,a1,d0,a2)
LONG ConfigureInterfaceTagList(STRPTR interface_name,struct TagItem *tags) (a0,a1)
==varargs
LONG ConfigureInterfaceTags(STRPTR interface_name,Tag first_tag,...) (a0,a1)
VOID ReleaseInterfaceList(struct List *list) (a0)
struct List *ObtainInterfaceList() ()
LONG QueryInterfaceTagList(STRPTR interface_name,struct TagItem *tags) (a0,a1)
==varargs
LONG QueryInterfaceTags(STRPTR interface_name,Tag first_tag,...) (a0,a1)
LONG CreateAddrAllocMessageA(LONG version,LONG protocol,STRPTR interface_name,struct AddressAllocationMessage **result_ptr,struct TagItem *tags) (d0,d1,a0,a1,a2)
==varargs
LONG CreateAddrAllocMessage(LONG version,LONG protocol,STRPTR interface_name,struct AddressAllocationMessage **result_ptr,Tag first_tag,...) (d0,d1,a0,a1,a2)
VOID DeleteAddrAllocMessage(struct AddressAllocationMessage *aam) (a0)
VOID BeginInterfaceConfig(struct AddressAllocationMessage * message) (a0)
VOID AbortInterfaceConfig(struct AddressAllocationMessage * message) (a0)
* Monitor management
LONG AddNetMonitorHookTagList(LONG type,struct Hook *hook,struct TagItem *tags) (d0,a0,a1)
==varargs
LONG AddNetMonitorHookTags(LONG type,struct Hook *hook,Tag first_tag,...) (d0,a0,a1)
VOID RemoveNetMonitorHook(struct Hook *hook) (a0)
* Status query
LONG GetNetworkStatistics(LONG type,LONG version,APTR destination,LONG size) (d0,d1,a0,d2)
* Domain name server management
LONG AddDomainNameServer(STRPTR address) (a0)
LONG RemoveDomainNameServer(STRPTR address) (a0)
VOID ReleaseDomainNameServerList(struct List *list) (a0)
struct List *ObtainDomainNameServerList() ()
* Local database access
VOID setnetent(LONG stay_open) (d0)
VOID endnetent() ()
struct netent * getnetent() ()
VOID setprotoent(LONG stay_open) (d0)
VOID endprotoent() ()
struct protoent * getprotoent() ()
VOID setservent(LONG stay_open) (d0)
VOID endservent() ()
struct servent * getservent() ()
* Address conversion
LONG inet_aton(STRPTR cp,struct in_addr *addr) (a0,a1)
STRPTR inet_ntop(LONG af,APTR src,STRPTR dst,LONG size) (d0,a0,a1,d1)
LONG inet_pton(LONG af,STRPTR src,APTR dst) (d0,a0,a1)
LONG In_LocalAddr(in_addr_t address) (d0)
LONG In_CanForward(in_addr_t address) (d0)
* Kernel memory management
struct mbuf *mbuf_copym(struct mbuf *m, LONG off, LONG len) (a0,d0,d1)
LONG mbuf_copyback(struct mbuf *m, LONG off, LONG len, APTR cp) (a0,d0,d1,a1)
LONG mbuf_copydata(struct mbuf *m, LONG off, LONG len, APTR cp) (a0,d0,d1,a1)
struct mbuf *mbuf_free(struct mbuf *m) (a0)
VOID mbuf_freem(struct mbuf *m) (a0)
struct mbuf *mbuf_get() ()
struct mbuf *mbuf_gethdr() ()
struct mbuf *mbuf_prepend(struct mbuf *m, LONG len) (a0,d0)
LONG mbuf_cat(struct mbuf *m, struct mbuf *n) (a0,a1)
LONG mbuf_adj(struct mbuf *mp, LONG req_len) (a0,d0)
struct mbuf *mbuf_pullup(struct mbuf *m, LONG len) (a0,d0)
* Internet servers
BOOL ProcessIsServer(struct Process * pr) (a0)
LONG ObtainServerSocket() ()
* Default domain name
BOOL GetDefaultDomainName(STRPTR buffer,LONG buffer_size) (a0,d0)
VOID SetDefaultDomainName(STRPTR buffer) (a0)
* Global data access
struct List *ObtainRoadshowData(LONG access) (d0)
VOID ReleaseRoadshowData(struct List *list) (a0)
BOOL ChangeRoadshowData(struct List *list,STRPTR name,ULONG length,APTR data) (a0,a1,d0,a2)
* The counterpart to AddInterfaceTagList
LONG RemoveInterface(STRPTR interface_name, LONG force) (a0, d0)
* Reentrant versions of the gethostbyname/gethostbyaddr functions, BSD-style
struct hostent * gethostbyname_r(STRPTR name, struct hostent * hp, APTR buf, ULONG buflen, LONG * he) (a0,a1,a2,d0,a3)
struct hostent * gethostbyaddr_r(STRPTR addr, LONG len, LONG type, struct hostent * hp, APTR buf, ULONG buflen, LONG * he) (a0,d0,d1,a1,a2,d2,a3)
* Two reserved slots for future expansion
==reserve 2
==private
* The IP filtering interface is subject to change!
* IP filter management and logging
LONG ipf_open(LONG channel) (d0)
LONG ipf_close(LONG channel) (d0)
LONG ipf_ioctl(LONG channel,ULONG command,APTR buffer) (d0,d1,a0)
LONG ipf_log_read(LONG channel,APTR buffer,LONG len) (d0,a0,d1)
LONG ipf_log_data_waiting(LONG channel) (d0)
LONG ipf_set_notify_mask(LONG channel,ULONG mask) (d0,d1)
LONG ipf_set_interrupt_mask(LONG channel,ULONG mask) (d0,d1)
==public
* Node and service name translation (rfc3493)
VOID freeaddrinfo(struct addrinfo *ai) (a0)
LONG getaddrinfo(STRPTR hostname, STRPTR servname, struct addrinfo *hints, struct addrinfo **res) (a0,a1,a2,a3)
STRPTR gai_strerror(LONG errnum) (a0)
LONG getnameinfo(struct sockaddr *sa, ULONG salen, STRPTR host, ULONG hostlen, STRPTR serv, ULONG servlen, ULONG flags) (a0,d0,a1,d1,a2,d2,d3)
* Six reserved slots for future expansion
==reserve 6
==end