1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)ndbm.h 5.1.1 (2.11BSD GTE) 12/31/93
7: */
8:
9: /*
10: * Hashed key data base library.
11: */
12: #define PBLKSIZ 1024
13: #ifdef pdp11
14: #define DBLKSIZ 512
15: #else
16: #define DBLKSIZ 4096
17: #endif
18:
19: typedef struct {
20: int dbm_dirf; /* open directory file */
21: int dbm_pagf; /* open page file */
22: int dbm_flags; /* flags, see below */
23: long dbm_maxbno; /* last ``bit'' in dir file */
24: long dbm_bitno; /* current bit number */
25: long dbm_hmask; /* hash mask */
26: long dbm_blkptr; /* current block for dbm_nextkey */
27: int dbm_keyptr; /* current key for dbm_nextkey */
28: long dbm_blkno; /* current page to read/write */
29: long dbm_pagbno; /* current page in pagbuf */
30: char dbm_pagbuf[PBLKSIZ]; /* page file block buffer */
31: long dbm_dirbno; /* current block in dirbuf */
32: char dbm_dirbuf[DBLKSIZ]; /* directory file block buffer */
33: } DBM;
34:
35: #define _DBM_RDONLY 0x1 /* data base open read-only */
36: #define _DBM_IOERR 0x2 /* data base I/O error */
37:
38: #define dbm_rdonly(db) ((db)->dbm_flags & _DBM_RDONLY)
39:
40: #define dbm_error(db) ((db)->dbm_flags & _DBM_IOERR)
41: /* use this one at your own risk! */
42: #define dbm_clearerr(db) ((db)->dbm_flags &= ~_DBM_IOERR)
43:
44: /* for flock(2) and fstat(2) */
45: #define dbm_dirfno(db) ((db)->dbm_dirf)
46: #define dbm_pagfno(db) ((db)->dbm_pagf)
47:
48: typedef struct {
49: char *dptr;
50: int dsize;
51: } datum;
52:
53: /*
54: * flags to dbm_store()
55: */
56: #define DBM_INSERT 0
57: #define DBM_REPLACE 1
58:
59: DBM *dbm_open();
60: void dbm_close();
61: datum dbm_fetch();
62: datum dbm_firstkey();
63: datum dbm_nextkey();
64: long dbm_forder();
65: int dbm_delete();
66: int dbm_store();
Defined macros
PBLKSIZ
defined in line
12; used 35 times
- in line 30
- in /usr/src/lib/libc/gen/ndbm.c line
130-131(3),
146,
167-168(3),
175-180(2),
202-208(6),
235-241(5),
278-280(4),
339,
351,
361,
368,
455,
468,
487,
494,
512,
518
Usage of this include