34 if (fstat(fd,&st) == 0)
35 if (st.st_size <= 0xffffffff) {
36 x = mmap(0,st.st_size,PROT_READ,MAP_SHARED,fd,0);
47 if ((pos > c->
size) || (c->
size - pos < len))
goto FORMAT;
55 r = read(c->
fd,buf,len);
57 if (r == -1)
return -1;
58 if (r == 0)
goto FORMAT;
78 if (
cdb_read(c,buf,n,pos) == -1)
return -1;
95 if (
cdb_read(c,buf,8,(u << 3) & 2047) == -1)
return -1;
115 if (
cdb_read(c,buf,8,pos) == -1)
return -1;
118 switch(
match(c,key,len,pos + 8)) {
int byte_diff(char *, unsigned int, char *)
void uint32_unpack(char s[4], uint32 *u)
void c(char *home, char *subdir, char *file, int uid, int gid, int mode)
void byte_copy(char *, unsigned int, char *)
int cdb_read(struct cdb *c, char *buf, unsigned int len, uint32 pos)
int cdb_find(struct cdb *c, char *key, unsigned int len)
void cdb_free(struct cdb *c)
void cdb_init(struct cdb *c, int fd)
int cdb_findnext(struct cdb *c, char *key, unsigned int len)
uint32 cdb_hash(char *, unsigned int)
void cdb_findstart(struct cdb *c)