Lines Matching refs:table
80 struct _mesa_HashTable *table = CALLOC_STRUCT(_mesa_HashTable); in _mesa_NewHashTable() local
81 if (table) { in _mesa_NewHashTable()
82 _glthread_INIT_MUTEX(table->Mutex); in _mesa_NewHashTable()
83 _glthread_INIT_MUTEX(table->WalkMutex); in _mesa_NewHashTable()
85 return table; in _mesa_NewHashTable()
99 _mesa_DeleteHashTable(struct _mesa_HashTable *table) in _mesa_DeleteHashTable() argument
102 assert(table); in _mesa_DeleteHashTable()
104 struct HashEntry *entry = table->Table[pos]; in _mesa_DeleteHashTable()
115 _glthread_DESTROY_MUTEX(table->Mutex); in _mesa_DeleteHashTable()
116 _glthread_DESTROY_MUTEX(table->WalkMutex); in _mesa_DeleteHashTable()
117 free(table); in _mesa_DeleteHashTable()
127 _mesa_HashLookup_unlocked(struct _mesa_HashTable *table, GLuint key) in _mesa_HashLookup_unlocked() argument
132 assert(table); in _mesa_HashLookup_unlocked()
136 entry = table->Table[pos]; in _mesa_HashLookup_unlocked()
156 _mesa_HashLookup(struct _mesa_HashTable *table, GLuint key) in _mesa_HashLookup() argument
159 assert(table); in _mesa_HashLookup()
160 _glthread_LOCK_MUTEX(table->Mutex); in _mesa_HashLookup()
161 res = _mesa_HashLookup_unlocked(table, key); in _mesa_HashLookup()
162 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashLookup()
176 _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data) in _mesa_HashInsert() argument
182 assert(table); in _mesa_HashInsert()
185 _glthread_LOCK_MUTEX(table->Mutex); in _mesa_HashInsert()
187 if (key > table->MaxKey) in _mesa_HashInsert()
188 table->MaxKey = key; in _mesa_HashInsert()
193 for (entry = table->Table[pos]; entry; entry = entry->Next) { in _mesa_HashInsert()
202 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashInsert()
212 entry->Next = table->Table[pos]; in _mesa_HashInsert()
213 table->Table[pos] = entry; in _mesa_HashInsert()
216 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashInsert()
231 _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key) in _mesa_HashRemove() argument
236 assert(table); in _mesa_HashRemove()
240 if (table->InDeleteAll) { in _mesa_HashRemove()
246 _glthread_LOCK_MUTEX(table->Mutex); in _mesa_HashRemove()
250 entry = table->Table[pos]; in _mesa_HashRemove()
258 table->Table[pos] = entry->Next; in _mesa_HashRemove()
261 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashRemove()
268 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashRemove()
283 _mesa_HashDeleteAll(struct _mesa_HashTable *table, in _mesa_HashDeleteAll() argument
288 ASSERT(table); in _mesa_HashDeleteAll()
290 _glthread_LOCK_MUTEX(table->Mutex); in _mesa_HashDeleteAll()
291 table->InDeleteAll = GL_TRUE; in _mesa_HashDeleteAll()
294 for (entry = table->Table[pos]; entry; entry = next) { in _mesa_HashDeleteAll()
299 table->Table[pos] = NULL; in _mesa_HashDeleteAll()
301 table->InDeleteAll = GL_FALSE; in _mesa_HashDeleteAll()
302 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashDeleteAll()
319 _mesa_HashWalk(const struct _mesa_HashTable *table, in _mesa_HashWalk() argument
324 struct _mesa_HashTable *table2 = (struct _mesa_HashTable *) table; in _mesa_HashWalk()
326 ASSERT(table); in _mesa_HashWalk()
331 for (entry = table->Table[pos]; entry; entry = next) { in _mesa_HashWalk()
350 _mesa_HashFirstEntry(struct _mesa_HashTable *table) in _mesa_HashFirstEntry() argument
353 assert(table); in _mesa_HashFirstEntry()
354 _glthread_LOCK_MUTEX(table->Mutex); in _mesa_HashFirstEntry()
356 if (table->Table[pos]) { in _mesa_HashFirstEntry()
357 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashFirstEntry()
358 return table->Table[pos]->Key; in _mesa_HashFirstEntry()
361 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashFirstEntry()
373 _mesa_HashNextEntry(const struct _mesa_HashTable *table, GLuint key) in _mesa_HashNextEntry() argument
378 assert(table); in _mesa_HashNextEntry()
383 for (entry = table->Table[pos]; entry ; entry = entry->Next) { in _mesa_HashNextEntry()
402 if (table->Table[pos]) { in _mesa_HashNextEntry()
403 return table->Table[pos]->Key; in _mesa_HashNextEntry()
418 _mesa_HashPrint(const struct _mesa_HashTable *table) in _mesa_HashPrint() argument
421 assert(table); in _mesa_HashPrint()
423 const struct HashEntry *entry = table->Table[pos]; in _mesa_HashPrint()
447 _mesa_HashFindFreeKeyBlock(struct _mesa_HashTable *table, GLuint numKeys) in _mesa_HashFindFreeKeyBlock() argument
450 _glthread_LOCK_MUTEX(table->Mutex); in _mesa_HashFindFreeKeyBlock()
451 if (maxKey - numKeys > table->MaxKey) { in _mesa_HashFindFreeKeyBlock()
453 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashFindFreeKeyBlock()
454 return table->MaxKey + 1; in _mesa_HashFindFreeKeyBlock()
462 if (_mesa_HashLookup_unlocked(table, key)) { in _mesa_HashFindFreeKeyBlock()
471 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashFindFreeKeyBlock()
477 _glthread_UNLOCK_MUTEX(table->Mutex); in _mesa_HashFindFreeKeyBlock()
487 _mesa_HashNumEntries(const struct _mesa_HashTable *table) in _mesa_HashNumEntries() argument
493 for (entry = table->Table[pos]; entry; entry = entry->Next) { in _mesa_HashNumEntries()