diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2005-10-04 23:38:37 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2005-10-04 23:38:37 +0000 |
| commit | 745cddfcd791359ff5ae5c2f33db3b196f6df481 (patch) | |
| tree | 4a5081d158f5f0e3ec784b1c2190d9870dceaa41 /src/util/db2/include | |
| parent | a6759444a5cc94637576e92cf425efda13a791ea (diff) | |
| download | krb5-745cddfcd791359ff5ae5c2f33db3b196f6df481.tar.gz krb5-745cddfcd791359ff5ae5c2f33db3b196f6df481.tar.xz krb5-745cddfcd791359ff5ae5c2f33db3b196f6df481.zip | |
Move the db2 library to the site of its one use, the kdb-db2 module.
Update configuration scripts, pathname make variables, etc., accordingly.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17407 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/util/db2/include')
| -rw-r--r-- | src/util/db2/include/ChangeLog | 74 | ||||
| -rw-r--r-- | src/util/db2/include/db-config.h.in | 16 | ||||
| -rw-r--r-- | src/util/db2/include/db-dbm.h | 23 | ||||
| -rw-r--r-- | src/util/db2/include/db-int.h | 283 | ||||
| -rw-r--r-- | src/util/db2/include/db-ndbm.h | 91 | ||||
| -rw-r--r-- | src/util/db2/include/db-queue.h | 245 | ||||
| -rw-r--r-- | src/util/db2/include/db.h | 175 |
7 files changed, 0 insertions, 907 deletions
diff --git a/src/util/db2/include/ChangeLog b/src/util/db2/include/ChangeLog deleted file mode 100644 index 676bbd44a7..0000000000 --- a/src/util/db2/include/ChangeLog +++ /dev/null @@ -1,74 +0,0 @@ -2004-05-23 Ken Raeburn <raeburn@mit.edu> - - * db-int.h: Include sys/param.h if available. - -2004-05-07 Ken Raeburn <raeburn@mit.edu> - - * db-int.h: Include machine/endian.h if available. Check for - __LITTLE_ENDIAN__ and __BIG_ENDIAN__, _MIPSEB and _MIPSEL. - -2004-05-05 Ken Raeburn <raeburn@mit.edu> - - * db-int.h: Include stdlib.h, and endian.h if available. - (LITTLE_ENDIAN, BIG_ENDIAN, BYTE_ORDER): If not defined, and if - versions with one or two leading underscores are defined, define - the no-underscore form in terms of the with-underscore one. - (DB_BYTE_ORDER): Define by checking LITTLE_ENDIAN, BIG_ENDIAN, and - BYTE_ORDER; report an error if that doesn't work. Don't check - WORDS_BIGENDIAN. - -2002-09-05 Ken Raeburn <raeburn@mit.edu> - - * db-int.h: If stdint.h or inttypes.h are found, include them. - -2002-08-23 Tom Yu <tlyu@mit.edu> - - * db.h: Add rename and prototype for bt_rseq(); this is a kludge - to avoid stuffing more things into the DB handle. - -2001-10-24 Ezra Peisach <epeisach@mit.edu> - - * db-config.h.in: Remove unnecessary definitions for including - db.h header file. These include WORDS_BIGENDIAN, ssize_t, u_short, - int8_t, u_int8_t, int16_t, u_int16_t, int32_t. - -2001-07-06 Ezra Peisach <epeisach@mit.edu> - - * db-dbm.h: New header file which lists the dbm interfaces. - - * db-ndbm.h: Change prototype from dirinfo to dirfno which matches - code and ndbm API. - -2000-07-01 Tom Yu <tlyu@mit.edu> - - * db-config.h.in: New file; contains useful tidbits from - config.h.in generated by autoheader. It is needed because - config.h.in has some thing we don't want to leak, like renaming of - missing libc functions. - - * .cvsignore: Twiddle to reflect current reality. - - * db-int.h: #include config.h since db.h includes db-config.h - which is not quite the same now. - -2000-06-30 Tom Yu <tlyu@mit.edu> - - * db-int.h: Remove renaming for memmove, strerror, mkstemp since - this is now done by the build system. - -Fri Feb 13 14:39:25 1998 Tom Yu <tlyu@mit.edu> - - * db-int.h: Additional renaming. - - * db.h: Rename dbopen to avoid collision with NetBSD libc. - - * db-ndbm.h: Rename lots of functions to avoid collisions with - native dbm implementations. - - * db-int.h: Rename __hash_open to avoid potential collision with - NetBSD libc. - -Thu Aug 15 15:41:12 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> - - * db-ndbm.h: Add prototypes for missing functions dbm_error() and - dbm_clearerror(). diff --git a/src/util/db2/include/db-config.h.in b/src/util/db2/include/db-config.h.in deleted file mode 100644 index bcd7991b34..0000000000 --- a/src/util/db2/include/db-config.h.in +++ /dev/null @@ -1,16 +0,0 @@ -/* include/db-config.h.in. Derived from autoconf-generated config.h.in. */ - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define to `unsigned' if <sys/types.h> doesn't define. */ -#undef size_t - -#undef u_char -#undef u_int -#undef u_long - -#undef u_int32_t - -/* The number of bytes in a int. */ -#undef SIZEOF_INT diff --git a/src/util/db2/include/db-dbm.h b/src/util/db2/include/db-dbm.h deleted file mode 100644 index 28c93786cd..0000000000 --- a/src/util/db2/include/db-dbm.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _DBM_H_ -#define _DBM_H_ - -#include "db.h" - -#define dbminit kdb2_dbminit -#define fetch kdb2_fetch -#define firstkey kdb2_firstkey -#define nextkey kdb2_nextkey -#define delete kdb2_delete -#define store kdb2_store - -__BEGIN_DECLS -int dbminit __P((char *)); -datum fetch __P((datum)); -datum firstkey __P((void)); -datum nextkey __P((datum)); -int delete __P((datum)); -int store __P((datum, datum)); -__END_DECLS - - -#endif diff --git a/src/util/db2/include/db-int.h b/src/util/db2/include/db-int.h deleted file mode 100644 index bbb22925aa..0000000000 --- a/src/util/db2/include/db-int.h +++ /dev/null @@ -1,283 +0,0 @@ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)compat.h 8.13 (Berkeley) 2/21/94 - */ - -#ifndef _DB_INT_H_ -#define _DB_INT_H_ - -#include "config.h" -#include "db.h" - -/* deal with autoconf-based stuff */ - -#define DB_LITTLE_ENDIAN 1234 -#define DB_BIG_ENDIAN 4321 - -#include <stdlib.h> -#ifdef HAVE_ENDIAN_H -# include <endian.h> -#endif -#ifdef HAVE_MACHINE_ENDIAN_H -# include <machine/endian.h> -#endif -#ifdef HAVE_SYS_PARAM_H -# include <sys/param.h> -#endif -/* Handle both BIG and LITTLE defined and BYTE_ORDER matches one, or - just one defined; both with and without leading underscores. - - Ignore "PDP endian" machines, this code doesn't support them - anyways. */ -#if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) && !defined(BYTE_ORDER) -# ifdef __LITTLE_ENDIAN__ -# define LITTLE_ENDIAN __LITTLE_ENDIAN__ -# endif -# ifdef __BIG_ENDIAN__ -# define BIG_ENDIAN __BIG_ENDIAN__ -# endif -#endif -#if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) && !defined(BYTE_ORDER) -# ifdef _LITTLE_ENDIAN -# define LITTLE_ENDIAN _LITTLE_ENDIAN -# endif -# ifdef _BIG_ENDIAN -# define BIG_ENDIAN _BIG_ENDIAN -# endif -# ifdef _BYTE_ORDER -# define BYTE_ORDER _BYTE_ORDER -# endif -#endif -#if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) && !defined(BYTE_ORDER) -# ifdef __LITTLE_ENDIAN -# define LITTLE_ENDIAN __LITTLE_ENDIAN -# endif -# ifdef __BIG_ENDIAN -# define BIG_ENDIAN __BIG_ENDIAN -# endif -# ifdef __BYTE_ORDER -# define BYTE_ORDER __BYTE_ORDER -# endif -#endif - -#if defined(_MIPSEL) && !defined(LITTLE_ENDIAN) -# define LITTLE_ENDIAN -#endif -#if defined(_MIPSEB) && !defined(BIG_ENDIAN) -# define BIG_ENDIAN -#endif - -#if defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN) && defined(BYTE_ORDER) -# if LITTLE_ENDIAN == BYTE_ORDER -# define DB_BYTE_ORDER DB_LITTLE_ENDIAN -# elif BIG_ENDIAN == BYTE_ORDER -# define DB_BYTE_ORDER DB_BIG_ENDIAN -# else -# error "LITTLE_ENDIAN and BIG_ENDIAN defined, but can't determine byte order" -# endif -#elif defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) -# define DB_BYTE_ORDER DB_LITTLE_ENDIAN -#elif defined(BIG_ENDIAN) && !defined(LITTLE_ENDIAN) -# define DB_BYTE_ORDER DB_BIG_ENDIAN -#else -# error "can't determine byte order from included system headers" -#endif - -#if 0 -#ifdef WORDS_BIGENDIAN -#define DB_BYTE_ORDER DB_BIG_ENDIAN -#else -#define DB_BYTE_ORDER DB_LITTLE_ENDIAN -#endif -#endif - -/* end autoconf-based stuff */ - -/* include necessary system header files */ - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#include <limits.h> -#include <fcntl.h> -#include <stdio.h> -#include <errno.h> -#ifdef HAVE_STDINT_H -#include <stdint.h> -#endif -#ifdef HAVE_INTTYPES_H -/* Tru64 5.1: int8_t is defined here, and stdint.h doesn't exist. */ -#include <inttypes.h> -#endif -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/param.h> - -/* types and constants used for database structure */ - -#define MAX_PAGE_NUMBER 0xffffffff /* >= # of pages in a file */ -typedef u_int32_t db_pgno_t; -#define MAX_PAGE_OFFSET 65535 /* >= # of bytes in a page */ -typedef u_int16_t indx_t; -#define MAX_REC_NUMBER 0xffffffff /* >= # of records in a tree */ -typedef u_int32_t recno_t; - -/* - * Little endian <==> big endian 32-bit swap macros. - * M_32_SWAP swap a memory location - * P_32_SWAP swap a referenced memory location - * P_32_COPY swap from one location to another - */ -#define M_32_SWAP(a) { \ - u_int32_t _tmp = a; \ - ((char *)&a)[0] = ((char *)&_tmp)[3]; \ - ((char *)&a)[1] = ((char *)&_tmp)[2]; \ - ((char *)&a)[2] = ((char *)&_tmp)[1]; \ - ((char *)&a)[3] = ((char *)&_tmp)[0]; \ -} -#define P_32_SWAP(a) { \ - u_int32_t _tmp = *(u_int32_t *)a; \ - ((char *)a)[0] = ((char *)&_tmp)[3]; \ - ((char *)a)[1] = ((char *)&_tmp)[2]; \ - ((char *)a)[2] = ((char *)&_tmp)[1]; \ - ((char *)a)[3] = ((char *)&_tmp)[0]; \ -} -#define P_32_COPY(a, b) { \ - ((char *)&(b))[0] = ((char *)&(a))[3]; \ - ((char *)&(b))[1] = ((char *)&(a))[2]; \ - ((char *)&(b))[2] = ((char *)&(a))[1]; \ - ((char *)&(b))[3] = ((char *)&(a))[0]; \ -} - -/* - * Little endian <==> big endian 16-bit swap macros. - * M_16_SWAP swap a memory location - * P_16_SWAP swap a referenced memory location - * P_16_COPY swap from one location to another - */ -#define M_16_SWAP(a) { \ - u_int16_t _tmp = a; \ - ((char *)&a)[0] = ((char *)&_tmp)[1]; \ - ((char *)&a)[1] = ((char *)&_tmp)[0]; \ -} -#define P_16_SWAP(a) { \ - u_int16_t _tmp = *(u_int16_t *)a; \ - ((char *)a)[0] = ((char *)&_tmp)[1]; \ - ((char *)a)[1] = ((char *)&_tmp)[0]; \ -} -#define P_16_COPY(a, b) { \ - ((char *)&(b))[0] = ((char *)&(a))[1]; \ - ((char *)&(b))[1] = ((char *)&(a))[0]; \ -} - -/* open functions for each database type, used in dbopen() */ - -#define __bt_open __kdb2_bt_open -#define __hash_open __kdb2_hash_open -#define __rec_open __kdb2_rec_open -#define __dbpanic __kdb2_dbpanic - -DB *__bt_open __P((const char *, int, int, const BTREEINFO *, int)); -DB *__hash_open __P((const char *, int, int, const HASHINFO *, int)); -DB *__rec_open __P((const char *, int, int, const RECNOINFO *, int)); -void __dbpanic __P((DB *dbp)); - -/* - * There is no portable way to figure out the maximum value of a file - * offset, so we put it here. - */ -#ifdef OFF_T_MAX -#define DB_OFF_T_MAX OFF_T_MAX -#else -#define DB_OFF_T_MAX LONG_MAX -#endif - -#ifndef O_ACCMODE /* POSIX 1003.1 access mode mask. */ -#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) -#endif - -/* - * If you can't provide lock values in the open(2) call. Note, this - * allows races to happen. - */ -#ifndef O_EXLOCK /* 4.4BSD extension. */ -#define O_EXLOCK 0 -#endif - -#ifndef O_SHLOCK /* 4.4BSD extension. */ -#define O_SHLOCK 0 -#endif - -#ifndef EFTYPE -#define EFTYPE EINVAL /* POSIX 1003.1 format errno. */ -#endif - -#ifndef STDERR_FILENO -#define STDIN_FILENO 0 /* ANSI C #defines */ -#define STDOUT_FILENO 1 -#define STDERR_FILENO 2 -#endif - -#ifndef SEEK_END -#define SEEK_SET 0 /* POSIX 1003.1 seek values */ -#define SEEK_CUR 1 -#define SEEK_END 2 -#endif - -#ifndef NULL /* ANSI C #defines NULL everywhere. */ -#define NULL 0 -#endif - -#ifndef MAX /* Usually found in <sys/param.h>. */ -#define MAX(_a,_b) ((_a)<(_b)?(_b):(_a)) -#endif -#ifndef MIN /* Usually found in <sys/param.h>. */ -#define MIN(_a,_b) ((_a)<(_b)?(_a):(_b)) -#endif - -#ifndef S_ISDIR /* POSIX 1003.1 file type tests. */ -#define S_ISDIR(m) ((m & 0170000) == 0040000) /* directory */ -#define S_ISCHR(m) ((m & 0170000) == 0020000) /* char special */ -#define S_ISBLK(m) ((m & 0170000) == 0060000) /* block special */ -#define S_ISREG(m) ((m & 0170000) == 0100000) /* regular file */ -#define S_ISFIFO(m) ((m & 0170000) == 0010000) /* fifo */ -#endif -#ifndef S_ISLNK /* BSD POSIX 1003.1 extensions */ -#define S_ISLNK(m) ((m & 0170000) == 0120000) /* symbolic link */ -#define S_ISSOCK(m) ((m & 0170000) == 0140000) /* socket */ -#endif - -#ifndef O_BINARY -#define O_BINARY 0 /* Needed for Win32 compiles */ -#endif -#endif /* _DB_INT_H_ */ diff --git a/src/util/db2/include/db-ndbm.h b/src/util/db2/include/db-ndbm.h deleted file mode 100644 index e99f46fdc9..0000000000 --- a/src/util/db2/include/db-ndbm.h +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Margo Seltzer. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ndbm.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _NDBM_H_ -#define _NDBM_H_ - -#include "db.h" - -/* Map dbm interface onto db(3). */ -#define DBM_RDONLY O_RDONLY - -/* Flags to dbm_store(). */ -#define DBM_INSERT 0 -#define DBM_REPLACE 1 - -/* - * The db(3) support for ndbm(3) always appends this suffix to the - * file name to avoid overwriting the user's original database. - */ -#define DBM_SUFFIX ".db" - -typedef struct { - char *dptr; - int dsize; -} datum; - -typedef DB DBM; -#define dbm_pagfno(a) DBM_PAGFNO_NOT_AVAILABLE - -#define dbm_close kdb2_dbm_close -#define dbm_delete kdb2_dbm_delete -#define dbm_fetch kdb2_dbm_fetch -#define dbm_firstkey kdb2_dbm_firstkey -#define dbm_forder kdb2_dbm_forder -#define dbm_nextkey kdb2_dbm_nextkey -#define dbm_open kdb2_dbm_open -#define dbm_store kdb2_dbm_store -#define dbm_dirfno kdb2_dbm_dirfno -#define dbm_error kdb2_dbm_error -#define dbm_clearerr kdb2_dbm_clearerr - -__BEGIN_DECLS -void dbm_close __P((DBM *)); -int dbm_delete __P((DBM *, datum)); -datum dbm_fetch __P((DBM *, datum)); -datum dbm_firstkey __P((DBM *)); -long dbm_forder __P((DBM *, datum)); -datum dbm_nextkey __P((DBM *)); -DBM *dbm_open __P((const char *, int, int)); -int dbm_store __P((DBM *, datum, datum, int)); -int dbm_dirfno __P((DBM *)); -int dbm_error __P((DBM *db)); -int dbm_clearerr __P((DBM *db)); -__END_DECLS - -#endif /* !_NDBM_H_ */ diff --git a/src/util/db2/include/db-queue.h b/src/util/db2/include/db-queue.h deleted file mode 100644 index 40d32ccb6e..0000000000 --- a/src/util/db2/include/db-queue.h +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)queue.h 8.3 (Berkeley) 12/13/93 - */ - -#ifndef _QUEUE_H_ -#define _QUEUE_H_ - -/* - * This file defines three types of data structures: lists, tail queues, - * and circular queues. - * - * A list is headed by a single forward pointer (or an array of forward - * pointers for a hash table header). The elements are doubly linked - * so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list after - * an existing element or at the head of the list. A list may only be - * traversed in the forward direction. - * - * A tail queue is headed by a pair of pointers, one to the head of the - * list and the other to the tail of the list. The elements are doubly - * linked so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list after - * an existing element, at the head of the list, or at the end of the - * list. A tail queue may only be traversed in the forward direction. - * - * A circle queue is headed by a pair of pointers, one to the head of the - * list and the other to the tail of the list. The elements are doubly - * linked so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before or after - * an existing element, at the head of the list, or at the end of the list. - * A circle queue may be traversed in either direction, but has a more - * complex end of list detection. - * - * For details on the use of these macros, see the queue(3) manual page. - */ - -/* - * List definitions. - */ -#define LIST_HEAD(name, type) \ -struct name { \ - struct type *lh_first; /* first element */ \ -} - -#define LIST_ENTRY(type) \ -struct { \ - struct type *le_next; /* next element */ \ - struct type **le_prev; /* address of previous next element */ \ -} - -/* - * List functions. - */ -#define LIST_INIT(head) { \ - (head)->lh_first = NULL; \ -} - -#define LIST_INSERT_AFTER(listelm, elm, field) { \ - if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ - (listelm)->field.le_next->field.le_prev = \ - &(elm)->field.le_next; \ - (listelm)->field.le_next = (elm); \ - (elm)->field.le_prev = &(listelm)->field.le_next; \ -} - -#define LIST_INSERT_HEAD(head, elm, field) { \ - if (((elm)->field.le_next = (head)->lh_first) != NULL) \ - (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ - (head)->lh_first = (elm); \ - (elm)->field.le_prev = &(head)->lh_first; \ -} - -#define LIST_REMOVE(elm, field) { \ - if ((elm)->field.le_next != NULL) \ - (elm)->field.le_next->field.le_prev = \ - (elm)->field.le_prev; \ - *(elm)->field.le_prev = (elm)->field.le_next; \ -} - -/* - * Tail queue definitions. - */ -#define TAILQ_HEAD(name, type) \ -struct name { \ - struct type *tqh_first; /* first element */ \ - struct type **tqh_last; /* addr of last next element */ \ -} - -#define TAILQ_ENTRY(type) \ -struct { \ - struct type *tqe_next; /* next element */ \ - struct type **tqe_prev; /* address of previous next element */ \ -} - -/* - * Tail queue functions. - */ -#define TAILQ_INIT(head) { \ - (head)->tqh_first = NULL; \ - (head)->tqh_last = &(head)->tqh_first; \ -} - -#define TAILQ_INSERT_HEAD(head, elm, field) { \ - if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \ - (elm)->field.tqe_next->field.tqe_prev = \ - &(elm)->field.tqe_next; \ - else \ - (head)->tqh_last = &(elm)->field.tqe_next; \ - (head)->tqh_first = (elm); \ - (elm)->field.tqe_prev = &(head)->tqh_first; \ -} - -#define TAILQ_INSERT_TAIL(head, elm, field) { \ - (elm)->field.tqe_next = NULL; \ - (elm)->field.tqe_prev = (head)->tqh_last; \ - *(head)->tqh_last = (elm); \ - (head)->tqh_last = &(elm)->field.tqe_next; \ -} - -#define TAILQ_INSERT_AFTER(head, listelm, elm, field) { \ - if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ - (elm)->field.tqe_next->field.tqe_prev = \ - &(elm)->field.tqe_next; \ - else \ - (head)->tqh_last = &(elm)->field.tqe_next; \ - (listelm)->field.tqe_next = (elm); \ - (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ -} - -#define TAILQ_REMOVE(head, elm, field) { \ - if (((elm)->field.tqe_next) != NULL) \ - (elm)->field.tqe_next->field.tqe_prev = \ - (elm)->field.tqe_prev; \ - else \ - (head)->tqh_last = (elm)->field.tqe_prev; \ - *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ -} - -/* - * Circular queue definitions. - */ -#define CIRCLEQ_HEAD(name, type) \ -struct name { \ - struct type *cqh_first; /* first element */ \ - struct type *cqh_last; /* last element */ \ -} - -#define CIRCLEQ_ENTRY(type) \ -struct { \ - struct type *cqe_next; /* next element */ \ - struct type *cqe_prev; /* previous element */ \ -} - -/* - * Circular queue functions. - */ -#define CIRCLEQ_INIT(head) { \ - (head)->cqh_first = (void *)(head); \ - (head)->cqh_last = (void *)(head); \ -} - -#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) { \ - (elm)->field.cqe_next = (listelm)->field.cqe_next; \ - (elm)->field.cqe_prev = (listelm); \ - if ((listelm)->field.cqe_next == (void *)(head)) \ - (head)->cqh_last = (elm); \ - else \ - (listelm)->field.cqe_next->field.cqe_prev = (elm); \ - (listelm)->field.cqe_next = (elm); \ -} - -#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) { \ - (elm)->field.cqe_next = (listelm); \ - (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ - if ((listelm)->field.cqe_prev == (void *)(head)) \ - (head)->cqh_first = (elm); \ - else \ - (listelm)->field.cqe_prev->field.cqe_next = (elm); \ - (listelm)->field.cqe_prev = (elm); \ -} - -#define CIRCLEQ_INSERT_HEAD(head, elm, field) { \ - (elm)->field.cqe_next = (head)->cqh_first; \ - (elm)->field.cqe_prev = (void *)(head); \ - if ((head)->cqh_last == (void *)(head)) \ - (head)->cqh_last = (elm); \ - else \ - (head)->cqh_first->field.cqe_prev = (elm); \ - (head)->cqh_first = (elm); \ -} - -#define CIRCLEQ_INSERT_TAIL(head, elm, field) { \ - (elm)->field.cqe_next = (void *)(head); \ - (elm)->field.cqe_prev = (head)->cqh_last; \ - if ((head)->cqh_first == (void *)(head)) \ - (head)->cqh_first = (elm); \ - else \ - (head)->cqh_last->field.cqe_next = (elm); \ - (head)->cqh_last = (elm); \ -} - -#define CIRCLEQ_REMOVE(head, elm, field) { \ - if ((elm)->field.cqe_next == (void *)(head)) \ - (head)->cqh_last = (elm)->field.cqe_prev; \ - else \ - (elm)->field.cqe_next->field.cqe_prev = \ - (elm)->field.cqe_prev; \ - if ((elm)->field.cqe_prev == (void *)(head)) \ - (head)->cqh_first = (elm)->field.cqe_next; \ - else \ - (elm)->field.cqe_prev->field.cqe_next = \ - (elm)->field.cqe_next; \ -} -#endif /* !_QUEUE_H_ */ diff --git a/src/util/db2/include/db.h b/src/util/db2/include/db.h deleted file mode 100644 index 980145a3d9..0000000000 --- a/src/util/db2/include/db.h +++ /dev/null @@ -1,175 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)db.h 8.8 (Berkeley) 11/2/95 - */ - -#ifndef _DB_H_ -#define _DB_H_ - -#include <db-config.h> - -#include <sys/types.h> - -#define RET_ERROR -1 /* Return values. */ -#define RET_SUCCESS 0 -#define RET_SPECIAL 1 - -/* Key/data structure -- a Data-Base Thang. */ -typedef struct { - void *data; /* data */ - size_t size; /* data length */ -} DBT; - -/* Routine flags. */ -#define R_CURSOR 1 /* del, put, seq */ -#define __R_UNUSED 2 /* UNUSED */ -#define R_FIRST 3 /* seq */ -#define R_IAFTER 4 /* put (RECNO) */ -#define R_IBEFORE 5 /* put (RECNO) */ -#define R_LAST 6 /* seq (BTREE, RECNO) */ -#define R_NEXT 7 /* seq */ -#define R_NOOVERWRITE 8 /* put */ -#define R_PREV 9 /* seq (BTREE, RECNO) */ -#define R_SETCURSOR 10 /* put (RECNO) */ -#define R_RECNOSYNC 11 /* sync (RECNO) */ - -typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE; - -/* - * !!! - * The following flags are included in the dbopen(3) call as part of the - * open(2) flags. In order to avoid conflicts with the open flags, start - * at the top of the 16 or 32-bit number space and work our way down. If - * the open flags were significantly expanded in the future, it could be - * a problem. Wish I'd left another flags word in the dbopen call. - * - * !!! - * None of this stuff is implemented yet. The only reason that it's here - * is so that the access methods can skip copying the key/data pair when - * the DB_LOCK flag isn't set. - */ -#if SIZEOF_INT == 4 -#define DB_LOCK 0x20000000 /* Do locking. */ -#define DB_SHMEM 0x40000000 /* Use shared memory. */ -#define DB_TXN 0x80000000 /* Do transactions. */ -#else -#define DB_LOCK 0x2000 /* Do locking. */ -#define DB_SHMEM 0x4000 /* Use shared memory. */ -#define DB_TXN 0x8000 /* Do transactions. */ -#endif - -/* deal with turning prototypes on and off */ - -#ifndef __P -#if defined(__STDC__) || defined(__cplusplus) -#define __P(protos) protos /* full-blown ANSI C */ -#else /* !(__STDC__ || __cplusplus) */ -#define __P(protos) () /* traditional C preprocessor */ -#endif -#endif /* no __P from system */ - -/* Access method description structure. */ -typedef struct __db { - DBTYPE type; /* Underlying db type. */ - int (*close) __P((struct __db *)); - int (*del) __P((const struct __db *, const DBT *, u_int)); - int (*get) __P((const struct __db *, const DBT *, DBT *, u_int)); - int (*put) __P((const struct __db *, DBT *, const DBT *, u_int)); - int (*seq) __P((const struct __db *, DBT *, DBT *, u_int)); - int (*sync) __P((const struct __db *, u_int)); - void *internal; /* Access method private. */ - int (*fd) __P((const struct __db *)); -} DB; - -#define BTREEMAGIC 0x053162 -#define BTREEVERSION 3 - -/* Structure used to pass parameters to the btree routines. */ -typedef struct { -#define R_DUP 0x01 /* duplicate keys */ - u_long flags; - u_int cachesize; /* bytes to cache */ - int maxkeypage; /* maximum keys per page */ - int minkeypage; /* minimum keys per page */ - u_int psize; /* page size */ - int (*compare) /* comparison function */ - __P((const DBT *, const DBT *)); - size_t (*prefix) /* prefix function */ - __P((const DBT *, const DBT *)); - int lorder; /* byte order */ -} BTREEINFO; - -#define HASHMAGIC 0x061561 -#define HASHVERSION 3 - -/* Structure used to pass parameters to the hashing routines. */ -typedef struct { - u_int bsize; /* bucket size */ - u_int ffactor; /* fill factor */ - u_int nelem; /* number of elements */ - u_int cachesize; /* bytes to cache */ - u_int32_t /* hash function */ - (*hash) __P((const void *, size_t)); - int lorder; /* byte order */ -} HASHINFO; - -/* Structure used to pass parameters to the record routines. */ -typedef struct { -#define R_FIXEDLEN 0x01 /* fixed-length records */ -#define R_NOKEY 0x02 /* key not required */ -#define R_SNAPSHOT 0x04 /* snapshot the input */ - u_long flags; - u_int cachesize; /* bytes to cache */ - u_int psize; /* page size */ - int lorder; /* byte order */ - size_t reclen; /* record length (fixed-length records) */ - u_char bval; /* delimiting byte (variable-length records */ - char *bfname; /* btree file name */ -} RECNOINFO; - -#if defined(__cplusplus) -#define __BEGIN_DECLS extern "C" { -#define __END_DECLS }; -#else -#define __BEGIN_DECLS -#define __END_DECLS -#endif - -#define dbopen kdb2_dbopen -#define bt_rseq kdb2_bt_rseq /* XXX kludge */ -__BEGIN_DECLS -DB *dbopen __P((const char *, int, int, DBTYPE, const void *)); -int bt_rseq(const DB*, DBT *, DBT *, void **, u_int); /* XXX kludge */ -__END_DECLS - -#endif /* !_DB_H_ */ |
