aboutsummaryrefslogtreecommitdiff
path: root/src/gdbm.h.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/gdbm.h.in')
-rw-r--r--src/gdbm.h.in100
1 files changed, 55 insertions, 45 deletions
diff --git a/src/gdbm.h.in b/src/gdbm.h.in
index 804e051..abceba1 100644
--- a/src/gdbm.h.in
+++ b/src/gdbm.h.in
@@ -1,8 +1,7 @@
/* gdbm.h - The include file for dbm users. -*- c -*- */
/* This file is part of GDBM, the GNU data base manager, by Philip A. Nelson.
- Copyright (C) 1990-1991, 1993, 2011, 2016-2020 Free Software
- Foundation, Inc.
+ Copyright (C) 1990-2021 Free Software Foundation, Inc.
GDBM is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -54,6 +53,7 @@ extern "C" {
GDBM_BLOCK_SIZE_ERROR error if unable to
set it. */
# define GDBM_CLOERROR 0x400 /* Only for gdbm_fd_open: close fd on error. */
+# define GDBM_XVERIFY 0x800 /* Additional consistency checks. */
/* Parameters to gdbm_store for simple insertion or replacement in the
case that the key is already in the database. */
@@ -85,6 +85,8 @@ extern "C" {
# define GDBM_GETDBNAME 15 /* Return database file name */
# define GDBM_GETBLOCKSIZE 16 /* Return block size */
+# define GDBM_CACHE_AUTO 0
+
typedef @GDBM_COUNT_T@ gdbm_count_t;
/* The data and key structure. */
@@ -94,7 +96,6 @@ typedef struct
int dsize;
} datum;
-
/* A pointer to the GDBM file. */
typedef struct gdbm_file_info *GDBM_FILE;
@@ -133,6 +134,10 @@ extern int gdbm_import (GDBM_FILE, const char *, int);
extern int gdbm_import_from_file (GDBM_FILE dbf, FILE *fp, int flag);
extern int gdbm_count (GDBM_FILE dbf, gdbm_count_t *pcount);
+extern int gdbm_bucket_count (GDBM_FILE dbf, size_t *pcount);
+
+extern int gdbm_avail_verify (GDBM_FILE dbf);
+
typedef struct gdbm_recovery_s
{
@@ -188,50 +193,54 @@ extern int gdbm_load_from_file (GDBM_FILE *, FILE *, int replace,
extern int gdbm_copy_meta (GDBM_FILE dst, GDBM_FILE src);
-# define GDBM_NO_ERROR 0
-# define GDBM_MALLOC_ERROR 1
-# define GDBM_BLOCK_SIZE_ERROR 2
-# define GDBM_FILE_OPEN_ERROR 3
-# define GDBM_FILE_WRITE_ERROR 4
-# define GDBM_FILE_SEEK_ERROR 5
-# define GDBM_FILE_READ_ERROR 6
-# define GDBM_BAD_MAGIC_NUMBER 7
-# define GDBM_EMPTY_DATABASE 8
-# define GDBM_CANT_BE_READER 9
-# define GDBM_CANT_BE_WRITER 10
-# define GDBM_READER_CANT_DELETE 11
-# define GDBM_READER_CANT_STORE 12
-# define GDBM_READER_CANT_REORGANIZE 13
-# define GDBM_UNKNOWN_ERROR 14
-# define GDBM_ITEM_NOT_FOUND 15
-# define GDBM_REORGANIZE_FAILED 16
-# define GDBM_CANNOT_REPLACE 17
-# define GDBM_ILLEGAL_DATA 18
-# define GDBM_OPT_ALREADY_SET 19
-# define GDBM_OPT_ILLEGAL 20
-# define GDBM_BYTE_SWAPPED 21
-# define GDBM_BAD_FILE_OFFSET 22
-# define GDBM_BAD_OPEN_FLAGS 23
-# define GDBM_FILE_STAT_ERROR 24
-# define GDBM_FILE_EOF 25
-# define GDBM_NO_DBNAME 26
-# define GDBM_ERR_FILE_OWNER 27
-# define GDBM_ERR_FILE_MODE 28
-# define GDBM_NEED_RECOVERY 29
-# define GDBM_BACKUP_FAILED 30
-# define GDBM_DIR_OVERFLOW 31
-# define GDBM_BAD_BUCKET 32
-# define GDBM_BAD_HEADER 33
-# define GDBM_BAD_AVAIL 34
-# define GDBM_BAD_HASH_TABLE 35
-# define GDBM_BAD_DIR_ENTRY 36
-# define GDBM_FILE_CLOSE_ERROR 37
-# define GDBM_FILE_SYNC_ERROR 38
-# define GDBM_FILE_TRUNCATE_ERROR 39
-# define GDBM_BUCKET_CACHE_CORRUPTED 40
+enum
+ {
+ GDBM_NO_ERROR = 0,
+ GDBM_MALLOC_ERROR = 1,
+ GDBM_BLOCK_SIZE_ERROR = 2,
+ GDBM_FILE_OPEN_ERROR = 3,
+ GDBM_FILE_WRITE_ERROR = 4,
+ GDBM_FILE_SEEK_ERROR = 5,
+ GDBM_FILE_READ_ERROR = 6,
+ GDBM_BAD_MAGIC_NUMBER = 7,
+ GDBM_EMPTY_DATABASE = 8,
+ GDBM_CANT_BE_READER = 9,
+ GDBM_CANT_BE_WRITER = 10,
+ GDBM_READER_CANT_DELETE = 11,
+ GDBM_READER_CANT_STORE = 12,
+ GDBM_READER_CANT_REORGANIZE = 13,
+ GDBM_UNKNOWN_ERROR = 14,
+ GDBM_ITEM_NOT_FOUND = 15,
+ GDBM_REORGANIZE_FAILED = 16,
+ GDBM_CANNOT_REPLACE = 17,
+ GDBM_ILLEGAL_DATA = 18,
+ GDBM_OPT_ALREADY_SET = 19,
+ GDBM_OPT_ILLEGAL = 20,
+ GDBM_BYTE_SWAPPED = 21,
+ GDBM_BAD_FILE_OFFSET = 22,
+ GDBM_BAD_OPEN_FLAGS = 23,
+ GDBM_FILE_STAT_ERROR = 24,
+ GDBM_FILE_EOF = 25,
+ GDBM_NO_DBNAME = 26,
+ GDBM_ERR_FILE_OWNER = 27,
+ GDBM_ERR_FILE_MODE = 28,
+ GDBM_NEED_RECOVERY = 29,
+ GDBM_BACKUP_FAILED = 30,
+ GDBM_DIR_OVERFLOW = 31,
+ GDBM_BAD_BUCKET = 32,
+ GDBM_BAD_HEADER = 33,
+ GDBM_BAD_AVAIL = 34,
+ GDBM_BAD_HASH_TABLE = 35,
+ GDBM_BAD_DIR_ENTRY = 36,
+ GDBM_FILE_CLOSE_ERROR = 37,
+ GDBM_FILE_SYNC_ERROR = 38,
+ GDBM_FILE_TRUNCATE_ERROR = 39,
+ GDBM_BUCKET_CACHE_CORRUPTED = 40,
+ GDBM_BAD_HASH_ENTRY = 41,
+ };
# define _GDBM_MIN_ERRNO 0
-# define _GDBM_MAX_ERRNO GDBM_BUCKET_CACHE_CORRUPTED
+# define _GDBM_MAX_ERRNO GDBM_BAD_HASH_ENTRY
/* This one was never used and will be removed in the future */
# define GDBM_UNKNOWN_UPDATE GDBM_UNKNOWN_ERROR
@@ -287,6 +296,7 @@ struct gdbm_cache_stat
void gdbm_get_cache_stats (GDBM_FILE dbf,
size_t *access_count,
+ size_t *cache_hits,
size_t *cache_count,
struct gdbm_cache_stat *bstat,
size_t nstat);

Return to:

Send suggestions and report system problems to the System administrator.