aboutsummaryrefslogtreecommitdiff
path: root/include/gdbm.h
diff options
context:
space:
mode:
authorK. Richard Pixley <rich@cygnus>1991-03-25 22:25:03 +0000
committerK. Richard Pixley <rich@cygnus>1991-03-25 22:25:03 +0000
commitfcd5c2934e7ce37a0e607b00cac4cf6a149b2b1e (patch)
tree3f0ac271f3cd3235fe1685a4e07905902f8da4e6 /include/gdbm.h
parentd0281557bbf275c72bfbf5904d641be5913b0aa0 (diff)
downloadgdb-fcd5c2934e7ce37a0e607b00cac4cf6a149b2b1e.zip
gdb-fcd5c2934e7ce37a0e607b00cac4cf6a149b2b1e.tar.gz
gdb-fcd5c2934e7ce37a0e607b00cac4cf6a149b2b1e.tar.bz2
Initial revision
Diffstat (limited to 'include/gdbm.h')
-rw-r--r--include/gdbm.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/include/gdbm.h b/include/gdbm.h
new file mode 100644
index 0000000..b27f8e7
--- /dev/null
+++ b/include/gdbm.h
@@ -0,0 +1,91 @@
+/* gdbm.h - The include file for dbm users. */
+
+/* GNU DBM - DataBase Manager (database subroutines) by Philip A. Nelson
+ Copyright (C) 1989 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ You may contact the author by:
+ e-mail: phil@wwu.edu
+ us-mail: Philip A. Nelson
+ Computer Science Department
+ Western Washington University
+ Bellingham, WA 98226
+ phone: (206) 676-3035
+
+*************************************************************************/
+
+/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
+ can create the database. */
+#define GDBM_READER 0
+#define GDBM_WRITER 1
+#define GDBM_WRCREAT 2
+#define GDBM_NEWDB 3
+
+/* Parameters to gdbm_store for simple insertion or replacement. */
+#define GDBM_INSERT 0
+#define GDBM_REPLACE 1
+
+
+/* The data and key structure. This structure is defined for compatibility. */
+typedef struct {
+ char *dptr;
+ int dsize;
+ } datum;
+
+
+/* The file information header. This is good enough for most applications. */
+typedef struct {int dummy[10];} *GDBM_FILE;
+
+
+/* These are the routines! */
+
+extern GDBM_FILE gdbm_open ();
+
+extern void gdbm_close ();
+
+extern datum gdbm_fetch ();
+
+extern int gdbm_store ();
+
+extern int gdbm_delete ();
+
+extern datum gdbm_firstkey ();
+
+extern datum gdbm_nextkey ();
+
+extern int gdbm_reorganize ();
+
+
+/* gdbm sends back the following error codes in the variable gdbm_errno. */
+typedef enum { NO_ERROR,
+ MALLOC_ERROR,
+ BLOCK_SIZE_ERROR,
+ FILE_OPEN_ERROR,
+ FILE_WRITE_ERROR,
+ FILE_SEEK_ERROR,
+ FILE_READ_ERROR,
+ BAD_MAGIC_NUMBER,
+ EMPTY_DATABASE,
+ CANT_BE_READER,
+ CANT_BE_WRITER,
+ READER_CANT_RECOVER,
+ READER_CANT_DELETE,
+ READER_CANT_STORE,
+ READER_CANT_REORGANIZE,
+ UNKNOWN_UPDATE,
+ ITEM_NOT_FOUND,
+ REORGANIZE_FAILED,
+ CANNOT_REPLACE}
+ gdbm_error;