|
|
1.1 ! root 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.3 (Berkeley) 5/29/90 ! 7: */ ! 8: ! 9: /* ! 10: * Hashed key data base library. ! 11: */ ! 12: #define PBLKSIZ 1024 ! 13: #define DBLKSIZ 4096 ! 14: ! 15: typedef struct { ! 16: int dbm_dirf; /* open directory file */ ! 17: int dbm_pagf; /* open page file */ ! 18: int dbm_flags; /* flags, see below */ ! 19: long dbm_maxbno; /* last ``bit'' in dir file */ ! 20: long dbm_bitno; /* current bit number */ ! 21: long dbm_hmask; /* hash mask */ ! 22: long dbm_blkptr; /* current block for dbm_nextkey */ ! 23: int dbm_keyptr; /* current key for dbm_nextkey */ ! 24: long dbm_blkno; /* current page to read/write */ ! 25: long dbm_pagbno; /* current page in pagbuf */ ! 26: char dbm_pagbuf[PBLKSIZ]; /* page file block buffer */ ! 27: long dbm_dirbno; /* current block in dirbuf */ ! 28: char dbm_dirbuf[DBLKSIZ]; /* directory file block buffer */ ! 29: } DBM; ! 30: ! 31: #define _DBM_RDONLY 0x1 /* data base open read-only */ ! 32: #define _DBM_IOERR 0x2 /* data base I/O error */ ! 33: ! 34: #define dbm_rdonly(db) ((db)->dbm_flags & _DBM_RDONLY) ! 35: ! 36: #define dbm_error(db) ((db)->dbm_flags & _DBM_IOERR) ! 37: /* use this one at your own risk! */ ! 38: #define dbm_clearerr(db) ((db)->dbm_flags &= ~_DBM_IOERR) ! 39: ! 40: /* for flock(2) and fstat(2) */ ! 41: #define dbm_dirfno(db) ((db)->dbm_dirf) ! 42: #define dbm_pagfno(db) ((db)->dbm_pagf) ! 43: ! 44: typedef struct { ! 45: char *dptr; ! 46: int dsize; ! 47: } datum; ! 48: ! 49: /* ! 50: * flags to dbm_store() ! 51: */ ! 52: #define DBM_INSERT 0 ! 53: #define DBM_REPLACE 1 ! 54: ! 55: #if __STDC__ || c_plusplus ! 56: extern DBM *dbm_open(const char *, int, int); ! 57: extern void dbm_close(DBM *); ! 58: extern datum dbm_fetch(DBM *, datum); ! 59: extern datum dbm_firstkey(DBM *); ! 60: extern datum dbm_nextkey(DBM *); ! 61: extern long dbm_forder(DBM *, datum); ! 62: extern int dbm_delete(DBM *, datum); ! 63: extern int dbm_store(DBM *, datum, datum, int); ! 64: #else ! 65: extern DBM *dbm_open(); ! 66: extern void dbm_close(); ! 67: extern datum dbm_fetch(); ! 68: extern datum dbm_firstkey(); ! 69: extern datum dbm_nextkey(); ! 70: extern long dbm_forder(); ! 71: extern int dbm_delete(); ! 72: extern int dbm_store(); ! 73: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.