UbixOS V2 2.0

Macros | Functions
pbuf.c File Reference
`#include "net/opt.h"`
`#include "net/stats.h"`
`#include "net/def.h"`
`#include "net/mem.h"`
`#include "net/memp.h"`
`#include "net/pbuf.h"`
`#include "net/sys.h"`
`#include <string.h>`
Include dependency graph for pbuf.c:

Go to the source code of this file.

## Macros
#define | PBUF_POOL_BUFSIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(PBUF_POOL_BUFSIZE)
#define | PBUF_POOL_IS_EMPTY()
#define | SIZEOF_STRUCT_PBUF LWIP_MEM_ALIGN_SIZE(sizeof(struct pbuf))

## Functions
struct pbuf * | pbuf_alloc (pbuf_layer layer, u16_t length, pbuf_type type)
void | pbuf_cat (struct pbuf *h, struct pbuf *t)
void | pbuf_chain (struct pbuf *h, struct pbuf *t)
u16_t | pbuf_clen (const struct pbuf *p)
struct pbuf * | pbuf_coalesce (struct pbuf *p, pbuf_layer layer)
err_t | pbuf_copy (struct pbuf *p_to, const struct pbuf *p_from)
u16_t | pbuf_copy_partial (const struct pbuf *buf, void *dataptr, u16_t len, u16_t offset)
struct pbuf * | pbuf_dechain (struct pbuf *p)
u8_t | pbuf_free (struct pbuf *p)
u8_t | pbuf_get_at (const struct pbuf *p, u16_t offset)
u8_t | pbuf_header (struct pbuf *p, s16_t header_size_increment)
u8_t | pbuf_header_force (struct pbuf *p, s16_t header_size_increment)
u16_t | pbuf_memcmp (const struct pbuf *p, u16_t offset, const void *s2, u16_t n)
u16_t | pbuf_memfind (const struct pbuf *p, const void *mem, u16_t mem_len, u16_t start_offset)
void | pbuf_put_at (struct pbuf *p, u16_t offset, u8_t data)
void | pbuf_realloc (struct pbuf *p, u16_t new_len)
void | pbuf_ref (struct pbuf *p)
struct pbuf * | pbuf_skip (struct pbuf *in, u16_t in_offset, u16_t *out_offset)
u16_t | pbuf_strstr (const struct pbuf *p, const char *substr)
err_t | pbuf_take (struct pbuf *buf, const void *dataptr, u16_t len)
err_t | pbuf_take_at (struct pbuf *buf, const void *dataptr, u16_t len, u16_t offset)
int | pbuf_try_get_at (const struct pbuf *p, u16_t offset)

## Detailed Description

Packet buffer management

Definition in file pbuf.c.

## Macro Definition Documentation

## ◆ PBUF_POOL_BUFSIZE_ALIGNED

#define PBUF_POOL_BUFSIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(PBUF_POOL_BUFSIZE)

Definition at line 132 of file pbuf.c.

## ◆ PBUF_POOL_IS_EMPTY

#define PBUF_POOL_IS_EMPTY | ( |  | ) |

Definition at line 135 of file pbuf.c.

## ◆ SIZEOF_STRUCT_PBUF

#define SIZEOF_STRUCT_PBUF LWIP_MEM_ALIGN_SIZE(sizeof(struct pbuf))

Definition at line 129 of file pbuf.c.

## Function Documentation

## ◆ pbuf_clen()

u16_t pbuf_clen | ( | const struct pbuf * | p | ) |

Count number of pbufs in a chain

Parameters

  p | first pbuf of chain

Returns
  the number of pbufs in a chain

Definition at line 801 of file pbuf.c.

References pbuf::next, and NULL.

## ◆ pbuf_dechain()

struct pbuf* pbuf_dechain | ( | struct pbuf * | p | ) |

Dechains the first pbuf from its succeeding pbufs in the chain.

Makes p->tot_len field equal to p->len.

Parameters

  p | pbuf to dechain

Returns
  remainder of the pbuf chain, or NULL if it was de-allocated.

Note
  May not be called on a packet queue.

Definition at line 900 of file pbuf.c.

References pbuf::len, LWIP_ASSERT, LWIP_DBG_TRACE, LWIP_DEBUGF, pbuf::next, NULL, PBUF_DEBUG, pbuf_free(), and pbuf::tot_len.

Here is the call graph for this function:

## ◆ pbuf_header()

u8_t pbuf_header | ( | struct pbuf * | p,
|  | s16_t | header_size_increment
| ) |  |

Adjusts the payload pointer to hide or reveal headers in the payload.

Adjusts the ->payload pointer so that space for a header (dis)appears in the pbuf payload.

The ->payload, ->tot_len and ->len fields are adjusted.

Parameters

  p | pbuf to change the header size.
  header_size_increment | Number of bytes to increment header size which increases the size of the pbuf. New space is on the front. (Using a negative value decreases the header size.) If hdr_size_inc is 0, this function does nothing and returns successful.

PBUF_ROM and PBUF_REF type buffers cannot have their sizes increased, so the call will fail. A check is made that the increase in header size does not move the payload pointer in front of the start of the buffer.

Returns
  non-zero on failure, zero on success.

Definition at line 665 of file pbuf.c.

## ◆ pbuf_header_force()

u8_t pbuf_header_force | ( | struct pbuf * | p,
|  | s16_t | header_size_increment
| ) |  |

Same as pbuf_header but does not check if 'header_size > 0' is allowed. This is used internally only, to allow PBUF_REF for RX.

Definition at line 675 of file pbuf.c.

## ◆ pbuf_strstr()

u16_t pbuf_strstr | ( | const struct pbuf * | p,
|  | const char * | substr
| ) |  |

Find occurrence of substr with length substr_len in pbuf p, start at offset start_offset WARNING: in contrast to strstr(), this one does not stop at the first \0 in the pbuf/source string!

Parameters

  p | pbuf to search, maximum length is 0xFFFE since 0xFFFF is used as return value 'not found'
  substr | string to search for in p, maximum length is 0xFFFE

Returns
  0xFFFF if substr was not found in p or the index where it was found

Definition at line 1432 of file pbuf.c.

References NULL, pbuf_memfind(), strlen(), and pbuf::tot_len.

Here is the call graph for this function: