Rtos API example

Embed: (wiki syntax)

« Back to documentation index

Network buffers

Network buffers
[Netconn API]

Network buffer descriptor for Netconn API. More...

Functions

struct netbufnetbuf_new (void)
 Create (allocate) and initialize a new netbuf.
void netbuf_delete (struct netbuf *buf)
 Deallocate a netbuf allocated by netbuf_new().
void * netbuf_alloc (struct netbuf *buf, u16_t size)
 Allocate memory for a packet buffer for a given netbuf.
void netbuf_free (struct netbuf *buf)
 Free the packet buffer included in a netbuf.
err_t netbuf_ref (struct netbuf *buf, const void *dataptr, u16_t size)
 Let a netbuf reference existing (non-volatile) data.
void netbuf_chain (struct netbuf *head, struct netbuf *tail)
 Chain one netbuf to another (.
err_t netbuf_data (struct netbuf *buf, void **dataptr, u16_t *len)
 Get the data pointer and length of the data inside a netbuf.
s8_t netbuf_next (struct netbuf *buf)
 Move the current data pointer of a packet buffer contained in a netbuf to the next part.
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.

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

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

Definition at line 102 of file lwip_netbuf.c.

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

Definition at line 172 of file lwip_netbuf.c.

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.

Definition at line 192 of file lwip_netbuf.c.

void netbuf_delete ( struct netbuf buf )

Deallocate a netbuf allocated by netbuf_new().

Parameters:
bufpointer to a netbuf allocated by netbuf_new()

Definition at line 81 of file lwip_netbuf.c.

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

Definition at line 240 of file lwip_netbuf.c.

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

Definition at line 127 of file lwip_netbuf.c.

struct netbuf* netbuf_new ( void   ) [read]

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

Definition at line 63 of file lwip_netbuf.c.

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

Definition at line 218 of file lwip_netbuf.c.

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

Definition at line 147 of file lwip_netbuf.c.