![]() |
PDK API Guide for J721E
|
Implements a simple buffer pool.
Go to the source code of this file.
Data Structures | |
| struct | BufPool_Buf |
| Fixed size data buffer. More... | |
| struct | BufPool_Pool |
| Fixed size buffer pool. More... | |
Macros | |
| #define | BUFPOOL_MEM_LEN (BUFPOOL_MAX_POOLS * sizeof(BufPool_Pool)) |
| #define | ETH_MAX_PAYLOAD (1514) |
| #define | VLAN_TAG_SIZE (4U) |
| #define | ETH_FRAME_SIZE (ETH_MAX_PAYLOAD + VLAN_TAG_SIZE) |
| #define | BUFPOOL_MCU2_0_R5 (0) |
| #define | BUFPOOL_MCU2_1 (1) |
| #define | BUFPOOL_A72 (2) |
| #define | BUFPOOL_MCU2_0_A72 (3) |
| #define | BUFPOOL_MAX_POOLS (4) |
| #define | BUFPOOL_BUF_MAX (1280U) |
| #define | BUFPOOL_OK (0) |
| #define | BUFPOOL_ERROR (-1) |
| #define | BUF_OBJ_SIZE_IN_BYTES (sizeof(BufPool_Buf)) |
Typedefs | |
| typedef struct BufPool_Pool_s * | BufPool_Handle |
| BufPool handle. More... | |
Functions | |
| int32_t | BufPool_init (BufPool_Handle hBufPool, uint32_t poolId, uint32_t maxSize) |
| Initializes a buffer pool. More... | |
| BufPool_Buf * | BufPool_getBuf (BufPool_Handle hBufPool) |
| Returns a pointer to a free buffer. More... | |
| int32_t | BufPool_freeBuf (BufPool_Buf *hBuf) |
| Decrements the ref count of a buffer object. More... | |
Variables | |
| BufPool_Handle | BufPoolTable_Handle |
| #define BUFPOOL_MEM_LEN (BUFPOOL_MAX_POOLS * sizeof(BufPool_Pool)) |
Total memory used by all shared buffer pools combined
| #define ETH_MAX_PAYLOAD (1514) |
Maximum Ethernet Payload Size.
| #define VLAN_TAG_SIZE (4U) |
Size of the VLAN tag in bytes
| #define ETH_FRAME_SIZE (ETH_MAX_PAYLOAD + VLAN_TAG_SIZE) |
Total size of the Ethernet frame in bytes
| #define BUFPOOL_MCU2_0_R5 (0) |
MCU2_0 buffer pool for MCU2_0->MCU2_1 interface
| #define BUFPOOL_MCU2_1 (1) |
MCU2_1 buffer pool
| #define BUFPOOL_A72 (2) |
A72 buffer pool
| #define BUFPOOL_MCU2_0_A72 (3) |
MCU2_0 buffer pool for MCU2_0->A72 interface
| #define BUFPOOL_MAX_POOLS (4) |
Total number of buffer pools
| #define BUFPOOL_BUF_MAX (1280U) |
Maximum no. of buffers in each buffer pool
| #define BUFPOOL_OK (0) |
Buffer pool API return code: Success
| #define BUFPOOL_ERROR (-1) |
Buffer pool API return code: Failure
| #define BUF_OBJ_SIZE_IN_BYTES (sizeof(BufPool_Buf)) |
Size of buffer object
| typedef struct BufPool_Pool_s* BufPool_Handle |
BufPool handle.
BufPool handle provided to the user
| int32_t BufPool_init | ( | BufPool_Handle | hBufPool, |
| uint32_t | poolId, | ||
| uint32_t | maxSize | ||
| ) |
Initializes a buffer pool.
This function creates a buffer pool in the memory region pointed to by the BufPool_Handle
| hBufPool | Pointer to pre-allocated memory for this buffer pool |
| poolId | Buffer Pool ID |
| maxSize | Total no. of buffers in this buffer pool |
| BUFPOOL_OK |
| BufPool_Buf* BufPool_getBuf | ( | BufPool_Handle | hBufPool | ) |
Returns a pointer to a free buffer.
This function alloctes a free buffer from the given buffer pool and returns a pointer to it.
| hBufPool | Handle to the buffer pool from which to allocate a buffer |
| Pointer | to a BufPool_Buf object if the get operation was successfull |
| NULL | in case of failure |
| int32_t BufPool_freeBuf | ( | BufPool_Buf * | hBuf | ) |
Decrements the ref count of a buffer object.
This function decrements the ref count of an allocated buffer object. If the ref count reaches zero, the buffer is released to the buffer pool.
| hBuf | Handle to a buffer object |
| BUFPOOL_OK |
| BufPool_Handle BufPoolTable_Handle |