mbed socket API

Dependents:   EthernetInterface EthernetInterface_RSF EthernetInterface EthernetInterface ... more

Deprecated

This is an mbed 2 sockets library. For mbed 5, network sockets have been revised to better support additional network stacks and thread safety here.

Committer:
emilmont
Date:
Mon Jul 23 11:52:50 2012 +0000
Revision:
2:b227d242f3c7
tidyup

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 2:b227d242f3c7 1 #ifndef SOCKET_H_
emilmont 2:b227d242f3c7 2 #define SOCKET_H_
emilmont 2:b227d242f3c7 3
emilmont 2:b227d242f3c7 4 #include "lwip/sockets.h"
emilmont 2:b227d242f3c7 5
emilmont 2:b227d242f3c7 6 #define OK 0 //No error
emilmont 2:b227d242f3c7 7
emilmont 2:b227d242f3c7 8 #define NET_FULL 1 //>All available resources are already used
emilmont 2:b227d242f3c7 9 #define NET_EMPTY 2 //>No resource
emilmont 2:b227d242f3c7 10 #define NET_NOTFOUND 3 //>Element cannot be found
emilmont 2:b227d242f3c7 11 #define NET_INVALID 4 //>Invalid
emilmont 2:b227d242f3c7 12 #define NET_CONTEXT 5 //>Called in a wrong context (eg during an interrupt)
emilmont 2:b227d242f3c7 13 #define NET_TIMEOUT 6 //>Timeout
emilmont 2:b227d242f3c7 14 #define NET_UNKNOWN 7 //>Unknown error
emilmont 2:b227d242f3c7 15 #define NET_OVERFLOW 8 //>Overflow
emilmont 2:b227d242f3c7 16 #define NET_PROCESSING 9 //>Command is processing
emilmont 2:b227d242f3c7 17 #define NET_INTERRUPTED 10 //>Current operation has been interrupted
emilmont 2:b227d242f3c7 18 #define NET_MOREINFO 11 //>More info on this error can be retrieved elsewhere (eg in a parameter passed as ptr)
emilmont 2:b227d242f3c7 19 #define NET_ABORT 12 //>Current operation must be aborted
emilmont 2:b227d242f3c7 20 #define NET_DIFF 13 //>Items that should match are different
emilmont 2:b227d242f3c7 21 #define NET_AUTH 14 //>Authentication failed
emilmont 2:b227d242f3c7 22 #define NET_PROTOCOL 15 //>Protocol error
emilmont 2:b227d242f3c7 23 #define NET_OOM 16 //>Out of memory
emilmont 2:b227d242f3c7 24 #define NET_CONN 17 //>Connection error
emilmont 2:b227d242f3c7 25 #define NET_CLOSED 18 //>Connection was closed by remote end
emilmont 2:b227d242f3c7 26 #define NET_TOOSMALL 19 //>Buffer is too small
emilmont 2:b227d242f3c7 27
emilmont 2:b227d242f3c7 28 inline int accept(int s, struct sockaddr *addr, socklen_t *addrlen) {
emilmont 2:b227d242f3c7 29 return lwip_accept(s, addr, addrlen);
emilmont 2:b227d242f3c7 30 }
emilmont 2:b227d242f3c7 31
emilmont 2:b227d242f3c7 32 inline int bind(int s, const struct sockaddr *name, socklen_t namelen) {
emilmont 2:b227d242f3c7 33 return lwip_bind(s, name, namelen);
emilmont 2:b227d242f3c7 34 }
emilmont 2:b227d242f3c7 35
emilmont 2:b227d242f3c7 36 inline int shutdown(int s, int how) {
emilmont 2:b227d242f3c7 37 return lwip_shutdown(s, how);
emilmont 2:b227d242f3c7 38 }
emilmont 2:b227d242f3c7 39
emilmont 2:b227d242f3c7 40 inline int getsockname (int s, struct sockaddr *name, socklen_t *namelen) {
emilmont 2:b227d242f3c7 41 return lwip_getsockname(s, name, namelen);
emilmont 2:b227d242f3c7 42 }
emilmont 2:b227d242f3c7 43
emilmont 2:b227d242f3c7 44 inline int getpeername (int s, struct sockaddr *name, socklen_t *namelen) {
emilmont 2:b227d242f3c7 45 return lwip_getpeername(s, name, namelen);
emilmont 2:b227d242f3c7 46 }
emilmont 2:b227d242f3c7 47
emilmont 2:b227d242f3c7 48 inline int getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen) {
emilmont 2:b227d242f3c7 49 return lwip_getsockopt(s, level, optname, optval, optlen);
emilmont 2:b227d242f3c7 50 }
emilmont 2:b227d242f3c7 51
emilmont 2:b227d242f3c7 52 inline int setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen) {
emilmont 2:b227d242f3c7 53 return lwip_setsockopt(s, level, optname, optval, optlen);
emilmont 2:b227d242f3c7 54 }
emilmont 2:b227d242f3c7 55
emilmont 2:b227d242f3c7 56 inline int connect(int s, const struct sockaddr *name, socklen_t namelen) {
emilmont 2:b227d242f3c7 57 return lwip_connect(s, name, namelen);
emilmont 2:b227d242f3c7 58 }
emilmont 2:b227d242f3c7 59
emilmont 2:b227d242f3c7 60 inline int listen(int s, int backlog) {
emilmont 2:b227d242f3c7 61 return lwip_listen(s, backlog);
emilmont 2:b227d242f3c7 62 }
emilmont 2:b227d242f3c7 63
emilmont 2:b227d242f3c7 64 inline int recv(int s, void *mem, size_t len, int flags) {
emilmont 2:b227d242f3c7 65 return lwip_recv(s, mem, len, flags);
emilmont 2:b227d242f3c7 66 }
emilmont 2:b227d242f3c7 67
emilmont 2:b227d242f3c7 68 inline int recvfrom(int s, void *mem, size_t len, int flags,
emilmont 2:b227d242f3c7 69 struct sockaddr *from, socklen_t *fromlen) {
emilmont 2:b227d242f3c7 70 return lwip_recvfrom(s, mem, len, flags, from, fromlen);
emilmont 2:b227d242f3c7 71 }
emilmont 2:b227d242f3c7 72
emilmont 2:b227d242f3c7 73 inline int send(int s, const void *dataptr, size_t size, int flags) {
emilmont 2:b227d242f3c7 74 return lwip_send(s, dataptr, size, flags);
emilmont 2:b227d242f3c7 75 }
emilmont 2:b227d242f3c7 76
emilmont 2:b227d242f3c7 77 inline int sendto(int s, const void *dataptr, size_t size, int flags,
emilmont 2:b227d242f3c7 78 const struct sockaddr *to, socklen_t tolen) {
emilmont 2:b227d242f3c7 79 return lwip_sendto(s, dataptr, size, flags, to, tolen);
emilmont 2:b227d242f3c7 80 }
emilmont 2:b227d242f3c7 81
emilmont 2:b227d242f3c7 82 inline int socket(int domain, int type, int protocol) {
emilmont 2:b227d242f3c7 83 return lwip_socket(domain, type, protocol);
emilmont 2:b227d242f3c7 84 }
emilmont 2:b227d242f3c7 85
emilmont 2:b227d242f3c7 86 inline int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
emilmont 2:b227d242f3c7 87 struct timeval *timeout) {
emilmont 2:b227d242f3c7 88 return lwip_select(maxfdp1, readset, writeset, exceptset, timeout);
emilmont 2:b227d242f3c7 89 }
emilmont 2:b227d242f3c7 90
emilmont 2:b227d242f3c7 91 inline int ioctlsocket(int s, long cmd, void *argp) {
emilmont 2:b227d242f3c7 92 return lwip_ioctl(s, cmd, argp);
emilmont 2:b227d242f3c7 93 }
emilmont 2:b227d242f3c7 94
emilmont 2:b227d242f3c7 95 inline int read(int s, void *mem, size_t len) {
emilmont 2:b227d242f3c7 96 return lwip_read(s, mem, len);
emilmont 2:b227d242f3c7 97 }
emilmont 2:b227d242f3c7 98
emilmont 2:b227d242f3c7 99 inline int write(int s, const void *dataptr, size_t size) {
emilmont 2:b227d242f3c7 100 return lwip_write(s, dataptr, size);
emilmont 2:b227d242f3c7 101 }
emilmont 2:b227d242f3c7 102
emilmont 2:b227d242f3c7 103 inline int close(int s) {
emilmont 2:b227d242f3c7 104 return lwip_close(s);
emilmont 2:b227d242f3c7 105 }
emilmont 2:b227d242f3c7 106
emilmont 2:b227d242f3c7 107 #include "lwip/netdb.h"
emilmont 2:b227d242f3c7 108
emilmont 2:b227d242f3c7 109 //DNS
emilmont 2:b227d242f3c7 110 inline struct hostent *gethostbyname(const char *name) {
emilmont 2:b227d242f3c7 111 return lwip_gethostbyname(name);
emilmont 2:b227d242f3c7 112 }
emilmont 2:b227d242f3c7 113
emilmont 2:b227d242f3c7 114 inline int gethostbyname_r(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop) {
emilmont 2:b227d242f3c7 115 return lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop);
emilmont 2:b227d242f3c7 116 }
emilmont 2:b227d242f3c7 117
emilmont 2:b227d242f3c7 118 inline void freeaddrinfo(struct addrinfo *ai) {
emilmont 2:b227d242f3c7 119 return lwip_freeaddrinfo(ai);
emilmont 2:b227d242f3c7 120 }
emilmont 2:b227d242f3c7 121
emilmont 2:b227d242f3c7 122 inline int getaddrinfo(const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res) {
emilmont 2:b227d242f3c7 123 return lwip_getaddrinfo(nodename, servname, hints, res);
emilmont 2:b227d242f3c7 124 }
emilmont 2:b227d242f3c7 125
emilmont 2:b227d242f3c7 126 #endif /* SOCKET_H_ */