Coda Distributed File System
rwcdb.h
Go to the documentation of this file.
1/* BLURB lgpl
2
3 Coda File System
4 Release 6
5
6 Copyright (c) 2003 Carnegie Mellon University
7 Additional copyrights listed below
8
9This code is distributed "AS IS" without warranty of any kind under
10the terms of the GNU Library General Public Licence Version 2, as
11shown in the file LICENSE. The technical and financial contributors to
12Coda are listed in the file CREDITS.
13
14 Additional copyrights
15*/
16
17#ifndef _RWCDB_H_
18#define _RWCDB_H_
19
20#include <sys/types.h>
21#include "rwcdb_file.h"
22#include "dllist.h"
23
24struct rwcdb {
25 char *file;
26 struct db_file rf, wf;
27 unsigned readonly : 1;
30 char *tmpbuf;
35 struct dllist_head added[256];
36};
37
38int rwcdb_init(struct rwcdb *c, const char *file, const int mode);
39int rwcdb_free(struct rwcdb *c);
40int rwcdb_find(struct rwcdb *c, const char *k, const uint32_t klen);
41#define rwcdb_datalen(c) ((c)->dlen)
42#define rwcdb_datapos(c) ((c)->dpos)
43int rwcdb_read(struct rwcdb *c, char *d, const uint32_t dlen,
44 const uint32_t dpos);
45
46int rwcdb_next(struct rwcdb *c, int init);
47#define rwcdb_keylen(c) ((c)->klen)
48int rwcdb_readkey(struct rwcdb *c, char *k, const uint32_t klen,
49 const uint32_t dpos);
50
51int rwcdb_insert(struct rwcdb *c, const char *k, const uint32_t klen,
52 const char *d, const uint32_t dlen);
53int rwcdb_delete(struct rwcdb *c, const char *k, const uint32_t klen);
54
55int rwcdb_sync(struct rwcdb *c);
56
57#endif /* _RWCDB_H_ */
unsigned int uint32_t
Definition: coda.h:105
FILE * file
Definition: dirtest.c:723
@ init
Definition: rvm_private.h:470
int rwcdb_read(struct rwcdb *c, char *d, const uint32_t dlen, const uint32_t dpos)
Definition: rwcdb.c:436
int rwcdb_sync(struct rwcdb *c)
Definition: rwcdb.c:588
int rwcdb_next(struct rwcdb *c, int init)
Definition: rwcdb.c:386
int rwcdb_init(struct rwcdb *c, const char *file, const int mode)
Definition: rwcdb.c:207
int rwcdb_insert(struct rwcdb *c, const char *k, const uint32_t klen, const char *d, const uint32_t dlen)
Definition: rwcdb.c:339
int rwcdb_readkey(struct rwcdb *c, char *k, const uint32_t klen, const uint32_t dpos)
Definition: rwcdb.c:458
int rwcdb_free(struct rwcdb *c)
Definition: rwcdb.c:247
int rwcdb_find(struct rwcdb *c, const char *k, const uint32_t klen)
Definition: rwcdb.c:264
int rwcdb_delete(struct rwcdb *c, const char *k, const uint32_t klen)
Definition: rwcdb.c:379
Definition: rwcdb_file.h:23
Definition: dllist.h:30
Definition: rwcdb.h:24
uint32_t hlens[256]
Definition: rwcdb.h:33
struct db_file rf wf
Definition: rwcdb.h:26
uint32_t dlen
Definition: rwcdb.h:28
uint32_t dpos
Definition: rwcdb.h:28
uint32_t tmplen
Definition: rwcdb.h:31
struct dllist_head added[256]
Definition: rwcdb.h:35
unsigned readonly
Definition: rwcdb.h:27
uint32_t index
Definition: rwcdb.h:32
uint32_t klen
Definition: rwcdb.h:28
struct dllist_head removed
Definition: rwcdb.h:34
char * tmpbuf
Definition: rwcdb.h:30
char * file
Definition: rwcdb.h:25
uint32_t hash
Definition: rwcdb.h:28
struct wrentry * pending
Definition: rwcdb.h:29
Definition: rwcdb.c:75
char d
Definition: tdb.c:54
char c
Definition: tdb.c:54