Annotation of embedaddon/php/ext/mbstring/oniguruma/st.h, revision 1.1.1.1
1.1 misho 1: /* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */
2:
3: /* @(#) st.h 5.1 89/12/14 */
4:
5: #ifndef ST_INCLUDED
6:
7: #define ST_INCLUDED
8:
9: typedef unsigned long st_data_t;
10: #define ST_DATA_T_DEFINED
11:
12: typedef struct st_table st_table;
13:
14: struct st_hash_type {
15: int (*compare)();
16: int (*hash)();
17: };
18:
19: struct st_table {
20: struct st_hash_type *type;
21: int num_bins;
22: int num_entries;
23: struct st_table_entry **bins;
24: };
25:
26: #define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)
27:
28: enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
29:
30: #ifndef _
31: # define _(args) args
32: #endif
33: #ifndef ANYARGS
34: # ifdef __cplusplus
35: # define ANYARGS ...
36: # else
37: # define ANYARGS
38: # endif
39: #endif
40:
41: st_table *st_init_table _((struct st_hash_type *));
42: st_table *st_init_table_with_size _((struct st_hash_type *, int));
43: st_table *st_init_numtable _((void));
44: st_table *st_init_numtable_with_size _((int));
45: st_table *st_init_strtable _((void));
46: st_table *st_init_strtable_with_size _((int));
47: int st_delete _((st_table *, st_data_t *, st_data_t *));
48: int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
49: int st_insert _((st_table *, st_data_t, st_data_t));
50: int st_lookup _((st_table *, st_data_t, st_data_t *));
51: int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
52: void st_add_direct _((st_table *, st_data_t, st_data_t));
53: void st_free_table _((st_table *));
54: void st_cleanup_safe _((st_table *, st_data_t));
55: st_table *st_copy _((st_table *));
56:
57: #define ST_NUMCMP ((int (*)()) 0)
58: #define ST_NUMHASH ((int (*)()) -2)
59:
60: #define st_numcmp ST_NUMCMP
61: #define st_numhash ST_NUMHASH
62:
63: #endif /* ST_INCLUDED */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>