Lines Matching defs:p_table

103 #define	DAPL_HASHLOOKUP(p_table, in_key, out_datum, bucket_head) \
106 &((p_table)->table)[DAPL_DOHASH(in_key, (p_table)->tbl_size)]; \
178 DAPL_HASH_TABLEP p_table,
205 DAPL_HASHLOOKUP(p_table, key, olddatum, found);
223 hashValue = DAPL_DOHASH(key, p_table->tbl_size);
224 if (NO_DATUM(p_table->table[hashValue].datum)) {
228 p_table->table[hashValue].key = key;
229 p_table->table[hashValue].datum = datum;
230 p_table->table[hashValue].next_element = 0;
231 p_table->num_entries++;
244 for (lastelement = &p_table->table[hashValue];
251 p_table->num_entries++;
264 p_table->hash_tbl_inserts++;
265 p_table->hash_tbl_total += p_table->num_entries;
266 p_table->hash_chn_total += chain_len;
267 if (p_table->num_entries > p_table->hash_tbl_max) {
268 p_table->hash_tbl_max = p_table->num_entries;
270 if (chain_len > p_table->hash_chn_max) {
271 p_table->hash_chn_max = chain_len;
355 DAPL_HASH_TABLE *p_table;
364 p_table = dapl_os_alloc(sizeof (DAPL_HASH_TABLE));
365 if (NULL == p_table) {
372 (void) dapl_os_memzero(p_table, sizeof (DAPL_HASH_TABLE));
373 p_table->tbl_size = table_size;
374 p_table->table = (DAPL_HASH_ELEM *)dapl_os_alloc(table_length);
375 if (NULL == p_table->table) {
376 dapl_os_free(p_table, sizeof (DAPL_HASH_TABLE));
382 dapl_os_lock_init(&p_table->lock);
383 p_table->locking_required = locking_required;
386 p_table->table[i].datum = NO_DATUM_VALUE;
387 p_table->table[i].key = 0;
388 p_table->table[i].next_element = 0;
391 *pp_table = p_table;
403 IN DAPL_HASH_TABLE *p_table)
405 dapl_os_assert(p_table && p_table->table);
407 dapl_os_lock_destroy(&p_table->lock);
408 dapl_os_free(p_table->table,
409 sizeof (DAPL_HASH_ELEM) * p_table->tbl_size);
410 dapl_os_free(p_table, sizeof (DAPL_HASH_TABLE));
422 IN DAPL_HASH_TABLE *p_table,
425 dapl_os_assert(p_table && p_size);
427 *p_size = p_table->num_entries;
440 IN DAPL_HASH_TABLE *p_table,
446 dapl_os_assert(p_table);
449 if (p_table->locking_required) {
450 dapl_os_lock(&p_table->lock);
453 if (!dapli_hash_add(p_table, key, data, DAT_FALSE, NULL)) {
458 if (p_table->locking_required) {
459 dapl_os_unlock(&p_table->lock);
474 IN DAPL_HASH_TABLE *p_table,
482 dapl_os_assert(p_table);
485 if (p_table->locking_required) {
486 dapl_os_lock(&p_table->lock);
487 DAPL_HASHLOOKUP(p_table, key, olddatum, found);
488 dapl_os_unlock(&p_table->lock);
490 DAPL_HASHLOOKUP(p_table, key, olddatum, found);
506 IN DAPL_HASH_TABLE *p_table,
513 dapl_os_assert(p_table);
516 if (p_table->num_entries == 0) {
522 hashValue = DAPL_DOHASH(key, p_table->tbl_size);
523 if (p_table->locking_required) {
524 dapl_os_lock(&p_table->lock);
526 if (dapl_hash_delete_element(&p_table->table[hashValue], key, p_data)) {
527 p_table->num_entries--;
530 if (p_table->locking_required) {
531 dapl_os_unlock(&p_table->lock);
542 IN DAPL_HASH_TABLE *p_table,
548 dapl_os_assert(p_table);
553 if (p_table->locking_required) {
558 if (p_table->num_entries == 0) {
563 p_table->iterator_bucket = 0;
564 while (p_table->iterator_bucket < p_table->tbl_size) {
565 curr = &p_table->table[p_table->iterator_bucket];
568 p_table->iterator_bucket++;
575 if (p_table->iterator_bucket == p_table->tbl_size) {
576 p_table->iterator = NULL;
578 p_table->iterator = curr;
584 if (p_table->iterator == NULL) {
592 p_table->iterator, p_table->iterator_bucket);
593 *p_data = p_table->iterator->datum;
594 curr = p_table->iterator;
598 p_table->iterator = curr->next_element;
599 dapl_os_assert(!NO_DATUM(p_table->iterator->datum));
601 p_table->iterator = NULL;
607 p_table->iterator_bucket++;
608 while (p_table->iterator_bucket < p_table->tbl_size) {
609 curr = &p_table->table[p_table->iterator_bucket];
611 p_table->iterator_bucket++;
613 p_table->iterator = curr;