Merge branch 'master' of linux
[YACASL2.git] / include / hash.h
1 #ifndef YACASL2_HASH_INCLUDED
2 #define YACASL2_HASH_INCLUDED
3
4 #include "cmem.h"
5
6 /* ハッシュ共用体の型 */
7 typedef enum {
8     CHARS = 0,
9     INT = 1,
10 } UTYPE;
11
12 /* ハッシュ共用体 */
13 typedef struct {
14     UTYPE type;
15     union {
16         char *s;
17         int i;
18     } val;
19 } HKEY;
20
21 /* ハッシュ表のサイズを決めるため、引数の数値未満で最大の素数を返す */
22 int hashtabsize(int size);
23
24 /* ハッシュ値を取得する */
25 unsigned hash(int keyc, HKEY *keyv[], int tabsize);
26
27 #endif