more socket stuff
[nestedvm.git] / upstream / misc / extraheaders.sh
index 7550e07..61fe163 100755 (executable)
@@ -1,9 +1,9 @@
 
 #!/bin/sh -e
 
-mkdir -p arpa netinet sys nestedvm
+mkdir -p arpa netinet sys nestedvm net
 
-for f in arpa/inet.h netdb.h netinet/in.h sys/socket.h; do
+for f in arpa/inet.h netdb.h netinet/in.h sys/socket.h net/if.h; do
     test -f $f || echo "#include <nestedvm/socket.h>" > $f
 done
 
@@ -377,6 +377,10 @@ static unsigned long htonl(int x) { return x; }
 static unsigned short ntohs(int x) { return x; }
 static unsigned long ntohl(int x) { return x; }
 
+/* Note AF_UNIX isn't supported */
+#define AF_UNIX 1
+#define PF_UNIX AF_UNIX
+
 #define AF_INET 2
 #define PF_INET AF_INET
 
@@ -392,12 +396,17 @@ static unsigned long ntohl(int x) { return x; }
 
 #define SO_REUSEADDR 0x0004
 #define SO_KEEPALIVE 0x0008 
+#define SO_BROADCAST 0x0020
+#define SO_TYPE      0x1008
 
 #define SHUT_RD 0
 #define SHUT_WR 1
 #define SHUT_RDWR 2
 
 #define INADDR_ANY 0
+#define INADDR_NONE -1
+#define INADDR_LOOPBACK 0x7f000001
+#define INADDR_BROADCAST 0xffffffff
 
 typedef unsigned long in_addr_t;
 typedef int socklen_t;
@@ -419,6 +428,14 @@ struct sockaddr_in {
        struct  in_addr sin_addr;
 };
 
+struct sockaddr_un {
+       u_char  sun_len;
+       u_char  sun_family;
+       char    sun_path[256];
+};
+
+#define SUN_LEN(su) (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
+
 struct  servent {
     char    *s_name;        /* official name of service */
     char    **s_aliases;    /* alias list */
@@ -445,7 +462,11 @@ int listen(int s, int backlog);
 int accept(int s, struct sockaddr *addr, socklen_t *addrlen);
 int shutdown(int s, int how);
 int connect(int s, const struct sockaddr *name, socklen_t namelen);
+
 char *inet_ntoa(struct in_addr in);
+in_addr_t inet_addr(const char *cp);
+int inet_aton(const char *cp, struct in_addr *addr);
+
 int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);
 int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
 int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);