-/*
- * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIP_API_H__
-#define __LWIP_API_H__
-
-#include "lwip/opt.h"
-#include "lwip/pbuf.h"
-#include "lwip/sys.h"
-
-#include "lwip/ip.h"
-
-#include "lwip/raw.h"
-#include "lwip/udp.h"
-#include "lwip/tcp.h"
-
-#include "lwip/err.h"
-
-#define NETCONN_NOCOPY 0x00
-#define NETCONN_COPY 0x01
-
-enum netconn_type {
- NETCONN_TCP,
- NETCONN_UDP,
- NETCONN_UDPLITE,
- NETCONN_UDPNOCHKSUM,
- NETCONN_RAW
-};
-
-enum netconn_state {
- NETCONN_NONE,
- NETCONN_WRITE,
- NETCONN_ACCEPT,
- NETCONN_RECV,
- NETCONN_CONNECT,
- NETCONN_CLOSE
-};
-
-enum netconn_evt {
- NETCONN_EVT_RCVPLUS,
- NETCONN_EVT_RCVMINUS,
- NETCONN_EVT_SENDPLUS,
- NETCONN_EVT_SENDMINUS
-};
-
-struct netbuf {
- struct pbuf *p, *ptr;
- struct ip_addr *fromaddr;
- u16_t fromport;
- err_t err;
-};
-
-struct netconn {
- enum netconn_type type;
- enum netconn_state state;
- union {
- struct tcp_pcb *tcp;
- struct udp_pcb *udp;
- struct raw_pcb *raw;
- } pcb;
- err_t err;
- sys_mbox_t mbox;
- sys_mbox_t recvmbox;
- sys_mbox_t acceptmbox;
- sys_sem_t sem;
- int socket;
- u16_t recv_avail;
- void (* callback)(struct netconn *, enum netconn_evt, u16_t len);
-};
-
-/* Network buffer functions: */
-struct netbuf * netbuf_new (void);
-void netbuf_delete (struct netbuf *buf);
-void * netbuf_alloc (struct netbuf *buf, u16_t size);
-void netbuf_free (struct netbuf *buf);
-void netbuf_ref (struct netbuf *buf,
- void *dataptr, u16_t size);
-void netbuf_chain (struct netbuf *head,
- struct netbuf *tail);
-
-u16_t netbuf_len (struct netbuf *buf);
-err_t netbuf_data (struct netbuf *buf,
- void **dataptr, u16_t *len);
-s8_t netbuf_next (struct netbuf *buf);
-void netbuf_first (struct netbuf *buf);
-
-void netbuf_copy (struct netbuf *buf,
- void *dataptr, u16_t len);
-void netbuf_copy_partial(struct netbuf *buf, void *dataptr,
- u16_t len, u16_t offset);
-struct ip_addr * netbuf_fromaddr (struct netbuf *buf);
-u16_t netbuf_fromport (struct netbuf *buf);
-
-/* Network connection functions: */
-struct netconn * netconn_new (enum netconn_type type);
-struct
-netconn *netconn_new_with_callback(enum netconn_type t,
- void (*callback)(struct netconn *, enum netconn_evt, u16_t len));
-struct
-netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u16_t proto,
- void (*callback)(struct netconn *, enum netconn_evt, u16_t len));
-err_t netconn_delete (struct netconn *conn);
-enum netconn_type netconn_type (struct netconn *conn);
-err_t netconn_peer (struct netconn *conn,
- struct ip_addr *addr,
- u16_t *port);
-err_t netconn_addr (struct netconn *conn,
- struct ip_addr **addr,
- u16_t *port);
-err_t netconn_bind (struct netconn *conn,
- struct ip_addr *addr,
- u16_t port);
-err_t netconn_connect (struct netconn *conn,
- struct ip_addr *addr,
- u16_t port);
-err_t netconn_disconnect (struct netconn *conn);
-err_t netconn_listen (struct netconn *conn);
-struct netconn * netconn_accept (struct netconn *conn);
-struct netbuf * netconn_recv (struct netconn *conn);
-err_t netconn_send (struct netconn *conn,
- struct netbuf *buf);
-err_t netconn_write (struct netconn *conn,
- void *dataptr, u16_t size,
- u8_t copy);
-err_t netconn_close (struct netconn *conn);
-
-err_t netconn_err (struct netconn *conn);
-
-#endif /* __LWIP_API_H__ */
-
-
+/*\r
+ * Copyright (c) 2001-2004 Swedish Institute of Computer Science.\r
+ * All rights reserved. \r
+ * \r
+ * Redistribution and use in source and binary forms, with or without modification, \r
+ * are permitted provided that the following conditions are met:\r
+ *\r
+ * 1. Redistributions of source code must retain the above copyright notice,\r
+ * this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright notice,\r
+ * this list of conditions and the following disclaimer in the documentation\r
+ * and/or other materials provided with the distribution.\r
+ * 3. The name of the author may not be used to endorse or promote products\r
+ * derived from this software without specific prior written permission. \r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED \r
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF \r
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT \r
+ * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, \r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT \r
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS \r
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN \r
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING \r
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY \r
+ * OF SUCH DAMAGE.\r
+ *\r
+ * This file is part of the lwIP TCP/IP stack.\r
+ * \r
+ * Author: Adam Dunkels <adam@sics.se>\r
+ *\r
+ */\r
+#ifndef __LWIP_API_H__\r
+#define __LWIP_API_H__\r
+\r
+#include "lwip/opt.h"\r
+#include "lwip/pbuf.h"\r
+#include "lwip/sys.h"\r
+\r
+#include "lwip/ip.h"\r
+\r
+#include "lwip/raw.h"\r
+#include "lwip/udp.h"\r
+#include "lwip/tcp.h"\r
+\r
+#include "lwip/err.h"\r
+\r
+#define NETCONN_NOCOPY 0x00\r
+#define NETCONN_COPY 0x01\r
+\r
+enum netconn_type {\r
+ NETCONN_TCP,\r
+ NETCONN_UDP,\r
+ NETCONN_UDPLITE,\r
+ NETCONN_UDPNOCHKSUM,\r
+ NETCONN_RAW\r
+};\r
+\r
+enum netconn_state {\r
+ NETCONN_NONE,\r
+ NETCONN_WRITE,\r
+ NETCONN_ACCEPT,\r
+ NETCONN_RECV,\r
+ NETCONN_CONNECT,\r
+ NETCONN_CLOSE\r
+};\r
+\r
+enum netconn_evt {\r
+ NETCONN_EVT_RCVPLUS,\r
+ NETCONN_EVT_RCVMINUS,\r
+ NETCONN_EVT_SENDPLUS,\r
+ NETCONN_EVT_SENDMINUS\r
+};\r
+\r
+struct netbuf {\r
+ struct pbuf *p, *ptr;\r
+ struct ip_addr *fromaddr;\r
+ u16_t fromport;\r
+ err_t err;\r
+};\r
+\r
+struct netconn {\r
+ enum netconn_type type;\r
+ enum netconn_state state;\r
+ union {\r
+ struct tcp_pcb *tcp;\r
+ struct udp_pcb *udp;\r
+ struct raw_pcb *raw;\r
+ } pcb;\r
+ err_t err;\r
+ sys_mbox_t mbox;\r
+ sys_mbox_t recvmbox;\r
+ sys_mbox_t acceptmbox;\r
+ sys_sem_t sem;\r
+ int socket;\r
+ u16_t recv_avail;\r
+ void (* callback)(struct netconn *, enum netconn_evt, u16_t len);\r
+};\r
+\r
+/* Network buffer functions: */\r
+struct netbuf * netbuf_new (void);\r
+void netbuf_delete (struct netbuf *buf);\r
+void * netbuf_alloc (struct netbuf *buf, u16_t size);\r
+void netbuf_free (struct netbuf *buf);\r
+void netbuf_ref (struct netbuf *buf,\r
+ void *dataptr, u16_t size);\r
+void netbuf_chain (struct netbuf *head,\r
+ struct netbuf *tail);\r
+\r
+u16_t netbuf_len (struct netbuf *buf);\r
+err_t netbuf_data (struct netbuf *buf,\r
+ void **dataptr, u16_t *len);\r
+s8_t netbuf_next (struct netbuf *buf);\r
+void netbuf_first (struct netbuf *buf);\r
+\r
+void netbuf_copy (struct netbuf *buf,\r
+ void *dataptr, u16_t len);\r
+void netbuf_copy_partial(struct netbuf *buf, void *dataptr, \r
+ u16_t len, u16_t offset);\r
+struct ip_addr * netbuf_fromaddr (struct netbuf *buf);\r
+u16_t netbuf_fromport (struct netbuf *buf);\r
+\r
+/* Network connection functions: */\r
+struct netconn * netconn_new (enum netconn_type type);\r
+struct\r
+netconn *netconn_new_with_callback(enum netconn_type t,\r
+ void (*callback)(struct netconn *, enum netconn_evt, u16_t len));\r
+struct\r
+netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u16_t proto,\r
+ void (*callback)(struct netconn *, enum netconn_evt, u16_t len));\r
+err_t netconn_delete (struct netconn *conn);\r
+enum netconn_type netconn_type (struct netconn *conn);\r
+err_t netconn_peer (struct netconn *conn,\r
+ struct ip_addr *addr,\r
+ u16_t *port);\r
+err_t netconn_addr (struct netconn *conn,\r
+ struct ip_addr **addr,\r
+ u16_t *port);\r
+err_t netconn_bind (struct netconn *conn,\r
+ struct ip_addr *addr,\r
+ u16_t port);\r
+err_t netconn_connect (struct netconn *conn,\r
+ struct ip_addr *addr,\r
+ u16_t port);\r
+err_t netconn_disconnect (struct netconn *conn);\r
+err_t netconn_listen (struct netconn *conn);\r
+struct netconn * netconn_accept (struct netconn *conn);\r
+struct netbuf * netconn_recv (struct netconn *conn);\r
+err_t netconn_send (struct netconn *conn,\r
+ struct netbuf *buf);\r
+err_t netconn_write (struct netconn *conn,\r
+ void *dataptr, u16_t size,\r
+ u8_t copy);\r
+err_t netconn_close (struct netconn *conn);\r
+\r
+err_t netconn_err (struct netconn *conn);\r
+\r
+#endif /* __LWIP_API_H__ */\r
+\r
+\r