49 tclhandleEntryAlignment =
50 sizeof(
void *) >
sizeof(uint64_t)
51 ? (
sizeof(double) >
sizeof(
void *) ?
sizeof(double) : sizeof(void *))
52 : (sizeof(double) > sizeof(uint64_t) ? sizeof(double)
67 uint64_t numEntries) {
68 uint64_t entIdx, lastIdx;
71 lastIdx = newIdx + numEntries - 1;
73 for (entIdx = newIdx; entIdx < lastIdx; entIdx++) {
94 uint64_t numNewEntries;
100 numNewEntries = neededIdx - tblHdrPtr->
tableSize + 1;
104 memcpy(tblHdrPtr->
bodyPtr, oldbodyPtr,
124 uint64_t *entryIdxPtr) {
133 entryPtr =
TBL_INDEX(tblHdrPtr, entryIdx);
143 *entryIdxPtr = entryIdx;
159 uint64_t initEntries) {
196 uint64_t *entryIdxPtr) {
199 if (sscanf(handle, tblHdrPtr->
handleFormat, &entryIdx) != 1)
202 *entryIdxPtr = entryIdx;
221 entryPtr =
TBL_INDEX(tblHdrPtr, entryIdx);
265 entryPtr =
TBL_INDEX(tblHdrPtr, entryIdx);
275 ((uint64_t)((uintptr_t)entryPtr - (uintptr_t)tblHdrPtr->
bodyPtr)) /
static int agxbprint(agxbuf *xb, const char *fmt,...)
Printf-style output to an agxbuf.
static char * agxbdisown(agxbuf *xb)
require define api prefix
void * tclhandleXlateIndex(tblHeader_pt headerPtr, uint64_t entryIdx)
entryHeader_pt tclhandleAlloc(tblHeader_pt headerPtr, char **handle, uint64_t *entryIdxPtr)
void * tclhandleFreeIndex(tblHeader_pt headerPtr, uint64_t entryIdx)
void * tclhandleXlate(tblHeader_pt tblHdrPtr, char *handle)
void * tclhandleFree(tblHeader_pt tblHdrPtr, char *handle)
int tclhandleIndex(tblHeader_pt tblHdrPtr, char *handle, uint64_t *entryIdxPtr)
static void tclhandleExpandTable(tblHeader_pt tblHdrPtr, uint64_t neededIdx)
tblHeader_pt tclhandleInit(char *prefix, uint64_t entrySize, uint64_t initEntries)
static void tclhandleLinkInNewEntries(tblHeader_pt tblHdrPtr, uint64_t newIdx, uint64_t numEntries)
#define ROUND_ENTRY_SIZE(size)
#define USER_AREA(entryPtr)
#define TBL_INDEX(hdrPtr, idx)
#define ENTRY_HEADER_SIZE
#define HEADER_AREA(entryPtr)