Go to the documentation of this file.
37 #ifndef LWIP_HDR_NETBUF_H
38 #define LWIP_HDR_NETBUF_H
42 #if LWIP_NETCONN || LWIP_SOCKET
55 #define NETBUF_FLAG_DESTADDR 0x01
57 #define NETBUF_FLAG_CHKSUM 0x02
64 #if LWIP_NETBUF_RECVINFO || LWIP_CHECKSUM_ON_COPY
65 #if LWIP_CHECKSUM_ON_COPY
69 #if LWIP_NETBUF_RECVINFO
76 struct netbuf * netbuf_new (
void);
77 void netbuf_delete (
struct netbuf *
buf);
78 void * netbuf_alloc (
struct netbuf *
buf,
u16_t size);
79 void netbuf_free (
struct netbuf *
buf);
80 err_t netbuf_ref (
struct netbuf *
buf,
81 const void *dataptr,
u16_t size);
82 void netbuf_chain (
struct netbuf *head,
struct netbuf *tail);
84 err_t netbuf_data (
struct netbuf *
buf,
85 void **dataptr,
u16_t *len);
86 s8_t netbuf_next (
struct netbuf *
buf);
87 void netbuf_first (
struct netbuf *
buf);
90 #define netbuf_copy_partial(buf, dataptr, len, offset) \
91 pbuf_copy_partial((buf)->p, (dataptr), (len), (offset))
92 #define netbuf_copy(buf,dataptr,len) netbuf_copy_partial(buf, dataptr, len, 0)
93 #define netbuf_take(buf, dataptr, len) pbuf_take((buf)->p, dataptr, len)
94 #define netbuf_len(buf) ((buf)->p->tot_len)
95 #define netbuf_fromaddr(buf) (&((buf)->addr))
96 #define netbuf_set_fromaddr(buf, fromaddr) ip_addr_set(&((buf)->addr), fromaddr)
97 #define netbuf_fromport(buf) ((buf)->port)
98 #if LWIP_NETBUF_RECVINFO
99 #define netbuf_destaddr(buf) (&((buf)->toaddr))
100 #define netbuf_set_destaddr(buf, destaddr) ip_addr_set(&((buf)->toaddr), destaddr)
101 #if LWIP_CHECKSUM_ON_COPY
102 #define netbuf_destport(buf) (((buf)->flags & NETBUF_FLAG_DESTADDR) ? (buf)->toport_chksum : 0)
104 #define netbuf_destport(buf) ((buf)->toport_chksum)
107 #if LWIP_CHECKSUM_ON_COPY
108 #define netbuf_set_chksum(buf, chksum) do { (buf)->flags = NETBUF_FLAG_CHKSUM; \
109 (buf)->toport_chksum = chksum; } while(0)