Usermode/libpsocket - Add MSG_* values for send/recv
[tpg/acess2.git] / Usermode / Libraries / libpsocket.so_src / include_exp / sys / socket.h
index adc5a87..deb1f51 100644 (file)
@@ -9,7 +9,10 @@
 #define _SYS_SOCKETS_H_
 
 #include <sys/types.h>
+#ifndef size_t
 #include <stddef.h>    // size_t
+#endif
+#include <stdint.h>    // uint32_t
 
 typedef uint32_t       socklen_t;
 
@@ -17,14 +20,16 @@ typedef enum
 {
        AF_UNSPEC       = 0,
        AF_PACKET       = 1,
+       AF_LOCAL        = 2,
        AF_INET         = 4,
        AF_INET6        = 6,
 } sa_family_t;
+#define AF_UNIX        AF_LOCAL
 
 struct sockaddr
 {
        sa_family_t     sa_family;
-       char            sa_data[16];
+       char            sa_data[16+2];
 };
 
 struct msghdr
@@ -71,6 +76,7 @@ enum eSocketTypes
  */
 enum eSocketDomains
 {
+       PF_UNSPEC,
        PF_LOCAL,       //!< Machine-local comms
        PF_INET,        //!< IPv4
        PF_INET6,       //!< IPv6
@@ -78,12 +84,48 @@ enum eSocketDomains
 };
 #define PF_UNIX        PF_LOCAL
 
+// getsockopt/setsockopt level
+enum
+{
+       SOL_SOCKET
+};
+
+
+// SOL_SOCKET getsockopt/setsockopt names
+enum
+{
+       SO_REUSEADDR,
+       SO_LINGER,
+       SO_ERROR,
+       SO_KEEPALIVE,
+};
+
+// shutdown how
+enum
+{
+       SHUT_RD,
+       SHUT_WR,
+       SHUT_RDWR
+};
+
+// flags for send*
+//#define MSG_CONFIRM  0x01
+#define MSG_DONTROUTE  0x02
+#define MSG_OOB        0x40
+// flags for recv
+#define MSG_PEEK       0x100
+
 /**
  * \brief Create a new socket descriptor
  * \param domain       Address family
  */
 extern int     socket(int domain, int type, int protocol);
 
+/**
+ * 
+ */
+extern int     shutdown(int socket, int how);
+
 /**
  * \brief Bind a socket to an address
  */
@@ -102,7 +144,7 @@ extern int  listen(int sockfd, int backlog);
 /**
  * \brief Accept an incoming connection
  */
-extern int     accept(int sockfd, struct sockaddr *clientaddr, socklen_t addrlen);
+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);
@@ -112,5 +154,15 @@ 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);
 
+extern int     getsockname(int socket, struct sockaddr *addr, socklen_t *addrlen);
+extern int     getpeername(int socket, struct sockaddr *addr, socklen_t *addrlen);
+
+extern struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type);
+extern void    sethostent(int stayopen);
+extern void    endhostent(void);
+extern void    herror(const char *s);
+extern const char      *hstrerror(int err);
+extern struct hostent *gethostent(void);
+
 #endif
 

UCC git Repository :: git.ucc.asn.au