22#define ROUND_ENTRY_SIZE(size) \
23 ((((size) + tclhandleEntryAlignment - 1) / tclhandleEntryAlignment) * \
24 tclhandleEntryAlignment)
26#define NULL_IDX UINT64_MAX
27#define ALLOCATED_IDX (UINT64_MAX - 1)
56#define ENTRY_HEADER_SIZE (ROUND_ENTRY_SIZE(sizeof(entryHeader_t)))
61#define TBL_INDEX(hdrPtr, idx) \
62 ((entryHeader_pt)(hdrPtr->bodyPtr + (hdrPtr->entrySize * idx)))
68#define USER_AREA(entryPtr) (void *)(((ubyte_pt)entryPtr) + ENTRY_HEADER_SIZE);
69#define HEADER_AREA(entryPtr) \
70 (entryHeader_pt)(((ubyte_pt)entryPtr) - ENTRY_HEADER_SIZE);
75 uint64_t initEntries);
79 uint64_t *entryIdxPtr);
require define api prefix
void * tclhandleXlateIndex(tblHeader_pt headerPtr, uint64_t entryIdx)
tblHeader_t * tblHeader_pt
void * tclhandleFreeIndex(tblHeader_pt headerPtr, uint64_t entryIdx)
void * tclhandleXlate(tblHeader_pt headerPtr, char *handle)
entryHeader_pt tclhandleAlloc(tblHeader_pt tblHdrPtr, char **handle, uint64_t *entryIdxPtr)
void * tclhandleFree(tblHeader_pt headerPtr, char *handle)
int tclhandleIndex(tblHeader_pt tblHdrPtr, char *handle, uint64_t *entryIdxPtr)
entryHeader_t * entryHeader_pt
tblHeader_pt tclhandleInit(char *prefix, uint64_t entrySize, uint64_t initEntries)