diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-10-06 15:37:11 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-10-06 15:37:11 -0700 |
commit | ce6b7ea953dd0a974a0123e6674803a3b0b1f5a2 (patch) | |
tree | c902f3cee4e949565f4388bb5fd1462a932eff41 | |
parent | 5e4a111053b401069fb4581bba191d60f9f6e527 (diff) |
socket header stuff
-rw-r--r-- | system/include/libc/sys/unistd.h | 2 | ||||
-rw-r--r-- | system/include/net/arpa/inet.h | 1 | ||||
-rw-r--r-- | system/include/net/netdb.h | 18 | ||||
-rw-r--r-- | system/include/net/netinet/in.h | 2 | ||||
-rw-r--r-- | system/include/poll.h | 22 | ||||
-rw-r--r-- | system/include/sys/poll.h | 28 | ||||
-rw-r--r-- | system/include/sys/socket.h | 26 |
7 files changed, 76 insertions, 23 deletions
diff --git a/system/include/libc/sys/unistd.h b/system/include/libc/sys/unistd.h index 57be7421..1eee3806 100644 --- a/system/include/libc/sys/unistd.h +++ b/system/include/libc/sys/unistd.h @@ -223,7 +223,7 @@ int _EXFUN(truncate, (const char *, off_t __length)); #endif #endif -#if defined(__CYGWIN__) || defined(__rtems__) +#if defined(EMSCRIPTEN) || defined(__CYGWIN__) || defined(__rtems__) int _EXFUN(getdtablesize, (void)); int _EXFUN(setdtablesize, (int)); useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval)); diff --git a/system/include/net/arpa/inet.h b/system/include/net/arpa/inet.h index 2cc6f45a..76ad8b5f 100644 --- a/system/include/net/arpa/inet.h +++ b/system/include/net/arpa/inet.h @@ -4,3 +4,4 @@ uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); +int inet_aton(const char *cp, struct in_addr *addr); diff --git a/system/include/net/netdb.h b/system/include/net/netdb.h index 27ce5b22..3b6f3389 100644 --- a/system/include/net/netdb.h +++ b/system/include/net/netdb.h @@ -1,2 +1,18 @@ -/* */ + +struct addrinfo +{ + int ai_flags; + int ai_family; + int ai_socktype; + int ai_protocol; + socklen_t ai_addrlen; + struct sockaddr *ai_addr; + char *ai_canonname; + struct addrinfo *ai_next; +}; + +extern int getaddrinfo(const char *name, const char *service, const struct addrinfo *req, struct addrinfo **pai); +extern void freeaddrinfo(struct addrinfo *ai); +extern int getnameinfo (struct sockaddr *sa, socklen_t salen, char *host, socklen_t hostlen, char *serv, socklen_t servlen, unsigned int flags); +const char *gai_strerror(int ecode); diff --git a/system/include/net/netinet/in.h b/system/include/net/netinet/in.h index 57576236..0def3127 100644 --- a/system/include/net/netinet/in.h +++ b/system/include/net/netinet/in.h @@ -1,4 +1,6 @@ +#define INET_ADDRSTRLEN 16 + struct in_addr { unsigned long s_addr; }; diff --git a/system/include/poll.h b/system/include/poll.h index 63c02b90..e4c40dca 100644 --- a/system/include/poll.h +++ b/system/include/poll.h @@ -1,23 +1,3 @@ -#ifdef __cplusplus -extern "C" { -#endif - -#define POLLIN 1 -#define POLLOUT 2 -#define POLLNVAL 4 -#define POLLERR 8 -#define POLLHUP 16 - -struct pollfd { - int fd; - short events; - short revents; -}; - -int poll(struct pollfd *data, int num, int extra); - -#ifdef __cplusplus -} -#endif +#include "sys/poll.h" diff --git a/system/include/sys/poll.h b/system/include/sys/poll.h new file mode 100644 index 00000000..e72ac26f --- /dev/null +++ b/system/include/sys/poll.h @@ -0,0 +1,28 @@ + +#ifndef _SYS_POLL_H +#define _SYS_POLL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define POLLIN 1 +#define POLLOUT 2 +#define POLLNVAL 4 +#define POLLERR 8 +#define POLLHUP 16 + +struct pollfd { + int fd; + short events; + short revents; +}; + +int poll(struct pollfd *data, int num, int extra); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/system/include/sys/socket.h b/system/include/sys/socket.h index 9795c654..95a0635a 100644 --- a/system/include/sys/socket.h +++ b/system/include/sys/socket.h @@ -1,5 +1,14 @@ /* */ +#define AF_UNSPEC 100 +#define SOCK_STREAM 200 +#define SOL_SOCKET 50 +#define SO_ERROR 10 +#define SOCK_DGRAM 20 +#define SO_REUSEADDR 30 +#define SO_SNDBUF 40 +#define SO_RCVBUF 60 + typedef int socklen_t; typedef unsigned int sa_family_t; @@ -11,4 +20,21 @@ struct sockaddr { char sa_data[]; }; +struct sockaddr_storage { + sa_family_t ss_family; +}; + +ssize_t recvfrom(int socket, void *buffer, size_t length, int flags, struct sockaddr *address, socklen_t *address_len); +int getpeername(int socket, struct sockaddr *address, socklen_t *address_len); +int getsockname(int socket, struct sockaddr *address, socklen_t *address_len); +int socket(int domain, int type, int protocol); +int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen); +int listen(int sockfd, int backlog); +int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); +int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen); +int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen); +ssize_t recv(int s, void *buf, size_t len, int flags); +ssize_t send(int s, const void *buf, size_t len, int flags); +int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen); +ssize_t sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); |