lwIP  2.1.0
Lightweight IP stack

Functions

struct netbufnetbuf_new (void)
 
void netbuf_delete (struct netbuf *buf)
 
void * netbuf_alloc (struct netbuf *buf, u16_t size)
 
void netbuf_free (struct netbuf *buf)
 
err_t netbuf_ref (struct netbuf *buf, const void *dataptr, u16_t size)
 
void netbuf_chain (struct netbuf *head, struct netbuf *tail)
 
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)
 

Detailed Description

Network buffer descriptor for Netconn API. Based on Packet buffers (PBUF) internally to avoid copying data around.
Buffers must not be shared accross multiple threads, all functions except netbuf_new() and netbuf_delete() are not thread-safe.

Function Documentation

◆ netbuf_alloc()

void* netbuf_alloc ( struct netbuf buf,
u16_t  size 
)

Allocate memory for a packet buffer for a given netbuf.

Parameters
bufthe netbuf for which to allocate a packet buffer
sizethe size of the packet buffer to allocate
Returns
pointer to the allocated memory NULL if no memory could be allocated

◆ netbuf_chain()

void netbuf_chain ( struct netbuf head,
struct netbuf tail 
)

Chain one netbuf to another (

See also
pbuf_chain)
Parameters
headthe first netbuf
tailnetbuf to chain after head, freed by this function, may not be reference after returning

◆ netbuf_data()

err_t netbuf_data ( struct netbuf buf,
void **  dataptr,
u16_t *  len 
)

Get the data pointer and length of the data inside a netbuf.

Parameters
bufnetbuf to get the data from
dataptrpointer to a void pointer where to store the data pointer
lenpointer to an u16_t where the length of the data is stored
Returns
ERR_OK if the information was retrieved, ERR_BUF on error.

◆ netbuf_delete()

void netbuf_delete ( struct netbuf buf)

Deallocate a netbuf allocated by netbuf_new().

Parameters
bufpointer to a netbuf allocated by netbuf_new()

◆ netbuf_first()

void netbuf_first ( struct netbuf buf)

Move the current data pointer of a packet buffer contained in a netbuf to the beginning of the packet. The packet buffer itself is not modified.

Parameters
bufthe netbuf to modify

◆ netbuf_free()

void netbuf_free ( struct netbuf buf)

Free the packet buffer included in a netbuf

Parameters
bufpointer to the netbuf which contains the packet buffer to free

◆ netbuf_new()

struct netbuf* netbuf_new ( void  )

Create (allocate) and initialize a new netbuf. The netbuf doesn't yet contain a packet buffer!

Returns
a pointer to a new netbuf NULL on lack of memory

◆ netbuf_next()

s8_t netbuf_next ( struct netbuf buf)

Move the current data pointer of a packet buffer contained in a netbuf to the next part. The packet buffer itself is not modified.

Parameters
bufthe netbuf to modify
Returns
-1 if there is no next part 1 if moved to the next part but now there is no next part 0 if moved to the next part and there are still more parts

◆ netbuf_ref()

err_t netbuf_ref ( struct netbuf buf,
const void *  dataptr,
u16_t  size 
)

Let a netbuf reference existing (non-volatile) data.

Parameters
bufnetbuf which should reference the data
dataptrpointer to the data to reference
sizesize of the data
Returns
ERR_OK if data is referenced ERR_MEM if data couldn't be referenced due to lack of memory