Data Buffers
API Reference
- group bt_buf
- Data buffers. - Defines - 
BT_BUF_RESERVE
 - 
BT_BUF_SIZE(size)
- Helper to include reserved HCI data in buffer calculations. 
 - 
BT_BUF_ACL_SIZE(size)
- Helper to calculate needed buffer size for HCI ACL packets. 
 - 
BT_BUF_EVT_SIZE(size)
- Helper to calculate needed buffer size for HCI Event packets. 
 - 
BT_BUF_CMD_SIZE(size)
- Helper to calculate needed buffer size for HCI Command packets. 
 - 
BT_BUF_ISO_SIZE(size)
- Helper to calculate needed buffer size for HCI ISO packets. 
 - 
BT_BUF_ACL_RX_SIZE
- Data size needed for HCI ACL RX buffers. 
 - 
BT_BUF_EVT_RX_SIZE
- Data size needed for HCI Event RX buffers. 
 - 
BT_BUF_ISO_RX_SIZE
 - 
BT_BUF_ISO_RX_COUNT
 - 
BT_BUF_RX_SIZE
- Data size needed for HCI ACL, HCI ISO or Event RX buffers. 
 - 
BT_BUF_RX_COUNT
- Buffer count needed for HCI ACL, HCI ISO or Event RX buffers. 
 - 
BT_BUF_CMD_TX_SIZE
- Data size needed for HCI Command buffers. 
 - Enums - 
enum bt_buf_type
- Possible types of buffers passed around the Bluetooth stack. - Values: - 
enumerator BT_BUF_CMD
- HCI command. 
 - 
enumerator BT_BUF_EVT
- HCI event. 
 - 
enumerator BT_BUF_ACL_OUT
- Outgoing ACL data. 
 - 
enumerator BT_BUF_ACL_IN
- Incoming ACL data. 
 - 
enumerator BT_BUF_ISO_OUT
- Outgoing ISO data. 
 - 
enumerator BT_BUF_ISO_IN
- Incoming ISO data. 
 - 
enumerator BT_BUF_H4
- H:4 data. 
 
- 
enumerator BT_BUF_CMD
 - Functions - 
struct net_buf *bt_buf_get_rx(enum bt_buf_type type, k_timeout_t timeout)
- Allocate a buffer for incoming data. - This will set the buffer type so bt_buf_set_type() does not need to be explicitly called. - Parameters:
- type – Type of buffer. Only BT_BUF_EVT, BT_BUF_ACL_IN and BT_BUF_ISO_IN are allowed. 
- timeout – Non-negative waiting period to obtain a buffer or one of the special values K_NO_WAIT and K_FOREVER. 
 
- Returns:
- A new buffer. 
 
 - 
struct net_buf *bt_buf_get_tx(enum bt_buf_type type, k_timeout_t timeout, const void *data, size_t size)
- Allocate a buffer for outgoing data. - This will set the buffer type so bt_buf_set_type() does not need to be explicitly called. - Parameters:
- type – Type of buffer. Only BT_BUF_CMD, BT_BUF_ACL_OUT or BT_BUF_H4, when operating on H:4 mode, are allowed. 
- timeout – Non-negative waiting period to obtain a buffer or one of the special values K_NO_WAIT and K_FOREVER. 
- data – Initial data to append to buffer. 
- size – Initial data size. 
 
- Returns:
- A new buffer. 
 
 - 
struct net_buf *bt_buf_get_evt(uint8_t evt, bool discardable, k_timeout_t timeout)
- Allocate a buffer for an HCI Event. - This will set the buffer type so bt_buf_set_type() does not need to be explicitly called. - Parameters:
- evt – HCI event code 
- discardable – Whether the driver considers the event discardable. 
- timeout – Non-negative waiting period to obtain a buffer or one of the special values K_NO_WAIT and K_FOREVER. 
 
- Returns:
- A new buffer. 
 
 - 
static inline void bt_buf_set_type(struct net_buf *buf, enum bt_buf_type type)
- Set the buffer type. - Parameters:
- buf – Bluetooth buffer 
- type – The BT_* type to set the buffer to 
 
 
 - 
static inline enum bt_buf_type bt_buf_get_type(struct net_buf *buf)
- Get the buffer type. - Parameters:
- buf – Bluetooth buffer 
 
- Returns:
- The BT_* type to of the buffer 
 
 - 
struct bt_buf_data
- #include <buf.h>This is a base type for bt_buf user data. 
 
- 
BT_BUF_RESERVE