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

DBLKSIZ defined in line 16; used 16 times
DBM_INSERT defined in line 56; used 2 times
PBLKSIZ defined in line 12; used 35 times
_DBM_IOERR defined in line 36; used 13 times
_DBM_RDONLY defined in line 35; used 2 times
dbm_clearerr defined in line 42; never used
dbm_dirfno defined in line 45; used 2 times
dbm_error defined in line 40; used 4 times
dbm_pagfno defined in line 46; never used
dbm_rdonly defined in line 38; used 4 times

Usage of this include

Last modified: 1994-01-11
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 362
Valid CSS Valid XHTML 1.0 Strict