188 lines
9.0 KiB
Plaintext
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
|