libisdn
|
Go to the source code of this file.
Data Structures | |
struct | msgb |
Defines | |
#define | MSGB_STATIC_SIZE(_size) (sizeof(struct msgb) + _size) |
#define | MSGB_INIT_STATIC(_msgb, _size) msgb_init((struct msgb *)(_msgb), (uint8_t *)(_msgb) + sizeof(struct msgb), (_size) - sizeof(struct msgb)) |
Enumerations | |
enum | msgb_seek_t { MSGB_SEEK_CUR = 0, MSGB_SEEK_SET, MSGB_SEEK_END } |
Functions | |
int | msgb_init (struct msgb *msgb, const uint8_t *buf, const int size) |
struct msgb * | msgb_alloc (const int size) |
struct msgb * | msgb_alloc_reserve (const int size, const int reserve) |
int | msgb_destroy (struct msgb *msgb) |
int | msgb_reserve (struct msgb *msgb, const int reserve) |
int | msgb_unreserve (struct msgb *msgb, const int size) |
int | msgb_size (const struct msgb *msgb) |
int | msgb_length (const struct msgb *msgb) |
int | msgb_space (const struct msgb *msgb) |
int | msgb_reserved_space (const struct msgb *msgb) |
int | msgb_empty (const struct msgb *msgb) |
int | msgb_full (const struct msgb *msgb) |
int | msgb_left (const struct msgb *msgb) |
uint8_t * | msgb_head_ptr (const struct msgb *msgb) |
uint8_t * | msgb_tail_ptr (const struct msgb *msgb) |
uint8_t * | msgb_put (struct msgb *msgb, const int size) |
int | msgb_write (struct msgb *msgb, const void *buf, const int size) |
int | msgb_fill (struct msgb *msgb, const int c, const int size) |
uint8_t * | msgb_get (struct msgb *msgb, const int size) |
int | msgb_read (struct msgb *msgb, void *buf, const int size) |
int | msgb_rewind (struct msgb *msgb) |
int | msgb_seek (struct msgb *msgb, const msgb_seek_t type, const int offset) |
int | msgb_tell (const struct msgb *msgb) |
int | msgb_clear (struct msgb *msgb) |
int | msgb_reset (struct msgb *msgb) |
struct msgb * | msgb_linearize (struct msgb *msgb) |
struct msgb * | msgb_linearize_reserve (struct msgb *msgb, const int reserve) |
int | msgb_merge (struct msgb *msgb, struct msgb *outb) |
struct msgb * | msgb_split (struct msgb *msgb, const int size) |
struct msgb * | msgb_split_reserve (struct msgb *msgb, const int size, const int reserve) |
int | msgb_chain_append (struct msgb *chain, struct msgb *msgb) |
struct msgb * | msgb_chain_split (struct msgb *chain, struct msgb *where) |
struct msgb * | msgb_chain_split_at (struct msgb *chain, const int pos) |
int | msgb_chain_count (const struct msgb *chain) |
int | msgb_chain_length (const struct msgb *chain) |
int | msgb_chain_size (const struct msgb *chain) |
#define MSGB_INIT_STATIC | ( | _msgb, | |
_size | |||
) | msgb_init((struct msgb *)(_msgb), (uint8_t *)(_msgb) + sizeof(struct msgb), (_size) - sizeof(struct msgb)) |
#define MSGB_STATIC_SIZE | ( | _size | ) | (sizeof(struct msgb) + _size) |
enum msgb_seek_t |
struct msgb* msgb_alloc | ( | const int | size | ) | [read] |
Allocate message buffer of given size
size | Size of buffer to allocate |
Definition at line 50 of file msgb.c.
References MSGBF_BUFFER_OWNED.
Referenced by msgb_alloc_reserve().
struct msgb* msgb_alloc_reserve | ( | const int | size, |
const int | reserve | ||
) | [read] |
Allocate message buffer of given size and reserve space at the beginning
size | Size of buffer to allocate |
reserve | Number of bytes to reserve |
Definition at line 69 of file msgb.c.
References msgb_alloc(), and msgb_reserve().
int msgb_chain_append | ( | struct msgb * | chain, |
struct msgb * | msgb | ||
) |
Append msgb to chain
[in] | chain | Chain of msg buffers |
[in] | msgb | Buffer to append (can be a chain too) |
Definition at line 381 of file msgb.c.
References msgb::next.
int msgb_chain_count | ( | const struct msgb * | chain | ) |
Number of msgbs in chain
[in] | chain | msgb chain |
Definition at line 560 of file msgb.c.
References msgb::next.
int msgb_chain_length | ( | const struct msgb * | chain | ) |
Total length of data in chain
[in] | chain | msgb chain |
int msgb_chain_size | ( | const struct msgb * | chain | ) |
Total size of msgbs in chain
[in] | chain | msgb chain |
struct msgb* msgb_chain_split | ( | struct msgb * | chain, |
struct msgb * | where | ||
) | [read] |
Split chain at indicated element
[in] | chain | Chain of msg buffers |
[in] | msgb | Buffer to append (can be a chain too) |
Definition at line 394 of file msgb.c.
References msgb::next.
struct msgb* msgb_chain_split_at | ( | struct msgb * | chain, |
const int | pos | ||
) | [read] |
Split chain at indicated element (index)
[in] | chain | Chain of msg buffers |
[in] | msgb | Buffer to append (can be a chain too) |
Definition at line 410 of file msgb.c.
References msgb::next.
int msgb_clear | ( | struct msgb * | msgb | ) |
Clear data, move read, tail and end pointer to position of head
msgb | Message buffer |
Definition at line 270 of file msgb.c.
References msgb::buf, msgb::end, msgb::head, msgb::size, and msgb::tail.
int msgb_destroy | ( | struct msgb * | msgb | ) |
Destroy message buffer
msgb | Message buffer |
Definition at line 88 of file msgb.c.
References msgb::next.
int msgb_empty | ( | const struct msgb * | msgb | ) |
Is message buffer empty?
msgb | Message buffer |
Definition at line 134 of file msgb.c.
References msgb::buf, msgb::end, msgb::head, and msgb::size.
Fill buffer with character, starting at current write position
[in] | msgb | Buffer to fill |
[in] | c | Character |
[in] | size | Number of characters to write |
Definition at line 355 of file msgb.c.
References msgb_put(), msgb_space(), and msgb::size.
Is message buffer full?
msgb | Message buffer |
Definition at line 142 of file msgb.c.
References msgb::buf, msgb::end, and msgb::size.
Move read pointer
msgb | Message buffer |
size | Number of bytes to move read pointer |
Definition at line 307 of file msgb.c.
References msgb::buf, msgb::end, msgb::size, and msgb::tail.
Referenced by msgb_read().
uint8_t* msgb_head_ptr | ( | const struct msgb * | msgb | ) |
Get pointer to head of buffer
msgb | Message buffer |
Definition at line 166 of file msgb.c.
References msgb::buf, msgb::head, and msgb::size.
Referenced by msgb_merge().
Initialize custom message buffer
msgb | Message buffer |
buf | External buffer space |
size | Size of buffer space |
Definition at line 45 of file msgb.c.
References MSGBF_NONE.
Get number of remaining bytes to read in message buffer
msgb | Message buffer |
Definition at line 150 of file msgb.c.
References msgb::buf, msgb::end, msgb::size, and msgb::tail.
Referenced by msgb_merge(), and msgb_read().
int msgb_length | ( | const struct msgb * | msgb | ) |
Get length of data in message buffer
msgb | Message buffer |
Definition at line 110 of file msgb.c.
References msgb::buf, msgb::end, msgb::head, and msgb::size.
Referenced by msgb_merge().
struct msgb* msgb_linearize | ( | struct msgb * | msgb | ) | [read] |
struct msgb* msgb_linearize_reserve | ( | struct msgb * | msgb, |
const int | reserve | ||
) | [read] |
Allocate new msgb with reserved headroom and merge content of input (chain) into new buffer
[in] | msgb | Input (chain of msg) buffer(s) |
[in] | reserve | Space to reserve in bytes |
int msgb_merge | ( | struct msgb * | msgb, |
struct msgb * | outb | ||
) |
Merge chain of input buffers into output buffer
[in] | msgb | Input (chain of) msg buffer(s) |
[in] | outb | Output msg buffer |
Definition at line 494 of file msgb.c.
References msgb_head_ptr(), msgb_left(), msgb_length(), msgb_write(), msgb::next, and msgb::size.
Move tail pointer
msgb | Message buffer |
size | Number of bytes to move tail pointer |
Definition at line 292 of file msgb.c.
References msgb::buf, msgb::end, MAX, msgb::size, and msgb::tail.
Referenced by msgb_fill(), and msgb_write().
Copy data from buffer
msgb | Message buffer |
buf | Buffer to copy into |
size | Number of bytes to copy from message buffer |
Definition at line 339 of file msgb.c.
References msgb_get(), msgb_left(), and msgb::size.
int msgb_reserve | ( | struct msgb * | msgb, |
const int | reserve | ||
) |
Reserve space at the beginning of the buffer
msgb | Message buffer |
reserve | Number of bytes to reserve |
Definition at line 187 of file msgb.c.
References msgb::end, msgb::head, msgb::size, and msgb::tail.
Referenced by msgb_alloc_reserve().
int msgb_reserved_space | ( | const struct msgb * | msgb | ) |
Get reserved space of message buffer (= space before head pointer)
msgb | Message buffer |
Definition at line 126 of file msgb.c.
References msgb::buf, msgb::head, and msgb::size.
int msgb_reset | ( | struct msgb * | msgb | ) |
Completely reset buffer
msgb | Message buffer |
Definition at line 279 of file msgb.c.
References msgb::buf, msgb::end, msgb::head, msgb::size, and msgb::tail.
int msgb_rewind | ( | struct msgb * | msgb | ) |
Set read and tail pointer to beginning of data
msgb | Message buffer |
Definition at line 234 of file msgb.c.
References msgb::buf, msgb::head, and msgb::tail.
int msgb_seek | ( | struct msgb * | msgb, |
const msgb_seek_t | type, | ||
const int | offset | ||
) |
Move read and tail pointer to desired location
msgb | Message buffer |
type | Type of seek (starting point and direction) |
offset | Number of bytes to seek |
Definition at line 242 of file msgb.c.
References msgb::buf, msgb::end, msgb::head, MSGB_SEEK_CUR, MSGB_SEEK_END, MSGB_SEEK_SET, and msgb::tail.
Get allocated size of message buffer
msgb | Message buffer |
Definition at line 105 of file msgb.c.
References msgb::buf, and msgb::size.
int msgb_space | ( | const struct msgb * | msgb | ) |
Get remaining free space in message buffer for writing (= free space after tail pointer)
msgb | Message buffer |
Definition at line 118 of file msgb.c.
References msgb::buf, msgb::size, and msgb::tail.
Referenced by msgb_fill(), and msgb_write().
struct msgb* msgb_split | ( | struct msgb * | msgb, |
const int | size | ||
) | [read] |
struct msgb* msgb_split_reserve | ( | struct msgb * | msgb, |
const int | size, | ||
const int | reserve | ||
) | [read] |
Split msgb into chain of <size> each with additional headroom of <reserve> bytes
[in] | msgb | Input msg buffer |
[in] | msgb | Input msg buffer |
[in] | size | Size of fragments to split input buffer into |
[in] | reserve | Size of headroom to reserve |
uint8_t* msgb_tail_ptr | ( | const struct msgb * | msgb | ) |
Get pointer to tail of buffer
msgb | Message buffer |
Definition at line 174 of file msgb.c.
References msgb::buf, msgb::size, and msgb::tail.
Get current tail pointer position
[in] | msgb | Message buffer |
Definition at line 158 of file msgb.c.
References msgb::buf, msgb::head, msgb::size, and msgb::tail.
int msgb_unreserve | ( | struct msgb * | msgb, |
const int | size | ||
) |
Make reserved space at the beginning available
msgb | Message buffer |
size | Number of bytes to unreserve, <= 0 for everything |
Definition at line 204 of file msgb.c.
References msgb::end, msgb::head, msgb::size, and msgb::tail.
int msgb_write | ( | struct msgb * | msgb, |
const void * | buf, | ||
const int | size | ||
) |
Copy data into buffer
msgb | Message buffer |
buf | Buffer to copy from |
size | Number of bytes to copy into message buffer |
Definition at line 321 of file msgb.c.
References msgb_put(), msgb_space(), and msgb::size.
Referenced by msgb_merge().