用于存储数据包(结构)的通用循环缓冲区 - C编程

时间:2015-02-13 10:50:02

标签: c data-structures buffer

我正在尝试实现用于存储数据包的缓冲区(我从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;

0 个答案:

没有答案
相关问题