release
[hcoop/zz_old/debian/djbdns.git] / cdb_make.h
CommitLineData
dc0d77d7
CE
1/* Public domain. */
2
3#ifndef CDB_MAKE_H
4#define CDB_MAKE_H
5
6#include "buffer.h"
7#include "uint32.h"
8
9#define CDB_HPLIST 1000
10
11struct cdb_hp { uint32 h; uint32 p; } ;
12
13struct cdb_hplist {
14 struct cdb_hp hp[CDB_HPLIST];
15 struct cdb_hplist *next;
16 int num;
17} ;
18
19struct cdb_make {
20 char bspace[8192];
21 char final[2048];
22 uint32 count[256];
23 uint32 start[256];
24 struct cdb_hplist *head;
25 struct cdb_hp *split; /* includes space for hash */
26 struct cdb_hp *hash;
27 uint32 numentries;
28 buffer b;
29 uint32 pos;
30 int fd;
31} ;
32
33extern int cdb_make_start(struct cdb_make *,int);
34extern int cdb_make_addbegin(struct cdb_make *,unsigned int,unsigned int);
35extern int cdb_make_addend(struct cdb_make *,unsigned int,unsigned int,uint32);
36extern int cdb_make_add(struct cdb_make *,const char *,unsigned int,const char *,unsigned int);
37extern int cdb_make_finish(struct cdb_make *);
38
39#endif