Lines Matching refs:key

52 	st_data_t key;
79 static inline st_ptr_t st_strhash(void *key)
81 return strhash((const char *)key);
106 #define do_hash(key,table) (unsigned int)(*(table)->type->hash)(((void*)key))
107 #define do_hash_bin(key,table) (do_hash(key, table)%(table)->num_bins)
257 #define PTR_NOT_EQUAL(table, ptr, hash_val, key) \
258 ((ptr) != 0 && (ptr->hash != (hash_val) || !EQUAL((table), (key), (ptr)->key)))
269 if (PTR_NOT_EQUAL(table, ptr, hash_val, key)) \
272 while (PTR_NOT_EQUAL(table, ptr->next, hash_val, key)) {\
279 int st_lookup(table, key, value)
281 register st_data_t key;
287 hash_val = do_hash(key, table);
299 #define ADD_DIRECT(table, key, value, hash_val, bin_pos)\
311 entry->key = key;\
318 int st_insert(table, key, value)
320 register st_data_t key;
326 hash_val = do_hash(key, table);
330 ADD_DIRECT(table, key, value, hash_val, bin_pos);
338 void st_add_direct(table, key, value)
340 st_data_t key;
345 hash_val = do_hash(key, table);
347 ADD_DIRECT(table, key, value, hash_val, bin_pos);
419 int st_delete(table, key, value)
421 register st_data_t *key;
428 hash_val = do_hash_bin(*key, table);
437 if (EQUAL(table, *key, ptr->key)) {
442 *key = ptr->key;
448 if (EQUAL(table, ptr->next->key, *key)) {
454 *key = tmp->key;
463 int st_delete_safe(table, key, value, never)
465 register st_data_t *key;
472 hash_val = do_hash_bin(*key, table);
482 if ((ptr->key != never) && EQUAL(table, ptr->key, *key)) {
484 *key = ptr->key;
487 ptr->key = ptr->record = never;
495 static int delete_never(st_data_t key, st_data_t value, st_data_t never)
514 int (*func) (st_data_t key, st_data_t val, st_data_t arg);
524 retval = (*func) (ptr->key, ptr->record, arg);