Annotation of 43BSDReno/include/ndbm.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.