HASH_TABLE_PTR x_ipc_hashTableCreate(int32 size, HASH_FN hashFunc, EQ_HASH_FN eqFunc) #endif { int32 i; HASH_ELEM_PTR *table; HASH_TABLE_PTR hashTable; #if defined(DBMALLOC) hashTable = NEW_DB(file,line,HASH_TABLE_TYPE); table = (HASH_ELEM_PTR *)x_ipcDBMalloc(file,line, sizeof(HASH_ELEM_PTR)*(unsigned)size); #else hashTable = NEW(HASH_TABLE_TYPE); table = (HASH_ELEM_PTR *)x_ipcMalloc(sizeof(HASH_ELEM_PTR)*(unsigned)size); #endif for(i=0;i < size;i++) table[i] = NULL; hashTable->size = size; hashTable->hashFunc = hashFunc; hashTable->eqFunc = eqFunc; hashTable->table = table; return hashTable; }
static void x_ipc_listIncFreeList(void) #endif { int32 i; LIST_PTR newList; LOCK_LIST_MUTEX; for(i=1;i < LIST_INC_AMOUNT;i++) { #if defined(DBMALLOC) newList = NEW_DB(file,line,LIST_TYPE); #else newList = NEW(LIST_TYPE); #endif if (!newList) { X_IPC_MOD_ERROR("Error: Can not increment list top level free list."); UNLOCK_LIST_MUTEX; return; } newList->length = 0; newList->first = NULL; newList->last = NULL; newList->next = NULL; /* No need to lock M_MUTEX, since list.c is only place this is accessed */ newList->freeList = GET_M_GLOBAL(listFreeListGlobal); GET_M_GLOBAL(listFreeListGlobal) = newList; } UNLOCK_LIST_MUTEX; }