23 #define epicsExportSharedSymbols 42 #define DEFAULT_SIZE 512 43 #define MAX_SIZE 65536 48 if (size & (size - 1)) {
49 printf(
"dbPvdTableSize: %d is not a power of 2\n", size);
67 if (pdbbase->
ppvd)
return;
96 if (strncmp(name, recordname, lenName) == 0 &&
97 strlen(recordname) == lenName)
116 if (pbucket ==
NULL) {
148 if (pbucket ==
NULL)
return;
171 if (ppvd ==
NULL)
return;
174 for (h = 0; h < ppvd->
size; h++) {
178 if (pbucket ==
NULL)
continue;
195 unsigned int empty = 0;
200 fprintf(
stderr,
"pdbbase not specified\n");
203 ppvd = pdbbase->
ppvd;
204 if (ppvd ==
NULL)
return;
206 printf(
"Process Variable Directory has %u buckets", ppvd->
size);
208 for (h = 0; h < ppvd->
size; h++) {
213 if (pbucket ==
NULL) {
220 while (ppvdNode && verbose) {
228 printf(
"\n%u buckets empty.\n", empty);
unsigned int epicsStrHash(const char *str, unsigned int seed)
epics::pvData::BitSetPtr empty
void dbPvdDump(dbBase *pdbbase, int verbose)
#define ellCount(PLIST)
Report the number of nodes in a list.
PVDENTRY * dbPvdAdd(dbBase *pdbbase, dbRecordType *precordType, dbRecordNode *precnode)
void epicsStdCall epicsMutexDestroy(epicsMutexId pmutexNode)
Destroy an epicsMutex semaphore.
void dbPvdFreeMem(dbBase *pdbbase)
void dbPvdDelete(dbBase *pdbbase, dbRecordNode *precnode)
void epicsStdCall epicsMutexUnlock(epicsMutexId pmutexNode)
Release the semaphore.
Miscellaneous macro definitions.
A doubly-linked list library.
void ellAdd(ELLLIST *pList, ELLNODE *pNode)
Adds a node to the end of a list.
#define ellNext(PNODE)
Find the next node in list.
unsigned int dbPvdHashTableSize
APIs for the epicsMutex mutual exclusion semaphore.
PVDENTRY * dbPvdFind(dbBase *pdbbase, const char *name, size_t lenName)
#define dbCalloc(nobj, size)
unsigned int epicsMemHash(const char *str, size_t length, unsigned int seed)
#define ellInit(PLIST)
Initialize a list type.
#define epicsMutexCreate()
Create an epicsMutex semaphore for use from C code.
dbRecordType * precordType
void dbPvdInitPvt(dbBase *pdbbase)
#define epicsMutexMustLock(ID)
Claim a semaphore (see epicsMutexLock()).
void ellDelete(ELLLIST *pList, ELLNODE *pNode)
Deletes a node from a list.
int dbPvdTableSize(int size)
#define ellFirst(PLIST)
Find the first node in list.