s/qmail  3.3.23
Next generation secure email transport
cdb.h
Go to the documentation of this file.
1 /* Public domain. */
2 
3 #ifndef CDB_H
4 #define CDB_H
5 
6 #include "uint32.h"
7 
8 #define CDB_HASHSTART 5381
9 extern uint32 cdb_hashadd(uint32,unsigned char);
10 extern uint32 cdb_hash(char *,unsigned int);
11 
12 struct cdb {
13  char *map; /* 0 if no map is available */
14  int fd;
15  uint32 size; /* initialized if map is nonzero */
16  uint32 loop; /* number of hash slots searched under this key */
17  uint32 khash; /* initialized if loop is nonzero */
18  uint32 kpos; /* initialized if loop is nonzero */
19  uint32 hpos; /* initialized if loop is nonzero */
20  uint32 hslots; /* initialized if loop is nonzero */
21  uint32 dpos; /* initialized if cdb_findnext() returns 1 */
22  uint32 dlen; /* initialized if cdb_findnext() returns 1 */
23 } ;
24 
25 extern void cdb_free(struct cdb *);
26 extern void cdb_init(struct cdb *,int fd);
27 
28 extern int cdb_read(struct cdb *,char *,unsigned int,uint32);
29 extern int cdb_seek(int,char *,unsigned int,uint32 *);
30 extern int cdb_bread(int,char *,int);
31 
32 extern void cdb_findstart(struct cdb *);
33 extern int cdb_findnext(struct cdb *,char *,unsigned int);
34 extern int cdb_find(struct cdb *,char *,unsigned int);
35 
36 #define cdb_datapos(c) ((c)->dpos)
37 #define cdb_datalen(c) ((c)->dlen)
38 
39 #endif
uint32 kpos
Definition: cdb.h:18
uint32 hpos
Definition: cdb.h:19
uint32 size
Definition: cdb.h:15
int fd
Definition: cdb.h:14
int cdb_find(struct cdb *, char *, unsigned int)
Definition: cdb.c:132
int cdb_findnext(struct cdb *, char *, unsigned int)
Definition: cdb.c:87
Definition: cdb.h:12
void cdb_init(struct cdb *, int fd)
Definition: cdb.c:25
uint32 hslots
Definition: cdb.h:20
int cdb_seek(int, char *, unsigned int, uint32 *)
Definition: cdb_seek.c:42
int cdb_read(struct cdb *, char *, unsigned int, uint32)
Definition: cdb.c:44
uint32 dpos
Definition: cdb.h:21
uint32 loop
Definition: cdb.h:16
int cdb_bread(int, char *, int)
Definition: cdb_seek.c:10
uint32 khash
Definition: cdb.h:17
uint32 dlen
Definition: cdb.h:22
char * map
Definition: cdb.h:13
uint32 cdb_hash(char *, unsigned int)
Definition: cdb_hash.c:11
void cdb_free(struct cdb *)
Definition: cdb.c:12
uint32 cdb_hashadd(uint32, unsigned char)
Definition: cdb_hash.c:5
void cdb_findstart(struct cdb *)
Definition: cdb.c:20