X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibpsocket.so_src%2Finclude_exp%2Fsys%2Fsocket.h;h=adc5a871d3a0f8c1544e4066ebf3072d60255c1a;hb=793101e78d857adf31301025173debecf4bd2a62;hp=43cb3d662bddb5d690a2596c84059c0c947f111d;hpb=a9a954f29f61a1f93a9b585f69f617de2f12189f;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h b/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h index 43cb3d66..adc5a871 100644 --- a/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h +++ b/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h @@ -1,21 +1,24 @@ /* - * Acess2 C Library + * Acess2 POSIX Sockets Emulation + * - By John Hodge (thePowersGang) * * sys/sockets.h * - POSIX Sockets - * - * By John Hodge (thePowersGang) */ #ifndef _SYS_SOCKETS_H_ #define _SYS_SOCKETS_H_ -typedef int socklen_t; +#include +#include // size_t + +typedef uint32_t socklen_t; typedef enum { AF_UNSPEC = 0, + AF_PACKET = 1, AF_INET = 4, - AF_INET6 = 6 + AF_INET6 = 6, } sa_family_t; struct sockaddr @@ -24,17 +27,35 @@ struct sockaddr char sa_data[16]; }; -/** - * \brief Values for \a domain of socket() - */ -enum eSocketDomains +struct msghdr { - PF_LOCAL, //!< Machine-local comms - PF_INET, //!< IPv4 - PF_INET6, //!< IPv6 - PF_PACKET //!< Low level packet interface + void *msg_name; + socklen_t msg_namelen; + struct iovec *msg_iov; + int msg_iovlen; + void *msg_control; + socklen_t msg_controllen; + int msg_flags; +}; + +struct cmsghdr +{ + socklen_t cmsg_len; + int cmsg_level; + int cmsg_type; +}; + +#define SCM_RIGHTS 0x1 + +#define CMSG_DATA(cmsg) ((unsigned char*)(cmsg + 1)) +#define CMSG_NXTHDR(mhdr, cmsg) 0 +#define CMSG_FIRSTHDR(mhdr) 0 + +struct linger +{ + int l_onoff; + int l_linger; }; -#define PF_UNIX PF_LOCAL enum eSocketTypes { @@ -45,6 +66,18 @@ enum eSocketTypes SOCK_RDM //!< Reliable non-ordered datagrams }; +/** + * \brief Values for \a domain of socket() + */ +enum eSocketDomains +{ + PF_LOCAL, //!< Machine-local comms + PF_INET, //!< IPv4 + PF_INET6, //!< IPv6 + PF_PACKET //!< Low level packet interface +}; +#define PF_UNIX PF_LOCAL + /** * \brief Create a new socket descriptor * \param domain Address family @@ -71,5 +104,13 @@ extern int listen(int sockfd, int backlog); */ extern int accept(int sockfd, struct sockaddr *clientaddr, socklen_t addrlen); +extern int recvfrom(int sockfd, void *buffer, size_t length, int flags, struct sockaddr *clientaddr, socklen_t *addrlen); +extern int recv(int sockfd, void *buffer, size_t length, int flags); +extern int sendto(int sockfd, const void *buffer, size_t length, int flags, const struct sockaddr *clientaddr, socklen_t addrlen); +extern int send(int sockfd, void *buffer, size_t length, int flags); + +extern int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len); +extern int getsockopt(int socket, int level, int option_name, void *option_value, socklen_t *option_len); + #endif