|
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().