home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved.
- *
- * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE
- * SANTA CRUZ OPERATION INC.
- *
- * The copyright notice above does not evidence any actual or intended
- * publication of such source code.
- */
-
- #ident "@(#)sgs-head:common/head/ndbm.h 1.1"
-
- /*
- * Copyright (c) 1982, 1986, 1988
- * The Regents of the University of California
- * All Rights Reserved.
- * Portions of this document are derived from
- * software developed by the University of
- * California, Berkeley, and its contributors.
- */
-
-
- /*******************************************************************
-
- PROPRIETARY NOTICE (Combined)
-
- This source code is unpublished proprietary information
- constituting, or derived under license from AT&T's UNIX(r) System V.
- In addition, portions of such source code were derived from Berkeley
- 4.3 BSD under license from the Regents of the University of
- California.
-
-
-
- Copyright Notice
-
- Notice of copyright on this source code product does not indicate
- publication.
-
- (c) 1986,1987,1988,1989 Sun Microsystems, Inc
- (c) 1983,1984,1985,1986,1987,1988,1989 AT&T.
- All rights reserved.
- ********************************************************************/
-
- /*
- * Hashed key data base library - XPG4 V2 definition.
- */
-
- #ifndef _NDBM_H
- #define _NDBM_H
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
-
- #define _PBLKSIZ 4096
- #define _DBLKSIZ 4096
-
- typedef struct {
- int dbm_dirf; /* open directory file */
- int dbm_pagf; /* open page file */
- int dbm_flags; /* flags, see below */
- long dbm_maxbno; /* last ``bit'' in dir file */
- long dbm_bitno; /* current bit number */
- long dbm_hmask; /* hash mask */
- long dbm_blkptr; /* current block for dbm_nextkey */
- int dbm_keyptr; /* current key for dbm_nextkey */
- long dbm_blkno; /* current page to read/write */
- long dbm_pagbno; /* current page in pagbuf */
- char dbm_pagbuf[_PBLKSIZ]; /* page file block buffer */
- long dbm_dirbno; /* current block in dirbuf */
- char dbm_dirbuf[_DBLKSIZ]; /* directory file block buffer */
- } DBM;
-
-
-
- #ifndef _SIZE_T
- #define _SIZE_T
- typedef unsigned int size_t; /* len param for string funcs */
- #endif
-
- #ifndef _MODE_T
- #define _MODE_T
- typedef unsigned long mode_t; /* file attribute type */
- #endif
-
- typedef struct {
- void *dptr; /* changed to void * for XPG4 V2 */
- size_t dsize; /* changed to size_t for XPG4 V2 */
- } datum;
-
- /*
- * flags to dbm_store()
- */
- #define DBM_INSERT 0
- #define DBM_REPLACE 1
-
-
- int dbm_clearerr(DBM *);
- void dbm_close(DBM *);
- int dbm_delete(DBM *, datum);
- int dbm_error(DBM *);
- datum dbm_fetch(DBM *, datum);
- datum dbm_firstkey(DBM *);
- datum dbm_nextkey(DBM *);
- DBM * dbm_open(const char *, int, mode_t);
- int dbm_store(DBM *, datum, datum, int);
-
- /* non XPG4 V2 function */
- long dbm_forder( DBM *, datum );
-
- /* macro definitions */
-
- #define _DBM_RDONLY 0x1 /* data base open read-only */
- #define _DBM_IOERR 0x2 /* data base I/O error */
-
- #define dbm_rdonly(db) ((db)->dbm_flags & _DBM_RDONLY)
-
- #define dbm_error(db) ((db)->dbm_flags & _DBM_IOERR)
- /* use this one at your own risk! */
- #define dbm_clearerr(db) ((db)->dbm_flags &= ~_DBM_IOERR)
-
- /* for fstat(2) */
- #define dbm_dirfno(db) ((db)->dbm_dirf)
- #define dbm_pagfno(db) ((db)->dbm_pagf)
-
- #ifdef __cplusplus
- }
- #endif
- #endif /*! _HDBM_H */
-