/[lwip]/lwip/src/include/lwip/sockets.h
ViewVC logotype

Diff of /lwip/src/include/lwip/sockets.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by jani, Wed Jan 22 16:18:05 2003 UTC revision 1.4 by davidhaas, Thu Feb 6 22:18:56 2003 UTC
# Line 53  struct sockaddr { Line 53  struct sockaddr {
53    char sa_data[14];    char sa_data[14];
54  };  };
55    
56    #ifndef socklen_t
57    #define socklen_t int
58    #endif
59    
60    
61  #define SOCK_STREAM     1  #define SOCK_STREAM     1
62  #define SOCK_DGRAM      2  #define SOCK_DGRAM      2
63    #define SOCK_RAW        3
64    
65    /*
66     * Option flags per-socket.
67     */
68    #define SO_DEBUG        0x0001          /* turn on debugging info recording */
69    #define SO_ACCEPTCONN   0x0002          /* socket has had listen() */
70    #define SO_REUSEADDR    0x0004          /* allow local address reuse */
71    #define SO_KEEPALIVE    0x0008          /* keep connections alive */
72    #define SO_DONTROUTE    0x0010          /* just use interface addresses */
73    #define SO_BROADCAST    0x0020          /* permit sending of broadcast msgs */
74    #define SO_USELOOPBACK  0x0040          /* bypass hardware when possible */
75    #define SO_LINGER       0x0080          /* linger on close if data present */
76    #define SO_OOBINLINE    0x0100          /* leave received OOB data in line */
77    
78    #define SO_DONTLINGER   (int)(~SO_LINGER)
79    
80    /*
81     * Additional options, not kept in so_options.
82     */
83    #define SO_SNDBUF       0x1001          /* send buffer size */
84    #define SO_RCVBUF       0x1002          /* receive buffer size */
85    #define SO_SNDLOWAT     0x1003          /* send low-water mark */
86    #define SO_RCVLOWAT     0x1004          /* receive low-water mark */
87    #define SO_SNDTIMEO     0x1005          /* send timeout */
88    #define SO_RCVTIMEO     0x1006          /* receive timeout */
89    #define SO_ERROR        0x1007          /* get error status and clear */
90    #define SO_TYPE         0x1008          /* get socket type */
91    
92    
93    
94    /*
95     * Structure used for manipulating linger option.
96     */
97    struct linger {
98           int l_onoff;                /* option on/off */
99           int l_linger;               /* linger time */
100    };
101    
102    /*
103     * Level number for (get/set)sockopt() to apply to socket itself.
104     */
105    #define SOL_SOCKET      0xfff           /* options for socket level */
106    
107    
108  #define AF_UNSPEC       0  #define AF_UNSPEC       0
109  #define AF_INET         2  #define AF_INET         2
110  #define PF_INET         AF_INET  #define PF_INET         AF_INET
111    
# Line 66  struct sockaddr { Line 115  struct sockaddr {
115  #define INADDR_ANY      0  #define INADDR_ANY      0
116  #define INADDR_BROADCAST 0xffffffff  #define INADDR_BROADCAST 0xffffffff
117    
118    /* Flags we can use with send and recv. */
119    #define MSG_DONTWAIT    0x40            /* Nonblocking i/o for this operation only */
120    
121    
122    /*
123     * Commands for ioctlsocket(),  taken from the BSD file fcntl.h.
124     *
125     *
126     * Ioctl's have the command encoded in the lower word,
127     * and the size of any in or out parameters in the upper
128     * word.  The high 2 bits of the upper word are used
129     * to encode the in/out status of the parameter; for now
130     * we restrict parameters to at most 128 bytes.
131     */
132    #if !defined(FIONREAD) || !defined(FIONBIO)
133    #define IOCPARM_MASK    0x7f            /* parameters must be < 128 bytes */
134    #define IOC_VOID        0x20000000      /* no parameters */
135    #define IOC_OUT         0x40000000      /* copy out parameters */
136    #define IOC_IN          0x80000000      /* copy in parameters */
137    #define IOC_INOUT       (IOC_IN|IOC_OUT)
138                                            /* 0x20000000 distinguishes new &
139                                               old ioctl's */
140    #define _IO(x,y)        (IOC_VOID|((x)<<8)|(y))
141    
142    #define _IOR(x,y,t)     (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
143    
144    #define _IOW(x,y,t)     (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
145    #endif
146    
147    #ifndef FIONREAD
148    #define FIONREAD    _IOR('f', 127, unsigned long) /* get # bytes to read */
149    #endif
150    #ifndef FIONBIO
151    #define FIONBIO     _IOW('f', 126, unsigned long) /* set/clear non-blocking i/o */
152    #endif
153    
154    /* Socket I/O Controls */
155    #ifndef SIOCSHIWAT
156    #define SIOCSHIWAT  _IOW('s',  0, unsigned long)  /* set high watermark */
157    #define SIOCGHIWAT  _IOR('s',  1, unsigned long)  /* get high watermark */
158    #define SIOCSLOWAT  _IOW('s',  2, unsigned long)  /* set low watermark */
159    #define SIOCGLOWAT  _IOR('s',  3, unsigned long)  /* get low watermark */
160    #define SIOCATMARK  _IOR('s',  7, unsigned long)  /* at oob mark? */
161    #endif
162    
163    #ifndef O_NONBLOCK
164    #define O_NONBLOCK    04000
165    #endif
166    
167  int lwip_accept(int s, struct sockaddr *addr, int *addrlen);  int lwip_accept(int s, struct sockaddr *addr, int *addrlen);
168  int lwip_bind(int s, struct sockaddr *name, int namelen);  int lwip_bind(int s, struct sockaddr *name, int namelen);
169    int lwip_shutdown(int s, int how);
170    int lwip_getpeername (int s, struct sockaddr *name, int *namelen);
171    int lwip_getsockname (int s, struct sockaddr *name, int *namelen);
172    int lwip_getsockopt (int s, int level, int optname, char *optval, int *optlen);
173    int lwip_setsockopt (int s, int level, int optname, const char *optval, int optlen);
174  int lwip_close(int s);  int lwip_close(int s);
175  int lwip_connect(int s, struct sockaddr *name, int namelen);  int lwip_connect(int s, struct sockaddr *name, int namelen);
176  int lwip_listen(int s, int backlog);  int lwip_listen(int s, int backlog);
# Line 80  int lwip_sendto(int s, void *dataptr, in Line 183  int lwip_sendto(int s, void *dataptr, in
183                  struct sockaddr *to, int tolen);                  struct sockaddr *to, int tolen);
184  int lwip_socket(int domain, int type, int protocol);  int lwip_socket(int domain, int type, int protocol);
185  int lwip_write(int s, void *dataptr, int size);  int lwip_write(int s, void *dataptr, int size);
186    int lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
187                    const struct timeval *timeout);
188    int lwip_ioctl(int s, long cmd, void *argp);
189    
190  #ifdef LWIP_COMPAT_SOCKETS  #ifdef LWIP_COMPAT_SOCKETS
191  #define accept(a,b,c)         lwip_accept(a,b,c)  #define accept(a,b,c)         lwip_accept(a,b,c)
192  #define bind(a,b,c)           lwip_bind(a,b,c)  #define bind(a,b,c)           lwip_bind(a,b,c)
193    #define shutdown(a,b)         lwip_shutdown(a,b)
194  #define close(s)              lwip_close(s)  #define close(s)              lwip_close(s)
195  #define connect(a,b,c)        lwip_connect(a,b,c)  #define connect(a,b,c)        lwip_connect(a,b,c)
196    #define getsockname(a,b,c)    lwip_getsockname(a,b,c)
197    #define getpeername(a,b,c)    lwip_getpeername(a,b,c)
198    #define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e)
199    #define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e)
200  #define listen(a,b)           lwip_listen(a,b)  #define listen(a,b)           lwip_listen(a,b)
201  #define recv(a,b,c,d)         lwip_recv(a,b,c,d)  #define recv(a,b,c,d)         lwip_recv(a,b,c,d)
202  #define read(a,b,c)           lwip_read(a,b,c)  #define read(a,b,c)           lwip_read(a,b,c)
# Line 94  int lwip_write(int s, void *dataptr, int Line 205  int lwip_write(int s, void *dataptr, int
205  #define sendto(a,b,c,d,e,f)   lwip_sendto(a,b,c,d,e,f)  #define sendto(a,b,c,d,e,f)   lwip_sendto(a,b,c,d,e,f)
206  #define socket(a,b,c)         lwip_socket(a,b,c)  #define socket(a,b,c)         lwip_socket(a,b,c)
207  #define write(a,b,c)          lwip_write(a,b,c)  #define write(a,b,c)          lwip_write(a,b,c)
208  #endif /* LWIP_NO_COMPAT_SOCKETS */  #define select(a,b,c,d,e)     lwip_select(a,b,c,d,e)
209    #define ioctlsocket(a,b,c)     lwip_ioctl(a,b,c)
210    #endif /* LWIP_COMPAT_SOCKETS */
211    
212  #endif /* __LWIP_SOCKETS_H__ */  #endif /* __LWIP_SOCKETS_H__ */
213    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26