summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ktrans/hash.h
blob: bf9daa8c6af3b0cef93210b606d8da0f4db88644 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
typedef union Hkey Hkey;
union Hkey {
	void *p;
	int v;
};

typedef struct Hmap Hmap;
struct Hmap {
	int nbs;
	int nsz;

	int len;
	int cap;
	uchar *nodes;
};

Hmap*	hmapalloc(int nbuckets, int size);
int	hmapget(Hmap *h, char *key, void *dst);
int	hmaprepl(Hmap **h, char *key, void *new, void *old, int freekeys);
int	hmapupd(Hmap **h, char *key, void *new);
int	hmapdel(Hmap *h, char *key, void *dst, int freekey);
char*	hmapkey(Hmap *h, char *key);
void	hmapreset(Hmap *h, int freekeys);