我正在尝试实现用于存储数据包的缓冲区(我从MAC层获取的数据包)。基本上我正在实现发送器,所以我需要存储一些数据包,然后在发送器未被占用时发送它们。我需要这方面的建议。我应该制作2个结构,我可以调用buffer_pool(所有缓冲池),另一个buffer_t(代表一个缓冲区 - 数据包+一些附加数据)。我想得到的是能够使用FIFO推送和弹出数据包。或者我可以使用下面的结构来完成它。
typedef struct _buffer_t
{
struct _buffer_t *next; ///< Next pointer
volatile bool alloc; ///< Alloc flag
uint8_t *dptr; ///< Data pointer - points to current position in buffer array
uint8_t len; ///< Len of the data
uint8_t index; ///< Index used for buffer tracking and debugging
uint8_t data[aMaxPHYPacketSize+1]; ///< Main data storage
} buffer_t;