#ifndef __MTK_ESPOOL_KERNEL__
#define __MTK_ESPOOL_KERNEL__

#include "mtk_espool.h"
/*
 * API in this header is for kernel space only.
*/

// ES Buffer Manager functions
// IOC_ESPOOL_CREATE
extern int ESPool_Create(ESPool_CreateParam_t *pstCreateParam);

// IOC_ESPOOL_QUERY_POOL_INFO
extern int ESPool_QueryPoolInfo(ESPool_QueryPoolInfoParam_t *pstData);

// IOC_ESPOOL_GET_BUF
extern int ESPool_GetBuf(ESPool_GetBufParam_t *pstGetBufParam);

// IOC_ESPOOL_GET_FREE_SIZE
extern int ESPool_GetFreeSize(ESPool_GetFreeSizeParam_t *pstFreeSize);

// IOC_ESPOOL_FREE_BUF
extern int ESPool_FreeBuf(ESPool_FreeBufParam_t *pstESBuffer);

// IOC_ESPOOL_PUSH_ESQ
extern int ESPool_PushESQ(ESPool_ESInfo_t *pstData);

// IOC_ESPOOL_POP_ESQ
extern int ESPool_PopESQ(ESPool_ESInfo_t *pstData);

// IOC_ESPOOL_DESTROY
extern int ESPool_Destroy(ESPool_DestroyParam_t *pstData);

// IOC_ESPOOL_RESET
extern int ESPool_Reset(uint64_t u64PoolId);
#endif
