34 #ifndef __LWIP_SOCKETS_H__ 35 #define __LWIP_SOCKETS_H__ 66 # define socklen_t u32_t 77 #define SO_DEBUG 0x0001 78 #define SO_ACCEPTCONN 0x0002 79 #define SO_REUSEADDR 0x0004 80 #define SO_KEEPALIVE 0x0008 81 #define SO_DONTROUTE 0x0010 82 #define SO_BROADCAST 0x0020 83 #define SO_USELOOPBACK 0x0040 84 #define SO_LINGER 0x0080 85 #define SO_OOBINLINE 0x0100 86 #define SO_REUSEPORT 0x0200 88 #define SO_DONTLINGER ((int)(~SO_LINGER)) 93 #define SO_SNDBUF 0x1001 94 #define SO_RCVBUF 0x1002 95 #define SO_SNDLOWAT 0x1003 96 #define SO_RCVLOWAT 0x1004 97 #define SO_SNDTIMEO 0x1005 98 #define SO_RCVTIMEO 0x1006 99 #define SO_ERROR 0x1007 100 #define SO_TYPE 0x1008 101 #define SO_CONTIMEO 0x1009 102 #define SO_NO_CHECK 0x100a 116 #define SOL_SOCKET 0xfff 121 #define PF_INET AF_INET 122 #define PF_UNSPEC AF_UNSPEC 125 #define IPPROTO_TCP 6 126 #define IPPROTO_UDP 17 127 #define IPPROTO_UDPLITE 136 130 #define MSG_PEEK 0x01 131 #define MSG_WAITALL 0x02 133 #define MSG_DONTWAIT 0x08 134 #define MSG_MORE 0x10 147 #define TCP_NODELAY 0x01 148 #define TCP_KEEPALIVE 0x02 149 #define TCP_KEEPIDLE 0x03 150 #define TCP_KEEPINTVL 0x04 151 #define TCP_KEEPCNT 0x05 154 #if LWIP_UDP && LWIP_UDPLITE 158 #define UDPLITE_SEND_CSCOV 0x01 159 #define UDPLITE_RECV_CSCOV 0x02 167 #define IP_ADD_MEMBERSHIP 3 168 #define IP_DROP_MEMBERSHIP 4 169 #define IP_MULTICAST_TTL 5 170 #define IP_MULTICAST_IF 6 171 #define IP_MULTICAST_LOOP 7 173 typedef struct ip_mreq {
195 #define IPTOS_TOS_MASK 0x1E 196 #define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK) 197 #define IPTOS_LOWDELAY 0x10 198 #define IPTOS_THROUGHPUT 0x08 199 #define IPTOS_RELIABILITY 0x04 200 #define IPTOS_LOWCOST 0x02 201 #define IPTOS_MINCOST IPTOS_LOWCOST 212 #define IPTOS_PREC_MASK 0xe0 213 #define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK) 214 #define IPTOS_PREC_NETCONTROL 0xe0 215 #define IPTOS_PREC_INTERNETCONTROL 0xc0 216 #define IPTOS_PREC_CRITIC_ECP 0xa0 217 #define IPTOS_PREC_FLASHOVERRIDE 0x80 218 #define IPTOS_PREC_FLASH 0x60 219 #define IPTOS_PREC_IMMEDIATE 0x40 220 #define IPTOS_PREC_PRIORITY 0x20 221 #define IPTOS_PREC_ROUTINE 0x00 234 #if !defined(FIONREAD) || !defined(FIONBIO) 235 #define IOCPARM_MASK 0x7fU 236 #define IOC_VOID 0x20000000UL 237 #define IOC_OUT 0x40000000UL 238 #define IOC_IN 0x80000000UL 239 #define IOC_INOUT (IOC_IN|IOC_OUT) 242 #define _IO(x,y) (IOC_VOID|((x)<<8)|(y)) 244 #define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) 246 #define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) 250 #define FIONREAD _IOR('f', 127, unsigned long) 253 #define FIONBIO _IOW('f', 126, unsigned long) 258 #define SIOCSHIWAT _IOW('s', 0, unsigned long) 259 #define SIOCGHIWAT _IOR('s', 1, unsigned long) 260 #define SIOCSLOWAT _IOW('s', 2, unsigned long) 261 #define SIOCGLOWAT _IOR('s', 3, unsigned long) 262 #define SIOCATMARK _IOR('s', 7, unsigned long) 292 #define FD_SETSIZE MEMP_NUM_NETCONN 293 #define FD_SET(n, p) ((p)->fd_bits[(n)/8] |= (1 << ((n) & 7))) 294 #define FD_CLR(n, p) ((p)->fd_bits[(n)/8] &= ~(1 << ((n) & 7))) 295 #define FD_ISSET(n,p) ((p)->fd_bits[(n)/8] & (1 << ((n) & 7))) 296 #define FD_ZERO(p) memset((void*)(p),0,sizeof(*(p))) 298 typedef struct fd_set {
299 unsigned char fd_bits [(FD_SETSIZE+7)/8];
306 #ifndef LWIP_TIMEVAL_PRIVATE 307 #define LWIP_TIMEVAL_PRIVATE 1 310 #if LWIP_TIMEVAL_PRIVATE 317 void lwip_socket_init(
void);
319 int lwip_accept(
int s,
struct sockaddr *addr, socklen_t *addrlen);
320 int lwip_bind(
int s,
const struct sockaddr *name, socklen_t namelen);
321 int lwip_shutdown(
int s,
int how);
322 int lwip_getpeername (
int s,
struct sockaddr *name, socklen_t *namelen);
323 int lwip_getsockname (
int s,
struct sockaddr *name, socklen_t *namelen);
324 int lwip_getsockopt (
int s,
int level,
int optname,
void *optval, socklen_t *optlen);
325 int lwip_setsockopt (
int s,
int level,
int optname,
const void *optval, socklen_t optlen);
326 int lwip_close(
int s);
327 int lwip_connect(
int s,
const struct sockaddr *name, socklen_t namelen);
328 int lwip_listen(
int s,
int backlog);
329 int lwip_recv(
int s,
void *
mem,
size_t len,
int flags);
330 int lwip_read(
int s,
void *
mem,
size_t len);
331 int lwip_recvfrom(
int s,
void *
mem,
size_t len,
int flags,
332 struct sockaddr *from, socklen_t *fromlen);
333 int lwip_send(
int s,
const void *dataptr,
size_t size,
int flags);
334 int lwip_sendto(
int s,
const void *dataptr,
size_t size,
int flags,
335 const struct sockaddr *to, socklen_t tolen);
336 int lwip_socket(
int domain,
int type,
int protocol);
337 int lwip_write(
int s,
const void *dataptr,
size_t size);
338 int lwip_select(
int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
339 struct timeval *timeout);
340 int lwip_ioctl(
int s,
long cmd,
void *argp);
341 int lwip_fcntl(
int s,
int cmd,
int val);
343 #if LWIP_COMPAT_SOCKETS 344 #define accept(a,b,c) lwip_accept(a,b,c) 345 #define bind(a,b,c) lwip_bind(a,b,c) 346 #define shutdown(a,b) lwip_shutdown(a,b) 347 #define closesocket(s) lwip_close(s) 348 #define connect(a,b,c) lwip_connect(a,b,c) 349 #define getsockname(a,b,c) lwip_getsockname(a,b,c) 350 #define getpeername(a,b,c) lwip_getpeername(a,b,c) 351 #define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e) 352 #define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e) 353 #define listen(a,b) lwip_listen(a,b) 354 #define recv(a,b,c,d) lwip_recv(a,b,c,d) 355 #define recvfrom(a,b,c,d,e,f) lwip_recvfrom(a,b,c,d,e,f) 356 #define send(a,b,c,d) lwip_send(a,b,c,d) 357 #define sendto(a,b,c,d,e,f) lwip_sendto(a,b,c,d,e,f) 358 #define socket(a,b,c) lwip_socket(a,b,c) 359 #define select(a,b,c,d,e) lwip_select(a,b,c,d,e) 360 #define ioctlsocket(a,b,c) lwip_ioctl(a,b,c) 362 #if LWIP_POSIX_SOCKETS_IO_NAMES 363 #define read(a,b,c) lwip_read(a,b,c) 364 #define write(a,b,c) lwip_write(a,b,c) 365 #define close(s) lwip_close(s)