Annotation of embedaddon/iftop/hash.h, revision 1.1.1.1
1.1 misho 1: /*
2: * addr_hash.h:
3: *
4: */
5:
6: #ifndef __HASH_H_ /* include guard */
7: #define __HASH_H_
8:
9: /* implementation independent declarations */
10: typedef enum {
11: HASH_STATUS_OK,
12: HASH_STATUS_MEM_EXHAUSTED,
13: HASH_STATUS_KEY_NOT_FOUND
14: } hash_status_enum;
15:
16: typedef struct node_tag {
17: struct node_tag *next; /* next node */
18: void* key; /* key */
19: void* rec; /* user data */
20: } hash_node_type;
21:
22: typedef struct {
23: int (*compare) (void*, void*);
24: int (*hash) (void*);
25: void* (*copy_key) (void*);
26: void (*delete_key) (void*);
27: hash_node_type** table;
28: int size;
29: } hash_type;
30:
31:
32: hash_status_enum hash_initialise(hash_type*);
33: hash_status_enum hash_destroy(hash_type*);
34: hash_status_enum hash_insert(hash_type*, void* key, void *rec);
35: hash_status_enum hash_delete(hash_type* hash_table, void* key);
36: hash_status_enum hash_find(hash_type* hash_table, void* key, void** rec);
37: hash_status_enum hash_next_item(hash_type* hash_table, hash_node_type** ppnode);
38: void hash_delete_all(hash_type* hash_table);
39:
40: #endif /* __HASH_H_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>