]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.h
MdeModulePkg: Delete useless case code
[mirror_edk2.git] / MdeModulePkg / Universal / RegularExpressionDxe / Oniguruma / st.h
CommitLineData
14b0e578
CS
1/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */\r
2\r
3/* @(#) st.h 5.1 89/12/14 */\r
4\r
5#ifndef ST_INCLUDED\r
6\r
7#define ST_INCLUDED\r
8\r
9#ifdef _WIN32\r
10# include <windows.h>\r
11typedef ULONG_PTR st_data_t;\r
12#else\r
13typedef unsigned long st_data_t;\r
14#endif\r
15#define ST_DATA_T_DEFINED\r
16\r
17typedef struct st_table st_table;\r
18\r
19struct st_hash_type {\r
20 int (*compare)();\r
21 int (*hash)();\r
22};\r
23\r
24struct st_table {\r
25 struct st_hash_type *type;\r
26 int num_bins;\r
27 int num_entries;\r
28 struct st_table_entry **bins;\r
29};\r
30\r
31#define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)\r
32\r
33enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};\r
34\r
35#ifndef _\r
36# define _(args) args\r
37#endif\r
38#ifndef ANYARGS\r
39# ifdef __cplusplus\r
40# define ANYARGS ...\r
41# else\r
42# define ANYARGS\r
43# endif\r
44#endif\r
45\r
46st_table *st_init_table _((struct st_hash_type *));\r
47st_table *st_init_table_with_size _((struct st_hash_type *, int));\r
48st_table *st_init_numtable _((void));\r
49st_table *st_init_numtable_with_size _((int));\r
50st_table *st_init_strtable _((void));\r
51st_table *st_init_strtable_with_size _((int));\r
52int st_delete _((st_table *, st_data_t *, st_data_t *));\r
53int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));\r
54int st_insert _((st_table *, st_data_t, st_data_t));\r
55int st_lookup _((st_table *, st_data_t, st_data_t *));\r
56int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));\r
57void st_add_direct _((st_table *, st_data_t, st_data_t));\r
58void st_free_table _((st_table *));\r
59void st_cleanup_safe _((st_table *, st_data_t));\r
60st_table *st_copy _((st_table *));\r
61\r
62#define ST_NUMCMP ((int (*)()) 0)\r
63#define ST_NUMHASH ((int (*)()) -2)\r
64\r
65#define st_numcmp ST_NUMCMP\r
66#define st_numhash ST_NUMHASH\r
67\r
68#endif /* ST_INCLUDED */\r