comparison cdb.h @ 12:0e21568dec72

allocate a Cdb struct rather than using a single static one, note that cdb_free does _not_ call alloc_free, just releases the map, in fact alloc_free is not called anywhere!
author Henry S. Thompson <ht@inf.ed.ac.uk>
date Mon, 03 Feb 2025 17:31:23 +0000
parents 41b9b6a160d1
children 70f4df5a7283
comparison
equal deleted inserted replaced
11:978eaa166609 12:0e21568dec72
24 24
25 typedef struct cdb Cdb; 25 typedef struct cdb Cdb;
26 26
27 extern Cdb* cdb_new(void); 27 extern Cdb* cdb_new(void);
28 28
29 extern void cdb_free(Cdb *); 29 extern void cdb_clear(Cdb *);
30 extern void cdb_init(Cdb *,int fd); 30 extern void cdb_init(Cdb *,int fd);
31 31
32 extern int cdb_read(Cdb *,char *,unsigned int,uint32); 32 extern int cdb_read(Cdb *,char *,unsigned int,uint32);
33 33
34 extern void cdb_findstart(Cdb *); 34 extern void cdb_findstart(Cdb *);
35 extern int cdb_findnext(Cdb *,char *,unsigned int); 35 extern int cdb_findnext(Cdb *,char *,unsigned int);
36 extern int cdb_find(Cdb *,char *,unsigned int); 36 extern int cdb_find(Cdb *,char *,unsigned int);
37 37
38 extern uint32 cdb_pos(); 38 /*extern uint32 cdb_pos();
39 extern uint32 cdb_len(); 39 extern uint32 cdb_len();*/
40 #define cdb_pos(c) ((c)->dpos)
41 #define cdb_len(c) ((c)->dlen)
40 42
41 extern char *cdb_mmap(); 43 /*extern char *cdb_mmap();
42 extern uint32 cdb_msize(); 44 extern uint32 cdb_msize();*/
43 45 #define cdb_mmap(c) ((c)->map)
46 #define cdb_msize(c) ((c)->size)
44 47
45 #define cdb_datapos(c) ((c)->dpos) 48 #define cdb_datapos(c) ((c)->dpos)
46 #define cdb_datalen(c) ((c)->dlen) 49 #define cdb_datalen(c) ((c)->dlen)
47 50
48 #endif 51 #endif