/* Public domain. */ /* Adapted from DJB's original cdb-0.75 package */ #ifndef CDB_MAKE_H #define CDB_MAKE_H #include #include "uint32.h" #define CDB_HPLIST 1000 struct cdb_hp { uint32 h; uint32 p; } ; struct cdb_hplist { struct cdb_hp hp[CDB_HPLIST]; struct cdb_hplist *next; int num; } ; struct cdb_make { /* char bspace[8192]; */ char final[2048]; uint32 count[256]; uint32 start[256]; struct cdb_hplist *head; struct cdb_hp *split; /* includes space for hash */ struct cdb_hp *hash; uint32 numentries; /* buffer b; */ uint32 pos; /* int fd; */ FILE * fp; } ; extern int cdb_make_start(struct cdb_make *, FILE *); extern int cdb_make_addbegin(struct cdb_make *,unsigned int,unsigned int); extern int cdb_make_addend(struct cdb_make *,unsigned int,unsigned int,uint32); extern int cdb_make_add(struct cdb_make *,char *,unsigned int,char *,unsigned int); extern int cdb_make_finish(struct cdb_make *); #endif