diff options
155 files changed, 21522 insertions, 0 deletions
diff --git a/db/build_win32/db_test.src b/db/build_win32/db_test.src new file mode 100644 index 000000000..23760dbf2 --- /dev/null +++ b/db/build_win32/db_test.src @@ -0,0 +1,96 @@ +# Microsoft Developer Studio Project File - Name="@project_name@" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=@project_name@ - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "@project_name@.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "@project_name@.mak" CFG="@project_name@ - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "@project_name@ - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "@project_name@ - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "@project_name@ - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I "../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 Release/libdb@DB_VERSION_MAJOR@@DB_VERSION_MINOR@.lib /nologo /subsystem:console /machine:I386
+# Begin Special Build Tool
+SOURCE=$(InputPath)
+PostBuild_Desc=Copy built executable files.
+PostBuild_Cmds=copy Release\*.exe .
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "@project_name@ - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "db_recov"
+# PROP BASE Intermediate_Dir "db_recov"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /I "." /I "../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 Debug/libdb@DB_VERSION_MAJOR@@DB_VERSION_MINOR@d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /out:"Debug/dbkill.exe" /fixed:no
+# Begin Special Build Tool
+SOURCE=$(InputPath)
+PostBuild_Desc=Copy built executable files.
+PostBuild_Cmds=copy Debug\*.exe .
+# End Special Build Tool
+
+!ENDIF
+
+# Begin Target
+
+# Name "@project_name@ - Win32 Release"
+# Name "@project_name@ - Win32 Debug"
+@SOURCE_FILES@
+# End Target
+# End Project
diff --git a/db/db185/db185_int.in b/db/db185/db185_int.in new file mode 100644 index 000000000..5c7c5fd7a --- /dev/null +++ b/db/db185/db185_int.in @@ -0,0 +1,129 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1997-2001 + * Sleepycat Software. All rights reserved. + */ +/* + * Copyright (c) 1990, 1993, 1994, 1995, 1996 + * Keith Bostic. All rights reserved. + */ +/* + * 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. 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. + * + * Id: db185_int.in,v 11.9 2001/04/10 20:43:54 bostic Exp + */ + +#ifndef _DB_185_H_ +#define _DB_185_H_ + +/* 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 struct { + void *data; /* data */ + size_t size; /* data length */ +} DBT185; + +/* Access method description structure. */ +typedef struct __db185 { + DBTYPE type; /* Underlying db type. */ + int (*close) __P((struct __db185 *)); + int (*del) __P((const struct __db185 *, const DBT185 *, u_int)); + int (*get) + __P((const struct __db185 *, const DBT185 *, DBT185 *, u_int)); + int (*put) + __P((const struct __db185 *, DBT185 *, const DBT185 *, u_int)); + int (*seq) + __P((const struct __db185 *, DBT185 *, DBT185 *, u_int)); + int (*sync) __P((const struct __db185 *, u_int)); + DB *dbp; /* DB structure. Was void *internal. */ + int (*fd) __P((const struct __db185 *)); + + /* + * !!! + * The following elements added to the end of the DB 1.85 DB + * structure. + */ + DBC *dbc; /* DB cursor. */ + /* Various callback functions. */ + int (*compare) __P((const DBT *, const DBT *)); + size_t (*prefix) __P((const DBT *, const DBT *)); + u_int32_t (*hash) __P((const void *, size_t)); +} DB185; + +/* Structure used to pass parameters to the btree routines. */ +typedef struct { +#define R_DUP 0x01 /* duplicate keys */ + u_int32_t flags; + u_int32_t cachesize; /* bytes to cache */ + u_int32_t maxkeypage; /* maximum keys per page */ + u_int32_t minkeypage; /* minimum keys per page */ + u_int32_t 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; + +/* Structure used to pass parameters to the hashing routines. */ +typedef struct { + u_int32_t bsize; /* bucket size */ + u_int32_t ffactor; /* fill factor */ + u_int32_t nelem; /* number of elements */ + u_int32_t 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_int32_t flags; + u_int32_t cachesize; /* bytes to cache */ + u_int32_t 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; + diff --git a/db/dist/build/chk.code b/db/dist/build/chk.code new file mode 100644 index 000000000..e88fcff15 --- /dev/null +++ b/db/dist/build/chk.code @@ -0,0 +1,35 @@ +#!/bin/sh - +# +# Id: chk.code,v 1.1 2001/05/08 15:07:05 bostic Exp +# +# Check to make sure that the code samples in the documents build. + +# Run from the top-level directory. +[ -f db_config.h ] || { + echo 'chk.code must be run from a build directory.' + exit 1 +} + +t1=/tmp/__1 + +find ../docs_src -name '*.cs' > ${t1} + +for i in `cat ${t1}`; do + echo "$i ..." + sed -e 's/m4_include(\(.*\))/#include <\1>/g' \ + -e 's/m4_[a-z]*[(\[)]*//g' \ + -e 's/(\[//g' \ + -e '/argv/!s/])//g' \ + -e 's/dnl//g' \ + -e 's/__GT__/>/g' \ + -e 's/__LB__/[/g' \ + -e 's/__LT__/</g' \ + -e 's/__RB__/]/g' < $i > t.c + if cc -Wall -I. t.c libdb.a -o t; then + : + else + exit 1 + fi +done + +rm -f ${t1} diff --git a/db/dist/build/chk.proto b/db/dist/build/chk.proto new file mode 100755 index 000000000..8ebfae809 --- /dev/null +++ b/db/dist/build/chk.proto @@ -0,0 +1,30 @@ +#!/bin/sh - +# +# Id: chk.proto,v 1.3 2001/05/05 14:48:11 bostic Exp +# +# Check to make sure that prototypes are actually needed. + +# Run from the top-level directory. +[ -f db_config.h ] && cd .. + +t1=/tmp/__1 + +egrep '__P' include_auto/*.h | + sed -e 's/[ ][ ]*__P.*//' \ + -e 's/^.*[ *]//' \ + -e '/__db_cprint/d' \ + -e '/__db_lprint/d' \ + -e '/__db_noop_log/d' \ + -e '/__db_prnpage/d' \ + -e '/__db_txnlist_print/d' \ + -e '/__ham_func2/d' \ + -e '/__ham_func3/d' \ + -e '/_print$/d' \ + -e '/_read$/d' > ${t1} + +for i in `cat ${t1}`; do + c=`egrep -low $i include/*.in include/*.h */*.c */*.cpp | wc -l` + echo "$i: $c" +done | egrep ' 1$' + +rm -f ${t1} diff --git a/db/dist/build/chk.str b/db/dist/build/chk.str new file mode 100644 index 000000000..f4a3129a6 --- /dev/null +++ b/db/dist/build/chk.str @@ -0,0 +1,22 @@ +# This sed script can be used to check spelling in quoted strings: +# +# sed -f /tmp/f/i */*.c */*.cpp | tee /tmp/_f | spell > /tmp/f/spell.out + + +#!/bin/sh - +# +# Id: chk.str,v 1.1 2001/05/05 14:48:42 bostic Exp +# +# Check spelling in quoted strings. + +# Run from the top-level directory. +[ -f db_config.h ] && cd .. + +sed -e '/^#include/d' \ + -e '/revid/d' \ + -e '/"/!d' \ + -e 's/^[^"]*//' \ + -e 's/%s/ /g' \ + -e 's/[^"]*$//' \ + -e 's/\\[nt]/ /g' */*.c */*.cpp | \ + tee /tmp/chk.str.orig | spell > /tmp/chk.str diff --git a/db/dist/db.ecd.in b/db/dist/db.ecd.in new file mode 100644 index 000000000..60bbf3ec3 --- /dev/null +++ b/db/dist/db.ecd.in @@ -0,0 +1,64 @@ +# Embedix Componenet Description (ECD) file for BerkeleyDB. +# +# Id: db.ecd.in,v 11.1 2001/04/04 14:06:13 bostic Exp + +<GROUP System> +<GROUP Library> +<COMPONENT BerkeleyDB> + SRPM=db + <SPECPATCH></SPECPATCH> + <HELP> + Berkeley DB is Sleepycat Software's programmatic database toolkit. + </HELP> + + TYPE=bool + DEFAULT_VALUE=1 + PROMPT=Include BerkeleyDB library? + <KEEPLIST> + /usr/lib/libdb-@DB_VERSION_MAJOR@.@DB_VERSION_MINOR@.so + /usr/include/db.h + /usr/lib/libdb.so + </KEEPLIST> + <PROVIDES> + libdb-@DB_VERSION_MAJOR@.@DB_VERSION_MINOR@.so + </PROVIDES> + <REQUIRES> + ld-linux.so.2 + libc.so.6 + </REQUIRES> + STATIC_SIZE=0 + STARTUP_TIME=0 + + @EMBEDIX_ECD_CXX@ + + <OPTION db-extra> + TYPE=bool + DEFAULT_VALUE=1 + PROMPT=Include BerkeleyDB Utilities? + <KEEPLIST> + /usr/bin/db_archive + /usr/bin/db_checkpoint + /usr/bin/db_deadlock + /usr/bin/db_dump + /usr/bin/db_load + /usr/bin/db_printlog + /usr/bin/db_recover + /usr/bin/db_stat + /usr/bin/db_upgrade + /usr/bin/db_verify + @EMBEDIX_ECD_RPC@ + </KEEPLIST> + <REQUIRES> + libdb-@DB_VERSION_MAJOR@.@DB_VERSION_MINOR@.so + ld-linux.so.2 + libc.so.6 + libdl.so.2 + libm.so.6 + </REQUIRES> + STATIC_SIZE=0 + STARTUP_TIME=0 + </OPTION> + +</COMPONENT> +</GROUP> +</GROUP> diff --git a/db/dist/db.spec.in b/db/dist/db.spec.in new file mode 100644 index 000000000..a5f522c2b --- /dev/null +++ b/db/dist/db.spec.in @@ -0,0 +1,52 @@ +# Berkeley DB @DB_VERSION_MAJOR@.@DB_VERSION_MINOR@.@DB_VERSION_PATCH@ + +Summary: Sleepycat Berkeley DB database library +Name: db +Version: @DB_VERSION_MAJOR@.@DB_VERSION_MINOR@.@DB_VERSION_PATCH@ +Release: 1 +Copyright: Freely redistributable, see LICENSE for details. +Source: http://www.sleepycat.com/update/@DB_VERSION_MAJOR@.@DB_VERSION_MINOR@.@DB_VERSION_PATCH@/db-@DB_VERSION_MAJOR@.@DB_VERSION_MINOR@.@DB_VERSION_PATCH@.tar.gz +URL: http://www.sleepycat.com +Group: System Environment/Libraries +BuildRoot: @CONFIGURATION_PATH@/RPM_INSTALL + +%description +Berkeley DB is a programmatic toolkit that provides fast, reliable, +mission-critical, and scalable built-in database support for software +ranging from embedded applications running on hand-held appliances to +enterprise-scale servers. + +The Berkeley DB access methods include B+tree, Extended Linear Hashing, +Fixed and Variable-length records, and Persistent Queues. Berkeley DB +provides full transactional support, database recovery, online backups, +and separate access to locking, logging and shared memory caching +subsystems. + +Berkeley DB supports C, C++, Java, Tcl, Perl, and Python APIs. The +software is available for Linux, a wide variety of UNIX platforms, +Windows 95/98, Windows/NT, Windows 2000, VxWorks and QNX. + +%prep +%setup + +%build +cd build_unix +CFLAGS="$RPM_OPT_FLAGS" ../dist/configure @CONFIGURATION_ARGS@ +make library_build + +%install +cd build_unix +make prefix=@CONFIGURATION_PATH@/RPM_INSTALL@EMBEDIX_ROOT@ install + +@RPM_POST_INSTALL@ + +@RPM_POST_UNINSTALL@ + +%files +%defattr(-,root,root) +%dir @EMBEDIX_ROOT@/bin +%dir @EMBEDIX_ROOT@/docs +%dir @EMBEDIX_ROOT@/include +%dir @EMBEDIX_ROOT@/lib + +%changelog diff --git a/db/dist/gen_inc.awk b/db/dist/gen_inc.awk new file mode 100644 index 000000000..f308af484 --- /dev/null +++ b/db/dist/gen_inc.awk @@ -0,0 +1,77 @@ +# This awk script parses C input files looking for lines marked "PUBLIC:" +# and "EXTERN:". (PUBLIC lines are DB internal function prototypes and +# #defines, EXTERN are DB external function prototypes and #defines.) The +# PUBLIC lines are put into two versions of per-directory include files: +# one version for normal use, and one version to be post-processed based +# on creating unique file names for every global symbol in the DB library. +# The EXTERN lines are put into two versions of the db.h file, again, one +# version for normal use, and one version to be post-processed for unique +# naming. +/PUBLIC:/ { + sub("^.*PUBLIC:[ ][ ]*", "") + if ($0 ~ "^#if|^#endif") { + print $0 >> inc_file + print $0 >> uinc_file + next + } + if ($0 ~ "^#define.*[(]") { + print $0 >> inc_file + def = gensub("[(]", "@DB_VERSION_UNIQUE_NAME@(", 2) + print def >> uinc_file + next + } + if ($0 ~ "^#define") { + print $0 >> inc_file + sub("[ ]*$", "@DB_VERSION_UNIQUE_NAME@") + print $0 >> uinc_file + next + } + pline = sprintf("%s %s", pline, $0) + if (pline ~ "));") { + sub("^[ ]*", "", pline) + print pline >> inc_file + if (pline ~ db_version_unique_name) + print pline >> uinc_file; + else { + def = gensub("[ ][ ]*__P.*", "", 1, pline) + sub("^.*[ ][*]*", "", def) + printf("#define %s %s@DB_VERSION_UNIQUE_NAME@\n%s\n", + def, def, pline) >> uinc_file + } + pline = "" + } +} +/EXTERN:/ { + sub("^.*EXTERN:[ ][ ]*", "") + if ($0 ~ "^#if|^#endif") { + print $0 >> ext_file + print $0 >> uext_file + next + } + if ($0 ~ "^#define.*[(]") { + print $0 >> ext_file + def = gensub("[(]", "@DB_VERSION_UNIQUE_NAME@(", 2) + print def >> uext_file + next + } + if ($0 ~ "^#define") { + print $0 >> ext_file + sub("[ ]*$", "@DB_VERSION_UNIQUE_NAME@") + print $0 >> uext_file + next + } + eline = sprintf("%s %s", eline, $0) + if (eline ~ "));") { + sub("^[ ]*", "", eline) + print eline >> ext_file + if (pline ~ db_version_unique_name) + print pline >> uext_file; + else { + def = gensub("[ ][ ]*__P.*", "", 1, eline) + sub("^.*[ ][*]*", "", def) + printf("#define %s %s@DB_VERSION_UNIQUE_NAME@\n%s\n", + def, def, eline) >> uext_file + } + eline = "" + } +} diff --git a/db/dist/tags b/db/dist/tags new file mode 100644 index 000000000..b6fe89e6d --- /dev/null +++ b/db/dist/tags @@ -0,0 +1,3061 @@ +ACQUIRE ../btree/bt_cursor.c /^#define ACQUIRE(dbc, mode, lpgno, lock, fpgno, pag/ +ACQUIRE_CUR ../btree/bt_cursor.c /^#define ACQUIRE_CUR(dbc, mode, ret) { \\$/ +ACQUIRE_CUR_SET ../btree/bt_cursor.c /^#define ACQUIRE_CUR_SET(dbc, mode, p, ret) { \\/ +ACQUIRE_WRITE_LOCK ../btree/bt_cursor.c /^#define ACQUIRE_WRITE_LOCK(dbc, ret) { \\$/ +ACTION ../include/db.in /^} ACTION;$/ +ACTIVATE_CTP ../include/db_server_int.h /^#define ACTIVATE_CTP(ctp, id, type) { \\$/ +ALIGN ../include/db_int.in /^#define ALIGN(value, bound) \\$/ +ALIGNP ../include/db_int.in /^#define ALIGNP(value, bound) ALIGN((db_alignp_t)va/ +APPNAME ../include/db_int.in /^} APPNAME;$/ +BACKUP_PREFIX ../db/db.c /^#define BACKUP_PREFIX "__db."$/ +BADARG ../clib/getopt.c /^#define BADARG (int)':'$/ +BADCH ../clib/getopt.c /^#define BADCH (int)'?'$/ +BAD_KILLID ../lock/lock_deadlock.c /^#define BAD_KILLID 0xffffffff$/ +BFMSG ../db185/db185.c /^#define BFMSG "DB: DB 1.85's recno bfname field is/ +BH ../include/mp.h /^struct __bh; typedef struct __bh BH;$/ +BH_CALLPGIN ../include/mp.h /^#define BH_CALLPGIN 0x001 \/* Page needs to be re/ +BH_DIRTY ../include/mp.h /^#define BH_DIRTY 0x002 \/* Page was modified. *\// +BH_DISCARD ../include/mp.h /^#define BH_DISCARD 0x004 \/* Page is useless. *\// +BH_LOCKED ../include/mp.h /^#define BH_LOCKED 0x008 \/* Page is locked (I\/O / +BH_SYNC ../include/mp.h /^#define BH_SYNC 0x010 \/* memp sync: write the p/ +BH_SYNC_LOGFLSH ../include/mp.h /^#define BH_SYNC_LOGFLSH 0x020 \/* memp sync: also/ +BH_TO_CACHE ../include/mp.h /^#define BH_TO_CACHE(dbmp, bhp) \\$/ +BH_TRASH ../include/mp.h /^#define BH_TRASH 0x040 \/* Page is garbage. *\/$/ +BINTERNAL ../include/db_page.h /^} BINTERNAL;$/ +BINTERNAL_PSIZE ../include/db_page.h /^#define BINTERNAL_PSIZE(len) \\$/ +BINTERNAL_SIZE ../include/db_page.h /^#define BINTERNAL_SIZE(len) \\$/ +BI_DELETED ../include/btree.h /^#define BI_DELETED 0x01 \/* Key\/data pair only p/ +BKEYDATA ../include/db_page.h /^} BKEYDATA;$/ +BKEYDATA_PSIZE ../include/db_page.h /^#define BKEYDATA_PSIZE(len) \\$/ +BKEYDATA_SIZE ../include/db_page.h /^#define BKEYDATA_SIZE(len) \\$/ +BOVERFLOW ../include/db_page.h /^} BOVERFLOW;$/ +BOVERFLOW_PSIZE ../include/db_page.h /^#define BOVERFLOW_PSIZE \\$/ +BOVERFLOW_SIZE ../include/db_page.h /^#define BOVERFLOW_SIZE \\$/ +BS_TO_PAGE ../include/hash.h /^#define BS_TO_PAGE(bucket, spares) \\$/ +BTMETA ../include/db_page.h /^} BTMETA31, BTMETA;$/ +BTMETA2X ../include/db_upgrade.h /^} BTMETA2X;$/ +BTMETA30 ../include/db_upgrade.h /^} BTMETA30;$/ +BTM_DUP ../include/db_page.h /^#define BTM_DUP 0x001 \/* Duplicates. *\/$/ +BTM_DUPSORT ../include/db_page.h /^#define BTM_DUPSORT 0x040 \/* Duplicates are sor/ +BTM_FIXEDLEN ../include/db_page.h /^#define BTM_FIXEDLEN 0x008 \/* Recno: fixed leng/ +BTM_MASK ../include/db_page.h /^#define BTM_MASK 0x07f$/ +BTM_RECNO ../include/db_page.h /^#define BTM_RECNO 0x002 \/* Recno tree. *\/$/ +BTM_RECNUM ../include/db_page.h /^#define BTM_RECNUM 0x004 \/* Btree: maintain rec/ +BTM_RENUMBER ../include/db_page.h /^#define BTM_RENUMBER 0x010 \/* Recno: renumber o/ +BTM_SUBDB ../include/db_page.h /^#define BTM_SUBDB 0x020 \/* Subdatabases. *\/$/ +BTREE ../include/btree.h /^struct __btree; typedef struct __btree BTREE;$/ +BTREEINFO ../include/db_185.in /^} BTREEINFO;$/ +BTREEMAGIC ../include/db_185.in /^#define BTREEMAGIC 0x053162$/ +BTREEVERSION ../include/db_185.in /^#define BTREEVERSION 3$/ +BTREE_CURSOR ../include/btree.h /^struct __cursor; typedef struct __cursor BTREE_CUR/ +BT_STK_CLR ../include/btree.h /^#define BT_STK_CLR(c) do { \\$/ +BT_STK_ENTER ../include/btree.h /^#define BT_STK_ENTER(dbenv, c, pagep, page_indx, l/ +BT_STK_NUM ../include/btree.h /^#define BT_STK_NUM(dbenv, c, pagep, page_indx, ret/ +BT_STK_NUMPUSH ../include/btree.h /^#define BT_STK_NUMPUSH(dbenv, c, pagep, page_indx,/ +BT_STK_POP ../include/btree.h /^#define BT_STK_POP(c) \\$/ +BT_STK_PUSH ../include/btree.h /^#define BT_STK_PUSH(dbenv, c, pagep, page_indx, lo/ +BUCKET_INVALID ../include/hash.h /^#define BUCKET_INVALID 0xFFFFFFFF$/ +BUCKET_TO_PAGE ../include/hash.h /^#define BUCKET_TO_PAGE(I, B) (BS_TO_PAGE((B), (I)-/ +B_DCLR ../include/db_page.h /^#define B_DCLR(t) (t) &= ~B_DELETE$/ +B_DELETE ../include/db_page.h /^#define B_DELETE (0x80)$/ +B_DISSET ../include/db_page.h /^#define B_DISSET(t) ((t) & B_DELETE)$/ +B_DSET ../include/db_page.h /^#define B_DSET(t) (t) |= B_DELETE$/ +B_DUPLICATE ../include/db_page.h /^#define B_DUPLICATE 2 \/* Duplicate key\/data item/ +B_KEYDATA ../include/db_page.h /^#define B_KEYDATA 1 \/* Key\/data item. *\/$/ +B_MAX ../include/btree.h /^#define B_MAX(a,b) (((a) > (b)) ? (a) : (b))$/ +B_MAXSIZEONPAGE ../include/btree.h /^#define B_MAXSIZEONPAGE(ovflsize) \\$/ +B_MINKEY_TO_OVFLSIZE ../include/btree.h /^#define B_MINKEY_TO_OVFLSIZE(minkey, pgsize) \\/ +B_OVERFLOW ../include/db_page.h /^#define B_OVERFLOW 3 \/* Overflow key\/data item. / +B_TSET ../include/db_page.h /^#define B_TSET(t, type, deleted) { \\$/ +B_TYPE ../include/db_page.h /^#define B_TYPE(t) ((t) & ~B_DELETE)$/ +C ../include/db_cxx.h /^\/\/ we allow you to declare the callbacks in C++ / +CAD_UPDATEROOT ../include/btree.h /^#define CAD_UPDATEROOT 0x01 \/* Root page count w/ +CALC_QAM_RECNO_PER_PAGE ../include/qam.h /^#define CALC_QAM_RECNO_PER_PAGE(dbp) \\$/ +CDB_LOCKING ../include/db_int.in /^#define CDB_LOCKING(dbenv) F_ISSET(dbenv, DB_ENV_C/ +CDB_LOCKING_COPY ../db/db_cam.c /^#define CDB_LOCKING_COPY(dbp, dbc_o, dbc_n) \\$/ +CDB_LOCKING_DONE ../db/db_cam.c /^#define CDB_LOCKING_DONE(dbp, dbc) \\$/ +CDB_LOCKING_INIT ../db/db_cam.c /^#define CDB_LOCKING_INIT(dbp, dbc) \\$/ +CD_CLR ../btree/bt_recno.c /^#define CD_CLR(cp) { \\$/ +CD_ISSET ../btree/bt_recno.c /^#define CD_ISSET(cp) \\$/ +CD_SET ../btree/bt_recno.c /^#define CD_SET(cp) { \\$/ +CHARKEY ../include/hash.h /^#define CHARKEY "%$sniglet^&"$/ +CHECK_LSN ../include/log.h /^#define CHECK_LSN(redo, cmp, lsn, prev) \\$/ +CIRCLEQ_ENTRY ../include/queue.h /^#define CIRCLEQ_ENTRY(type) \\$/ +CIRCLEQ_FIRST ../include/queue.h /^#define CIRCLEQ_FIRST(head) ((head)->cqh_first)$/ +CIRCLEQ_HEAD ../include/queue.h /^#define CIRCLEQ_HEAD(name, type) \\$/ +CIRCLEQ_INIT ../include/queue.h /^#define CIRCLEQ_INIT(head) do { \\$/ +CIRCLEQ_INSERT_AFTER ../include/queue.h /^#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, f/ +CIRCLEQ_INSERT_BEFORE ../include/queue.h /^#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, / +CIRCLEQ_INSERT_HEAD ../include/queue.h /^#define CIRCLEQ_INSERT_HEAD(head, elm, field) do {/ +CIRCLEQ_INSERT_TAIL ../include/queue.h /^#define CIRCLEQ_INSERT_TAIL(head, elm, field) do {/ +CIRCLEQ_LAST ../include/queue.h /^#define CIRCLEQ_LAST(head) ((head)->cqh_last)$/ +CIRCLEQ_NEXT ../include/queue.h /^#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe/ +CIRCLEQ_PREV ../include/queue.h /^#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe/ +CIRCLEQ_REMOVE ../include/queue.h /^#define CIRCLEQ_REMOVE(head, elm, field) do { / +CLEAR_BYTE ../include/debug.h /^#define CLEAR_BYTE 0xdb$/ +CLEAR_MAP ../lock/lock_deadlock.c /^#define CLEAR_MAP(M, N) { \\$/ +CLR_MAP ../lock/lock_deadlock.c /^#define CLR_MAP(M, B) ((M)[(B) \/ 32] &= ~(1 << ((/ +COMPQUIET ../include/db_int.in /^#define COMPQUIET(n, v) (n) = (v)$/ +CONFIG_NAME ../env/env_open.c /^#define CONFIG_NAME "\/DB_CONFIG"$/ +CONFLICTS ../include/lock.h /^#define CONFLICTS(T, R, HELD, WANTED) \\$/ +COPY_RET_MEM ../include/db_int.in /^#define COPY_RET_MEM(src, dest) \\$/ +CT_CURSOR ../include/db_server_int.h /^#define CT_CURSOR 0x001 \/* Cursor *\/$/ +CT_DB ../include/db_server_int.h /^#define CT_DB 0x002 \/* Database *\/$/ +CT_ENV ../include/db_server_int.h /^#define CT_ENV 0x004 \/* Env *\/$/ +CT_JOIN ../include/db_server_int.h /^#define CT_JOIN 0x10000000 \/* Join cursor compon/ +CT_JOINCUR ../include/db_server_int.h /^#define CT_JOINCUR 0x20000000 \/* Join cursor *\/$/ +CT_TXN ../include/db_server_int.h /^#define CT_TXN 0x008 \/* Txn *\/$/ +CURADJ_LOG ../btree/bt_recno.c /^#define CURADJ_LOG(dbc) \\$/ +C_DELETED ../include/btree.h /^#define C_DELETED 0x0001 \/* Record was deleted. / +C_EQUAL ../btree/bt_recno.c /^#define C_EQUAL(cp1, cp2) \\$/ +C_LESSTHAN ../btree/bt_recno.c /^#define C_LESSTHAN(cp1, cp2) \\$/ +C_RECNUM ../include/btree.h /^#define C_RECNUM 0x0002 \/* Tree requires record / +C_RENUMBER ../include/btree.h /^#define C_RENUMBER 0x0004 \/* Tree records are mu/ +DATA_INIT_CNT ../env/env_method.c /^#define DATA_INIT_CNT 20 \/* Start with 20 data / +DB ../include/db.in /^struct __db; typedef struct __db DB;$/ +DBC ../include/db.in /^struct __dbc; typedef struct __dbc DBC;$/ +DBC_ACTIVE ../include/db.in /^#define DBC_ACTIVE 0x001 \/* Cursor is being used/ +DBC_COMPENSATE ../include/db.in /^#define DBC_COMPENSATE 0x002 \/* Cursor is doing / +DBC_DIRTY_READ ../include/db.in /^#define DBC_DIRTY_READ 0x004 \/* Cursor is suppor/ +DBC_INTERNAL ../include/db.in /^struct __dbc_internal; typedef struct __dbc_intern/ +DBC_MULTIPLE ../include/db.in /^#define DBC_MULTIPLE 0x400 \/* Return Multiple da/ +DBC_MULTIPLE_KEY ../include/db.in /^#define DBC_MULTIPLE_KEY 0x800 \/* Return Multipl/ +DBC_OPD ../include/db.in /^#define DBC_OPD 0x008 \/* Cursor references off-/ +DBC_RECOVER ../include/db.in /^#define DBC_RECOVER 0x010 \/* Cursor created by / +DBC_RMW ../include/db.in /^#define DBC_RMW 0x020 \/* Acquire write flag in / +DBC_TRANSIENT ../include/db.in /^#define DBC_TRANSIENT 0x040 \/* Cursor is transie/ +DBC_WRITECURSOR ../include/db.in /^#define DBC_WRITECURSOR 0x080 \/* Cursor may be u/ +DBC_WRITEDUP ../include/db.in /^#define DBC_WRITEDUP 0x100 \/* idup'ed DBC_WRITEC/ +DBC_WRITER ../include/db.in /^#define DBC_WRITER 0x200 \/* Cursor immediately w/ +DBLOG_FORCE_OPEN ../include/log.h /^#define DBLOG_FORCE_OPEN 0x02 \/* Force the db ope/ +DBLOG_RECOVER ../include/log.h /^#define DBLOG_RECOVER 0x01 \/* We are in recovery/ +DBM ../include/db.in /^typedef struct __db DBM;$/ +DBMETA ../include/db_page.h /^} DBMETA31, DBMETA;$/ +DBMETA30 ../include/db_upgrade.h /^} DBMETA30;$/ +DBMETASIZE ../include/db_page.h /^#define DBMETASIZE 256$/ +DBM_INSERT ../include/db.in /^#define DBM_INSERT 0 \/* Flags to dbm_store(). */ +DBM_REPLACE ../include/db.in /^#define DBM_REPLACE 1$/ +DBM_SUFFIX ../include/db.in /^#define DBM_SUFFIX ".db"$/ +DBT ../include/db_cxx.h /^ (DB *, const DBT *, const DBT *);$/ +DBTBUFLEN ../db/db_pr.c /^#define DBTBUFLEN 100$/ +DBTCL_DBM ../include/tcl_db.h /^#define DBTCL_DBM 1$/ +DBTCL_INFO ../include/tcl_db.h /^} DBTCL_INFO;$/ +DBTCL_NDBM ../include/tcl_db.h /^#define DBTCL_NDBM 2$/ +DBTCL_PREP ../include/tcl_db.h /^#define DBTCL_PREP 64 \/* Size of txn_recover prep/ +DBTYPE ../include/db.in /^} DBTYPE;$/ +DBT_JAVAINFO ../libdb_java/java_info.h /^DBT_JAVAINFO; \/* used with all 'dbtji' functions/ +DB_ADDSTR ../env/env_open.c /^#define DB_ADDSTR(add) { \\$/ +DB_ADD_BIG ../include/db_am.h /^#define DB_ADD_BIG 0x30$/ +DB_ADD_DUP ../include/db_am.h /^#define DB_ADD_DUP 0x10$/ +DB_ADD_PAGE ../include/db_am.h /^#define DB_ADD_PAGE 0x70$/ +DB_AFTER ../include/db.in /^#define DB_AFTER 1 \/* c_put() *\/$/ +DB_AGGRESSIVE ../include/db.in /^#define DB_AGGRESSIVE 0x0001 \/* Salvage an/ +DB_ALREADY_ABORTED ../include/db.in /^#define DB_ALREADY_ABORTED (-30899)$/ +DB_AM_DIRTY ../include/db.in /^#define DB_AM_DIRTY 0x000001 \/* Support Dirty Rea/ +DB_AM_DISCARD ../include/db.in /^#define DB_AM_DISCARD 0x000002 \/* Discard any cac/ +DB_AM_DUP ../include/db.in /^#define DB_AM_DUP 0x000004 \/* DB_DUP. *\/$/ +DB_AM_DUPSORT ../include/db.in /^#define DB_AM_DUPSORT 0x000008 \/* DB_DUPSORT. *\// +DB_AM_INMEM ../include/db.in /^#define DB_AM_INMEM 0x000010 \/* In-memory; no syn/ +DB_AM_PGDEF ../include/db.in /^#define DB_AM_PGDEF 0x000020 \/* Page size was def/ +DB_AM_RDONLY ../include/db.in /^#define DB_AM_RDONLY 0x000040 \/* Database is read/ +DB_AM_RECOVER ../include/db.in /^#define DB_AM_RECOVER 0x000080 \/* DBP opened by r/ +DB_AM_SECONDARY ../include/db.in /^#define DB_AM_SECONDARY 0x000100 \/* Database is a/ +DB_AM_SUBDB ../include/db.in /^#define DB_AM_SUBDB 0x000200 \/* Subdatabases supp/ +DB_AM_SWAP ../include/db.in /^#define DB_AM_SWAP 0x000400 \/* Pages need to be b/ +DB_AM_TXN ../include/db.in /^#define DB_AM_TXN 0x000800 \/* DBP was in a transa/ +DB_AM_VERIFYING ../include/db.in /^#define DB_AM_VERIFYING 0x001000 \/* DB handle is / +DB_APPEND ../include/db.in /^#define DB_APPEND 2 \/* put() *\/$/ +DB_ARCH_ABS ../include/db.in /^#define DB_ARCH_ABS 0x001 \/* Absolute pathnames./ +DB_ARCH_DATA ../include/db.in /^#define DB_ARCH_DATA 0x002 \/* Data files. *\/$/ +DB_ARCH_LOG ../include/db.in /^#define DB_ARCH_LOG 0x004 \/* Log files. *\/$/ +DB_ASSERT ../include/debug.h /^#define DB_ASSERT(e) ((e) ? (void)0 : __db_assert(/ +DB_BEFORE ../include/db.in /^#define DB_BEFORE 3 \/* c_put() *\/$/ +DB_BEGIN_SINGLE_THREAD ../include/mutex.h /^#define DB_BEGIN_SINGLE_THREAD$/ +DB_BTREEMAGIC ../include/db.in /^#define DB_BTREEMAGIC 0x053162$/ +DB_BTREEOLDVER ../include/db.in /^#define DB_BTREEOLDVER 6 \/* Oldest btree version/ +DB_BTREEVERSION ../include/db.in /^#define DB_BTREEVERSION 8 \/* Current btree versi/ +DB_BTREE_STAT ../include/db.in /^struct __db_bt_stat; typedef struct __db_bt_stat D/ +DB_BT_RECNUM ../include/db.in /^#define DB_BT_RECNUM 0x002000 \/* DB_RECNUM. *\/$/ +DB_BT_REVSPLIT ../include/db.in /^#define DB_BT_REVSPLIT 0x004000 \/* DB_REVSPLITOFF/ +DB_CACHED_COUNTS ../include/db.in /^#define DB_CACHED_COUNTS 4 \/* stat() *\/$/ +DB_CACHESIZE_MIN ../include/mp.h /^#define DB_CACHESIZE_MIN (40 * 1024)$/ +DB_CDB_ALLDB ../include/db.in /^#define DB_CDB_ALLDB 0x000400 \/* In CDB, lo/ +DB_CHECKPOINT ../include/db.in /^#define DB_CHECKPOINT 5 \/* log_put(), log_get()/ +DB_CHECK_TXN ../include/db_am.h /^#define DB_CHECK_TXN(dbp, txn) \\$/ +DB_CLIENT ../include/db.in /^#define DB_CLIENT 0x000400 \/* Open for a cl/ +DB_COMMIT ../include/db.in /^#define DB_COMMIT 6 \/* log_put() (internal) *\// +DB_CONSUME ../include/db.in /^#define DB_CONSUME 7 \/* get() *\/$/ +DB_CONSUME_WAIT ../include/db.in /^#define DB_CONSUME_WAIT 8 \/* get() *\/$/ +DB_CREATE ../include/db.in /^#define DB_CREATE 0x000001 \/* Create file a/ +DB_CURLSN ../include/db.in /^#define DB_CURLSN 9 \/* log_put() *\/$/ +DB_CURRENT ../include/db.in /^#define DB_CURRENT 10 \/* c_get(), c_put(), log_g/ +DB_CXX_NO_EXCEPTIONS ../include/db.in /^#define DB_CXX_NO_EXCEPTIONS 0x000002 \/* C++: re/ +DB_CXX_PRIVATE_ENV ../include/cxx_int.h /^#define DB_CXX_PRIVATE_ENV 0x00000001$/ +DB_DBM_ERROR ../include/db.in /^#define DB_DBM_ERROR 0x008000 \/* Error in DBM\/ND/ +DB_DBM_HSEARCH ../include/db.in /^#define DB_DBM_HSEARCH 0 \/* No historic interfac/ +DB_DBT_APPMALLOC ../include/db.in /^#define DB_DBT_APPMALLOC 0x001 \/* Callback alloca/ +DB_DBT_DUPOK ../include/db.in /^#define DB_DBT_DUPOK 0x040 \/* Insert if duplicat/ +DB_DBT_ISSET ../include/db.in /^#define DB_DBT_ISSET 0x002 \/* Lower level calls / +DB_DBT_MALLOC ../include/db.in /^#define DB_DBT_MALLOC 0x004 \/* Return in malloc'/ +DB_DBT_PARTIAL ../include/db.in /^#define DB_DBT_PARTIAL 0x008 \/* Partial put\/get/ +DB_DBT_REALLOC ../include/db.in /^#define DB_DBT_REALLOC 0x010 \/* Return in reallo/ +DB_DBT_USERMEM ../include/db.in /^#define DB_DBT_USERMEM 0x020 \/* Return in user's/ +DB_DEF_IOSIZE ../include/db_int.in /^#define DB_DEF_IOSIZE (8 * 1024)$/ +DB_DELETED ../include/db.in /^#define DB_DELETED (-30898)\/* Recovery file mark/ +DB_DIRTY_READ ../include/db.in /^#define DB_DIRTY_READ 0x10000000 \/* Support Dirty/ +DB_DONOTINDEX ../include/db.in /^#define DB_DONOTINDEX (-30999)\/* "Null" return f/ +DB_DUP ../include/db.in /^#define DB_DUP 0x0001 \/* Btree, Hash: duplicate/ +DB_DUPSORT ../include/db.in /^#define DB_DUPSORT 0x0002 \/* Btree, Hash: duplic/ +DB_END_SINGLE_THREAD ../include/mutex.h /^#define DB_END_SINGLE_THREAD$/ +DB_ENTRY ../include/log.h /^} DB_ENTRY;$/ +DB_ENV ../include/db.in /^struct __db_env; typedef struct __db_env DB_ENV;$/ +DB_ENV_CDB ../include/db.in /^#define DB_ENV_CDB 0x00001 \/* DB_INIT_CDB. *\/$/ +DB_ENV_CDB_ALLDB ../include/db.in /^#define DB_ENV_CDB_ALLDB 0x00002 \/* CDB environme/ +DB_ENV_CREATE ../include/db.in /^#define DB_ENV_CREATE 0x00004 \/* DB_CREATE set. / +DB_ENV_DBLOCAL ../include/db.in /^#define DB_ENV_DBLOCAL 0x00008 \/* DB_ENV allocat/ +DB_ENV_JAVAINFO ../libdb_java/java_info.h /^DB_ENV_JAVAINFO; \/* used with all 'dbjie' functi/ +DB_ENV_LOCKDOWN ../include/db.in /^#define DB_ENV_LOCKDOWN 0x00010 \/* DB_LOCKDOWN s/ +DB_ENV_NOMMAP ../include/db.in /^#define DB_ENV_NOMMAP 0x00020 \/* DB_NOMMAP set. / +DB_ENV_OPEN_CALLED ../include/db.in /^#define DB_ENV_OPEN_CALLED 0x00040 \/* DBENV->open/ +DB_ENV_PANIC_OK ../include/db.in /^#define DB_ENV_PANIC_OK 0x00080 \/* Removing env,/ +DB_ENV_PRIVATE ../include/db.in /^#define DB_ENV_PRIVATE 0x00100 \/* DB_PRIVATE set/ +DB_ENV_RPCCLIENT ../include/db.in /^#define DB_ENV_RPCCLIENT 0x00200 \/* DB_CLIENT set/ +DB_ENV_RPCCLIENT_GIVEN ../include/db.in /^#define DB_ENV_RPCCLIENT_GIVEN 0x00400 \/* User-su/ +DB_ENV_STANDALONE ../include/db.in /^#define DB_ENV_STANDALONE 0x00800 \/* Test: freest/ +DB_ENV_SYSTEM_MEM ../include/db.in /^#define DB_ENV_SYSTEM_MEM 0x01000 \/* DB_SYSTEM_ME/ +DB_ENV_THREAD ../include/db.in /^#define DB_ENV_THREAD 0x02000 \/* DB_THREAD set. / +DB_ENV_TXN_NOSYNC ../include/db.in /^#define DB_ENV_TXN_NOSYNC 0x04000 \/* DB_TXN_NOSYN/ +DB_ENV_USER_ALLOC ../include/db.in /^#define DB_ENV_USER_ALLOC 0x08000 \/* User allocat/ +DB_EXCL ../include/db.in /^#define DB_EXCL 0x000400 \/* Exclusive open/ +DB_EXTENT ../include/db.in /^#define DB_EXTENT 0x008000 \/* UNDOC: deali/ +DB_FAST_STAT ../include/db.in /^#define DB_FAST_STAT 11 \/* stat() *\/$/ +DB_FCNTL_LOCKING ../include/db.in /^#define DB_FCNTL_LOCKING 0x000800 \/* UNDOC: / +DB_FCNTL_OFF_GEN ../include/mutex.h /^#define DB_FCNTL_OFF_GEN 0 \/* Everything else. */ +DB_FCNTL_OFF_LOCK ../include/mutex.h /^#define DB_FCNTL_OFF_LOCK 1 \/* Lock subsystem of/ +DB_FCNTL_OFF_MPOOL ../include/mutex.h /^#define DB_FCNTL_OFF_MPOOL 2 \/* Mpool subsystem / +DB_FH ../include/db.in /^struct __fh_t; typedef struct __fh_t DB_FH;$/ +DB_FH_NOSYNC ../include/os.h /^#define DB_FH_NOSYNC 0x01 \/* Handle doesn't need/ +DB_FH_VALID ../include/os.h /^#define DB_FH_VALID 0x02 \/* Handle is valid. *\// +DB_FILE_ID_LEN ../include/db.in /^#define DB_FILE_ID_LEN 20 \/* DB file ID length. / +DB_FILE_SETUP_CREATE ../db/db.c /^#define DB_FILE_SETUP_CREATE 0x01$/ +DB_FILE_SETUP_ZERO ../db/db.c /^#define DB_FILE_SETUP_ZERO 0x02$/ +DB_FIRST ../include/db.in /^#define DB_FIRST 12 \/* c_get(), log_get() *\/$/ +DB_FLUSH ../include/db.in /^#define DB_FLUSH 13 \/* log_put() *\/$/ +DB_FORCE ../include/db.in /^#define DB_FORCE 0x000004 \/* Force (anythin/ +DB_FTYPE_NOTSET ../include/db_int.in /^#define DB_FTYPE_NOTSET 0 \/* Don't call... *\/$/ +DB_FTYPE_SET ../include/db_int.in /^#define DB_FTYPE_SET -1 \/* Call pgin\/pgout func/ +DB_GET_BOTH ../include/db.in /^#define DB_GET_BOTH 14 \/* get(), c_get() *\/$/ +DB_GET_BOTHC ../include/db.in /^#define DB_GET_BOTHC 15 \/* c_get() (internal) */ +DB_GET_RECNO ../include/db.in /^#define DB_GET_RECNO 16 \/* c_get() *\/$/ +DB_GLOBAL ../include/db_int.in /^#define DB_GLOBAL(v) __db_global_values.v$/ +DB_GLOBALS ../include/db_int.in /^} DB_GLOBALS;$/ +DB_GROW_SIZE ../include/log.h /^#define DB_GROW_SIZE 64$/ +DB_HASHMAGIC ../include/db.in /^#define DB_HASHMAGIC 0x061561$/ +DB_HASHOLDVER ../include/db.in /^#define DB_HASHOLDVER 4 \/* Oldest hash version s/ +DB_HASHVERSION ../include/db.in /^#define DB_HASHVERSION 7 \/* Current hash version/ +DB_HASH_DUP ../include/db_page.h /^#define DB_HASH_DUP 0x01 \/* Duplicates. *\/$/ +DB_HASH_DUPSORT ../include/db_page.h /^#define DB_HASH_DUPSORT 0x04 \/* Duplicates are / +DB_HASH_STAT ../include/db.in /^struct __db_h_stat; typedef struct __db_h_stat DB_/ +DB_HASH_SUBDB ../include/db_page.h /^#define DB_HASH_SUBDB 0x02 \/* Subdatabases. *\// +DB_HTONL ../include/db_swap.h /^#define DB_HTONL(p)$/ +DB_ILLEGAL_AFTER_OPEN ../include/db_int.in /^#define DB_ILLEGAL_AFTER_OPEN(dbp, name) \\$/ +DB_ILLEGAL_BEFORE_OPEN ../include/db_int.in /^#define DB_ILLEGAL_BEFORE_OPEN(dbp, name) \\$/ +DB_ILLEGAL_IN_ENV ../include/db_int.in /^#define DB_ILLEGAL_IN_ENV(dbp, name) \\$/ +DB_ILLEGAL_METHOD ../include/db_int.in /^#define DB_ILLEGAL_METHOD(dbp, flags) { \\$/ +DB_INCOMPLETE ../include/db.in /^#define DB_INCOMPLETE (-30998)\/* Sync didn't fin/ +DB_INITENV_CDB ../env/env_open.c /^#define DB_INITENV_CDB 0x0001 \/* DB_INIT_CDB *\// +DB_INITENV_CDB_ALLDB ../env/env_open.c /^#define DB_INITENV_CDB_ALLDB 0x0002 \/* DB_INIT_CD/ +DB_INITENV_LOCK ../env/env_open.c /^#define DB_INITENV_LOCK 0x0004 \/* DB_INIT_LOCK */ +DB_INITENV_LOG ../env/env_open.c /^#define DB_INITENV_LOG 0x0008 \/* DB_INIT_LOG *\// +DB_INITENV_MPOOL ../env/env_open.c /^#define DB_INITENV_MPOOL 0x0010 \/* DB_INIT_MPOOL / +DB_INITENV_TXN ../env/env_open.c /^#define DB_INITENV_TXN 0x0020 \/* DB_INIT_TXN *\// +DB_INITIALIZE_DB_GLOBALS ../env/env_method.c /^#define DB_INITIALIZE_DB_GLOBALS 1$/ +DB_INIT_CDB ../include/db.in /^#define DB_INIT_CDB 0x000400 \/* Concurrent / +DB_INIT_LOCK ../include/db.in /^#define DB_INIT_LOCK 0x000800 \/* Initialize/ +DB_INIT_LOG ../include/db.in /^#define DB_INIT_LOG 0x001000 \/* Initialize / +DB_INIT_MPOOL ../include/db.in /^#define DB_INIT_MPOOL 0x002000 \/* Initializ/ +DB_INIT_TXN ../include/db.in /^#define DB_INIT_TXN 0x004000 \/* Initialize / +DB_IO ../include/os.h /^} DB_IO;$/ +DB_IO_READ ../include/os.h /^#define DB_IO_READ 1$/ +DB_IO_WRITE ../include/os.h /^#define DB_IO_WRITE 2$/ +DB_IS_THREADED ../include/db_int.in /^#define DB_IS_THREADED(dbp) \\$/ +DB_JAVAINFO ../libdb_java/java_info.h /^} DB_JAVAINFO;$/ +DB_JAVA_CALLBACK ../include/db.in /^#define DB_JAVA_CALLBACK (-30897)\/* Exception dur/ +DB_JOINENV ../include/db.in /^#define DB_JOINENV 0x008000 \/* Initialize / +DB_JOIN_ITEM ../include/db.in /^#define DB_JOIN_ITEM 17 \/* c_get(); do not do pr/ +DB_JOIN_NOSORT ../include/db.in /^#define DB_JOIN_NOSORT 0x0001 \/* Don't try to o/ +DB_KEYEMPTY ../include/db.in /^#define DB_KEYEMPTY (-30997)\/* Key\/data deleted/ +DB_KEYEXIST ../include/db.in /^#define DB_KEYEXIST (-30996)\/* The key\/data pai/ +DB_KEYFIRST ../include/db.in /^#define DB_KEYFIRST 18 \/* c_put() *\/$/ +DB_KEYLAST ../include/db.in /^#define DB_KEYLAST 19 \/* c_put() *\/$/ +DB_KEY_RANGE ../include/db.in /^struct __key_range; typedef struct __key_range DB_/ +DB_LAST ../include/db.in /^#define DB_LAST 20 \/* c_get(), log_get() *\/$/ +DB_LINE ../include/db_int.in /^#define DB_LINE "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=/ +DB_LOCK ../include/db.in /^struct __db_lock_u; typedef struct __db_lock_u DB_/ +DB_LOCKDOWN ../include/db.in /^#define DB_LOCKDOWN 0x010000 \/* Lock memory/ +DB_LOCKER ../include/lock.h /^} DB_LOCKER;$/ +DB_LOCKER_DELETED ../include/lock.h /^#define DB_LOCKER_DELETED 0x0001$/ +DB_LOCKER_DIRTY ../include/lock.h /^#define DB_LOCKER_DIRTY 0x0002$/ +DB_LOCKER_INABORT ../include/lock.h /^#define DB_LOCKER_INABORT 0x0004$/ +DB_LOCKOBJ ../include/lock.h /^} DB_LOCKOBJ;$/ +DB_LOCKREGION ../include/lock.h /^} DB_LOCKREGION;$/ +DB_LOCKREQ ../include/db.in /^struct __db_lockreq; typedef struct __db_lockreq D/ +DB_LOCKTAB ../include/lock.h /^} DB_LOCKTAB;$/ +DB_LOCKVERSION ../include/db.in /^#define DB_LOCKVERSION 1$/ +DB_LOCK_CDB_N ../lock/lock_region.c /^#define DB_LOCK_CDB_N 5$/ +DB_LOCK_DEADLOCK ../include/db.in /^#define DB_LOCK_DEADLOCK (-30995)\/* Deadlock. *\// +DB_LOCK_DEFAULT ../include/db.in /^#define DB_LOCK_DEFAULT 1 \/* Default policy. *\// +DB_LOCK_DEFAULT_N ../include/lock.h /^#define DB_LOCK_DEFAULT_N 1000 \/* Default # of lo/ +DB_LOCK_DOALL ../include/lock.h /^#define DB_LOCK_DOALL 0x001$/ +DB_LOCK_FREE ../include/lock.h /^#define DB_LOCK_FREE 0x002$/ +DB_LOCK_IGNOREDEL ../include/lock.h /^#define DB_LOCK_IGNOREDEL 0x004$/ +DB_LOCK_ILOCK ../include/db.in /^struct __db_ilock; typedef struct __db_ilock DB_LO/ +DB_LOCK_INVALIDID ../include/lock.h /^#define DB_LOCK_INVALIDID 0$/ +DB_LOCK_MAXID ../include/lock.h /^#define DB_LOCK_MAXID 0x7fffffff$/ +DB_LOCK_MAXLOCKS ../include/db.in /^#define DB_LOCK_MAXLOCKS 2 \/* Abort txn with maxi/ +DB_LOCK_MINLOCKS ../include/db.in /^#define DB_LOCK_MINLOCKS 3 \/* Abort txn with mini/ +DB_LOCK_MINWRITE ../include/db.in /^#define DB_LOCK_MINWRITE 4 \/* Abort txn with mini/ +DB_LOCK_NOPROMOTE ../include/lock.h /^#define DB_LOCK_NOPROMOTE 0x008$/ +DB_LOCK_NORUN ../include/db.in /^#define DB_LOCK_NORUN 0$/ +DB_LOCK_NOTGRANTED ../include/db.in /^#define DB_LOCK_NOTGRANTED (-30994)\/* Lock unavai/ +DB_LOCK_NOWAIT ../include/db.in /^#define DB_LOCK_NOWAIT 0x01 \/* Don't wait on una/ +DB_LOCK_NOWAITERS ../include/lock.h /^#define DB_LOCK_NOWAITERS 0x020$/ +DB_LOCK_OLDEST ../include/db.in /^#define DB_LOCK_OLDEST 5 \/* Abort oldest transac/ +DB_LOCK_RANDOM ../include/db.in /^#define DB_LOCK_RANDOM 6 \/* Abort random transac/ +DB_LOCK_RECORD ../include/db.in /^#define DB_LOCK_RECORD 0x02 \/* Internal: record / +DB_LOCK_RIW_N ../lock/lock_region.c /^#define DB_LOCK_RIW_N 9$/ +DB_LOCK_STAT ../include/db.in /^struct __db_lock_stat; typedef struct __db_lock_st/ +DB_LOCK_SWITCH ../include/db.in /^#define DB_LOCK_SWITCH 0x08 \/* Internal: switch / +DB_LOCK_UNLINK ../include/lock.h /^#define DB_LOCK_UNLINK 0x010$/ +DB_LOCK_UPGRADE ../include/db.in /^#define DB_LOCK_UPGRADE 0x04 \/* Internal: upgrad/ +DB_LOCK_YOUNGEST ../include/db.in /^#define DB_LOCK_YOUNGEST 7 \/* Abort youngest tran/ +DB_LOG ../include/log.h /^struct __db_log; typedef struct __db_log DB_LOG;$/ +DB_LOGFILEID_INVALID ../include/db.in /^#define DB_LOGFILEID_INVALID -1$/ +DB_LOGGING ../include/db_int.in /^#define DB_LOGGING(dbc) \\$/ +DB_LOGMAGIC ../include/db.in /^#define DB_LOGMAGIC 0x040988$/ +DB_LOGOLDVER ../include/db.in /^#define DB_LOGOLDVER 3 \/* Oldest log version sup/ +DB_LOGVERSION ../include/db.in /^#define DB_LOGVERSION 3 \/* Current log version. / +DB_LOG_STAT ../include/db.in /^struct __db_log_stat; typedef struct __db_log_stat/ +DB_LSN ../include/db.in /^struct __db_lsn; typedef struct __db_lsn DB_LSN;$/ +DB_MAXMMAPSIZE ../mp/mp_fopen.c /^#define DB_MAXMMAPSIZE (10 * 1024 * 1024) \/* 10 M/ +DB_MAX_HANDLES ../include/mutex.h /^#define DB_MAX_HANDLES 100 \/* Mutex slots for h/ +DB_MAX_PAGES ../include/db.in /^#define DB_MAX_PAGES 0xffffffff \/* >= # of pages / +DB_MAX_PGSIZE ../include/db_int.in /^#define DB_MAX_PGSIZE 0x010000 \/* Maximum page si/ +DB_MAX_RECORDS ../include/db.in /^#define DB_MAX_RECORDS 0xffffffff \/* >= # of reco/ +DB_MINPAGECACHE ../include/db_am.h /^#define DB_MINPAGECACHE 10 \/* Min pages access m/ +DB_MIN_PGSIZE ../include/db_int.in /^#define DB_MIN_PGSIZE 0x000200 \/* Minimum page si/ +DB_MPOOL ../include/mp.h /^struct __db_mpool; typedef struct __db_mpool DB_MP/ +DB_MPOOLFILE ../include/db.in /^struct __db_mpoolfile; typedef struct __db_mpoolfi/ +DB_MPOOL_CLEAN ../include/db.in /^#define DB_MPOOL_CLEAN 0x001 \/* Page is not modi/ +DB_MPOOL_CREATE ../include/db.in /^#define DB_MPOOL_CREATE 0x001 \/* Create a page. / +DB_MPOOL_DIRTY ../include/db.in /^#define DB_MPOOL_DIRTY 0x002 \/* Page is modified/ +DB_MPOOL_DISCARD ../include/db.in /^#define DB_MPOOL_DISCARD 0x004 \/* Don't cache the/ +DB_MPOOL_FINFO ../include/db.in /^struct __db_mpool_finfo;typedef struct __db_mpool_/ +DB_MPOOL_FSTAT ../include/db.in /^struct __db_mpool_fstat;typedef struct __db_mpool_/ +DB_MPOOL_LAST ../include/db.in /^#define DB_MPOOL_LAST 0x002 \/* Return the last p/ +DB_MPOOL_NEW ../include/db.in /^#define DB_MPOOL_NEW 0x004 \/* Create a new page./ +DB_MPOOL_NEW_GROUP ../include/db.in /^#define DB_MPOOL_NEW_GROUP 0x008 \/* Create a grou/ +DB_MPOOL_STAT ../include/db.in /^struct __db_mpool_stat; typedef struct __db_mpool_/ +DB_MPREG ../include/mp.h /^struct __db_mpreg; typedef struct __db_mpreg DB_MP/ +DB_MULTIPLE ../include/db.in /^#define DB_MULTIPLE 0x20000000 \/* Return multiple/ +DB_MULTIPLE_INIT ../include/db.in /^#define DB_MULTIPLE_INIT(pointer, dbt) \\$/ +DB_MULTIPLE_KEY ../include/db.in /^#define DB_MULTIPLE_KEY 0x40000000 \/* Return mult/ +DB_MULTIPLE_KEY_NEXT ../include/db.in /^#define DB_MULTIPLE_KEY_NEXT(pointer, dbt, retkey,/ +DB_MULTIPLE_NEXT ../include/db.in /^#define DB_MULTIPLE_NEXT(pointer, dbt, retdata, re/ +DB_MULTIPLE_RECNO_NEXT ../include/db.in /^#define DB_MULTIPLE_RECNO_NEXT(pointer, dbt, recno/ +DB_NEEDSPLIT ../include/db.in /^#define DB_NEEDSPLIT (-30896)\/* Page needs to be/ +DB_NEXT ../include/db.in /^#define DB_NEXT 21 \/* c_get(), log_get() *\/$/ +DB_NEXT_DUP ../include/db.in /^#define DB_NEXT_DUP 22 \/* c_get() *\/$/ +DB_NEXT_NODUP ../include/db.in /^#define DB_NEXT_NODUP 23 \/* c_get() *\/$/ +DB_NODUPDATA ../include/db.in /^#define DB_NODUPDATA 24 \/* put(), c_put() *\/$/ +DB_NOMMAP ../include/db.in /^#define DB_NOMMAP 0x000008 \/* Don't mmap un/ +DB_NONBLOCK ../include/db_int.in /^#define DB_NONBLOCK(C) ((C)->txn != NULL && F_ISSE/ +DB_NOORDERCHK ../include/db.in /^#define DB_NOORDERCHK 0x0002 \/* Skip order/ +DB_NOOVERWRITE ../include/db.in /^#define DB_NOOVERWRITE 25 \/* put() *\/$/ +DB_NOSERVER ../include/db.in /^#define DB_NOSERVER (-30993)\/* Server panic retu/ +DB_NOSERVER_HOME ../include/db.in /^#define DB_NOSERVER_HOME (-30992)\/* Bad home sent/ +DB_NOSERVER_ID ../include/db.in /^#define DB_NOSERVER_ID (-30991)\/* Bad ID sent to/ +DB_NOSYNC ../include/db.in /^#define DB_NOSYNC 26 \/* close() *\/$/ +DB_NOTFOUND ../include/db.in /^#define DB_NOTFOUND (-30990)\/* Key\/data pair no/ +DB_NTOHL ../include/db_swap.h /^#define DB_NTOHL(p)$/ +DB_ODDFILESIZE ../include/db.in /^#define DB_ODDFILESIZE 0x001000 \/* UNDOC: / +DB_OK_BTREE ../include/db.in /^#define DB_OK_BTREE 0x01$/ +DB_OK_HASH ../include/db.in /^#define DB_OK_HASH 0x02$/ +DB_OK_QUEUE ../include/db.in /^#define DB_OK_QUEUE 0x04$/ +DB_OK_RECNO ../include/db.in /^#define DB_OK_RECNO 0x08$/ +DB_OLD_VERSION ../include/db.in /^#define DB_OLD_VERSION (-30989)\/* Out-of-date ve/ +DB_OPEN_CALLED ../include/db.in /^#define DB_OPEN_CALLED 0x010000 \/* DB->open calle/ +DB_OPFLAGS_MASK ../include/db.in /^#define DB_OPFLAGS_MASK 0x000000ff \/* Mask for op/ +DB_ORDERCHKONLY ../include/db.in /^#define DB_ORDERCHKONLY 0x0004 \/* Only per/ +DB_OSO_CREATE ../include/db_int.in /^#define DB_OSO_CREATE 0x001 \/* POSIX: O_CREAT */ +DB_OSO_EXCL ../include/db_int.in /^#define DB_OSO_EXCL 0x002 \/* POSIX: O_EXCL *\/$/ +DB_OSO_LOG ../include/db_int.in /^#define DB_OSO_LOG 0x004 \/* Opening a log file. / +DB_OSO_RDONLY ../include/db_int.in /^#define DB_OSO_RDONLY 0x008 \/* POSIX: O_RDONLY */ +DB_OSO_REGION ../include/db_int.in /^#define DB_OSO_REGION 0x010 \/* Opening a region / +DB_OSO_SEQ ../include/db_int.in /^#define DB_OSO_SEQ 0x020 \/* Expected sequential / +DB_OSO_TEMP ../include/db_int.in /^#define DB_OSO_TEMP 0x040 \/* Remove after last c/ +DB_OSO_TRUNC ../include/db_int.in /^#define DB_OSO_TRUNC 0x080 \/* POSIX: O_TRUNC *\// +DB_OS_SEEK ../include/db_int.in /^} DB_OS_SEEK;$/ +DB_PACKAGE_NAME ../libdb_java/java_util.h /^#define DB_PACKAGE_NAME "com\/sleepycat\/db\/"$/ +DB_PAGE_DB_LEN ../include/db_page.h /^#define DB_PAGE_DB_LEN 32$/ +DB_PAGE_LOCK ../include/db.in /^#define DB_PAGE_LOCK 2$/ +DB_PAGE_NOTFOUND ../include/db.in /^#define DB_PAGE_NOTFOUND (-30988)\/* Verify failed/ +DB_PAGE_QUEUE_LEN ../include/db_page.h /^#define DB_PAGE_QUEUE_LEN 0$/ +DB_PGINFO ../include/db_int.in /^} DB_PGINFO;$/ +DB_POSITION ../include/db.in /^#define DB_POSITION 27 \/* c_dup() *\/$/ +DB_POSITIONI ../include/db.in /^#define DB_POSITIONI 28 \/* c_dup() (internal) */ +DB_PREPLIST ../include/db.in /^} DB_PREPLIST;$/ +DB_PREV ../include/db.in /^#define DB_PREV 29 \/* c_get(), log_get() *\/$/ +DB_PREV_NODUP ../include/db.in /^#define DB_PREV_NODUP 30 \/* c_get(), log_get() */ +DB_PRIVATE ../include/db.in /^#define DB_PRIVATE 0x020000 \/* DB_ENV is pr/ +DB_PR_PAGE ../include/db.in /^#define DB_PR_PAGE 0x0008 \/* Show page con/ +DB_PR_RECOVERYTEST ../include/db.in /^#define DB_PR_RECOVERYTEST 0x0010 \/* Recovery/ +DB_QAMMAGIC ../include/db.in /^#define DB_QAMMAGIC 0x042253$/ +DB_QAMOLDVER ../include/db.in /^#define DB_QAMOLDVER 1 \/* Oldest queue version s/ +DB_QAMVERSION ../include/db.in /^#define DB_QAMVERSION 3 \/* Current queue version/ +DB_QUEUE_STAT ../include/db.in /^struct __db_qam_stat; typedef struct __db_qam_stat/ +DB_RDONLY ../include/db.in /^#define DB_RDONLY 0x000010 \/* Read-only (O_/ +DB_RDWRMASTER ../include/db.in /^#define DB_RDWRMASTER 0x002000 \/* UNDOC: a/ +DB_RECNUM ../include/db.in /^#define DB_RECNUM 0x0004 \/* Btree: record number/ +DB_RECORDCOUNT ../include/db.in /^#define DB_RECORDCOUNT 31 \/* stat() *\/$/ +DB_RECORD_LOCK ../include/db.in /^#define DB_RECORD_LOCK 1$/ +DB_RECOVER ../include/db.in /^#define DB_RECOVER 0x000020 \/* Run normal r/ +DB_RECOVER_FATAL ../include/db.in /^#define DB_RECOVER_FATAL 0x040000 \/* Run cat/ +DB_REDO ../include/db.in /^#define DB_REDO(op) ((op) == DB_TXN_FORWARD_ROLL)$/ +DB_REGION_ENV ../include/region.h /^#define DB_REGION_ENV "__db.001" \/* Primary envir/ +DB_REGION_FMT ../include/region.h /^#define DB_REGION_FMT "__db.%03d" \/* Region file / +DB_REGION_MAGIC ../include/db.in /^#define DB_REGION_MAGIC 0x120897 \/* Environment m/ +DB_REGION_NAME_LENGTH ../include/region.h /^#define DB_REGION_NAME_LENGTH 8 \/* Length of file/ +DB_REGION_NAME_NUM ../include/region.h /^#define DB_REGION_NAME_NUM 5 \/* First digit offse/ +DB_REM_BIG ../include/db_am.h /^#define DB_REM_BIG 0x40$/ +DB_REM_DUP ../include/db_am.h /^#define DB_REM_DUP 0x20$/ +DB_REM_PAGE ../include/db_am.h /^#define DB_REM_PAGE 0x80$/ +DB_RENUMBER ../include/db.in /^#define DB_RENUMBER 0x0008 \/* Recno: renumber on/ +DB_REVSPLITOFF ../include/db.in /^#define DB_REVSPLITOFF 0x0010 \/* Btree: turn off/ +DB_RE_DELIMITER ../include/db.in /^#define DB_RE_DELIMITER 0x020000 \/* Variablen len/ +DB_RE_FIXEDLEN ../include/db.in /^#define DB_RE_FIXEDLEN 0x040000 \/* Fixed-length r/ +DB_RE_PAD ../include/db.in /^#define DB_RE_PAD 0x080000 \/* Fixed-length record/ +DB_RE_RENUMBER ../include/db.in /^#define DB_RE_RENUMBER 0x100000 \/* DB_RENUMBER. */ +DB_RE_SNAPSHOT ../include/db.in /^#define DB_RE_SNAPSHOT 0x200000 \/* DB_SNAPSHOT. */ +DB_RMW ../include/db.in /^#define DB_RMW 0x80000000 \/* Acquire write flag / +DB_RUNRECOVERY ../include/db.in /^#define DB_RUNRECOVERY (-30987)\/* Panic return. / +DB_SALVAGE ../include/db.in /^#define DB_SALVAGE 0x0020 \/* Salvage what / +DB_SERVER_FLAGMASK ../include/db_server_int.h /^#define DB_SERVER_FLAGMASK ( \\$/ +DB_SERVER_IDLETIMEOUT ../include/db_server_int.h /^#define DB_SERVER_IDLETIMEOUT 86400 \/* 1 day *\/$/ +DB_SERVER_MAXTIMEOUT ../include/db_server_int.h /^#define DB_SERVER_MAXTIMEOUT 1200 \/* 20 minutes */ +DB_SERVER_TIMEOUT ../include/db_server_int.h /^#define DB_SERVER_TIMEOUT 300 \/* 5 minutes *\/$/ +DB_SET ../include/db.in /^#define DB_SET 32 \/* c_get(), log_get() *\/$/ +DB_SET_RANGE ../include/db.in /^#define DB_SET_RANGE 33 \/* c_get() *\/$/ +DB_SET_RECNO ../include/db.in /^#define DB_SET_RECNO 34 \/* get(), c_get() *\/$/ +DB_SNAPSHOT ../include/db.in /^#define DB_SNAPSHOT 0x0020 \/* Recno: snapshot th/ +DB_SWAPBYTES ../include/db.in /^#define DB_SWAPBYTES (-30895)\/* Database needs b/ +DB_SYSTEM_MEM ../include/db.in /^#define DB_SYSTEM_MEM 0x080000 \/* Use syste/ +DB_TEST_POSTLOG ../include/db.in /^#define DB_TEST_POSTLOG 4 \/* after logging all / +DB_TEST_POSTLOGMETA ../include/db.in /^#define DB_TEST_POSTLOGMETA 3 \/* after logging m/ +DB_TEST_POSTOPEN ../include/db.in /^#define DB_TEST_POSTOPEN 2 \/* after __os_open */ +DB_TEST_POSTRENAME ../include/db.in /^#define DB_TEST_POSTRENAME 7 \/* after __os_renam/ +DB_TEST_POSTSYNC ../include/db.in /^#define DB_TEST_POSTSYNC 5 \/* after syncing the / +DB_TEST_PREOPEN ../include/db.in /^#define DB_TEST_PREOPEN 1 \/* before __os_open */ +DB_TEST_PRERENAME ../include/db.in /^#define DB_TEST_PRERENAME 6 \/* before __os_renam/ +DB_TEST_RECOVERY ../include/debug.h /^#define DB_TEST_RECOVERY(dbp, val, ret, name) / +DB_TEST_RECOVERY_LABEL ../include/debug.h /^#define DB_TEST_RECOVERY_LABEL db_tr_err:$/ +DB_THREAD ../include/db.in /^#define DB_THREAD 0x000040 \/* Applications / +DB_TRAIL ../env/env_open.c /^#define DB_TRAIL "BDBXXXXXX"$/ +DB_TRUNCATE ../include/db.in /^#define DB_TRUNCATE 0x004000 \/* Discard exi/ +DB_TXN ../include/db.in /^struct __db_txn; typedef struct __db_txn DB_TXN;$/ +DB_TXNHEAD ../include/db_int.in /^struct __db_txnhead; typedef struct __db_txnhead D/ +DB_TXNLIST ../include/db_int.in /^struct __db_txnlist; typedef struct __db_txnlist D/ +DB_TXNLIST_MAX_PGNO ../db/db_dispatch.c /^#define DB_TXNLIST_MAX_PGNO 8 \/* A nice even numb/ +DB_TXNMGR ../include/txn.h /^struct __db_txnmgr; typedef struct __db_txnmgr DB_/ +DB_TXNREGION ../include/txn.h /^struct __db_txnregion; typedef struct __db_txnregi/ +DB_TXNVERSION ../include/db.in /^#define DB_TXNVERSION 1$/ +DB_TXN_ACTIVE ../include/db.in /^struct __db_txn_active; typedef struct __db_txn_ac/ +DB_TXN_CKP ../include/db.in /^#define DB_TXN_CKP (-30894)\/* Encountered ckp re/ +DB_TXN_NOSYNC ../include/db.in /^#define DB_TXN_NOSYNC 0x000080 \/* Do not sy/ +DB_TXN_NOWAIT ../include/db.in /^#define DB_TXN_NOWAIT 0x000400 \/* Do not wa/ +DB_TXN_STAT ../include/db.in /^struct __db_txn_stat; typedef struct __db_txn_stat/ +DB_TXN_SYNC ../include/db.in /^#define DB_TXN_SYNC 0x000800 \/* Always sync/ +DB_UNDO ../include/db.in /^#define DB_UNDO(op) ((op) == DB_TXN_ABORT || (op) / +DB_UNUSED_1 ../include/db_am.h /^#define DB_UNUSED_1 0x50$/ +DB_UNUSED_2 ../include/db_am.h /^#define DB_UNUSED_2 0x60$/ +DB_UPDATE_SECONDARY ../include/db.in /^#define DB_UPDATE_SECONDARY 35 \/* c_get(), c_del(/ +DB_UPGRADE ../include/db.in /^#define DB_UPGRADE 0x000400 \/* Upgrading. */ +DB_USE_ENVIRON ../include/db.in /^#define DB_USE_ENVIRON 0x000100 \/* Use the / +DB_USE_ENVIRON_ROOT ../include/db.in /^#define DB_USE_ENVIRON_ROOT 0x000200 \/* Use the/ +DB_VERB_CHKPOINT ../include/db.in /^#define DB_VERB_CHKPOINT 0x0001 \/* List checkpoin/ +DB_VERB_DEADLOCK ../include/db.in /^#define DB_VERB_DEADLOCK 0x0002 \/* Deadlock detec/ +DB_VERB_RECOVERY ../include/db.in /^#define DB_VERB_RECOVERY 0x0004 \/* Recovery infor/ +DB_VERB_WAITSFOR ../include/db.in /^#define DB_VERB_WAITSFOR 0x0008 \/* Dump waits-for/ +DB_VERIFY ../include/db.in /^#define DB_VERIFY 0x000800 \/* Verifying. */ +DB_VERIFY_BAD ../include/db.in /^#define DB_VERIFY_BAD (-30986)\/* Verify failed; / +DB_VERIFY_FATAL ../include/db.in /^#define DB_VERIFY_FATAL (-30893)\/* Fatal: DB->ve/ +DB_VERSION_MAJOR ../include/db.in /^#define DB_VERSION_MAJOR @DB_VERSION_MAJOR@$/ +DB_VERSION_MINOR ../include/db.in /^#define DB_VERSION_MINOR @DB_VERSION_MINOR@$/ +DB_VERSION_PATCH ../include/db.in /^#define DB_VERSION_PATCH @DB_VERSION_PATCH@$/ +DB_VERSION_STRING ../include/db.in /^#define DB_VERSION_STRING @DB_VERSION_STRING@$/ +DB_WO_ACCESS ../include/cxx_int.h /^#define DB_WO_ACCESS(_class, _type, _cxx_name, _fi/ +DB_WRITECURSOR ../include/db.in /^#define DB_WRITECURSOR 36 \/* cursor() *\/$/ +DB_WRITELOCK ../include/db.in /^#define DB_WRITELOCK 37 \/* cursor() (internal) */ +DB_XA_CREATE ../include/db.in /^#define DB_XA_CREATE 0x000400 \/* Open in an/ +DB_XIDDATASIZE ../include/db.in /^#define DB_XIDDATASIZE 128$/ +DB_user_BEGIN ../include/db_dispatch.h /^#define DB_user_BEGIN 10000$/ +DCHARHASH ../hash/hash_func.c /^#define DCHARHASH(h, c) ((h) = 0x63c63cd9*(h) + 0x/ +DEBUG_LREAD ../include/debug.h /^#define DEBUG_LREAD(C, T, O, K, A, F) LOG_OP(C, T,/ +DEBUG_LWRITE ../include/debug.h /^#define DEBUG_LWRITE(C, T, O, K, A, F) LOG_OP(C, T/ +DEFMINKEYPAGE ../include/btree.h /^#define DEFMINKEYPAGE (2)$/ +DEF_MAX_TXNS ../include/txn.h /^#define DEF_MAX_TXNS 20 \/* Default max transacti/ +DELETE_GLOBAL_REF ../libdb_java/java_util.h /^#define DELETE_GLOBAL_REF(jnienv, obj) \\$/ +DELOVFL ../include/hash.h /^#define DELOVFL 0x50$/ +DELPAIR ../include/hash.h /^#define DELPAIR 0x30$/ +DISCARD ../btree/bt_cursor.c /^#define DISCARD(dbc, ldiscard, lock, pagep, ret) {/ +DISCARD_CUR ../btree/bt_cursor.c /^#define DISCARD_CUR(dbc, ret) { \\$/ +DO_PREPLIST ../tcl/tcl_txn.c /^#define DO_PREPLIST(count) \\$/ +DUP_SIZE ../include/hash.h /^#define DUP_SIZE(len) ((len) + 2 * sizeof(db_indx_/ +DbEnv_feedback_callback ../libdb_java/java_info.c /^static void DbEnv_feedback_callback(DB_ENV *dbenv,/ +DbEnv_initialize ../libdb_java/java_DbEnv.c /^static void DbEnv_initialize(JNIEnv *jnienv, DB_EN/ +DbEnv_recovery_init_callback ../libdb_java/java_info.c /^static int DbEnv_recovery_init_callback(DB_ENV *db/ +DbEnv_tx_recover_callback ../libdb_java/java_info.c /^static int DbEnv_tx_recover_callback(DB_ENV *dbenv/ +DbException ../cxx/cxx_except.cpp /^DbException::~DbException()$/ +DbLock ../cxx/cxx_lock.cpp /^DbLock::DbLock()$/ +DbMemoryException ../cxx/cxx_except.cpp /^DbMemoryException::~DbMemoryException()$/ +DbMpoolFile ../cxx/cxx_mpool.cpp /^DbMpoolFile::~DbMpoolFile()$/ +DbTxn ../cxx/cxx_txn.cpp /^DbTxn::~DbTxn()$/ +Db_append_recno_callback ../libdb_java/java_info.c /^static int Db_append_recno_callback(DB *db, DBT *d/ +Db_assoc_callback ../libdb_java/java_info.c /^static int Db_assoc_callback(DB *db,$/ +Db_bt_compare_callback ../libdb_java/java_info.c /^static int Db_bt_compare_callback(DB *db, const DB/ +Db_bt_prefix_callback ../libdb_java/java_info.c /^static size_t Db_bt_prefix_callback(DB *db, const / +Db_dup_compare_callback ../libdb_java/java_info.c /^static int Db_dup_compare_callback(DB *db, const D/ +Db_feedback_callback ../libdb_java/java_info.c /^static void Db_feedback_callback(DB *db, int opcod/ +Db_h_hash_callback ../libdb_java/java_info.c /^static u_int32_t Db_h_hash_callback(DB *db, const / +Db_tcl_Init ../tcl/tcl_db_pkg.c /^Db_tcl_Init(interp)$/ +EMSG ../clib/getopt.c /^#define EMSG ""$/ +ENTRY ../include/db.in /^} ENTRY;$/ +ENV_ILLEGAL_AFTER_OPEN ../include/db_int.in /^#define ENV_ILLEGAL_AFTER_OPEN(dbenv, name) \\$/ +ENV_REQUIRES_CONFIG ../include/db_int.in /^#define ENV_REQUIRES_CONFIG(dbenv, handle, i, flag/ +EPG ../include/btree.h /^struct __epg; typedef struct __epg EPG;$/ +EPRINT ../include/db_verify.h /^#define EPRINT(x) \\$/ +FAST_HASH ../lock/lock_util.c /^#define FAST_HASH(P) { \\$/ +FLAG_CHECK ../include/tcl_db.h /^#define FLAG_CHECK(flag) \\$/ +FLAG_CHECK2 ../include/tcl_db.h /^#define FLAG_CHECK2(flag,val) \\$/ +FLD_CLR ../include/db_int.in /^#define FLD_CLR(fld, f) (fld) &= ~(f)$/ +FLD_ISSET ../include/db_int.in /^#define FLD_ISSET(fld, f) ((fld) & (f))$/ +FLD_SET ../include/db_int.in /^#define FLD_SET(fld, f) (fld) |= (f)$/ +FMAP_ENTRIES ../mp/mp_stat.c /^#define FMAP_ENTRIES 200 \/* Files we map. *\/$/ +FN ../include/db_int.in /^} FN;$/ +FNAME ../include/log.h /^struct __fname; typedef struct __fname FNAME;$/ +FREE_IF_NEEDED ../include/db_int.in /^#define FREE_IF_NEEDED(sdbp, dbt) \\$/ +F_CLR ../include/db_int.in /^#define F_CLR(p, f) (p)->flags &= ~(f)$/ +F_ISSET ../include/db_int.in /^#define F_ISSET(p, f) ((p)->flags & (f))$/ +F_SET ../include/db_int.in /^#define F_SET(p, f) (p)->flags |= (f)$/ +GET_BINTERNAL ../include/db_page.h /^#define GET_BINTERNAL(pg, indx) \\$/ +GET_BKEYDATA ../include/db_page.h /^#define GET_BKEYDATA(pg, indx) \\$/ +GET_BOVERFLOW ../include/db_page.h /^#define GET_BOVERFLOW(pg, indx) \\$/ +GET_PAGE ../db/db_upg_opd.c /^#define GET_PAGE(dbp, fhp, pgno, page) { \\$/ +GET_RINTERNAL ../include/db_page.h /^#define GET_RINTERNAL(pg, indx) \\$/ +GIGABYTE ../include/db_int.in /^#define GIGABYTE 1073741824$/ +GLOB_CHAR ../tcl/tcl_internal.c /^#define GLOB_CHAR(c) ((c) == '*' || (c) == '?')$/ +GUARD_BYTE ../include/debug.h /^#define GUARD_BYTE 0xdc$/ +HASH ../include/hash.h /^} HASH;$/ +HASH4 ../hash/hash_func.c /^#define HASH4 HASH4b$/ +HASH4a ../hash/hash_func.c /^#define HASH4a h = (h << 5) - h + *k++;$/ +HASH4b ../hash/hash_func.c /^#define HASH4b h = (h << 5) + h + *k++;$/ +HASHC ../hash/hash_func.c /^#define HASHC n = *k++ + 65599 * n$/ +HASHHDR ../include/db_upgrade.h /^} HASHHDR;$/ +HASHINFO ../include/db_185.in /^} HASHINFO;$/ +HASHINSERT ../include/db_shash.h /^#define HASHINSERT(begin, ndx, type, field, elt) d/ +HASHMAGIC ../include/db_185.in /^#define HASHMAGIC 0x061561$/ +HASHREMOVE_EL ../include/db_shash.h /^#define HASHREMOVE_EL(begin, ndx, type, field, obj/ +HASHVERSION ../include/db_185.in /^#define HASHVERSION 2$/ +HASH_CURSOR ../include/hash.h /^} HASH_CURSOR;$/ +HASH_UNUSED1 ../include/hash.h /^#define HASH_UNUSED1 0x60$/ +HASH_UNUSED2 ../include/hash.h /^#define HASH_UNUSED2 0x70$/ +HDR ../include/log.h /^struct __hdr; typedef struct __hdr HDR;$/ +HKEYDATA ../include/db_page.h /^} HKEYDATA;$/ +HKEYDATA_DATA ../include/db_page.h /^#define HKEYDATA_DATA(p) (((u_int8_t *)p) + SSZA(H/ +HKEYDATA_PSIZE ../include/db_page.h /^#define HKEYDATA_PSIZE(len) \\$/ +HKEYDATA_SIZE ../include/db_page.h /^#define HKEYDATA_SIZE(len) \\$/ +HMETA ../include/db_page.h /^} HMETA31, HMETA;$/ +HMETA30 ../include/db_upgrade.h /^} HMETA30;$/ +HOFFDUP ../include/db_page.h /^} HOFFDUP;$/ +HOFFDUP_PGNO ../include/db_page.h /^#define HOFFDUP_PGNO(p) (((u_int8_t *)p) + SSZ(HO/ +HOFFDUP_SIZE ../include/db_page.h /^#define HOFFDUP_SIZE (sizeof(HOFFDUP))$/ +HOFFPAGE ../include/db_page.h /^} HOFFPAGE;$/ +HOFFPAGE_PGNO ../include/db_page.h /^#define HOFFPAGE_PGNO(p) (((u_int8_t *)p) + SSZ(HO/ +HOFFPAGE_PSIZE ../include/db_page.h /^#define HOFFPAGE_PSIZE (HOFFPAGE_SIZE + sizeof(db/ +HOFFPAGE_SIZE ../include/db_page.h /^#define HOFFPAGE_SIZE (sizeof(HOFFPAGE))$/ +HOFFPAGE_TLEN ../include/db_page.h /^#define HOFFPAGE_TLEN(p) (((u_int8_t *)p) + SSZ(HO/ +HOFFSET ../include/db_page.h /^#define HOFFSET(p) (((PAGE *)p)->hf_offset)$/ +HPAGE_PTYPE ../include/db_page.h /^#define HPAGE_PTYPE(p) (*(u_int8_t *)p)$/ +HPAGE_TYPE ../include/db_page.h /^#define HPAGE_TYPE(pg, indx) (*P_ENTRY(pg, indx))$/ +H_CONTINUE ../include/hash.h /^#define H_CONTINUE 0x0001 \/* Join--search strict/ +H_DATAINDEX ../include/db_page.h /^#define H_DATAINDEX(indx) ((indx) + 1)$/ +H_DELETED ../include/hash.h /^#define H_DELETED 0x0002 \/* Cursor item is delet/ +H_DIRTY ../include/hash.h /^#define H_DIRTY 0x0004 \/* Meta-data page needs / +H_DUPLICATE ../include/db_page.h /^#define H_DUPLICATE 2 \/* Duplicate key\/data item/ +H_DUPONLY ../include/hash.h /^#define H_DUPONLY 0x0008 \/* Dups only; do not ch/ +H_EXPAND ../include/hash.h /^#define H_EXPAND 0x0010 \/* Table expanded. *\/$/ +H_ISDUP ../include/hash.h /^#define H_ISDUP 0x0020 \/* Cursor is within dupl/ +H_KEYDATA ../include/db_page.h /^#define H_KEYDATA 1 \/* Key\/data item. *\/$/ +H_KEYINDEX ../include/db_page.h /^#define H_KEYINDEX(indx) (indx)$/ +H_NEXT_NODUP ../include/hash.h /^#define H_NEXT_NODUP 0x0040 \/* Get next non-dup / +H_NOMORE ../include/hash.h /^#define H_NOMORE 0x0080 \/* No more entries in bu/ +H_NUMPAIRS ../include/db_page.h /^#define H_NUMPAIRS(pg) (NUM_ENT(pg) \/ 2)$/ +H_OFFDUP ../include/db_page.h /^#define H_OFFDUP 4 \/* Overflow page of duplicates/ +H_OFFPAGE ../include/db_page.h /^#define H_OFFPAGE 3 \/* Overflow key\/data item. */ +H_OK ../include/hash.h /^#define H_OK 0x0100 \/* Request succeeded. *\/$/ +H_PAIRDATA ../include/db_page.h /^#define H_PAIRDATA(pg, indx) P_ENTRY(pg, H_DATAIN/ +H_PAIRKEY ../include/db_page.h /^#define H_PAIRKEY(pg, indx) P_ENTRY(pg, H_KEYINDE/ +H_PAIRSIZE ../include/db_page.h /^#define H_PAIRSIZE(pg, psize, indx) \\$/ +ILLEGAL_SIZE ../env/db_salloc.c /^#define ILLEGAL_SIZE 1$/ +INFOTYPE ../include/tcl_db.h /^enum INFOTYPE {$/ +INITIAL_DEAD_ALLOC ../lock/lock_deadlock.c /^#define INITIAL_DEAD_ALLOC 8$/ +INP_OFFSET ../db/db_vrfy.c /^#define INP_OFFSET(h, i) \\$/ +INVALID_LSNMSG ../tcl/tcl_internal.c /^#define INVALID_LSNMSG "Invalid LSN with %d parts./ +INVALID_ORDER ../include/btree.h /^#define INVALID_ORDER 0$/ +INVALID_REGION_ID ../include/region.h /^#define INVALID_REGION_ID 0 \/* Out-of-band region/ +INVALID_REGION_SEGID ../include/region.h /^#define INVALID_REGION_SEGID -1 \/* Segment IDs ar/ +INVALID_ROFF ../include/region.h /^#define INVALID_ROFF 0$/ +ISBIG ../include/hash.h /^#define ISBIG(I, N) (((N) > ((I)->hdr->dbmeta.page/ +ISDOT ../clib/getcwd.c /^#define ISDOT(dp) \\$/ +ISINTERNAL ../include/btree.h /^#define ISINTERNAL(p) (TYPE(p) == P_IBTREE || TYPE/ +ISLEAF ../include/btree.h /^#define ISLEAF(p) (TYPE(p) == P_LBTREE || \\$/ +ISSET_MAP ../lock/lock_deadlock.c /^#define ISSET_MAP(M, N) ((M)[(N) \/ 32] & (1 << (N/ +ISTEMPORARY ../mp/mp_fopen.c /^#define ISTEMPORARY (path == NULL)$/ +IS_BTREE_PAGE ../btree/bt_rec.c /^#define IS_BTREE_PAGE(pagep) \\$/ +IS_CUR_DELETED ../btree/bt_cursor.c /^#define IS_CUR_DELETED(dbc) \\$/ +IS_CUR_DUPLICATE ../btree/bt_cursor.c /^#define IS_CUR_DUPLICATE(dbc, orig_pgno, orig_indx/ +IS_DELETED ../btree/bt_cursor.c /^#define IS_DELETED(page, indx) \\$/ +IS_DUPLICATE ../btree/bt_cursor.c /^#define IS_DUPLICATE(dbc, i1, i2) \\$/ +IS_HELP ../include/tcl_db.h /^#define IS_HELP(s) \\$/ +IS_INITIALIZED ../include/db_int.in /^#define IS_INITIALIZED(dbc) ((dbc)->internal->pgno/ +IS_MAX_LSN ../include/db_int.in /^#define IS_MAX_LSN(LSN) \\$/ +IS_RECOVERING ../include/db_int.in /^#define IS_RECOVERING(dbenv) \\$/ +IS_SUBDB_SETUP ../db/db.c /^#define IS_SUBDB_SETUP (meta_pgno != PGNO_BASE_MD)/ +IS_SUBTRANSACTION ../include/db_int.in /^#define IS_SUBTRANSACTION(txn) \\$/ +IS_VALID_PAGESIZE ../include/db_verify.h /^#define IS_VALID_PAGESIZE(x) \\$/ +IS_VALID_PGNO ../include/db_verify.h /^#define IS_VALID_PGNO(x) ((x) <= vdp->last_pgno)$/ +IS_WRITELOCK ../include/lock.h /^#define IS_WRITELOCK(m) \\$/ +IS_XA_TXN ../txn/txn_rec.c /^#define IS_XA_TXN(R) (R->xid.size != 0)$/ +IS_ZERO_LSN ../include/db_int.in /^#define IS_ZERO_LSN(LSN) ((LSN).file == 0)$/ +ITEM_BEGIN ../btree/bt_verify.c /^#define ITEM_BEGIN 1$/ +ITEM_END ../btree/bt_verify.c /^#define ITEM_END 2$/ +JAVADB_API_BEGIN ../libdb_java/java_util.h /^#define JAVADB_API_BEGIN(db, jthis) \\$/ +JAVADB_API_END ../libdb_java/java_util.h /^#define JAVADB_API_END(db) \\$/ +JAVADB_ENV_API_BEGIN ../libdb_java/java_util.h /^#define JAVADB_ENV_API_BEGIN(dbenv, jthis) \\$/ +JAVADB_ENV_API_END ../libdb_java/java_util.h /^#define JAVADB_ENV_API_END(dbenv) \\$/ +JAVADB_RO_ACCESS ../libdb_java/java_util.h /^#define JAVADB_RO_ACCESS(j_class, j_fieldtype, j_f/ +JAVADB_RW_ACCESS ../libdb_java/java_util.h /^#define JAVADB_RW_ACCESS(j_class, j_fieldtype, j_f/ +JAVADB_WO_ACCESS ../libdb_java/java_util.h /^#define JAVADB_WO_ACCESS(j_class, j_fieldtype, j_f/ +JAVADB_WO_ACCESS_METHOD ../libdb_java/java_Db.c /^JAVADB_WO_ACCESS_METHOD(Db, jint, flags, DB, flags/ +JAVADB_WO_ACCESS_STRING ../libdb_java/java_DbEnv.c /^JAVADB_WO_ACCESS_STRING(DbEnv, data_1dir, D/ +JDBT ../libdb_java/java_locked.h /^} JDBT;$/ +JOIN_CURSOR ../include/db_join.h /^} JOIN_CURSOR;$/ +JOIN_RETRY ../include/db_join.h /^#define JOIN_RETRY 0x01 \/* Error on primary get; / +JSTR ../libdb_java/java_locked.h /^} JSTR;$/ +Java_com_sleepycat_db_DbUtil_am_1big_1endian ../libdb_java/java_DbUtil.c /^Java_com_sleepycat_db_DbUtil_am_1big_1endian (JNIE/ +LCK_ALWAYS ../include/db_am.h /^#define LCK_ALWAYS 0x02 \/* Lock even for off page/ +LCK_COUPLE ../include/db_am.h /^#define LCK_COUPLE 0x01 \/* Lock Couple *\/$/ +LCK_ROLLBACK ../include/db_am.h /^#define LCK_ROLLBACK 0x04 \/* Lock even if in roll/ +LEAFLEVEL ../include/db_page.h /^#define LEAFLEVEL 1$/ +LEN_HDATA ../include/db_page.h /^#define LEN_HDATA(p, psize, indx) LEN_HKEYDATA(p, / +LEN_HITEM ../include/db_page.h /^#define LEN_HITEM(pg, pgsize, indx) \\$/ +LEN_HKEY ../include/db_page.h /^#define LEN_HKEY(p, psize, indx) LEN_HKEYDATA(p, p/ +LEN_HKEYDATA ../include/db_page.h /^#define LEN_HKEYDATA(pg, psize, indx) \\$/ +LEVEL ../include/db_page.h /^#define LEVEL(p) (((PAGE *)p)->level)$/ +LFNAME ../include/log.h /^#define LFNAME "log.%010d" \/* Log file name temp/ +LFNAME_V1 ../include/log.h /^#define LFNAME_V1 "log.%05d" \/* Log file name tem/ +LFPREFIX ../include/log.h /^#define LFPREFIX "log." \/* Log file name prefix./ +LF_CLR ../include/db_int.in /^#define LF_CLR(f) (flags &= ~(f))$/ +LF_ISSET ../include/db_int.in /^#define LF_ISSET(f) (flags & (f))$/ +LF_SET ../include/db_int.in /^#define LF_SET(f) (flags |= (f))$/ +LG_BASE_REGION_SIZE ../include/log.h /^#define LG_BASE_REGION_SIZE (60 * 1024) \/* 60 KB./ +LG_BSIZE_DEFAULT ../include/log.h /^#define LG_BSIZE_DEFAULT (32 * 1024) \/* 32 KB. */ +LG_MAINT_SIZE ../include/log.h /^#define LG_MAINT_SIZE (sizeof(roff_t) * DB_MAX_HAN/ +LG_MAX_DEFAULT ../include/log.h /^#define LG_MAX_DEFAULT (10 * MEGABYTE) \/* 10 MB./ +LIST_ENTRY ../include/queue.h /^#define LIST_ENTRY(type) \\$/ +LIST_FIRST ../include/queue.h /^#define LIST_FIRST(head) ((head)->lh_first)$/ +LIST_HEAD ../include/queue.h /^#define LIST_HEAD(name, type) \\$/ +LIST_INCREMENT ../log/log_archive.c /^#define LIST_INCREMENT 64$/ +LIST_INIT ../include/queue.h /^#define LIST_INIT(head) { \\$/ +LIST_INSERT_AFTER ../include/queue.h /^#define LIST_INSERT_AFTER(listelm, elm, field) do / +LIST_INSERT_BEFORE ../include/queue.h /^#define LIST_INSERT_BEFORE(listelm, elm, field) do/ +LIST_INSERT_HEAD ../include/queue.h /^#define LIST_INSERT_HEAD(head, elm, field) do { / +LIST_NEXT ../include/queue.h /^#define LIST_NEXT(elm, field) ((elm)->field.le_ne/ +LIST_REMOVE ../include/queue.h /^#define LIST_REMOVE(elm, field) do { \\$/ +LOAD_ACTUAL_MUTEX_CODE ../mutex/mut_tas.c /^#define LOAD_ACTUAL_MUTEX_CODE$/ +LOCKER_FREEABLE ../include/lock.h /^#define LOCKER_FREEABLE(lp) \\$/ +LOCKER_LOCK ../include/lock.h /^#define LOCKER_LOCK(lt, reg, locker, ndx) \\$/ +LOCKING_ON ../include/db_int.in /^#define LOCKING_ON(dbenv) ((dbenv)->lk_handle != N/ +LOCKREGION ../include/lock.h /^#define LOCKREGION(dbenv, lt) R_LOCK((dbenv), &(l/ +LOCK_DUMP_ALL ../lock/lock_stat.c /^#define LOCK_DUMP_ALL 0x01f \/* Display all. *\// +LOCK_DUMP_CONF ../lock/lock_stat.c /^#define LOCK_DUMP_CONF 0x001 \/* Conflict matrix/ +LOCK_DUMP_FREE ../lock/lock_stat.c /^#define LOCK_DUMP_FREE 0x002 \/* Display lock fr/ +LOCK_DUMP_LOCKERS ../lock/lock_stat.c /^#define LOCK_DUMP_LOCKERS 0x004 \/* Display locke/ +LOCK_DUMP_MEM ../lock/lock_stat.c /^#define LOCK_DUMP_MEM 0x008 \/* Display region m/ +LOCK_DUMP_OBJECTS ../lock/lock_stat.c /^#define LOCK_DUMP_OBJECTS 0x010 \/* Display objec/ +LOCK_INIT ../include/lock.h /^#define LOCK_INIT(lock) ((lock).off = LOCK_INVALID/ +LOCK_INVALID ../include/lock.h /^#define LOCK_INVALID INVALID_ROFF$/ +LOCK_ISSET ../include/lock.h /^#define LOCK_ISSET(lock) ((lock).off != LOCK_INVAL/ +LOFFSET ../include/db_page.h /^#define LOFFSET(pg) (P_OVERHEAD + NUM_ENT(pg) * s/ +LOG ../include/log.h /^struct __log; typedef struct __log LOG;$/ +LOGGING_ON ../include/db_int.in /^#define LOGGING_ON(dbenv) ((dbenv)->lg_handle != N/ +LOGP ../include/log.h /^struct __log_persist; typedef struct __log_persist/ +LOG_CHECKPOINT ../include/log.h /^#define LOG_CHECKPOINT 1 \/* Checkpoint: file nam/ +LOG_CLOSE ../include/log.h /^#define LOG_CLOSE 2 \/* File close. *\/$/ +LOG_OP ../include/debug.h /^#define LOG_OP(C, T, O, K, A, F) { \\$/ +LOG_OPEN ../include/log.h /^#define LOG_OPEN 3 \/* File open. *\/$/ +LOG_RCLOSE ../include/log.h /^#define LOG_RCLOSE 4 \/* File close after recover/ +LSN ../include/db_page.h /^#define LSN(p) (((PAGE *)p)->lsn)$/ +LSN_NOT_LOGGED ../include/db_int.in /^#define LSN_NOT_LOGGED(LSN) do { \\$/ +MAKE_STAT_LSN ../tcl/tcl_txn.c /^#define MAKE_STAT_LSN(s, lsn) \\$/ +MAKE_STAT_STRLIST ../include/tcl_db.h /^#define MAKE_STAT_STRLIST(s,s1) \\$/ +MAP_FAILED ../mutex/tm.c /^#define MAP_FAILED (MUTEX *)-1$/ +MAP_FILE ../mutex/tm.c /^#define MAP_FILE 0$/ +MAXBQUALSIZE ../include/xa.h /^#define MAXBQUALSIZE 64 \/* maximum size in byte/ +MAXBTREELEVEL ../include/db_page.h /^#define MAXBTREELEVEL 255$/ +MAXGTRIDSIZE ../include/xa.h /^#define MAXGTRIDSIZE 64 \/* maximum size in byte/ +MAXINFOSIZE ../include/xa.h /^#define MAXINFOSIZE 256 \/* maximum size in bytes/ +MAXPATHLEN ../include/db_int.in /^#define MAXPATHLEN 1024$/ +MAX_ID ../include/tcl_db.h /^#define MAX_ID 8 \/* Maximum number of sub-id's w/ +MAX_LSN ../include/db_int.in /^#define MAX_LSN(LSN) do { \\$/ +MAX_LSN_TO_TEXT ../db/db.c /^#define MAX_LSN_TO_TEXT 21$/ +MAX_PAGE_NUMBER ../include/db_185.in /^#define MAX_PAGE_NUMBER 0xffffffff \/* >= # of pag/ +MAX_PAGE_OFFSET ../include/db_185.in /^#define MAX_PAGE_OFFSET 65535 \/* >= # of bytes i/ +MAX_REC_NUMBER ../include/db_185.in /^#define MAX_REC_NUMBER 0xffffffff \/* >= # of reco/ +MEGABYTE ../include/db_int.in /^#define MEGABYTE 1048576$/ +MEMP_FREMOVE ../mp/mp_fopen.c /^#define MEMP_FREMOVE(mfp) { \\$/ +MINFILL ../include/hash.h /^#define MINFILL 4$/ +MPFARRAY ../include/qam.h /^} MPFARRAY;$/ +MPOOL ../include/mp.h /^struct __mpool; typedef struct __mpool MPOOL;$/ +MPOOLFILE ../include/mp.h /^struct __mpoolfile; typedef struct __mpoolfile MPO/ +MPOOL_DUMP_ALL ../mp/mp_stat.c /^#define MPOOL_DUMP_ALL 0x07 \/* Debug all. *\/$/ +MPOOL_DUMP_HASH ../mp/mp_stat.c /^#define MPOOL_DUMP_HASH 0x01 \/* Debug hash chai/ +MPOOL_DUMP_LRU ../mp/mp_stat.c /^#define MPOOL_DUMP_LRU 0x02 \/* Debug LRU chains/ +MPOOL_DUMP_MEM ../mp/mp_stat.c /^#define MPOOL_DUMP_MEM 0x04 \/* Debug region mem/ +MPOOL_ON ../include/db_int.in /^#define MPOOL_ON(dbenv) ((dbenv)->mp_handle != NU/ +MP_CAN_MMAP ../include/mp.h /^#define MP_CAN_MMAP 0x01 \/* If the file can be m/ +MP_DEADFILE ../include/mp.h /^#define MP_DEADFILE 0x02 \/* Dirty pages can simp/ +MP_EXTENT ../include/mp.h /^#define MP_EXTENT 0x04 \/* Extent file. *\/$/ +MP_FLUSH ../include/mp.h /^#define MP_FLUSH 0x01 \/* Was opened to flush a b/ +MP_LSN_RETRY ../include/mp.h /^#define MP_LSN_RETRY 0x01 \/* Retry all BH_WRITE / +MP_READONLY ../include/mp.h /^#define MP_READONLY 0x02 \/* File is readonly. */ +MP_TEMP ../include/mp.h /^#define MP_TEMP 0x08 \/* Backing file is a tempo/ +MP_UNLINK ../include/mp.h /^#define MP_UNLINK 0x10 \/* Unlink file on last cl/ +MP_UPGRADE ../include/mp.h /^#define MP_UPGRADE 0x04 \/* File descriptor is re/ +MP_UPGRADE_FAIL ../include/mp.h /^#define MP_UPGRADE_FAIL 0x08 \/* Upgrade wasn't p/ +MSG ../mutex/mut_fcntl.c /^#define MSG "mutex_unlock: ERROR: released lock t/ +MSG1 ../mutex/mut_pthread.c /^#define MSG1 "mutex_lock: ERROR: lock currently i/ +MSG2 ../mutex/mut_pthread.c /^#define MSG2 "mutex_unlock: ERROR: lock already u/ +MSGBUF_LEN ../lock/lock_deadlock.c /^#define MSGBUF_LEN ((nlockers + 1) * 10 + 64)$/ +MSG_SIZE ../include/tcl_db.h /^#define MSG_SIZE 100 \/* Message size *\/$/ +MS_PER_SEC ../include/db_int.in /^#define MS_PER_SEC 1000 \/* Milliseconds in a sec/ +MUTEX ../include/db_int.in /^struct __mutex_t; typedef struct __mutex_t MUTEX;$/ +MUTEX_ALIGN ../include/mutex.h /^#define MUTEX_ALIGN sizeof(int)$/ +MUTEX_DESTROY ../include/mutex.h /^#define MUTEX_DESTROY(x) sema_destroy(x)$/ +MUTEX_FIELDS ../include/mutex.h /^#define MUTEX_FIELDS \\$/ +MUTEX_IGNORE ../include/mutex.h /^#define MUTEX_IGNORE 0x001 \/* Ignore, no lock re/ +MUTEX_INIT ../include/mutex.h /^#define MUTEX_INIT(x) 0$/ +MUTEX_INITED ../include/mutex.h /^#define MUTEX_INITED 0x002 \/* Mutex is successfu/ +MUTEX_LOCK ../include/mutex.h /^#define MUTEX_LOCK(dbenv, mp, fh) \\$/ +MUTEX_NO_MALLOC_LOCKS ../include/mutex.h /^#define MUTEX_NO_MALLOC_LOCKS$/ +MUTEX_NO_SHMGET_LOCKS ../include/mutex.h /^#define MUTEX_NO_SHMGET_LOCKS$/ +MUTEX_SELF_BLOCK ../include/mutex.h /^#define MUTEX_SELF_BLOCK 0x004 \/* Must block self/ +MUTEX_SET ../include/mutex.h /^#define MUTEX_SET(x) (!_check_lock(x, 0, 1))$/ +MUTEX_SYSTEM_RESOURCES ../include/mutex.h /^#define MUTEX_SYSTEM_RESOURCES$/ +MUTEX_THREAD ../include/mutex.h /^#define MUTEX_THREAD 0x008 \/* Thread-only mutex./ +MUTEX_THREAD_LOCK ../include/mutex.h /^#define MUTEX_THREAD_LOCK(dbenv, mp) \\$/ +MUTEX_THREAD_UNLOCK ../include/mutex.h /^#define MUTEX_THREAD_UNLOCK(dbenv, mp) \\$/ +MUTEX_UNLOCK ../include/mutex.h /^#define MUTEX_UNLOCK(dbenv, mp) \\$/ +MUTEX_UNSET ../include/mutex.h /^#define MUTEX_UNSET(x) _clear_lock(x, 0)$/ +M_16_SWAP ../include/db_swap.h /^#define M_16_SWAP(a) { \\$/ +M_32_SWAP ../include/db_swap.h /^#define M_32_SWAP(a) { \\$/ +Mtm ../mutex/tm.c /^main(argc, argv)$/ +NBUCKET ../include/mp.h /^#define NBUCKET(mc, mf_offset, pgno) \\$/ +NCACHE ../include/mp.h /^#define NCACHE(mp, pgno) \\$/ +NCACHED ../include/db_page.h /^#define NCACHED 32 \/* number of spare points *\// +NCACHED2X ../include/db_upgrade.h /^#define NCACHED2X 32 \/* number of spare points */ +NCACHED30 ../include/db_upgrade.h /^#define NCACHED30 32 \/* number of spare points */ +NDX_INVALID ../include/hash.h /^#define NDX_INVALID 0xFFFF$/ +NEW_GLOBAL_REF ../libdb_java/java_util.h /^#define NEW_GLOBAL_REF(jnienv, obj) \\$/ +NEXT_PGNO ../include/db_page.h /^#define NEXT_PGNO(p) (((PAGE *)p)->next_pgno)$/ +NOT_IMPLEMENTED ../libdb_java/java_util.h /^#define NOT_IMPLEMENTED(str) \\$/ +NUM_ENT ../include/db_page.h /^#define NUM_ENT(p) (((PAGE *)p)->entries)$/ +OBJECT_LOCK ../include/lock.h /^#define OBJECT_LOCK(lt, reg, obj, ndx) \\$/ +OBJ_LINKS_VALID ../include/lock.h /^#define OBJ_LINKS_VALID(L) ((L)->links.stqe_prev !/ +OKFLAGS ../btree/bt_verify.c /^#define OKFLAGS (DB_AGGRESSIVE | DB_NOORDERCHK | D/ +OKFLAGS_CDB ../env/env_open.c /^#define OKFLAGS_CDB \\$/ +OK_FLAGS ../env/env_method.c /^#define OK_FLAGS (DB_CDB_ALLDB | DB_NOMMAP | DB_TX/ +OPCODE_OF ../include/hash.h /^#define OPCODE_OF(N) (N & ~PAIR_MASK)$/ +OR_MAP ../lock/lock_deadlock.c /^#define OR_MAP(D, S, N) { \\$/ +OS_ROUNDOFF ../include/region.h /^#define OS_ROUNDOFF(i, s) { \\$/ +OS_VMPAGESIZE ../include/region.h /^#define OS_VMPAGESIZE (8 * 1024)$/ +OS_VMROUNDOFF ../include/region.h /^#define OS_VMROUNDOFF(i) OS_ROUNDOFF(i, OS_VMPAGES/ +OV_LEN ../include/db_page.h /^#define OV_LEN(p) (((PAGE *)p)->hf_offset)$/ +OV_REF ../include/db_page.h /^#define OV_REF(p) (((PAGE *)p)->entries)$/ +O_ACCMODE ../os/os_oflags.c /^#define O_ACCMODE (O_RDONLY | O_RDWR | O_WRONLY)$/ +O_INDX ../include/db_page.h /^#define O_INDX 1$/ +OpKind ../libdb_java/java_locked.h /^} OpKind;$/ +PAGE ../include/db_page.h /^} PAGE;$/ +PAIR_DATAMASK ../include/hash.h /^#define PAIR_DATAMASK 0x2$/ +PAIR_DUPMASK ../include/hash.h /^#define PAIR_DUPMASK 0x4$/ +PAIR_ISDATABIG ../include/hash.h /^#define PAIR_ISDATABIG(N) (N & PAIR_DATAMASK)$/ +PAIR_ISDATADUP ../include/hash.h /^#define PAIR_ISDATADUP(N) (N & PAIR_DUPMASK)$/ +PAIR_ISKEYBIG ../include/hash.h /^#define PAIR_ISKEYBIG(N) (N & PAIR_KEYMASK)$/ +PAIR_KEYMASK ../include/hash.h /^#define PAIR_KEYMASK 0x1$/ +PAIR_MASK ../include/hash.h /^#define PAIR_MASK 0xf$/ +PANIC_CHECK ../include/region.h /^#define PANIC_CHECK(dbenv) \\$/ +PATH_DOT ../include/db_int.in /^#define PATH_DOT "." \/* Current working directory/ +PATH_SEPARATOR ../include/db_int.in /^#define PATH_SEPARATOR "\/" \/* Path separator cha/ +PGNO ../include/db_page.h /^#define PGNO(p) (((PAGE *)p)->pgno)$/ +PGNO_BASE_MD ../include/db_page.h /^#define PGNO_BASE_MD 0 \/* Base database: metadata/ +PGNO_INVALID ../include/db_page.h /^#define PGNO_INVALID 0 \/* Invalid page number in / +POWER_OF_TWO ../include/db_verify.h /^#define POWER_OF_TWO(x) (((x) & ((x) - 1)) == 0)$/ +PREV_PGNO ../include/db_page.h /^#define PREV_PGNO(p) (((PAGE *)p)->prev_pgno)$/ +PSIZE_BOUNDARY ../db/db_pr.c /^#define PSIZE_BOUNDARY (64 * 1024 + 1)$/ +PTHREAD_UNLOCK_ATTEMPTS ../mutex/mut_pthread.c /^#define PTHREAD_UNLOCK_ATTEMPTS 5$/ +PUTOVFL ../include/hash.h /^#define PUTOVFL 0x40$/ +PUTPAIR ../include/hash.h /^#define PUTPAIR 0x20$/ +PUT_HKEYDATA ../include/db_page.h /^#define PUT_HKEYDATA(pe, kd, len, type) { \\$/ +PUT_PAGE ../db/db_upg_opd.c /^#define PUT_PAGE(dbp, fhp, pgno, page) { \\$/ +P_16_COPY ../include/db_swap.h /^#define P_16_COPY(a, b) { \\$/ +P_16_SWAP ../include/db_swap.h /^#define P_16_SWAP(a) { \\$/ +P_32_COPY ../include/db_swap.h /^#define P_32_COPY(a, b) { \\$/ +P_32_SWAP ../include/db_swap.h /^#define P_32_SWAP(a) { \\$/ +P_BTREEMETA ../include/db_page.h /^#define P_BTREEMETA 9 \/* Btree metadata page. *\// +P_ENTRY ../include/db_page.h /^#define P_ENTRY(pg, indx) ((u_int8_t *)pg + ((PAGE/ +P_FREESPACE ../include/db_page.h /^#define P_FREESPACE(pg) (HOFFSET(pg) - LOFFSET(pg/ +P_HASH ../include/db_page.h /^#define P_HASH 2 \/* Hash. *\/$/ +P_HASHMETA ../include/db_page.h /^#define P_HASHMETA 8 \/* Hash metadata page. *\/$/ +P_IBTREE ../include/db_page.h /^#define P_IBTREE 3 \/* Btree internal. *\/$/ +P_INDX ../include/db_page.h /^#define P_INDX 2$/ +P_INIT ../include/db_page.h /^#define P_INIT(pg, pg_size, n, pg_prev, pg_next, b/ +P_INVALID ../include/db_page.h /^#define P_INVALID 0 \/* Invalid page type. *\/$/ +P_IRECNO ../include/db_page.h /^#define P_IRECNO 4 \/* Recno internal. *\/$/ +P_LBTREE ../include/db_page.h /^#define P_LBTREE 5 \/* Btree leaf. *\/$/ +P_LDUP ../include/db_page.h /^#define P_LDUP 12 \/* Off-page duplicate leaf. */ +P_LRECNO ../include/db_page.h /^#define P_LRECNO 6 \/* Recno leaf. *\/$/ +P_MAXSPACE ../include/db_page.h /^#define P_MAXSPACE(psize) ((psize) - P_OVERHEAD)$/ +P_OVERFLOW ../include/db_page.h /^#define P_OVERFLOW 7 \/* Overflow. *\/$/ +P_OVERHEAD ../include/db_page.h /^#define P_OVERHEAD (SSZA(PAGE, inp))$/ +P_OVFLSPACE ../include/db_page.h /^#define P_OVFLSPACE(psize, pg) (P_MAXSPACE(psize)/ +P_PAGETYPE_MAX ../include/db_page.h /^#define P_PAGETYPE_MAX 13$/ +P_QAMDATA ../include/db_page.h /^#define P_QAMDATA 11 \/* Queue data page. *\/$/ +P_QAMMETA ../include/db_page.h /^#define P_QAMMETA 10 \/* Queue metadata page. *\/$/ +P_TO_ULONG ../include/db_int.in /^#define P_TO_ULONG(p) ((u_long)(db_alignp_t)(p))$/ +QAMDATA ../include/qam.h /^} QAMDATA;$/ +QAM_AFTER_CURRENT ../include/qam.h /^#define QAM_AFTER_CURRENT(meta, recno) \\$/ +QAM_BEFORE_FIRST ../include/qam.h /^#define QAM_BEFORE_FIRST(meta, recno) \\$/ +QAM_GET_RECORD ../include/qam.h /^#define QAM_GET_RECORD(dbp, page, index) \\$/ +QAM_NOT_VALID ../include/qam.h /^#define QAM_NOT_VALID(meta, recno) \\$/ +QAM_RECNO_INDEX ../include/qam.h /^#define QAM_RECNO_INDEX(dbp, pgno, recno) \\$/ +QAM_RECNO_PAGE ../include/qam.h /^#define QAM_RECNO_PAGE(dbp, recno) \\$/ +QAM_RECNO_PER_PAGE ../include/qam.h /^#define QAM_RECNO_PER_PAGE(dbp) (((QUEUE*)(dbp)->q/ +QAM_SET ../include/qam.h /^#define QAM_SET 0x02$/ +QAM_SETCUR ../include/qam.h /^#define QAM_SETCUR 0x02$/ +QAM_SETFIRST ../include/qam.h /^#define QAM_SETFIRST 0x01$/ +QAM_VALID ../include/qam.h /^#define QAM_VALID 0x01$/ +QDEBUG ../qam/qam.c /^#define QDEBUG$/ +QMETA ../include/db_page.h /^} QMETA32, QMETA;$/ +QMETA30 ../include/db_upgrade.h /^} QMETA30;$/ +QMETA31 ../include/db_upgrade.h /^} QMETA31;$/ +QPAGE ../include/db_page.h /^} QPAGE;$/ +QUEUE ../include/qam.h /^struct __queue; typedef struct __queue QUEUE;$/ +QUEUE_CURSOR ../include/qam.h /^struct __qcursor; typedef struct __qcursor QUEUE_C/ +QUEUE_EXTENT ../include/qam.h /^#define QUEUE_EXTENT "%s\/__dbq.%s.%d"$/ +QUEUE_FILELIST ../include/qam.h /^} QUEUE_FILELIST;$/ +RAND_MAX ../tcl/tcl_compat.c /^#define RAND_MAX 0x7fffffff$/ +RECNO ../include/btree.h /^struct __recno; typedef struct __recno RECNO;$/ +RECNOINFO ../include/db_185.in /^} RECNOINFO;$/ +RECNO_OOB ../include/db_int.in /^#define RECNO_OOB 0 \/* Illegal record number. */ +REC_CLOSE ../include/db_am.h /^#define REC_CLOSE { \\$/ +REC_INTRO ../include/db_am.h /^#define REC_INTRO(func, inc_count) { \\$/ +REC_NOOP_CLOSE ../include/db_am.h /^#define REC_NOOP_CLOSE \\$/ +REC_NOOP_INTRO ../include/db_am.h /^#define REC_NOOP_INTRO(func) { \\$/ +REC_PRINT ../include/db_am.h /^#define REC_PRINT(func) \\$/ +REGENV ../include/region.h /^} REGENV;$/ +REGENV_REF ../include/region.h /^} REGENV_REF;$/ +REGINFO ../include/db_int.in /^struct __db_reginfo_t; typedef struct __db_reginfo/ +REGION ../include/region.h /^} REGION;$/ +REGION_CREATE ../include/region.h /^#define REGION_CREATE 0x01 \/* Caller created reg/ +REGION_CREATE_OK ../include/region.h /^#define REGION_CREATE_OK 0x02 \/* Caller willing t/ +REGION_ID_ENV ../include/region.h /^#define REGION_ID_ENV 1 \/* Primary environment I/ +REGION_JOIN_OK ../include/region.h /^#define REGION_JOIN_OK 0x04 \/* Caller is looking/ +REGMAINT ../include/region.h /^} REGMAINT;$/ +REGMAINT_STAT ../include/region.h /^} REGMAINT_STAT;$/ +RESET_RET_MEM ../include/db_int.in /^#define RESET_RET_MEM(dbc) \\$/ +RET_ERROR ../include/db_185.in /^#define RET_ERROR -1 \/* Return values. *\/$/ +RET_SPECIAL ../include/db_185.in /^#define RET_SPECIAL 1$/ +RET_SUCCESS ../include/db_185.in /^#define RET_SUCCESS 0$/ +RE_NREC ../include/db_page.h /^#define RE_NREC(p) \\$/ +RE_NREC_ADJ ../include/db_page.h /^#define RE_NREC_ADJ(p, adj) \\$/ +RE_NREC_SET ../include/db_page.h /^#define RE_NREC_SET(p, num) \\$/ +RINTERNAL ../include/db_page.h /^} RINTERNAL;$/ +RINTERNAL_PSIZE ../include/db_page.h /^#define RINTERNAL_PSIZE \\$/ +RINTERNAL_SIZE ../include/db_page.h /^#define RINTERNAL_SIZE \\$/ +RMNAMESZ ../include/xa.h /^#define RMNAMESZ 32 \/* length of resource manage/ +RPC_SVC_FG ../rpc_server/db_server_svc.c /^#define RPC_SVC_FG$/ +RSMSG ../db185/db185.c /^#define RSMSG "DB: DB 1.85's R_RECNOSYNC sync flag/ +R_ADDR ../include/region.h /^#define R_ADDR(base, offset) \\$/ +R_CURSOR ../include/db_185.in /^#define R_CURSOR 1 \/* del, put, seq *\/$/ +R_DUP ../include/db_185.in /^#define R_DUP 0x01 \/* duplicate keys *\/$/ +R_FIRST ../include/db_185.in /^#define R_FIRST 3 \/* seq *\/$/ +R_FIXEDLEN ../include/db_185.in /^#define R_FIXEDLEN 0x01 \/* fixed-length records */ +R_IAFTER ../include/db_185.in /^#define R_IAFTER 4 \/* put (RECNO) *\/$/ +R_IBEFORE ../include/db_185.in /^#define R_IBEFORE 5 \/* put (RECNO) *\/$/ +R_LAST ../include/db_185.in /^#define R_LAST 6 \/* seq (BTREE, RECNO) *\/$/ +R_LOCK ../include/region.h /^#define R_LOCK(dbenv, reginfo) \\$/ +R_NEXT ../include/db_185.in /^#define R_NEXT 7 \/* seq *\/$/ +R_NOKEY ../include/db_185.in /^#define R_NOKEY 0x02 \/* key not required *\/$/ +R_NOOVERWRITE ../include/db_185.in /^#define R_NOOVERWRITE 8 \/* put *\/$/ +R_OFFSET ../include/region.h /^#define R_OFFSET(base, p) \\$/ +R_PREV ../include/db_185.in /^#define R_PREV 9 \/* seq (BTREE, RECNO) *\/$/ +R_RECNOSYNC ../include/db_185.in /^#define R_RECNOSYNC 11 \/* sync (RECNO) *\/$/ +R_SETCURSOR ../include/db_185.in /^#define R_SETCURSOR 10 \/* put (RECNO) *\/$/ +R_SNAPSHOT ../include/db_185.in /^#define R_SNAPSHOT 0x04 \/* snapshot the input *\// +R_UNLOCK ../include/region.h /^#define R_UNLOCK(dbenv, reginfo) \\$/ +SALVAGE_HASH ../include/db_verify.h /^#define SALVAGE_HASH 6$/ +SALVAGE_IGNORE ../include/db_verify.h /^#define SALVAGE_IGNORE 1$/ +SALVAGE_INVALID ../include/db_verify.h /^#define SALVAGE_INVALID 0$/ +SALVAGE_LBTREE ../include/db_verify.h /^#define SALVAGE_LBTREE 5$/ +SALVAGE_LDUP ../include/db_verify.h /^#define SALVAGE_LDUP 2$/ +SALVAGE_LRECNO ../include/db_verify.h /^#define SALVAGE_LRECNO 7$/ +SALVAGE_LRECNODUP ../include/db_verify.h /^#define SALVAGE_LRECNODUP 3$/ +SALVAGE_OVERFLOW ../include/db_verify.h /^#define SALVAGE_OVERFLOW 4$/ +SALVAGE_PRINTFOOTER ../include/db_verify.h /^#define SALVAGE_PRINTFOOTER 0x02$/ +SALVAGE_PRINTHEADER ../include/db_verify.h /^#define SALVAGE_PRINTHEADER 0x01$/ +SA_SKIPFIRSTKEY ../include/db_verify.h /^#define SA_SKIPFIRSTKEY 0x00080000$/ +SERIAL_INIT ../os/os_fid.c /^#define SERIAL_INIT 0$/ +SET_MAP ../lock/lock_deadlock.c /^#define SET_MAP(M, B) ((M)[(B) \/ 32] |= (1 << ((B/ +SET_RET_MEM ../include/db_int.in /^#define SET_RET_MEM(dbc, owner) \\$/ +SHALLOC_FRAGMENT ../env/db_salloc.c /^#define SHALLOC_FRAGMENT 32$/ +SHOBJECT_LOCK ../include/lock.h /^#define SHOBJECT_LOCK(lt, reg, shobj, ndx) \\$/ +SH_CIRCLEQ_ENTRY ../include/shqueue.h /^#define SH_CIRCLEQ_ENTRY \\$/ +SH_CIRCLEQ_FIRST ../include/shqueue.h /^#define SH_CIRCLEQ_FIRST(head, type) \\$/ +SH_CIRCLEQ_FIRSTP ../include/shqueue.h /^#define SH_CIRCLEQ_FIRSTP(head, type) \\$/ +SH_CIRCLEQ_HEAD ../include/shqueue.h /^#define SH_CIRCLEQ_HEAD(name) \\$/ +SH_CIRCLEQ_INIT ../include/shqueue.h /^#define SH_CIRCLEQ_INIT(head) { \\$/ +SH_CIRCLEQ_INSERT_AFTER ../include/shqueue.h /^#define SH_CIRCLEQ_INSERT_AFTER(head, listelm, elm/ +SH_CIRCLEQ_INSERT_BEFORE ../include/shqueue.h /^#define SH_CIRCLEQ_INSERT_BEFORE(head, listelm, el/ +SH_CIRCLEQ_INSERT_HEAD ../include/shqueue.h /^#define SH_CIRCLEQ_INSERT_HEAD(head, elm, field, t/ +SH_CIRCLEQ_INSERT_TAIL ../include/shqueue.h /^#define SH_CIRCLEQ_INSERT_TAIL(head, elm, field, t/ +SH_CIRCLEQ_LAST ../include/shqueue.h /^#define SH_CIRCLEQ_LAST(head, type) \\$/ +SH_CIRCLEQ_LASTP ../include/shqueue.h /^#define SH_CIRCLEQ_LASTP(head, type) \\$/ +SH_CIRCLEQ_NEXT ../include/shqueue.h /^#define SH_CIRCLEQ_NEXT(head, elm, field, type) / +SH_CIRCLEQ_NEXTP ../include/shqueue.h /^#define SH_CIRCLEQ_NEXTP(elm, field, type) \\$/ +SH_CIRCLEQ_PREV ../include/shqueue.h /^#define SH_CIRCLEQ_PREV(head, elm, field, type) / +SH_CIRCLEQ_PREVP ../include/shqueue.h /^#define SH_CIRCLEQ_PREVP(elm, field, type) \\$/ +SH_CIRCLEQ_REMOVE ../include/shqueue.h /^#define SH_CIRCLEQ_REMOVE(head, elm, field, type) / +SH_DBT ../include/lock.h /^} SH_DBT;$/ +SH_DBT_PTR ../include/lock.h /^#define SH_DBT_PTR(p) ((void *)(((u_int8_t *)(p)) / +SH_LIST_ENTRY ../include/shqueue.h /^#define SH_LIST_ENTRY \\$/ +SH_LIST_FIRST ../include/shqueue.h /^#define SH_LIST_FIRST(head, type) \\$/ +SH_LIST_FIRSTP ../include/shqueue.h /^#define SH_LIST_FIRSTP(head, type) \\$/ +SH_LIST_HEAD ../include/shqueue.h /^#define SH_LIST_HEAD(name) \\$/ +SH_LIST_INIT ../include/shqueue.h /^#define SH_LIST_INIT(head) (head)->slh_first = -1$/ +SH_LIST_INSERT_AFTER ../include/shqueue.h /^#define SH_LIST_INSERT_AFTER(listelm, elm, field, / +SH_LIST_INSERT_HEAD ../include/shqueue.h /^#define SH_LIST_INSERT_HEAD(head, elm, field, type/ +SH_LIST_NEXT ../include/shqueue.h /^#define SH_LIST_NEXT(elm, field, type) \\$/ +SH_LIST_NEXTP ../include/shqueue.h /^#define SH_LIST_NEXTP(elm, field, type) \\$/ +SH_LIST_NEXT_TO_PREV ../include/shqueue.h /^#define SH_LIST_NEXT_TO_PREV(elm, field) \\$/ +SH_LIST_PREV ../include/shqueue.h /^#define SH_LIST_PREV(elm, field) \\$/ +SH_LIST_REMOVE ../include/shqueue.h /^#define SH_LIST_REMOVE(elm, field, type) do { / +SH_PTR_TO_OFF ../include/shqueue.h /^#define SH_PTR_TO_OFF(src, dest) \\$/ +SH_TAILQ_ENTRY ../include/shqueue.h /^#define SH_TAILQ_ENTRY \\$/ +SH_TAILQ_FIRST ../include/shqueue.h /^#define SH_TAILQ_FIRST(head, type) \\$/ +SH_TAILQ_FIRSTP ../include/shqueue.h /^#define SH_TAILQ_FIRSTP(head, type) \\$/ +SH_TAILQ_HEAD ../include/db_shash.h /^typedef SH_TAILQ_HEAD(__hash_head) DB_HASHTAB;$/ +SH_TAILQ_INIT ../include/shqueue.h /^#define SH_TAILQ_INIT(head) { \\$/ +SH_TAILQ_INSERT_AFTER ../include/shqueue.h /^#define SH_TAILQ_INSERT_AFTER(head, listelm, elm, / +SH_TAILQ_INSERT_HEAD ../include/shqueue.h /^#define SH_TAILQ_INSERT_HEAD(head, elm, field, typ/ +SH_TAILQ_INSERT_TAIL ../include/shqueue.h /^#define SH_TAILQ_INSERT_TAIL(head, elm, field) do / +SH_TAILQ_LAST ../include/shqueue.h /^#define SH_TAILQ_LAST(head) \\$/ +SH_TAILQ_NEXT ../include/shqueue.h /^#define SH_TAILQ_NEXT(elm, field, type) \\$/ +SH_TAILQ_NEXTP ../include/shqueue.h /^#define SH_TAILQ_NEXTP(elm, field, type) \\$/ +SH_TAILQ_NEXT_TO_PREV ../include/shqueue.h /^#define SH_TAILQ_NEXT_TO_PREV(elm, field) \\$/ +SH_TAILQ_PREVP ../include/shqueue.h /^#define SH_TAILQ_PREVP(elm, field) \\$/ +SH_TAILQ_REMOVE ../include/shqueue.h /^#define SH_TAILQ_REMOVE(head, elm, field, type) do/ +SORTED_SET ../db/db_join.c /^#define SORTED_SET(jc, n) ((jc)->j_curslist[(n)]/ +SPLITNEW ../include/hash.h /^#define SPLITNEW 0x90$/ +SPLITOLD ../include/hash.h /^#define SPLITOLD 0x80$/ +SPL_NRECS ../include/btree.h /^#define SPL_NRECS 0x01 \/* Split tree has record / +SSZ ../include/db_int.in /^#define SSZ(name, field) ((int)&(((name *)0)->fiel/ +SSZA ../include/db_int.in /^#define SSZA(name, field) ((int)&(((name *)0)->fie/ +STDERR_FILENO ../db185/db185.c /^#define STDERR_FILENO 2$/ +STD_LOCKING ../include/db_int.in /^#define STD_LOCKING(dbc) \\$/ +STK_CLRDBC ../include/btree.h /^#define STK_CLRDBC 0x01 \/* Clear dbc->page refer/ +STK_NOLOCK ../include/btree.h /^#define STK_NOLOCK 0x02 \/* Don't retain locks. */ +ST_DUPOK ../include/db_verify.h /^#define ST_DUPOK 0x00010000 \/* Duplicates are acc/ +ST_DUPSET ../include/db_verify.h /^#define ST_DUPSET 0x00020000 \/* Subtree is in a d/ +ST_DUPSORT ../include/db_verify.h /^#define ST_DUPSORT 0x00040000 \/* Duplicates are s/ +ST_IS_RECNO ../include/db_verify.h /^#define ST_IS_RECNO 0x00080000 \/* Subtree is a re/ +ST_OVFL_LEAF ../include/db_verify.h /^#define ST_OVFL_LEAF 0x00100000 \/* Overflow reffe/ +ST_RECNUM ../include/db_verify.h /^#define ST_RECNUM 0x00200000 \/* Subtree has recor/ +ST_RELEN ../include/db_verify.h /^#define ST_RELEN 0x00400000 \/* Subtree has fixed-/ +ST_TOPLEVEL ../include/db_verify.h /^#define ST_TOPLEVEL 0x00800000 \/* Subtree == enti/ +SWAP16 ../include/db_swap.h /^#define SWAP16(p) { \\$/ +SWAP32 ../include/db_swap.h /^#define SWAP32(p) { \\$/ +S_APPEND ../include/btree.h /^#define S_APPEND 0x00040 \/* Append to the tree. / +S_DELETE ../include/btree.h /^#define S_DELETE (S_WRITE | S_DUPFIRST | S_DELNO |/ +S_DELNO ../include/btree.h /^#define S_DELNO 0x00080 \/* Don't return deleted/ +S_DUPFIRST ../include/btree.h /^#define S_DUPFIRST 0x00100 \/* Return first dupli/ +S_DUPLAST ../include/btree.h /^#define S_DUPLAST 0x00200 \/* Return last duplica/ +S_EXACT ../include/btree.h /^#define S_EXACT 0x00400 \/* Exact items only. */ +S_FIND ../include/btree.h /^#define S_FIND (S_READ | S_DUPFIRST | S_DELNO)$/ +S_FIND_WR ../include/btree.h /^#define S_FIND_WR (S_WRITE | S_DUPFIRST | S_DELNO)/ +S_INSERT ../include/btree.h /^#define S_INSERT (S_WRITE | S_DUPLAST | S_PAST_EOF/ +S_IRGRP ../os/os_oflags.c /^#define S_IRGRP 0 \/* R for group *\/$/ +S_IROTH ../os/os_oflags.c /^#define S_IROTH 0 \/* R for other *\/$/ +S_IRUSR ../os/os_oflags.c /^#define S_IRUSR S_IREAD \/* R for owner *\/$/ +S_ISDIR ../os/os_stat.c /^#define S_ISDIR(m) (_S_IFDIR & (m))$/ +S_IWGRP ../os/os_oflags.c /^#define S_IWGRP 0 \/* W for group *\/$/ +S_IWOTH ../os/os_oflags.c /^#define S_IWOTH 0 \/* W for other *\/$/ +S_IWUSR ../os/os_oflags.c /^#define S_IWUSR S_IWRITE \/* W for owner *\/$/ +S_KEYFIRST ../include/btree.h /^#define S_KEYFIRST (S_WRITE | S_DUPFIRST | S_PAST_/ +S_KEYLAST ../include/btree.h /^#define S_KEYLAST (S_WRITE | S_DUPLAST | S_PAST_EO/ +S_PARENT ../include/btree.h /^#define S_PARENT 0x00800 \/* Lock page pair. *\/$/ +S_PAST_EOF ../include/btree.h /^#define S_PAST_EOF 0x02000 \/* If doing insert se/ +S_READ ../include/btree.h /^#define S_READ 0x00001 \/* Read locks. *\/$/ +S_STACK ../include/btree.h /^#define S_STACK 0x01000 \/* Need a complete stac/ +S_STK_ONLY ../include/btree.h /^#define S_STK_ONLY 0x04000 \/* Just return info i/ +S_WRITE ../include/btree.h /^#define S_WRITE 0x00002 \/* Write locks. *\/$/ +S_WRPAIR ../include/btree.h /^#define S_WRPAIR (S_WRITE | S_DUPLAST | S_PAST_EOF/ +TAILQ_ENTRY ../include/queue.h /^#define TAILQ_ENTRY(type) \\$/ +TAILQ_FIRST ../include/queue.h /^#define TAILQ_FIRST(head) ((head)->tqh_first)$/ +TAILQ_HEAD ../include/queue.h /^#define TAILQ_HEAD(name, type) \\$/ +TAILQ_INIT ../include/queue.h /^#define TAILQ_INIT(head) do { \\$/ +TAILQ_INSERT_AFTER ../include/queue.h /^#define TAILQ_INSERT_AFTER(head, listelm, elm, fie/ +TAILQ_INSERT_BEFORE ../include/queue.h /^#define TAILQ_INSERT_BEFORE(listelm, elm, field) d/ +TAILQ_INSERT_HEAD ../include/queue.h /^#define TAILQ_INSERT_HEAD(head, elm, field) do { / +TAILQ_INSERT_TAIL ../include/queue.h /^#define TAILQ_INSERT_TAIL(head, elm, field) do { / +TAILQ_NEXT ../include/queue.h /^#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_/ +TAILQ_REINSERT_HEAD ../include/queue.h /^#define TAILQ_REINSERT_HEAD(head, elm, field) do {/ +TAILQ_REMOVE ../include/queue.h /^#define TAILQ_REMOVE(head, elm, field) do { \\$/ +TLOOP ../clib/memmove.c /^#define TLOOP(s) if (t) TLOOP1(s)$/ +TLOOP1 ../clib/memmove.c /^#define TLOOP1(s) do { s; } while (--t)$/ +TMASYNC ../include/xa.h /^#define TMASYNC 0x80000000L \/* perform routine a/ +TMENDRSCAN ../include/xa.h /^#define TMENDRSCAN 0x00800000L \/* end a recovery / +TMER_INVAL ../include/xa.h /^#define TMER_INVAL -2 \/* invalid arguments were / +TMER_PROTO ../include/xa.h /^#define TMER_PROTO -3 \/* routine invoked in an i/ +TMER_TMERR ../include/xa.h /^#define TMER_TMERR -1 \/* an error occurred in th/ +TMFAIL ../include/xa.h /^#define TMFAIL 0x20000000L \/* dissociates caller/ +TMJOIN ../include/xa.h /^#define TMJOIN 0x00200000L \/* caller is joining / +TMMIGRATE ../include/xa.h /^#define TMMIGRATE 0x00100000L \/* caller intends t/ +TMMULTIPLE ../include/xa.h /^#define TMMULTIPLE 0x00400000L \/* wait for any as/ +TMNOFLAGS ../include/xa.h /^#define TMNOFLAGS 0x00000000L \/* no resource mana/ +TMNOMIGRATE ../include/xa.h /^#define TMNOMIGRATE 0x00000002L \/* resource manag/ +TMNOWAIT ../include/xa.h /^#define TMNOWAIT 0x10000000L \/* return if blockin/ +TMONEPHASE ../include/xa.h /^#define TMONEPHASE 0x40000000L \/* caller is using/ +TMREGISTER ../include/xa.h /^#define TMREGISTER 0x00000001L \/* resource manage/ +TMRESUME ../include/xa.h /^#define TMRESUME 0x08000000L \/* caller is resumin/ +TMSTARTRSCAN ../include/xa.h /^#define TMSTARTRSCAN 0x01000000L \/* start a recov/ +TMSUCCESS ../include/xa.h /^#define TMSUCCESS 0x04000000L \/* dissociate calle/ +TMSUSPEND ../include/xa.h /^#define TMSUSPEND 0x02000000L \/* caller is suspen/ +TMUSEASYNC ../include/xa.h /^#define TMUSEASYNC 0x00000004L \/* resource manage/ +TM_JOIN ../include/xa.h /^#define TM_JOIN 2 \/* caller is joining existing/ +TM_OK ../include/xa.h /^#define TM_OK 0 \/* normal execution *\/$/ +TM_RESUME ../include/xa.h /^#define TM_RESUME 1 \/* caller is resuming associ/ +TXNLIST_FLAG_CLOSED ../include/db_dispatch.h /^#define TXNLIST_FLAG_CLOSED 0x2$/ +TXNLIST_FLAG_DELETED ../include/db_dispatch.h /^#define TXNLIST_FLAG_DELETED 0x1$/ +TXNLIST_INVALID_ID ../include/db_dispatch.h /^#define TXNLIST_INVALID_ID 0xffffffff$/ +TXNLIST_NEW ../include/db_dispatch.h /^#define TXNLIST_NEW 0x1$/ +TXN_ABORT ../include/txn.h /^#define TXN_ABORT 3$/ +TXN_ABORTED ../include/txn.h /^#define TXN_ABORTED 2$/ +TXN_BUBBLE ../db/db_dispatch.c /^#define TXN_BUBBLE(AP, MAX) { \\$/ +TXN_CHILDCOMMIT ../include/txn.h /^#define TXN_CHILDCOMMIT 0x01 \/* Transaction that/ +TXN_COLLECTED ../include/txn.h /^#define TXN_COLLECTED 0x1$/ +TXN_COMMIT ../include/txn.h /^#define TXN_COMMIT 1$/ +TXN_COMMITTED ../include/txn.h /^#define TXN_COMMITTED 4$/ +TXN_DETAIL ../include/txn.h /^} TXN_DETAIL;$/ +TXN_DIRTY_READ ../include/txn.h /^#define TXN_DIRTY_READ 0x02 \/* Transaction does / +TXN_INVALID ../include/txn.h /^#define TXN_INVALID 0xffffffff \/* Maximum number / +TXN_INVALID_ID ../include/txn.h /^#define TXN_INVALID_ID 0 \/* Invalid transaction / +TXN_MAINT_SIZE ../include/txn.h /^#define TXN_MAINT_SIZE (sizeof(roff_t) * DB_MAX_HA/ +TXN_MALLOC ../include/txn.h /^#define TXN_MALLOC 0x04 \/* Structure allocated b/ +TXN_MINIMUM ../include/txn.h /^#define TXN_MINIMUM 0x80000000$/ +TXN_NOSYNC ../include/txn.h /^#define TXN_NOSYNC 0x08 \/* Do not sync on prepar/ +TXN_NOTFOUND ../include/txn.h /^#define TXN_NOTFOUND 4$/ +TXN_NOWAIT ../include/txn.h /^#define TXN_NOWAIT 0x10 \/* Do not wait on locks./ +TXN_OK ../include/txn.h /^#define TXN_OK 0$/ +TXN_ON ../include/db_int.in /^#define TXN_ON(dbenv) ((dbenv)->tx_handle != NULL/ +TXN_PREPARE ../include/txn.h /^#define TXN_PREPARE 2$/ +TXN_PREPARED ../include/txn.h /^#define TXN_PREPARED 3$/ +TXN_RESTORED ../include/txn.h /^#define TXN_RESTORED 0x2$/ +TXN_RUNNING ../include/txn.h /^#define TXN_RUNNING 1$/ +TXN_SYNC ../include/txn.h /^#define TXN_SYNC 0x20 \/* Sync on prepare and com/ +TXN_XA_ABORTED ../include/txn.h /^#define TXN_XA_ABORTED 1$/ +TXN_XA_DEADLOCKED ../include/txn.h /^#define TXN_XA_DEADLOCKED 2$/ +TXN_XA_ENDED ../include/txn.h /^#define TXN_XA_ENDED 3$/ +TXN_XA_PREPARED ../include/txn.h /^#define TXN_XA_PREPARED 4$/ +TXN_XA_STARTED ../include/txn.h /^#define TXN_XA_STARTED 5$/ +TXN_XA_SUSPENDED ../include/txn.h /^#define TXN_XA_SUSPENDED 6$/ +TYPE ../include/db_page.h /^#define TYPE(p) (((PAGE *)p)->type)$/ +TYPE_ERR_PRINT ../include/db_verify.h /^#define TYPE_ERR_PRINT(dbenv, func, pgno, ptype) / +UINT16_T_MAX ../include/db_int.in /^#define UINT16_T_MAX 0xffff \/* Maximum 16 bit/ +UINT32_T_MAX ../include/db_int.in /^#define UINT32_T_MAX 0xffffffff \/* Maximum 32 bit/ +UMRW_SET ../include/debug.h /^#define UMRW_SET(v) (v) = 0$/ +UNLOCKREGION ../include/lock.h /^#define UNLOCKREGION(dbenv, lt) R_UNLOCK((dbenv),/ +UPREFIX ../clib/strerror.c /^#define UPREFIX "Unknown error: "$/ +USEC_PER_MS ../include/db_int.in /^#define USEC_PER_MS 1000 \/* Microseconds in a mi/ +VRFY_CHILDINFO ../include/db_int.in /^struct __vrfy_childinfo; typedef struct __vrfy_chi/ +VRFY_DBINFO ../include/db_int.in /^struct __vrfy_dbinfo; typedef struct __vrfy_dbin/ +VRFY_DUPS_UNSORTED ../include/db_verify.h /^#define VRFY_DUPS_UNSORTED 0x0001 \/* Have to flag/ +VRFY_HAS_DUPS ../include/db_verify.h /^#define VRFY_HAS_DUPS 0x0002$/ +VRFY_HAS_DUPSORT ../include/db_verify.h /^#define VRFY_HAS_DUPSORT 0x0004 \/* Has the flag s/ +VRFY_HAS_RECNUMS ../include/db_verify.h /^#define VRFY_HAS_RECNUMS 0x0010$/ +VRFY_HAS_SUBDBS ../include/db_verify.h /^#define VRFY_HAS_SUBDBS 0x0008$/ +VRFY_INCOMPLETE ../include/db_verify.h /^#define VRFY_INCOMPLETE 0x0020 \/* Meta or item o/ +VRFY_IS_ALLZEROES ../include/db_verify.h /^#define VRFY_IS_ALLZEROES 0x0040 \/* Hash page we / +VRFY_IS_FIXEDLEN ../include/db_verify.h /^#define VRFY_IS_FIXEDLEN 0x0080$/ +VRFY_IS_RECNO ../include/db_verify.h /^#define VRFY_IS_RECNO 0x0100$/ +VRFY_IS_RRECNO ../include/db_verify.h /^#define VRFY_IS_RRECNO 0x0200$/ +VRFY_OVFL_LEAFSEEN ../include/db_verify.h /^#define VRFY_OVFL_LEAFSEEN 0x0400$/ +VRFY_PAGEINFO ../include/db_int.in /^struct __vrfy_pageinfo; typedef struct __vrfy_page/ +V_DUPLICATE ../include/db_verify.h /^#define V_DUPLICATE 1 \/* off-page dup metadata */ +V_OVERFLOW ../include/db_verify.h /^#define V_OVERFLOW 2 \/* overflow page *\/$/ +V_RECNO ../include/db_verify.h /^#define V_RECNO 3 \/* btree internal or leaf pag/ +WORDS_BIGENDIAN ../common/db_byteorder.c /^#define WORDS_BIGENDIAN 1$/ +WRAPPED_CLASS ../include/cxx_int.h /^WRAPPED_CLASS(DbMpoolFile, DbMpoolFileImp, DB_MPOO/ +XAER_ASYNC ../include/xa.h /^#define XAER_ASYNC -2 \/* asynchronous operation / +XAER_DUPID ../include/xa.h /^#define XAER_DUPID -8 \/* the XID already exists / +XAER_INVAL ../include/xa.h /^#define XAER_INVAL -5 \/* invalid arguments were / +XAER_NOTA ../include/xa.h /^#define XAER_NOTA -4 \/* the XID is not valid *\// +XAER_OUTSIDE ../include/xa.h /^#define XAER_OUTSIDE -9 \/* resource manager doin/ +XAER_PROTO ../include/xa.h /^#define XAER_PROTO -6 \/* routine invoked in an i/ +XAER_RMERR ../include/xa.h /^#define XAER_RMERR -3 \/* a resource manager erro/ +XAER_RMFAIL ../include/xa.h /^#define XAER_RMFAIL -7 \/* resource manager unava/ +XA_FLAGS ../xa/xa.c /^#define XA_FLAGS \\$/ +XA_H ../include/xa.h /^#define XA_H$/ +XA_HEURCOM ../include/xa.h /^#define XA_HEURCOM 7 \/* the transaction branch h/ +XA_HEURHAZ ../include/xa.h /^#define XA_HEURHAZ 8 \/* the transaction branch m/ +XA_HEURMIX ../include/xa.h /^#define XA_HEURMIX 5 \/* the transaction branch h/ +XA_HEURRB ../include/xa.h /^#define XA_HEURRB 6 \/* the transaction branch ha/ +XA_METHODS ../xa/xa_db.c /^} XA_METHODS;$/ +XA_NOMIGRATE ../include/xa.h /^#define XA_NOMIGRATE 9 \/* resumption must occur / +XA_OK ../include/xa.h /^#define XA_OK 0 \/* normal execution *\/$/ +XA_RBBASE ../include/xa.h /^#define XA_RBBASE 100 \/* The inclusive lower bou/ +XA_RBCOMMFAIL ../include/xa.h /^#define XA_RBCOMMFAIL XA_RBBASE+1 \/* The rollback/ +XA_RBDEADLOCK ../include/xa.h /^#define XA_RBDEADLOCK XA_RBBASE+2 \/* A deadlock w/ +XA_RBEND ../include/xa.h /^#define XA_RBEND XA_RBTRANSIENT \/* The inclusive / +XA_RBINTEGRITY ../include/xa.h /^#define XA_RBINTEGRITY XA_RBBASE+3 \/* A condition/ +XA_RBOTHER ../include/xa.h /^#define XA_RBOTHER XA_RBBASE+4 \/* The resource ma/ +XA_RBPROTO ../include/xa.h /^#define XA_RBPROTO XA_RBBASE+5 \/* A protocol erro/ +XA_RBROLLBACK ../include/xa.h /^#define XA_RBROLLBACK XA_RBBASE \/* The rollback w/ +XA_RBTIMEOUT ../include/xa.h /^#define XA_RBTIMEOUT XA_RBBASE+6 \/* A transaction/ +XA_RBTRANSIENT ../include/xa.h /^#define XA_RBTRANSIENT XA_RBBASE+7 \/* May retry t/ +XA_RDONLY ../include/xa.h /^#define XA_RDONLY 3 \/* the transaction branch wa/ +XA_RETRY ../include/xa.h /^#define XA_RETRY 4 \/* routine returned with no e/ +XID ../include/xa.h /^typedef struct xid_t XID;$/ +XIDDATASIZE ../include/xa.h /^#define XIDDATASIZE 128 \/* size in bytes *\/$/ +ZERO_LSN ../include/db_int.in /^#define ZERO_LSN(LSN) do { \\$/ +_CXX_COMMON_H_ ../include/cxx_common.h /^#define _CXX_COMMON_H_$/ +_CXX_EXCEPT_H_ ../include/cxx_except.h /^#define _CXX_EXCEPT_H_$/ +_CXX_INT_H_ ../include/cxx_int.h /^#define _CXX_INT_H_$/ +_DB_185_H_ ../include/db_185.in /^#define _DB_185_H_$/ +_DB_AM_H_ ../include/db_am.h /^#define _DB_AM_H_$/ +_DB_CXX_H_ ../include/db_cxx.h /^#define _DB_CXX_H_$/ +_DB_DISPATCH_H_ ../include/db_dispatch.h /^#define _DB_DISPATCH_H_$/ +_DB_H_ ../include/db.in /^#define _DB_H_$/ +_DB_INTERNAL_H_ ../include/db_int.in /^#define _DB_INTERNAL_H_$/ +_DB_JOIN_H_ ../include/db_join.h /^#define _DB_JOIN_H_$/ +_DB_PAGE_H_ ../include/db_page.h /^#define _DB_PAGE_H_$/ +_DB_SERVER_INT_H_ ../include/db_server_int.h /^#define _DB_SERVER_INT_H_$/ +_DB_SWAP_H_ ../include/db_swap.h /^#define _DB_SWAP_H_$/ +_DB_UPGRADE_H_ ../include/db_upgrade.h /^#define _DB_UPGRADE_H_$/ +_DB_VERIFY_H_ ../include/db_verify.h /^#define _DB_VERIFY_H_$/ +_DeleteInfo ../tcl/tcl_internal.c /^_DeleteInfo(p)$/ +_EnvInfoDelete ../tcl/tcl_env.c /^_EnvInfoDelete(interp, envip)$/ +_ErrorFunc ../tcl/tcl_internal.c /^_ErrorFunc(pfx, msg)$/ +_ErrorSetup ../tcl/tcl_internal.c /^_ErrorSetup(interp, ret, errmsg)$/ +_GetGlobPrefix ../tcl/tcl_internal.c /^_GetGlobPrefix(pattern, prefix)$/ +_GetLsn ../tcl/tcl_internal.c /^_GetLsn(interp, obj, lsn)$/ +_GetThisLock ../tcl/tcl_lock.c /^_GetThisLock(interp, envp, lockid, flag, objp, mod/ +_Included_com_sleepycat_db_Db ../libdb_java/com_sleepycat_db_Db.h /^#define _Included_com_sleepycat_db_Db$/ +_Included_com_sleepycat_db_DbEnv ../libdb_java/com_sleepycat_db_DbEnv.h /^#define _Included_com_sleepycat_db_DbEnv$/ +_Included_com_sleepycat_db_DbLock ../libdb_java/com_sleepycat_db_DbLock.h /^#define _Included_com_sleepycat_db_DbLock$/ +_Included_com_sleepycat_db_DbLsn ../libdb_java/com_sleepycat_db_DbLsn.h /^#define _Included_com_sleepycat_db_DbLsn$/ +_Included_com_sleepycat_db_DbTxn ../libdb_java/com_sleepycat_db_DbTxn.h /^#define _Included_com_sleepycat_db_DbTxn$/ +_Included_com_sleepycat_db_DbUtil ../libdb_java/com_sleepycat_db_DbUtil.h /^#define _Included_com_sleepycat_db_DbUtil$/ +_Included_com_sleepycat_db_Dbc ../libdb_java/com_sleepycat_db_Dbc.h /^#define _Included_com_sleepycat_db_Dbc$/ +_Included_com_sleepycat_db_Dbt ../libdb_java/com_sleepycat_db_Dbt.h /^#define _Included_com_sleepycat_db_Dbt$/ +_JAVA_INFO_H_ ../libdb_java/java_info.h /^#define _JAVA_INFO_H_$/ +_JAVA_LOCKED_H_ ../libdb_java/java_locked.h /^#define _JAVA_LOCKED_H_$/ +_JAVA_UTIL_H_ ../libdb_java/java_util.h /^#define _JAVA_UTIL_H_$/ +_LOG_H_ ../include/log.h /^#define _LOG_H_$/ +_LockMode ../tcl/tcl_lock.c /^_LockMode(interp, obj, mode)$/ +_LockPutInfo ../tcl/tcl_lock.c /^_LockPutInfo(interp, op, lock, lockid, objp)$/ +_MUTEX_DATA ../include/tcl_db.h /^} _MUTEX_DATA;$/ +_MUTEX_ENTRY ../include/tcl_db.h /^} _MUTEX_ENTRY;$/ +_MpInfoDelete ../tcl/tcl_mp.c /^_MpInfoDelete(interp, mpip)$/ +_NameToInfo ../tcl/tcl_internal.c /^_NameToInfo(name)$/ +_NameToPtr ../tcl/tcl_internal.c /^_NameToPtr(name)$/ +_NewInfo ../tcl/tcl_internal.c /^_NewInfo(interp, anyp, name, type)$/ +_PtrToInfo ../tcl/tcl_internal.c /^_PtrToInfo(ptr)$/ +_ReturnSetup ../tcl/tcl_internal.c /^_ReturnSetup(interp, ret, errmsg)$/ +_SYS_SHQUEUE_H_ ../include/shqueue.h /^#define _SYS_SHQUEUE_H_$/ +_Set3DBTList ../tcl/tcl_internal.c /^_Set3DBTList(interp, list, elem1, is1recno, elem2,/ +_SetInfoData ../tcl/tcl_internal.c /^_SetInfoData(p, data)$/ +_SetListElem ../tcl/tcl_internal.c /^_SetListElem(interp, list, elem1, e1cnt, elem2, e2/ +_SetListElemInt ../tcl/tcl_internal.c /^_SetListElemInt(interp, list, elem1, elem2)$/ +_SetListRecnoElem ../tcl/tcl_internal.c /^_SetListRecnoElem(interp, list, elem1, elem2, e2si/ +_SetMultiList ../tcl/tcl_internal.c /^_SetMultiList(interp, list, key, data, type, flag)/ +_TXN_H_ ../include/txn.h /^#define _TXN_H_$/ +_TxnInfoDelete ../tcl/tcl_txn.c /^_TxnInfoDelete(interp, txnip)$/ +__BIT_TYPES_DEFINED__ ../include/db.in /^#define __BIT_TYPES_DEFINED__$/ +__DBC_INTERNAL ../include/db_int.in /^#define __DBC_INTERNAL \\$/ +__LPUT ../include/db_am.h /^#define __LPUT(dbc, lock) \\$/ +__P ../include/db.in /^#define __P(protos) protos \/* ANSI C prototypes / +__P_DUPLICATE ../include/db_page.h /^#define __P_DUPLICATE 1 \/* Duplicate. DEPRECATED / +__R_UNUSED ../include/db_185.in /^#define __R_UNUSED 2 \/* UNUSED *\/$/ +__TLPUT ../include/db_am.h /^#define __TLPUT(dbc, lock) \\$/ +__absname ../log/log_archive.c /^__absname(dbenv, pref, name, newnamep)$/ +__bam_30_btreemeta ../btree/bt_upgrade.c /^__bam_30_btreemeta(dbp, real_name, buf)$/ +__bam_31_btreemeta ../btree/bt_upgrade.c /^__bam_31_btreemeta(dbp, real_name, flags, fhp, h, / +__bam_31_lbtree ../btree/bt_upgrade.c /^__bam_31_lbtree(dbp, real_name, flags, fhp, h, dir/ +__bam_adj_log ../btree/btree_auto.c /^__bam_adj_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_adj_print ../btree/btree_auto.c /^__bam_adj_print(dbenv, dbtp, lsnp, notused2, notus/ +__bam_adj_read ../btree/btree_auto.c /^__bam_adj_read(dbenv, recbuf, argpp)$/ +__bam_adj_recover ../btree/bt_rec.c /^__bam_adj_recover(dbenv, dbtp, lsnp, op, info)$/ +__bam_adjindx ../btree/bt_delete.c /^__bam_adjindx(dbc, h, indx, indx_copy, is_insert)$/ +__bam_adjust ../btree/bt_rsearch.c /^__bam_adjust(dbc, adjust)$/ +__bam_broot ../btree/bt_split.c /^__bam_broot(dbc, rootp, lp, rp)$/ +__bam_build ../btree/bt_put.c /^__bam_build(dbc, op, dbt, h, indx, nbytes)$/ +__bam_bulk ../btree/bt_cursor.c /^__bam_bulk(dbc, data, flags)$/ +__bam_bulk_duplicates ../btree/bt_cursor.c /^__bam_bulk_duplicates(dbc, pgno, dbuf, keyoff, off/ +__bam_bulk_overflow ../btree/bt_cursor.c /^__bam_bulk_overflow(dbc, len, pgno, dp)$/ +__bam_c_close ../btree/bt_cursor.c /^__bam_c_close(dbc, root_pgno, rmroot)$/ +__bam_c_count ../btree/bt_cursor.c /^__bam_c_count(dbc, recnop)$/ +__bam_c_del ../btree/bt_cursor.c /^__bam_c_del(dbc)$/ +__bam_c_destroy ../btree/bt_cursor.c /^__bam_c_destroy(dbc)$/ +__bam_c_dup ../btree/bt_cursor.c /^__bam_c_dup(orig_dbc, new_dbc)$/ +__bam_c_first ../btree/bt_cursor.c /^__bam_c_first(dbc)$/ +__bam_c_get ../btree/bt_cursor.c /^__bam_c_get(dbc, key, data, flags, pgnop)$/ +__bam_c_getstack ../btree/bt_cursor.c /^__bam_c_getstack(dbc)$/ +__bam_c_init ../btree/bt_cursor.c /^__bam_c_init(dbc, dbtype)$/ +__bam_c_last ../btree/bt_cursor.c /^__bam_c_last(dbc)$/ +__bam_c_next ../btree/bt_cursor.c /^__bam_c_next(dbc, initial_move, deleted_okay)$/ +__bam_c_physdel ../btree/bt_cursor.c /^__bam_c_physdel(dbc)$/ +__bam_c_prev ../btree/bt_cursor.c /^__bam_c_prev(dbc)$/ +__bam_c_put ../btree/bt_cursor.c /^__bam_c_put(dbc, key, data, flags, pgnop)$/ +__bam_c_refresh ../btree/bt_cursor.c /^__bam_c_refresh(dbc)$/ +__bam_c_reset ../btree/bt_cursor.c /^__bam_c_reset(cp)$/ +__bam_c_rget ../btree/bt_cursor.c /^__bam_c_rget(dbc, data)$/ +__bam_c_search ../btree/bt_cursor.c /^__bam_c_search(dbc, root_pgno, key, flags, exactp)/ +__bam_c_writelock ../btree/bt_cursor.c /^__bam_c_writelock(dbc)$/ +__bam_ca_delete ../btree/bt_curadj.c /^__bam_ca_delete(dbp, pgno, indx, delete)$/ +__bam_ca_di ../btree/bt_curadj.c /^__bam_ca_di(my_dbc, pgno, indx, adjust)$/ +__bam_ca_dup ../btree/bt_curadj.c /^__bam_ca_dup(my_dbc, first, fpgno, fi, tpgno, ti)$/ +__bam_ca_rsplit ../btree/bt_curadj.c /^__bam_ca_rsplit(my_dbc, fpgno, tpgno)$/ +__bam_ca_split ../btree/bt_curadj.c /^__bam_ca_split(my_dbc, ppgno, lpgno, rpgno, split_/ +__bam_ca_undodup ../btree/bt_curadj.c /^__bam_ca_undodup(dbp, first, fpgno, fi, ti)$/ +__bam_ca_undosplit ../btree/bt_curadj.c /^__bam_ca_undosplit(dbp, frompgno, topgno, lpgno, s/ +__bam_cadjust_log ../btree/btree_auto.c /^__bam_cadjust_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_cadjust_print ../btree/btree_auto.c /^__bam_cadjust_print(dbenv, dbtp, lsnp, notused2, n/ +__bam_cadjust_read ../btree/btree_auto.c /^__bam_cadjust_read(dbenv, recbuf, argpp)$/ +__bam_cadjust_recover ../btree/bt_rec.c /^__bam_cadjust_recover(dbenv, dbtp, lsnp, op, info)/ +__bam_cdel_log ../btree/btree_auto.c /^__bam_cdel_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_cdel_print ../btree/btree_auto.c /^__bam_cdel_print(dbenv, dbtp, lsnp, notused2, notu/ +__bam_cdel_read ../btree/btree_auto.c /^__bam_cdel_read(dbenv, recbuf, argpp)$/ +__bam_cdel_recover ../btree/bt_rec.c /^__bam_cdel_recover(dbenv, dbtp, lsnp, op, info)$/ +__bam_cmp ../btree/bt_compare.c /^__bam_cmp(dbp, dbt, h, indx, func, cmpp)$/ +__bam_copy ../btree/bt_split.c /^__bam_copy(dbp, pp, cp, nxt, stop)$/ +__bam_cprint ../btree/bt_curadj.c /^__bam_cprint(dbc)$/ +__bam_curadj_log ../btree/btree_auto.c /^__bam_curadj_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_curadj_print ../btree/btree_auto.c /^__bam_curadj_print(dbenv, dbtp, lsnp, notused2, no/ +__bam_curadj_read ../btree/btree_auto.c /^__bam_curadj_read(dbenv, recbuf, argpp)$/ +__bam_curadj_recover ../btree/bt_rec.c /^__bam_curadj_recover(dbenv, dbtp, lsnp, op, info)$/ +__bam_db_close ../btree/bt_method.c /^__bam_db_close(dbp)$/ +__bam_db_create ../btree/bt_method.c /^__bam_db_create(dbp)$/ +__bam_defcmp ../btree/bt_compare.c /^__bam_defcmp(dbp, a, b)$/ +__bam_defpfx ../btree/bt_compare.c /^__bam_defpfx(dbp, a, b)$/ +__bam_ditem ../btree/bt_delete.c /^__bam_ditem(dbc, h, indx)$/ +__bam_dpages ../btree/bt_delete.c /^__bam_dpages(dbc, stack_epg)$/ +__bam_dup_convert ../btree/bt_put.c /^__bam_dup_convert(dbc, h, indx)$/ +__bam_get_prev ../btree/bt_cursor.c /^__bam_get_prev(dbc)$/ +__bam_getboth_finddatum ../btree/bt_cursor.c /^__bam_getboth_finddatum(dbc, data)$/ +__bam_getbothc ../btree/bt_cursor.c /^__bam_getbothc(dbc, data)$/ +__bam_iitem ../btree/bt_put.c /^__bam_iitem(dbc, key, data, op, flags)$/ +__bam_init_print ../btree/btree_auto.c /^__bam_init_print(dbenv)$/ +__bam_init_recover ../btree/btree_auto.c /^__bam_init_recover(dbenv)$/ +__bam_isopd ../btree/bt_cursor.c /^__bam_isopd(dbc, pgnop)$/ +__bam_key_range ../btree/bt_stat.c /^__bam_key_range(dbp, txn, dbt, kp, flags)$/ +__bam_meta2pgset ../btree/bt_verify.c /^__bam_meta2pgset(dbp, vdp, btmeta, flags, pgset)$/ +__bam_metachk ../btree/bt_open.c /^__bam_metachk(dbp, name, btm)$/ +__bam_mswap ../btree/bt_conv.c /^__bam_mswap(pg)$/ +__bam_nrecs ../btree/bt_rsearch.c /^__bam_nrecs(dbc, rep)$/ +__bam_opd_cursor ../btree/bt_curadj.c /^__bam_opd_cursor(dbp, dbc, first, tpgno, ti)$/ +__bam_open ../btree/bt_open.c /^__bam_open(dbp, name, base_pgno, flags)$/ +__bam_ovput ../btree/bt_put.c /^__bam_ovput(dbc, type, pgno, h, indx, item)$/ +__bam_page ../btree/bt_split.c /^__bam_page(dbc, pp, cp)$/ +__bam_partsize ../btree/bt_put.c /^__bam_partsize(op, data, h, indx)$/ +__bam_pg_alloc1_print ../btree/btree_auto.c /^__bam_pg_alloc1_print(dbenv, dbtp, lsnp, notused2,/ +__bam_pg_alloc1_read ../btree/btree_auto.c /^__bam_pg_alloc1_read(dbenv, recbuf, argpp)$/ +__bam_pg_alloc_log ../btree/btree_auto.c /^__bam_pg_alloc_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_pg_alloc_print ../btree/btree_auto.c /^__bam_pg_alloc_print(dbenv, dbtp, lsnp, notused2, / +__bam_pg_alloc_read ../btree/btree_auto.c /^__bam_pg_alloc_read(dbenv, recbuf, argpp)$/ +__bam_pg_alloc_recover ../btree/bt_rec.c /^__bam_pg_alloc_recover(dbenv, dbtp, lsnp, op, info/ +__bam_pg_free1_print ../btree/btree_auto.c /^__bam_pg_free1_print(dbenv, dbtp, lsnp, notused2, / +__bam_pg_free1_read ../btree/btree_auto.c /^__bam_pg_free1_read(dbenv, recbuf, argpp)$/ +__bam_pg_free_log ../btree/btree_auto.c /^__bam_pg_free_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_pg_free_print ../btree/btree_auto.c /^__bam_pg_free_print(dbenv, dbtp, lsnp, notused2, n/ +__bam_pg_free_read ../btree/btree_auto.c /^__bam_pg_free_read(dbenv, recbuf, argpp)$/ +__bam_pg_free_recover ../btree/bt_rec.c /^__bam_pg_free_recover(dbenv, dbtp, lsnp, op, info)/ +__bam_pgin ../btree/bt_conv.c /^__bam_pgin(dbenv, pg, pp, cookie)$/ +__bam_pgout ../btree/bt_conv.c /^__bam_pgout(dbenv, pg, pp, cookie)$/ +__bam_pinsert ../btree/bt_split.c /^__bam_pinsert(dbc, parent, lchild, rchild, space_c/ +__bam_psplit ../btree/bt_split.c /^__bam_psplit(dbc, cp, lp, rp, splitret)$/ +__bam_rcuradj_log ../btree/btree_auto.c /^__bam_rcuradj_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_rcuradj_print ../btree/btree_auto.c /^__bam_rcuradj_print(dbenv, dbtp, lsnp, notused2, n/ +__bam_rcuradj_read ../btree/btree_auto.c /^__bam_rcuradj_read(dbenv, recbuf, argpp)$/ +__bam_rcuradj_recover ../btree/bt_rec.c /^__bam_rcuradj_recover(dbenv, dbtp, lsnp, op, info)/ +__bam_read_root ../btree/bt_open.c /^__bam_read_root(dbp, name, base_pgno, flags)$/ +__bam_reclaim ../btree/bt_reclaim.c /^__bam_reclaim(dbp, txn)$/ +__bam_repl_log ../btree/btree_auto.c /^__bam_repl_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_repl_print ../btree/btree_auto.c /^__bam_repl_print(dbenv, dbtp, lsnp, notused2, notu/ +__bam_repl_read ../btree/btree_auto.c /^__bam_repl_read(dbenv, recbuf, argpp)$/ +__bam_repl_recover ../btree/bt_rec.c /^__bam_repl_recover(dbenv, dbtp, lsnp, op, info)$/ +__bam_ritem ../btree/bt_put.c /^__bam_ritem(dbc, h, indx, data)$/ +__bam_root ../btree/bt_split.c /^__bam_root(dbc, cp)$/ +__bam_root_log ../btree/btree_auto.c /^__bam_root_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_root_print ../btree/btree_auto.c /^__bam_root_print(dbenv, dbtp, lsnp, notused2, notu/ +__bam_root_read ../btree/btree_auto.c /^__bam_root_read(dbenv, recbuf, argpp)$/ +__bam_root_recover ../btree/bt_rec.c /^__bam_root_recover(dbenv, dbtp, lsnp, op, info)$/ +__bam_rsearch ../btree/bt_rsearch.c /^__bam_rsearch(dbc, recnop, flags, stop, exactp)$/ +__bam_rsplit1_print ../btree/btree_auto.c /^__bam_rsplit1_print(dbenv, dbtp, lsnp, notused2, n/ +__bam_rsplit1_read ../btree/btree_auto.c /^__bam_rsplit1_read(dbenv, recbuf, argpp)$/ +__bam_rsplit_log ../btree/btree_auto.c /^__bam_rsplit_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_rsplit_print ../btree/btree_auto.c /^__bam_rsplit_print(dbenv, dbtp, lsnp, notused2, no/ +__bam_rsplit_read ../btree/btree_auto.c /^__bam_rsplit_read(dbenv, recbuf, argpp)$/ +__bam_rsplit_recover ../btree/bt_rec.c /^__bam_rsplit_recover(dbenv, dbtp, lsnp, op, info)$/ +__bam_safe_getdata ../btree/bt_verify.c /^__bam_safe_getdata(dbp, h, i, ovflok, dbt, freedbt/ +__bam_salvage ../btree/bt_verify.c /^__bam_salvage(dbp, vdp, pgno, pgtype, h, handle, c/ +__bam_salvage_walkdupint ../btree/bt_verify.c /^__bam_salvage_walkdupint(dbp, vdp, h, key, handle,/ +__bam_search ../btree/bt_search.c /^__bam_search(dbc, root_pgno, key, flags, stop, rec/ +__bam_set_bt_compare ../btree/bt_method.c /^__bam_set_bt_compare(dbp, func)$/ +__bam_set_bt_maxkey ../btree/bt_method.c /^__bam_set_bt_maxkey(dbp, bt_maxkey)$/ +__bam_set_bt_minkey ../btree/bt_method.c /^__bam_set_bt_minkey(dbp, bt_minkey)$/ +__bam_set_bt_prefix ../btree/bt_method.c /^__bam_set_bt_prefix(dbp, func)$/ +__bam_set_flags ../btree/bt_method.c /^__bam_set_flags(dbp, flagsp)$/ +__bam_split ../btree/bt_split.c /^__bam_split(dbc, arg, root_pgnop)$/ +__bam_split1_print ../btree/btree_auto.c /^__bam_split1_print(dbenv, dbtp, lsnp, notused2, no/ +__bam_split1_read ../btree/btree_auto.c /^__bam_split1_read(dbenv, recbuf, argpp)$/ +__bam_split_log ../btree/btree_auto.c /^__bam_split_log(dbenv, txnid, ret_lsnp, flags,$/ +__bam_split_print ../btree/btree_auto.c /^__bam_split_print(dbenv, dbtp, lsnp, notused2, not/ +__bam_split_read ../btree/btree_auto.c /^__bam_split_read(dbenv, recbuf, argpp)$/ +__bam_split_recover ../btree/bt_rec.c /^__bam_split_recover(dbenv, dbtp, lsnp, op, info)$/ +__bam_stat ../btree/bt_stat.c /^__bam_stat(dbp, spp, flags)$/ +__bam_stat_callback ../btree/bt_stat.c /^__bam_stat_callback(dbp, h, cookie, putp)$/ +__bam_stkgrow ../btree/bt_search.c /^__bam_stkgrow(dbenv, cp)$/ +__bam_stkrel ../btree/bt_search.c /^__bam_stkrel(dbc, flags)$/ +__bam_total ../btree/bt_rsearch.c /^__bam_total(h)$/ +__bam_traverse ../btree/bt_stat.c /^__bam_traverse(dbc, mode, root_pgno, callback, coo/ +__bam_truncate ../btree/bt_reclaim.c /^__bam_truncate(dbp, txn, countp)$/ +__bam_vrfy ../btree/bt_verify.c /^__bam_vrfy(dbp, vdp, h, pgno, flags)$/ +__bam_vrfy_inp ../btree/bt_verify.c /^__bam_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags/ +__bam_vrfy_itemorder ../btree/bt_verify.c /^__bam_vrfy_itemorder(dbp, vdp, h, pgno, nentries, / +__bam_vrfy_meta ../btree/bt_verify.c /^__bam_vrfy_meta(dbp, vdp, meta, pgno, flags)$/ +__bam_vrfy_structure ../btree/bt_verify.c /^__bam_vrfy_structure(dbp, vdp, meta_pgno, flags)$/ +__bam_vrfy_subtree ../btree/bt_verify.c /^__bam_vrfy_subtree(dbp,$/ +__bam_vrfy_treeorder ../btree/bt_verify.c /^__bam_vrfy_treeorder(dbp, pgno, h, lp, rp, func, f/ +__bh ../include/mp.h /^struct __bh {$/ +__bhcmp ../mp/mp_sync.c /^__bhcmp(p1, p2)$/ +__btree ../include/btree.h /^struct __btree { \/* Btree access method. *\/$/ +__build_data ../log/log_archive.c /^__build_data(dbenv, pref, listp)$/ +__cmpfunc ../log/log_archive.c /^__cmpfunc(p1, p2)$/ +__crdel_delete_log ../db/crdel_auto.c /^__crdel_delete_log(dbenv, txnid, ret_lsnp, flags,$/ +__crdel_delete_print ../db/crdel_auto.c /^__crdel_delete_print(dbenv, dbtp, lsnp, notused2, / +__crdel_delete_read ../db/crdel_auto.c /^__crdel_delete_read(dbenv, recbuf, argpp)$/ +__crdel_delete_recover ../db/crdel_rec.c /^__crdel_delete_recover(dbenv, dbtp, lsnp, op, info/ +__crdel_fileopen_log ../db/crdel_auto.c /^__crdel_fileopen_log(dbenv, txnid, ret_lsnp, flags/ +__crdel_fileopen_print ../db/crdel_auto.c /^__crdel_fileopen_print(dbenv, dbtp, lsnp, notused2/ +__crdel_fileopen_read ../db/crdel_auto.c /^__crdel_fileopen_read(dbenv, recbuf, argpp)$/ +__crdel_fileopen_recover ../db/crdel_rec.c /^__crdel_fileopen_recover(dbenv, dbtp, lsnp, op, in/ +__crdel_init_print ../db/crdel_auto.c /^__crdel_init_print(dbenv)$/ +__crdel_init_recover ../db/crdel_auto.c /^__crdel_init_recover(dbenv)$/ +__crdel_metapage_log ../db/crdel_auto.c /^__crdel_metapage_log(dbenv, txnid, ret_lsnp, flags/ +__crdel_metapage_print ../db/crdel_auto.c /^__crdel_metapage_print(dbenv, dbtp, lsnp, notused2/ +__crdel_metapage_read ../db/crdel_auto.c /^__crdel_metapage_read(dbenv, recbuf, argpp)$/ +__crdel_metapage_recover ../db/crdel_rec.c /^__crdel_metapage_recover(dbenv, dbtp, lsnp, op, in/ +__crdel_metasub_log ../db/crdel_auto.c /^__crdel_metasub_log(dbenv, txnid, ret_lsnp, flags,/ +__crdel_metasub_print ../db/crdel_auto.c /^__crdel_metasub_print(dbenv, dbtp, lsnp, notused2,/ +__crdel_metasub_read ../db/crdel_auto.c /^__crdel_metasub_read(dbenv, recbuf, argpp)$/ +__crdel_metasub_recover ../db/crdel_rec.c /^__crdel_metasub_recover(dbenv, dbtp, lsnp, op, inf/ +__crdel_old_delete_print ../db/crdel_auto.c /^__crdel_old_delete_print(dbenv, dbtp, lsnp, notuse/ +__crdel_old_delete_read ../db/crdel_auto.c /^__crdel_old_delete_read(dbenv, recbuf, argpp)$/ +__crdel_rename_log ../db/crdel_auto.c /^__crdel_rename_log(dbenv, txnid, ret_lsnp, flags,$/ +__crdel_rename_print ../db/crdel_auto.c /^__crdel_rename_print(dbenv, dbtp, lsnp, notused2, / +__crdel_rename_read ../db/crdel_auto.c /^__crdel_rename_read(dbenv, recbuf, argpp)$/ +__crdel_rename_recover ../db/crdel_rec.c /^__crdel_rename_recover(dbenv, dbtp, lsnp, op, info/ +__cursor ../include/btree.h /^struct __cursor {$/ +__data ../env/db_salloc.c /^struct __data {$/ +__db ../include/db.in /^struct __db {$/ +__db185_open ../db185/db185.c /^__db185_open(file, oflags, mode, type, openinfo)$/ +__db_31_offdup ../db/db_upg_opd.c /^__db_31_offdup(dbp, real_name, fhp, sorted, pgnop)/ +__db_add_limbo ../db/db_dispatch.c /^__db_add_limbo(dbenv, info, fileid, pgno, count)$/ +__db_add_recovery ../db/db_dispatch.c /^__db_add_recovery(dbenv, func, ndx)$/ +__db_addpage_print ../db/db_auto.c /^__db_addpage_print(dbenv, dbtp, lsnp, notused2, no/ +__db_addpage_read ../db/db_auto.c /^__db_addpage_read(dbenv, recbuf, argpp)$/ +__db_addrem_log ../db/db_auto.c /^__db_addrem_log(dbenv, txnid, ret_lsnp, flags,$/ +__db_addrem_print ../db/db_auto.c /^__db_addrem_print(dbenv, dbtp, lsnp, notused2, not/ +__db_addrem_read ../db/db_auto.c /^__db_addrem_read(dbenv, recbuf, argpp)$/ +__db_addrem_recover ../db/db_rec.c /^__db_addrem_recover(dbenv, dbtp, lsnp, op, info)$/ +__db_append_primary ../db/db_am.c /^__db_append_primary(dbc, key, data)$/ +__db_appname ../env/env_open.c /^__db_appname(dbenv, appname, dir, file, tmp_oflags/ +__db_apprec ../env/env_recover.c /^__db_apprec(dbenv, flags)$/ +__db_assert ../common/db_err.c /^__db_assert(failedexpr, file, line)$/ +__db_associate ../db/db_am.c /^__db_associate(dbp, sdbp, callback, flags)$/ +__db_associate_proc ../rpc_server/db_server_proc.c /^__db_associate_proc(dbpcl_id, sdbpcl_id,$/ +__db_associatechk ../db/db_iface.c /^__db_associatechk(dbp, sdbp, callback, flags)$/ +__db_backup_name ../db/db.c /^__db_backup_name(dbenv, name, backup, lsn)$/ +__db_big_log ../db/db_auto.c /^__db_big_log(dbenv, txnid, ret_lsnp, flags,$/ +__db_big_print ../db/db_auto.c /^__db_big_print(dbenv, dbtp, lsnp, notused2, notuse/ +__db_big_read ../db/db_auto.c /^__db_big_read(dbenv, recbuf, argpp)$/ +__db_big_recover ../db/db_rec.c /^__db_big_recover(dbenv, dbtp, lsnp, op, info)$/ +__db_bmeta ../db/db_pr.c /^__db_bmeta(dbp, fp, h, flags)$/ +__db_bt_maxkey_proc ../rpc_server/db_server_proc.c /^__db_bt_maxkey_proc(dbpcl_id, maxkey, replyp)$/ +__db_bt_minkey_proc ../rpc_server/db_server_proc.c /^__db_bt_minkey_proc(dbpcl_id, minkey, replyp)$/ +__db_bt_stat ../include/db.in /^struct __db_bt_stat {$/ +__db_build_bi ../db/db_upg_opd.c /^__db_build_bi(dbp, fhp, ipage, page, indx, nomemp)/ +__db_build_ri ../db/db_upg_opd.c /^__db_build_ri(dbp, fhp, ipage, page, indx, nomemp)/ +__db_buildpartial ../db/db_cam.c /^__db_buildpartial(dbp, oldrec, partial, newrec)$/ +__db_byteorder ../common/db_byteorder.c /^__db_byteorder(dbenv, lorder)$/ +__db_byteswap ../db/db_conv.c /^__db_byteswap(dbenv, pg, h, pagesize, pgin)$/ +__db_c_cleanup ../db/db_cam.c /^__db_c_cleanup(dbc, dbc_n, failed)$/ +__db_c_close ../db/db_cam.c /^__db_c_close(dbc)$/ +__db_c_count ../db/db_cam.c /^__db_c_count(dbc, recnop, flags)$/ +__db_c_del ../db/db_cam.c /^__db_c_del(dbc, flags)$/ +__db_c_del_primary ../db/db_cam.c /^__db_c_del_primary(dbc)$/ +__db_c_del_secondary ../db/db_cam.c /^__db_c_del_secondary(dbc)$/ +__db_c_destroy ../db/db_cam.c /^__db_c_destroy(dbc)$/ +__db_c_dup ../db/db_cam.c /^__db_c_dup(dbc_orig, dbcp, flags)$/ +__db_c_get ../db/db_cam.c /^__db_c_get(dbc_arg, key, data, flags)$/ +__db_c_idup ../db/db_cam.c /^__db_c_idup(dbc_orig, dbcp, flags)$/ +__db_c_newopd ../db/db_cam.c /^__db_c_newopd(dbc_parent, root, dbcp)$/ +__db_c_pget ../db/db_cam.c /^__db_c_pget(dbc, skey, pkey, data, flags)$/ +__db_c_put ../db/db_cam.c /^__db_c_put(dbc_arg, key, data, flags)$/ +__db_c_secondary_get ../db/db_cam.c /^__db_c_secondary_get(dbc, skey, data, flags)$/ +__db_ccountchk ../db/db_iface.c /^__db_ccountchk(dbp, flags, isvalid)$/ +__db_cdelchk ../db/db_iface.c /^__db_cdelchk(dbp, flags, isrdonly, isvalid)$/ +__db_cgetchk ../db/db_iface.c /^__db_cgetchk(dbp, key, data, flags, isvalid)$/ +__db_close ../db/db.c /^__db_close(dbp, flags)$/ +__db_close_proc ../rpc_server/db_server_proc.c /^__db_close_proc(dbpcl_id, flags, replyp)$/ +__db_closechk ../db/db_iface.c /^__db_closechk(dbp, flags)$/ +__db_cpgetchk ../db/db_iface.c /^__db_cpgetchk(dbp, skey, pkey, data, flags, isvali/ +__db_cprint ../db/db_am.c /^__db_cprint(dbp)$/ +__db_cputchk ../db/db_iface.c /^__db_cputchk(dbp, key, data, flags, isrdonly, isva/ +__db_create_proc ../rpc_server/db_server_proc.c /^__db_create_proc(dbenvcl_id, flags, replyp)$/ +__db_curinval ../db/db_iface.c /^__db_curinval(dbenv)$/ +__db_cursor ../db/db_am.c /^__db_cursor(dbp, txn, dbcp, flags)$/ +__db_cursor_proc ../rpc_server/db_server_proc.c /^__db_cursor_proc(dbpcl_id, txnpcl_id,$/ +__db_cursorchk ../db/db_iface.c /^__db_cursorchk(dbp, flags, isrdonly)$/ +__db_db_associate_3003 ../rpc_client/db_server_clnt.c /^__db_db_associate_3003(argp, clnt)$/ +__db_db_bt_maxkey_3003 ../rpc_client/db_server_clnt.c /^__db_db_bt_maxkey_3003(argp, clnt)$/ +__db_db_bt_minkey_3003 ../rpc_client/db_server_clnt.c /^__db_db_bt_minkey_3003(argp, clnt)$/ +__db_db_close_3003 ../rpc_client/db_server_clnt.c /^__db_db_close_3003(argp, clnt)$/ +__db_db_create_3003 ../rpc_client/db_server_clnt.c /^__db_db_create_3003(argp, clnt)$/ +__db_db_cursor_3003 ../rpc_client/db_server_clnt.c /^__db_db_cursor_3003(argp, clnt)$/ +__db_db_del_3003 ../rpc_client/db_server_clnt.c /^__db_db_del_3003(argp, clnt)$/ +__db_db_extentsize_3003 ../rpc_client/db_server_clnt.c /^__db_db_extentsize_3003(argp, clnt)$/ +__db_db_flags_3003 ../rpc_client/db_server_clnt.c /^__db_db_flags_3003(argp, clnt)$/ +__db_db_get_3003 ../rpc_client/db_server_clnt.c /^__db_db_get_3003(argp, clnt)$/ +__db_db_h_ffactor_3003 ../rpc_client/db_server_clnt.c /^__db_db_h_ffactor_3003(argp, clnt)$/ +__db_db_h_nelem_3003 ../rpc_client/db_server_clnt.c /^__db_db_h_nelem_3003(argp, clnt)$/ +__db_db_join_3003 ../rpc_client/db_server_clnt.c /^__db_db_join_3003(argp, clnt)$/ +__db_db_key_range_3003 ../rpc_client/db_server_clnt.c /^__db_db_key_range_3003(argp, clnt)$/ +__db_db_lorder_3003 ../rpc_client/db_server_clnt.c /^__db_db_lorder_3003(argp, clnt)$/ +__db_db_open_3003 ../rpc_client/db_server_clnt.c /^__db_db_open_3003(argp, clnt)$/ +__db_db_pagesize_3003 ../rpc_client/db_server_clnt.c /^__db_db_pagesize_3003(argp, clnt)$/ +__db_db_pget_3003 ../rpc_client/db_server_clnt.c /^__db_db_pget_3003(argp, clnt)$/ +__db_db_put_3003 ../rpc_client/db_server_clnt.c /^__db_db_put_3003(argp, clnt)$/ +__db_db_re_delim_3003 ../rpc_client/db_server_clnt.c /^__db_db_re_delim_3003(argp, clnt)$/ +__db_db_re_len_3003 ../rpc_client/db_server_clnt.c /^__db_db_re_len_3003(argp, clnt)$/ +__db_db_re_pad_3003 ../rpc_client/db_server_clnt.c /^__db_db_re_pad_3003(argp, clnt)$/ +__db_db_remove_3003 ../rpc_client/db_server_clnt.c /^__db_db_remove_3003(argp, clnt)$/ +__db_db_rename_3003 ../rpc_client/db_server_clnt.c /^__db_db_rename_3003(argp, clnt)$/ +__db_db_stat_3003 ../rpc_client/db_server_clnt.c /^__db_db_stat_3003(argp, clnt)$/ +__db_db_sync_3003 ../rpc_client/db_server_clnt.c /^__db_db_sync_3003(argp, clnt)$/ +__db_db_truncate_3003 ../rpc_client/db_server_clnt.c /^__db_db_truncate_3003(argp, clnt)$/ +__db_dbc_close_3003 ../rpc_client/db_server_clnt.c /^__db_dbc_close_3003(argp, clnt)$/ +__db_dbc_count_3003 ../rpc_client/db_server_clnt.c /^__db_dbc_count_3003(argp, clnt)$/ +__db_dbc_del_3003 ../rpc_client/db_server_clnt.c /^__db_dbc_del_3003(argp, clnt)$/ +__db_dbc_dup_3003 ../rpc_client/db_server_clnt.c /^__db_dbc_dup_3003(argp, clnt)$/ +__db_dbc_get_3003 ../rpc_client/db_server_clnt.c /^__db_dbc_get_3003(argp, clnt)$/ +__db_dbc_pget_3003 ../rpc_client/db_server_clnt.c /^__db_dbc_pget_3003(argp, clnt)$/ +__db_dbc_put_3003 ../rpc_client/db_server_clnt.c /^__db_dbc_put_3003(argp, clnt)$/ +__db_dbenv_setup ../db/db.c /^__db_dbenv_setup(dbp, name, flags)$/ +__db_dbm_close ../dbm/dbm.c /^__db_dbm_close()$/ +__db_dbm_delete ../dbm/dbm.c /^__db_dbm_delete(key)$/ +__db_dbm_fetch ../dbm/dbm.c /^__db_dbm_fetch(key)$/ +__db_dbm_firstkey ../dbm/dbm.c /^__db_dbm_firstkey()$/ +__db_dbm_init ../dbm/dbm.c /^__db_dbm_init(file)$/ +__db_dbm_nextkey ../dbm/dbm.c /^__db_dbm_nextkey(key)$/ +__db_dbm_store ../dbm/dbm.c /^__db_dbm_store(key, dat)$/ +__db_dbopen ../db/db.c /^__db_dbopen(dbp, name, flags, mode, meta_pgno)$/ +__db_dbt ../include/db.in /^struct __db_dbt {$/ +__db_dbtype_to_string ../db/db_pr.c /^__db_dbtype_to_string(dbp)$/ +__db_debug_log ../db/db_auto.c /^__db_debug_log(dbenv, txnid, ret_lsnp, flags,$/ +__db_debug_print ../db/db_auto.c /^__db_debug_print(dbenv, dbtp, lsnp, notused2, notu/ +__db_debug_read ../db/db_auto.c /^__db_debug_read(dbenv, recbuf, argpp)$/ +__db_debug_recover ../db/db_rec.c /^__db_debug_recover(dbenv, dbtp, lsnp, op, info)$/ +__db_del_proc ../rpc_server/db_server_proc.c /^__db_del_proc(dbpcl_id, txnpcl_id, keydlen,$/ +__db_delchk ../db/db_iface.c /^__db_delchk(dbp, key, flags, isrdonly)$/ +__db_delete ../db/db_am.c /^__db_delete(dbp, txn, key, flags)$/ +__db_des_destroy ../env/env_region.c /^__db_des_destroy(dbenv, rp)$/ +__db_des_get ../env/env_region.c /^__db_des_get(dbenv, env_infop, infop, rpp)$/ +__db_dispatch ../db/db_dispatch.c /^__db_dispatch(dbenv, db, lsnp, redo, info)$/ +__db_ditem ../db/db_dup.c /^__db_ditem(dbc, pagep, indx, nbytes)$/ +__db_do_the_limbo ../db/db_dispatch.c /^__db_do_the_limbo(dbenv, hp)$/ +__db_doff ../db/db_overflow.c /^__db_doff(dbc, pgno)$/ +__db_dump ../db/db_pr.c /^__db_dump(dbp, op, name)$/ +__db_duperr ../db/db_cam.c /^__db_duperr(dbp, flags)$/ +__db_e_attach ../env/env_region.c /^__db_e_attach(dbenv, init_flagsp)$/ +__db_e_detach ../env/env_region.c /^__db_e_detach(dbenv, destroy)$/ +__db_e_remfile ../env/env_region.c /^__db_e_remfile(dbenv)$/ +__db_e_remove ../env/env_region.c /^__db_e_remove(dbenv, force)$/ +__db_e_stat ../env/env_region.c /^__db_e_stat(dbenv, arg_renv, arg_regions, arg_regi/ +__db_env ../include/db.in /^struct __db_env {$/ +__db_env_cachesize_3003 ../rpc_client/db_server_clnt.c /^__db_env_cachesize_3003(argp, clnt)$/ +__db_env_close_3003 ../rpc_client/db_server_clnt.c /^__db_env_close_3003(argp, clnt)$/ +__db_env_config ../env/env_method.c /^__db_env_config(dbenv, i, flags)$/ +__db_env_create_3003 ../rpc_client/db_server_clnt.c /^__db_env_create_3003(argp, clnt)$/ +__db_env_flags_3003 ../rpc_client/db_server_clnt.c /^__db_env_flags_3003(argp, clnt)$/ +__db_env_open_3003 ../rpc_client/db_server_clnt.c /^__db_env_open_3003(argp, clnt)$/ +__db_env_remove_3003 ../rpc_client/db_server_clnt.c /^__db_env_remove_3003(argp, clnt)$/ +__db_eopnotsup ../common/db_err.c /^__db_eopnotsup(dbenv)$/ +__db_err ../common/db_err.c /^__db_err(dbenv, fmt, va_alist)$/ +__db_errcall ../common/db_err.c /^__db_errcall(dbenv, error, error_set, fmt, ap)$/ +__db_errfile ../common/db_err.c /^__db_errfile(dbenv, error, error_set, fmt, ap)$/ +__db_extentsize_proc ../rpc_server/db_server_proc.c /^__db_extentsize_proc(dbpcl_id, extentsize, replyp)/ +__db_faultmem ../env/env_region.c /^__db_faultmem(addr, size, created)$/ +__db_fcchk ../common/db_err.c /^__db_fcchk(dbenv, name, flags, flag1, flag2)$/ +__db_fchk ../common/db_err.c /^__db_fchk(dbenv, name, flags, ok_flags)$/ +__db_fcntl_mutex_destroy ../mutex/mut_fcntl.c /^__db_fcntl_mutex_destroy(mutexp)$/ +__db_fcntl_mutex_init ../mutex/mut_fcntl.c /^__db_fcntl_mutex_init(dbenv, mutexp, offset)$/ +__db_fcntl_mutex_lock ../mutex/mut_fcntl.c /^__db_fcntl_mutex_lock(dbenv, mutexp, fhp)$/ +__db_fcntl_mutex_unlock ../mutex/mut_fcntl.c /^__db_fcntl_mutex_unlock(dbenv, mutexp)$/ +__db_fd ../db/db_am.c /^__db_fd(dbp, fdp)$/ +__db_ferr ../common/db_err.c /^__db_ferr(dbenv, name, iscombo)$/ +__db_file_setup ../db/db.c /^__db_file_setup(dbp, name, flags, mode, meta_pgno,/ +__db_fileid_to_db ../log/log_rec.c /^__db_fileid_to_db(dbenv, dbpp, ndx, inc)$/ +__db_flags_proc ../rpc_server/db_server_proc.c /^__db_flags_proc(dbpcl_id, flags, replyp)$/ +__db_free ../db/db_meta.c /^__db_free(dbc, h)$/ +__db_get ../db/db_am.c /^__db_get(dbp, txn, key, data, flags)$/ +__db_get_byteswapped ../db/db_method.c /^__db_get_byteswapped(dbp)$/ +__db_get_proc ../rpc_server/db_server_proc.c /^__db_get_proc(dbpcl_id, txnpcl_id, keydlen,$/ +__db_get_type ../db/db_method.c /^__db_get_type(dbp)$/ +__db_getchk ../db/db_iface.c /^__db_getchk(dbp, key, data, flags)$/ +__db_getlong ../common/db_getlong.c /^__db_getlong(dbp, progname, p, min, max, storep)$/ +__db_getulong ../common/db_getlong.c /^__db_getulong(dbp, progname, p, min, max, storep)$/ +__db_goff ../db/db_overflow.c /^__db_goff(dbp, dbt, tlen, pgno, bpp, bpsz)$/ +__db_guesspgsize ../db/db_vrfy.c /^__db_guesspgsize(dbenv, fhp)$/ +__db_h_ffactor_proc ../rpc_server/db_server_proc.c /^__db_h_ffactor_proc(dbpcl_id, ffactor, replyp)$/ +__db_h_nelem_proc ../rpc_server/db_server_proc.c /^__db_h_nelem_proc(dbpcl_id, nelem, replyp)$/ +__db_h_stat ../include/db.in /^struct __db_h_stat {$/ +__db_hashinit ../env/db_shash.c /^__db_hashinit(begin, nelements)$/ +__db_hcreate ../hsearch/hsearch.c /^__db_hcreate(nel)$/ +__db_hdestroy ../hsearch/hsearch.c /^__db_hdestroy()$/ +__db_hmeta ../db/db_pr.c /^__db_hmeta(dbp, fp, h, flags)$/ +__db_home ../env/env_open.c /^__db_home(dbenv, db_home, flags)$/ +__db_hsearch ../hsearch/hsearch.c /^__db_hsearch(item, action)$/ +__db_icursor ../db/db_am.c /^__db_icursor(dbp, txn, dbtype, root, is_opd, locke/ +__db_ilock ../include/db.in /^struct __db_ilock {$/ +__db_init ../db/db_method.c /^__db_init(dbp, flags)$/ +__db_init_print ../db/db_auto.c /^__db_init_print(dbenv)$/ +__db_init_recover ../db/db_auto.c /^__db_init_recover(dbenv)$/ +__db_is_valid_magicno ../db/db_vrfy.c /^__db_is_valid_magicno(magic, typep)$/ +__db_is_valid_pagetype ../db/db_vrfy.c /^__db_is_valid_pagetype(type)$/ +__db_join ../db/db_join.c /^__db_join(primary, curslist, dbcp, flags)$/ +__db_join_close ../db/db_join.c /^__db_join_close(dbc)$/ +__db_join_cmp ../db/db_join.c /^__db_join_cmp(a, b)$/ +__db_join_del ../db/db_join.c /^__db_join_del(dbc, flags)$/ +__db_join_get ../db/db_join.c /^__db_join_get(dbc, key_arg, data_arg, flags)$/ +__db_join_getnext ../db/db_join.c /^__db_join_getnext(dbc, key, data, exhausted, opmod/ +__db_join_proc ../rpc_server/db_server_proc.c /^__db_join_proc(dbpcl_id, curs, curslen,$/ +__db_join_put ../db/db_join.c /^__db_join_put(dbc, key, data, flags)$/ +__db_joinchk ../db/db_iface.c /^__db_joinchk(dbp, curslist, flags)$/ +__db_joingetchk ../db/db_iface.c /^__db_joingetchk(dbp, key, flags)$/ +__db_jumptab ../include/os_jump.h /^struct __db_jumptab {$/ +__db_key_range ../db/db_method.c /^__db_key_range(dbp, txn, key, kr, flags)$/ +__db_key_range_proc ../rpc_server/db_server_proc.c /^__db_key_range_proc(dbpcl_id, txnpcl_id, keydlen,$/ +__db_lastpgno ../db/db_upg.c /^__db_lastpgno(dbp, real_name, fhp, pgno_lastp)$/ +__db_lget ../db/db_meta.c /^__db_lget(dbc, flags, pgno, mode, lkflags, lockp)$/ +__db_loadme ../db/db_pr.c /^__db_loadme()$/ +__db_lock ../include/lock.h /^struct __db_lock {$/ +__db_lock_stat ../include/db.in /^struct __db_lock_stat {$/ +__db_lock_u ../include/db.in /^struct __db_lock_u {$/ +__db_lockreq ../include/db.in /^struct __db_lockreq {$/ +__db_log ../include/log.h /^struct __db_log {$/ +__db_log2 ../common/db_log2.c /^__db_log2(num)$/ +__db_log_page ../db/db.c /^__db_log_page(dbp, name, lsn, pgno, page)$/ +__db_log_stat ../include/db.in /^struct __db_log_stat {$/ +__db_logmsg ../common/db_err.c /^__db_logmsg(dbenv, txnid, opname, flags, fmt, va_a/ +__db_lorder_proc ../rpc_server/db_server_proc.c /^__db_lorder_proc(dbpcl_id, lorder, replyp)$/ +__db_lprint ../db/db_meta.c /^__db_lprint(dbc)$/ +__db_lsn ../include/db.in /^struct __db_lsn {$/ +__db_maintinit ../include/mutex.h /^#define __db_maintinit(a, b, c) __db_shreg_mainti/ +__db_makecopy ../db/db.c /^__db_makecopy(src, dest)$/ +__db_map_rmid ../xa/xa_map.c /^__db_map_rmid(rmid, env)$/ +__db_map_xid ../xa/xa_map.c /^__db_map_xid(env, xid, off)$/ +__db_master_open ../db/db.c /^__db_master_open(subdbp, name, flags, mode, dbpp)$/ +__db_master_update ../db/db.c /^__db_master_update(mdbp, subdb, type, meta_pgnop, / +__db_meta ../db/db_pr.c /^__db_meta(dbp, dbmeta, fp, fn, flags)$/ +__db_meta2pgset ../db/db_vrfy.c /^__db_meta2pgset(dbp, vdp, pgno, flags, pgset)$/ +__db_metabegin ../db/db.c /^__db_metabegin(dbp, lockp)$/ +__db_metaend ../db/db.c /^__db_metaend(dbp, lockp, commit, callback, cookie)/ +__db_metaswap ../db/db_conv.c /^__db_metaswap(pg)$/ +__db_mi_env ../env/env_method.c /^__db_mi_env(dbenv, name)$/ +__db_mi_open ../env/env_method.c /^__db_mi_open(dbenv, name, after)$/ +__db_missing_txn_err ../common/db_err.c /^__db_missing_txn_err(dbp)$/ +__db_moff ../db/db_overflow.c /^__db_moff(dbp, dbt, pgno, tlen, cmpfunc, cmpp)$/ +__db_mpool ../include/mp.h /^struct __db_mpool {$/ +__db_mpool_finfo ../include/db.in /^struct __db_mpool_finfo {$/ +__db_mpool_fstat ../include/db.in /^struct __db_mpool_fstat {$/ +__db_mpool_stat ../include/db.in /^struct __db_mpool_stat {$/ +__db_mpoolfile ../include/mp.h /^struct __db_mpoolfile {$/ +__db_mpreg ../include/mp.h /^struct __db_mpreg {$/ +__db_mutex_alloc ../mutex/mutex.c /^__db_mutex_alloc(dbenv, infop, is_locked, storep)$/ +__db_mutex_destroy ../include/mutex.h /^#define __db_mutex_destroy(a) __db_pthread_mutex_/ +__db_mutex_free ../mutex/mutex.c /^__db_mutex_free(dbenv, infop, mutexp)$/ +__db_mutex_init ../include/mutex.h /^#define __db_mutex_init(a, b, c, d) __db_pthread_m/ +__db_mutex_lock ../include/mutex.h /^#define __db_mutex_lock(a, b, c) __db_pthread_mute/ +__db_mutex_unlock ../include/mutex.h /^#define __db_mutex_unlock(a, b) __db_pthread_mute/ +__db_ndbm_clearerr ../dbm/dbm.c /^__db_ndbm_clearerr(dbm)$/ +__db_ndbm_close ../dbm/dbm.c /^__db_ndbm_close(dbm)$/ +__db_ndbm_delete ../dbm/dbm.c /^__db_ndbm_delete(dbm, key)$/ +__db_ndbm_dirfno ../dbm/dbm.c /^__db_ndbm_dirfno(dbm)$/ +__db_ndbm_error ../dbm/dbm.c /^__db_ndbm_error(dbm)$/ +__db_ndbm_fetch ../dbm/dbm.c /^__db_ndbm_fetch(dbm, key)$/ +__db_ndbm_firstkey ../dbm/dbm.c /^__db_ndbm_firstkey(dbm)$/ +__db_ndbm_nextkey ../dbm/dbm.c /^__db_ndbm_nextkey(dbm)$/ +__db_ndbm_open ../dbm/dbm.c /^__db_ndbm_open(file, oflags, mode)$/ +__db_ndbm_pagfno ../dbm/dbm.c /^__db_ndbm_pagfno(dbm)$/ +__db_ndbm_rdonly ../dbm/dbm.c /^__db_ndbm_rdonly(dbm)$/ +__db_ndbm_store ../dbm/dbm.c /^__db_ndbm_store(dbm, key, data, flags)$/ +__db_new ../db/db_meta.c /^__db_new(dbc, type, pagepp)$/ +__db_no_open ../dbm/dbm.c /^__db_no_open()$/ +__db_noop_log ../db/db_auto.c /^__db_noop_log(dbenv, txnid, ret_lsnp, flags,$/ +__db_noop_print ../db/db_auto.c /^__db_noop_print(dbenv, dbtp, lsnp, notused2, notus/ +__db_noop_read ../db/db_auto.c /^__db_noop_read(dbenv, recbuf, argpp)$/ +__db_noop_recover ../db/db_rec.c /^__db_noop_recover(dbenv, dbtp, lsnp, op, info)$/ +__db_nosystemmem ../os/os_map.c /^__db_nosystemmem(dbenv)$/ +__db_not_txn_env ../common/db_err.c /^__db_not_txn_env(dbp)$/ +__db_oflags ../os/os_oflags.c /^__db_oflags(oflags)$/ +__db_omode ../os/os_oflags.c /^__db_omode(perm)$/ +__db_open ../db/db.c /^__db_open(dbp, name, subdb, type, flags, mode)$/ +__db_open_proc ../rpc_server/db_server_proc.c /^__db_open_proc(dbpcl_id, name, subdb,$/ +__db_ovref ../db/db_overflow.c /^__db_ovref(dbc, pgno, adjust)$/ +__db_ovref_log ../db/db_auto.c /^__db_ovref_log(dbenv, txnid, ret_lsnp, flags,$/ +__db_ovref_print ../db/db_auto.c /^__db_ovref_print(dbenv, dbtp, lsnp, notused2, notu/ +__db_ovref_read ../db/db_auto.c /^__db_ovref_read(dbenv, recbuf, argpp)$/ +__db_ovref_recover ../db/db_rec.c /^__db_ovref_recover(dbenv, dbtp, lsnp, op, info)$/ +__db_page_pass ../db/db_upg.c /^__db_page_pass(dbp, real_name, flags, fl, fhp)$/ +__db_pagesize_proc ../rpc_server/db_server_proc.c /^__db_pagesize_proc(dbpcl_id, pagesize, replyp)$/ +__db_pagetype_to_string ../db/db_pr.c /^__db_pagetype_to_string(type)$/ +__db_panic ../common/db_err.c /^__db_panic(dbenv, errval)$/ +__db_panic_msg ../common/db_err.c /^__db_panic_msg(dbenv)$/ +__db_parse ../env/env_open.c /^__db_parse(dbenv, s)$/ +__db_partsize ../db/db_cam.c /^__db_partsize(nbytes, data)$/ +__db_pg_alloc_log ../include/db_am.h /^#define __db_pg_alloc_log __bam_pg_alloc_log$/ +__db_pg_free_log ../include/db_am.h /^#define __db_pg_free_log __bam_pg_free_log$/ +__db_pgerr ../common/db_err.c /^__db_pgerr(dbp, pgno)$/ +__db_pget ../db/db_am.c /^__db_pget(dbp, txn, skey, pkey, data, flags)$/ +__db_pget_proc ../rpc_server/db_server_proc.c /^__db_pget_proc(dbpcl_id, txnpcl_id, skeydlen,$/ +__db_pgetchk ../db/db_iface.c /^__db_pgetchk(dbp, skey, pkey, data, flags)$/ +__db_pgfmt ../common/db_err.c /^__db_pgfmt(dbp, pgno)$/ +__db_pgin ../db/db_conv.c /^__db_pgin(dbenv, pg, pp, cookie)$/ +__db_pgout ../db/db_conv.c /^__db_pgout(dbenv, pg, pp, cookie)$/ +__db_pitem ../db/db_dup.c /^__db_pitem(dbc, pagep, indx, nbytes, hdr, data)$/ +__db_poff ../db/db_overflow.c /^__db_poff(dbc, dbt, pgnop)$/ +__db_pr ../db/db_pr.c /^__db_pr(p, len)$/ +__db_prdb ../db/db_pr.c /^__db_prdb(dbp, fp, flags)$/ +__db_prdbt ../db/db_pr.c /^__db_prdbt(dbtp, checkprint, prefix, handle, callb/ +__db_prflags ../db/db_pr.c /^__db_prflags(flags, fn, fp)$/ +__db_prfooter ../db/db_pr.c /^__db_prfooter(handle, callback)$/ +__db_prheader ../db/db_pr.c /^__db_prheader(dbp, subname, pflag, keyflag, handle/ +__db_prinit ../db/db_pr.c /^__db_prinit(fp)$/ +__db_prnpage ../db/db_pr.c /^__db_prnpage(dbp, pgno)$/ +__db_proff ../db/db_pr.c /^__db_proff(vp)$/ +__db_prpage ../db/db_pr.c /^__db_prpage(dbp, h, flags)$/ +__db_prqueue ../qam/qam_method.c /^__db_prqueue(dbp, flags)$/ +__db_prtree ../db/db_pr.c /^__db_prtree(dbp, flags)$/ +__db_psize ../db/db_pr.c /^__db_psize(dbp)$/ +__db_pthread_mutex_destroy ../mutex/mut_pthread.c /^__db_pthread_mutex_destroy(mutexp)$/ +__db_pthread_mutex_init ../mutex/mut_pthread.c /^__db_pthread_mutex_init(dbenv, mutexp, flags)$/ +__db_pthread_mutex_lock ../mutex/mut_pthread.c /^__db_pthread_mutex_lock(dbenv, mutexp)$/ +__db_pthread_mutex_unlock ../mutex/mut_pthread.c /^__db_pthread_mutex_unlock(dbenv, mutexp)$/ +__db_put ../db/db_am.c /^__db_put(dbp, txn, key, data, flags)$/ +__db_put_proc ../rpc_server/db_server_proc.c /^__db_put_proc(dbpcl_id, txnpcl_id, keydlen,$/ +__db_putchk ../db/db_iface.c /^__db_putchk(dbp, key, data, flags, isrdonly, isdup/ +__db_qam_stat ../include/db.in /^struct __db_qam_stat {$/ +__db_qmeta ../db/db_pr.c /^__db_qmeta(dbp, fp, h, flags)$/ +__db_r_attach ../env/env_region.c /^__db_r_attach(dbenv, infop, size)$/ +__db_r_detach ../env/env_region.c /^__db_r_detach(dbenv, infop, destroy)$/ +__db_rdonly ../db/db_iface.c /^__db_rdonly(dbenv, name)$/ +__db_re_delim_proc ../rpc_server/db_server_proc.c /^__db_re_delim_proc(dbpcl_id, delim, replyp)$/ +__db_re_len_proc ../rpc_server/db_server_proc.c /^__db_re_len_proc(dbpcl_id, len, replyp)$/ +__db_re_pad_proc ../rpc_server/db_server_proc.c /^__db_re_pad_proc(dbpcl_id, pad, replyp)$/ +__db_real_err ../common/db_err.c /^__db_real_err(dbenv, error, error_set, stderr_defa/ +__db_real_log ../common/db_err.c /^__db_real_log(dbenv, txnid, opname, flags, fmt, ap/ +__db_reclaim_callback ../db/db_reclaim.c /^__db_reclaim_callback(dbp, p, cookie, putp)$/ +__db_refresh ../db/db.c /^__db_refresh(dbp)$/ +__db_reginfo_t ../include/region.h /^struct __db_reginfo_t { \/* __db_r_attach IN para/ +__db_region_destroy ../env/env_region.c /^__db_region_destroy(dbenv, infop)$/ +__db_relink ../db/db_dup.c /^__db_relink(dbc, add_rem, pagep, new_next, needloc/ +__db_relink_log ../db/db_auto.c /^__db_relink_log(dbenv, txnid, ret_lsnp, flags,$/ +__db_relink_print ../db/db_auto.c /^__db_relink_print(dbenv, dbtp, lsnp, notused2, not/ +__db_relink_read ../db/db_auto.c /^__db_relink_read(dbenv, recbuf, argpp)$/ +__db_relink_recover ../db/db_rec.c /^__db_relink_recover(dbenv, dbtp, lsnp, op, info)$/ +__db_remove ../db/db.c /^__db_remove(dbp, name, subdb, flags)$/ +__db_remove_callback ../db/db.c /^__db_remove_callback(dbp, cookie)$/ +__db_remove_proc ../rpc_server/db_server_proc.c /^__db_remove_proc(dbpcl_id, name, subdb,$/ +__db_removechk ../db/db_iface.c /^__db_removechk(dbp, flags)$/ +__db_rename ../db/db.c /^__db_rename(dbp, filename, subdb, newname, flags)$/ +__db_rename_proc ../rpc_server/db_server_proc.c /^__db_rename_proc(dbpcl_id, name, subdb,$/ +__db_ret ../db/db_ret.c /^__db_ret(dbp, h, indx, dbt, memp, memsize)$/ +__db_retcopy ../db/db_ret.c /^__db_retcopy(dbp, dbt, data, len, memp, memsize)$/ +__db_rmid_to_env ../xa/xa_map.c /^__db_rmid_to_env(rmid, envp)$/ +__db_rpath ../os/os_rpath.c /^__db_rpath(path)$/ +__db_s_done ../db/db_cam.c /^__db_s_done(sdbp)$/ +__db_s_first ../db/db_cam.c /^__db_s_first(pdbp)$/ +__db_s_next ../db/db_cam.c /^__db_s_next(sdbpp)$/ +__db_safe_goff ../db/db_overflow.c /^__db_safe_goff(dbp, vdp, pgno, dbt, buf, flags)$/ +__db_salvage ../db/db_vrfy.c /^__db_salvage(dbp, vdp, pgno, h, handle, callback, / +__db_salvage_destroy ../db/db_vrfyutil.c /^__db_salvage_destroy(vdp)$/ +__db_salvage_duptree ../db/db_vrfy.c /^__db_salvage_duptree(dbp, vdp, pgno, key, handle, / +__db_salvage_getnext ../db/db_vrfyutil.c /^__db_salvage_getnext(vdp, pgnop, pgtypep)$/ +__db_salvage_init ../db/db_vrfyutil.c /^__db_salvage_init(vdp)$/ +__db_salvage_isdone ../db/db_vrfyutil.c /^__db_salvage_isdone(vdp, pgno)$/ +__db_salvage_markdone ../db/db_vrfyutil.c /^__db_salvage_markdone(vdp, pgno)$/ +__db_salvage_markneeded ../db/db_vrfyutil.c /^__db_salvage_markneeded(vdp, pgno, pgtype)$/ +__db_salvage_subdbpg ../db/db_vrfy.c /^__db_salvage_subdbpg(dbp, vdp, master, handle, cal/ +__db_salvage_subdbs ../db/db_vrfy.c /^__db_salvage_subdbs(dbp, vdp, handle, callback, fl/ +__db_salvage_unknowns ../db/db_vrfy.c /^__db_salvage_unknowns(dbp, vdp, handle, callback, / +__db_schema_init ../db/db.c /^__db_schema_init(dbp, command, name, subdb, lockp,/ +__db_secondary_close ../db/db_am.c /^__db_secondary_close(sdbp, flags)$/ +__db_secondary_get ../db/db_am.c /^__db_secondary_get(sdbp, txn, skey, data, flags)$/ +__db_set_alloc ../db/db_method.c /^__db_set_alloc(dbp, mal_func, real_func, free_func/ +__db_set_append_recno ../db/db_method.c /^__db_set_append_recno(dbp, func)$/ +__db_set_cachesize ../db/db_method.c /^__db_set_cachesize(dbp, cache_gbytes, cache_bytes,/ +__db_set_dup_compare ../db/db_method.c /^__db_set_dup_compare(dbp, func)$/ +__db_set_errcall ../db/db_method.c /^__db_set_errcall(dbp, errcall)$/ +__db_set_errfile ../db/db_method.c /^__db_set_errfile(dbp, errfile)$/ +__db_set_errpfx ../db/db_method.c /^__db_set_errpfx(dbp, errpfx)$/ +__db_set_feedback ../db/db_method.c /^__db_set_feedback(dbp, feedback)$/ +__db_set_flags ../db/db_method.c /^__db_set_flags(dbp, flags)$/ +__db_set_lorder ../db/db_method.c /^__db_set_lorder(dbp, db_lorder)$/ +__db_set_pagesize ../db/db_method.c /^__db_set_pagesize(dbp, db_pagesize)$/ +__db_set_paniccall ../db/db_method.c /^__db_set_paniccall(dbp, paniccall)$/ +__db_set_pgsize ../db/db.c /^__db_set_pgsize(dbp, fhp, name)$/ +__db_shalloc ../env/db_salloc.c /^__db_shalloc(p, len, align, retp)$/ +__db_shalloc_dump ../env/db_salloc.c /^__db_shalloc_dump(addr, fp)$/ +__db_shalloc_free ../env/db_salloc.c /^__db_shalloc_free(regionp, ptr)$/ +__db_shalloc_init ../env/db_salloc.c /^__db_shalloc_init(area, size)$/ +__db_shalloc_size ../env/db_salloc.c /^__db_shalloc_size(len, align)$/ +__db_shlocks_clear ../include/mutex.h /^#define __db_shlocks_clear(a, b, c) __db_shreg_loc/ +__db_shlocks_destroy ../include/mutex.h /^#define __db_shlocks_destroy(a, b) __db_shreg_lock/ +__db_shmutex_init ../include/mutex.h /^#define __db_shmutex_init(a, b, c, d, e, f) \\$/ +__db_shreg_locks_clear ../mutex/mutex.c /^__db_shreg_locks_clear(mutexp, infop, rp)$/ +__db_shreg_locks_destroy ../mutex/mutex.c /^__db_shreg_locks_destroy(infop, rp)$/ +__db_shreg_locks_record ../mutex/mutex.c /^__db_shreg_locks_record(dbenv, mutexp, infop, rp)$/ +__db_shreg_maintinit ../mutex/mutex.c /^__db_shreg_maintinit(infop, addr, size)$/ +__db_shreg_mutex_init ../mutex/mutex.c /^__db_shreg_mutex_init(dbenv, mutexp, offset, flags/ +__db_shsizeof ../env/db_salloc.c /^__db_shsizeof(ptr)$/ +__db_split_print ../db/db_auto.c /^__db_split_print(dbenv, dbtp, lsnp, notused2, notu/ +__db_split_read ../db/db_auto.c /^__db_split_read(dbenv, recbuf, argpp)$/ +__db_stat_proc ../rpc_server/db_server_proc.c /^__db_stat_proc(dbpcl_id, flags, replyp, freep)$/ +__db_statchk ../db/db_iface.c /^__db_statchk(dbp, flags)$/ +__db_subdb_remove ../db/db.c /^__db_subdb_remove(dbp, name, subdb)$/ +__db_subdb_rename ../db/db.c /^__db_subdb_rename(dbp, name, subdb, newname)$/ +__db_sync ../db/db_am.c /^__db_sync(dbp, flags)$/ +__db_sync_proc ../rpc_server/db_server_proc.c /^__db_sync_proc(dbpcl_id, flags, replyp)$/ +__db_syncchk ../db/db_iface.c /^__db_syncchk(dbp, flags)$/ +__db_tablesize ../env/db_shash.c /^__db_tablesize(n_buckets)$/ +__db_tas_mutex_destroy ../mutex/mut_tas.c /^__db_tas_mutex_destroy(mutexp)$/ +__db_tas_mutex_init ../mutex/mut_tas.c /^__db_tas_mutex_init(dbenv, mutexp, flags)$/ +__db_tas_mutex_lock ../mutex/mut_tas.c /^__db_tas_mutex_lock(dbenv, mutexp)$/ +__db_tas_mutex_unlock ../mutex/mut_tas.c /^__db_tas_mutex_unlock(dbenv, mutexp)$/ +__db_testcopy ../db/db.c /^__db_testcopy(dbp, name)$/ +__db_testdocopy ../db/db.c /^__db_testdocopy(dbp, name)$/ +__db_tmp_open ../env/env_open.c /^__db_tmp_open(dbenv, tmp_oflags, path, fhp)$/ +__db_traverse_big ../db/db_reclaim.c /^__db_traverse_big(dbp, pgno, callback, cookie)$/ +__db_truncate ../db/db.c /^__db_truncate(dbp, name, subdb, countp, flags)$/ +__db_truncate_callback ../db/db_reclaim.c /^__db_truncate_callback(dbp, p, cookie, putp)$/ +__db_truncate_proc ../rpc_server/db_server_proc.c /^__db_truncate_proc(dbpcl_id, name, subdb,$/ +__db_txn ../include/txn.h /^struct __db_txn {$/ +__db_txn_abort_3003 ../rpc_client/db_server_clnt.c /^__db_txn_abort_3003(argp, clnt)$/ +__db_txn_active ../include/db.in /^struct __db_txn_active {$/ +__db_txn_begin_3003 ../rpc_client/db_server_clnt.c /^__db_txn_begin_3003(argp, clnt)$/ +__db_txn_commit_3003 ../rpc_client/db_server_clnt.c /^__db_txn_commit_3003(argp, clnt)$/ +__db_txn_prepare_3003 ../rpc_client/db_server_clnt.c /^__db_txn_prepare_3003(argp, clnt)$/ +__db_txn_recover_3003 ../rpc_client/db_server_clnt.c /^__db_txn_recover_3003(argp, clnt)$/ +__db_txn_stat ../include/db.in /^struct __db_txn_stat {$/ +__db_txnhead ../include/db_dispatch.h /^struct __db_txnhead {$/ +__db_txnlist ../include/db_dispatch.h /^struct __db_txnlist {$/ +__db_txnlist_add ../db/db_dispatch.c /^__db_txnlist_add(dbenv, listp, txnid, status)$/ +__db_txnlist_close ../db/db_dispatch.c /^__db_txnlist_close(listp, lid, count)$/ +__db_txnlist_delete ../db/db_dispatch.c /^__db_txnlist_delete(dbenv, listp, name, lid, delet/ +__db_txnlist_end ../db/db_dispatch.c /^__db_txnlist_end(dbenv, listp)$/ +__db_txnlist_find ../db/db_dispatch.c /^__db_txnlist_find(dbenv, listp, txnid)$/ +__db_txnlist_find_internal ../db/db_dispatch.c /^__db_txnlist_find_internal(dbenv, listp, type, txn/ +__db_txnlist_gen ../db/db_dispatch.c /^__db_txnlist_gen(listp, incr)$/ +__db_txnlist_init ../db/db_dispatch.c /^__db_txnlist_init(dbenv, retp)$/ +__db_txnlist_lsnadd ../db/db_dispatch.c /^__db_txnlist_lsnadd(dbenv, listp, lsnp, flags)$/ +__db_txnlist_lsninit ../db/db_dispatch.c /^__db_txnlist_lsninit(dbenv, hp, lsnp)$/ +__db_txnlist_pgnoadd ../db/db_dispatch.c /^__db_txnlist_pgnoadd(dbenv, hp, fileid, uid, fname/ +__db_txnlist_print ../db/db_dispatch.c /^__db_txnlist_print(listp)$/ +__db_txnlist_remove ../db/db_dispatch.c /^__db_txnlist_remove(dbenv, listp, txnid)$/ +__db_txnmgr ../include/txn.h /^struct __db_txnmgr {$/ +__db_txnregion ../include/txn.h /^struct __db_txnregion {$/ +__db_unknown_flag ../common/db_err.c /^__db_unknown_flag(dbenv, routine, flag)$/ +__db_unknown_type ../common/db_err.c /^__db_unknown_type(dbenv, routine, type)$/ +__db_unmap_rmid ../xa/xa_map.c /^__db_unmap_rmid(rmid)$/ +__db_unmap_xid ../xa/xa_map.c /^__db_unmap_xid(env, xid, off)$/ +__db_up_ovref ../db/db_upg_opd.c /^__db_up_ovref(dbp, fhp, pgno)$/ +__db_upgrade ../db/db_upg.c /^__db_upgrade(dbp, fname, flags)$/ +__db_util_interrupted ../common/util_sig.c /^__db_util_interrupted()$/ +__db_util_logset ../common/util_log.c /^__db_util_logset(progname, fname)$/ +__db_util_siginit ../common/util_sig.c /^__db_util_siginit()$/ +__db_util_sigresend ../common/util_sig.c /^__db_util_sigresend()$/ +__db_verify ../db/db_vrfy.c /^__db_verify(dbp, file, database, outfile, flags)$/ +__db_verify_callback ../db/db_vrfy.c /^__db_verify_callback(handle, str_arg)$/ +__db_verify_internal ../db/db_vrfy.c /^__db_verify_internal(dbp_orig, name, subdb, handle/ +__db_vrfy_ccclose ../db/db_vrfyutil.c /^__db_vrfy_ccclose(dbc)$/ +__db_vrfy_ccnext ../db/db_vrfyutil.c /^__db_vrfy_ccnext(dbc, cipp)$/ +__db_vrfy_ccset ../db/db_vrfyutil.c /^__db_vrfy_ccset(dbc, pgno, cipp)$/ +__db_vrfy_childcursor ../db/db_vrfyutil.c /^__db_vrfy_childcursor(vdp, dbcp)$/ +__db_vrfy_childput ../db/db_vrfyutil.c /^__db_vrfy_childput(vdp, pgno, cip)$/ +__db_vrfy_common ../db/db_vrfy.c /^__db_vrfy_common(dbp, vdp, h, pgno, flags)$/ +__db_vrfy_datapage ../db/db_vrfy.c /^__db_vrfy_datapage(dbp, vdp, h, pgno, flags)$/ +__db_vrfy_dbinfo_create ../db/db_vrfyutil.c /^__db_vrfy_dbinfo_create (dbenv, pgsize, vdpp)$/ +__db_vrfy_dbinfo_destroy ../db/db_vrfyutil.c /^__db_vrfy_dbinfo_destroy(dbenv, vdp)$/ +__db_vrfy_duptype ../db/db_vrfy.c /^__db_vrfy_duptype(dbp, vdp, pgno, flags)$/ +__db_vrfy_freelist ../db/db_vrfy.c /^__db_vrfy_freelist(dbp, vdp, meta, flags)$/ +__db_vrfy_getpageinfo ../db/db_vrfyutil.c /^__db_vrfy_getpageinfo(vdp, pgno, pipp)$/ +__db_vrfy_inpitem ../db/db_vrfy.c /^__db_vrfy_inpitem(dbp, h, pgno, i, is_btree, flags/ +__db_vrfy_invalid ../db/db_vrfy.c /^__db_vrfy_invalid(dbp, vdp, h, pgno, flags)$/ +__db_vrfy_meta ../db/db_vrfy.c /^__db_vrfy_meta(dbp, vdp, meta, pgno, flags)$/ +__db_vrfy_orderchkonly ../db/db_vrfy.c /^__db_vrfy_orderchkonly(dbp, vdp, name, subdb, flag/ +__db_vrfy_overflow ../db/db_overflow.c /^__db_vrfy_overflow(dbp, vdp, h, pgno, flags)$/ +__db_vrfy_ovfl_structure ../db/db_overflow.c /^__db_vrfy_ovfl_structure(dbp, vdp, pgno, tlen, fla/ +__db_vrfy_pageinfo_create ../db/db_vrfyutil.c /^__db_vrfy_pageinfo_create(pgipp)$/ +__db_vrfy_pagezero ../db/db_vrfy.c /^__db_vrfy_pagezero(dbp, vdp, fhp, flags)$/ +__db_vrfy_pgset ../db/db_vrfyutil.c /^__db_vrfy_pgset(dbenv, pgsize, dbpp)$/ +__db_vrfy_pgset_dec ../db/db_vrfyutil.c /^__db_vrfy_pgset_dec(dbp, pgno)$/ +__db_vrfy_pgset_get ../db/db_vrfyutil.c /^__db_vrfy_pgset_get(dbp, pgno, valp)$/ +__db_vrfy_pgset_iinc ../db/db_vrfyutil.c /^__db_vrfy_pgset_iinc(dbp, pgno, i)$/ +__db_vrfy_pgset_inc ../db/db_vrfyutil.c /^__db_vrfy_pgset_inc(dbp, pgno)$/ +__db_vrfy_pgset_next ../db/db_vrfyutil.c /^__db_vrfy_pgset_next(dbc, pgnop)$/ +__db_vrfy_putpageinfo ../db/db_vrfyutil.c /^__db_vrfy_putpageinfo(dbenv, vdp, pip)$/ +__db_vrfy_struct_feedback ../db/db_vrfy.c /^__db_vrfy_struct_feedback(dbp, vdp)$/ +__db_vrfy_structure ../db/db_vrfy.c /^__db_vrfy_structure(dbp, vdp, dbname, meta_pgno, f/ +__db_vrfy_subdbs ../db/db_vrfy.c /^__db_vrfy_subdbs(dbp, vdp, dbname, flags)$/ +__db_vrfy_walkpages ../db/db_vrfy.c /^__db_vrfy_walkpages(dbp, vdp, handle, callback, fl/ +__db_wrlock_err ../db/db_cam.c /^__db_wrlock_err(dbenv)$/ +__db_xa_close ../xa/xa.c /^__db_xa_close(xa_info, rmid, flags)$/ +__db_xa_commit ../xa/xa.c /^__db_xa_commit(xid, rmid, flags)$/ +__db_xa_complete ../xa/xa.c /^__db_xa_complete(handle, retval, rmid, flags)$/ +__db_xa_create ../xa/xa_db.c /^__db_xa_create(dbp)$/ +__db_xa_end ../xa/xa.c /^__db_xa_end(xid, rmid, flags)$/ +__db_xa_forget ../xa/xa.c /^__db_xa_forget(xid, rmid, flags)$/ +__db_xa_open ../xa/xa.c /^__db_xa_open(xa_info, rmid, flags)$/ +__db_xa_prepare ../xa/xa.c /^__db_xa_prepare(xid, rmid, flags)$/ +__db_xa_recover ../xa/xa.c /^__db_xa_recover(xids, count, rmid, flags)$/ +__db_xa_rollback ../xa/xa.c /^__db_xa_rollback(xid, rmid, flags)$/ +__db_xa_start ../xa/xa.c /^__db_xa_start(xid, rmid, flags)$/ +__db_xid_to_txn ../xa/xa_map.c /^__db_xid_to_txn(dbenv, xid, offp)$/ +__dbc ../include/db.in /^struct __dbc {$/ +__dbc_close_int ../rpc_server/db_server_util.c /^__dbc_close_int(dbc_ctp)$/ +__dbc_close_proc ../rpc_server/db_server_proc.c /^__dbc_close_proc(dbccl_id, replyp)$/ +__dbc_count_proc ../rpc_server/db_server_proc.c /^__dbc_count_proc(dbccl_id, flags, replyp)$/ +__dbc_del_proc ../rpc_server/db_server_proc.c /^__dbc_del_proc(dbccl_id, flags, replyp)$/ +__dbc_dup_proc ../rpc_server/db_server_proc.c /^__dbc_dup_proc(dbccl_id, flags, replyp)$/ +__dbc_get_proc ../rpc_server/db_server_proc.c /^__dbc_get_proc(dbccl_id, keydlen, keydoff,$/ +__dbc_internal ../include/db_int.in /^struct __dbc_internal {$/ +__dbc_pget_proc ../rpc_server/db_server_proc.c /^__dbc_pget_proc(dbccl_id, skeydlen, skeydoff,$/ +__dbc_put_proc ../rpc_server/db_server_proc.c /^__dbc_put_proc(dbccl_id, keydlen, keydoff,$/ +__dbcl_c_destroy ../rpc_client/client.c /^__dbcl_c_destroy(dbc)$/ +__dbcl_c_refresh ../rpc_client/client.c /^__dbcl_c_refresh(dbcp)$/ +__dbcl_c_setup ../rpc_client/client.c /^__dbcl_c_setup(cl_id, dbp, dbcpp)$/ +__dbcl_db_alloc ../rpc_client/gen_client.c /^__dbcl_db_alloc(dbp, func0, func1, func2)$/ +__dbcl_db_associate ../rpc_client/gen_client.c /^__dbcl_db_associate(dbp, sdbp, func0, flags)$/ +__dbcl_db_bt_compare ../rpc_client/gen_client.c /^__dbcl_db_bt_compare(dbp, func0)$/ +__dbcl_db_bt_maxkey ../rpc_client/gen_client.c /^__dbcl_db_bt_maxkey(dbp, maxkey)$/ +__dbcl_db_bt_minkey ../rpc_client/gen_client.c /^__dbcl_db_bt_minkey(dbp, minkey)$/ +__dbcl_db_bt_prefix ../rpc_client/gen_client.c /^__dbcl_db_bt_prefix(dbp, func0)$/ +__dbcl_db_cachesize ../rpc_client/gen_client.c /^__dbcl_db_cachesize(dbp, gbytes, bytes, ncache)$/ +__dbcl_db_close ../rpc_client/gen_client.c /^__dbcl_db_close(dbp, flags)$/ +__dbcl_db_close_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_close_ret(dbp, flags, replyp)$/ +__dbcl_db_create ../rpc_client/gen_client.c /^__dbcl_db_create(dbp, dbenv, flags)$/ +__dbcl_db_create_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_create_ret(dbp, dbenv, flags, replyp)$/ +__dbcl_db_cursor ../rpc_client/gen_client.c /^__dbcl_db_cursor(dbp, txnp, dbcpp, flags)$/ +__dbcl_db_cursor_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_cursor_ret(dbp, txnp, dbcpp, flags, repl/ +__dbcl_db_del ../rpc_client/gen_client.c /^__dbcl_db_del(dbp, txnp, key, flags)$/ +__dbcl_db_extentsize ../rpc_client/gen_client.c /^__dbcl_db_extentsize(dbp, extentsize)$/ +__dbcl_db_fd ../rpc_client/gen_client.c /^__dbcl_db_fd(dbp, fdp)$/ +__dbcl_db_feedback ../rpc_client/gen_client.c /^__dbcl_db_feedback(dbp, func0)$/ +__dbcl_db_flags ../rpc_client/gen_client.c /^__dbcl_db_flags(dbp, flags)$/ +__dbcl_db_get ../rpc_client/gen_client.c /^__dbcl_db_get(dbp, txnp, key, data, flags)$/ +__dbcl_db_get_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_get_ret(dbp, txnp, key, data, flags, rep/ +__dbcl_db_h_ffactor ../rpc_client/gen_client.c /^__dbcl_db_h_ffactor(dbp, ffactor)$/ +__dbcl_db_h_hash ../rpc_client/gen_client.c /^__dbcl_db_h_hash(dbp, func0)$/ +__dbcl_db_h_nelem ../rpc_client/gen_client.c /^__dbcl_db_h_nelem(dbp, nelem)$/ +__dbcl_db_join ../rpc_client/gen_client.c /^__dbcl_db_join(dbp, curs, dbcp, flags)$/ +__dbcl_db_join_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_join_ret(dbp, curs, dbcpp, flags, replyp/ +__dbcl_db_key_range ../rpc_client/gen_client.c /^__dbcl_db_key_range(dbp, txnp, key, range, flags)$/ +__dbcl_db_key_range_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_key_range_ret(dbp, txnp, key, range, fla/ +__dbcl_db_lorder ../rpc_client/gen_client.c /^__dbcl_db_lorder(dbp, lorder)$/ +__dbcl_db_open ../rpc_client/gen_client.c /^__dbcl_db_open(dbp, name, subdb, type, flags, mode/ +__dbcl_db_open_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_open_ret(dbp, name, subdb, type, flags, / +__dbcl_db_pagesize ../rpc_client/gen_client.c /^__dbcl_db_pagesize(dbp, pagesize)$/ +__dbcl_db_panic ../rpc_client/gen_client.c /^__dbcl_db_panic(dbp, func0)$/ +__dbcl_db_pget ../rpc_client/gen_client.c /^__dbcl_db_pget(dbp, txnp, skey, pkey, data, flags)/ +__dbcl_db_pget_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_pget_ret(dbp, txnp, skey, pkey, data, fl/ +__dbcl_db_put ../rpc_client/gen_client.c /^__dbcl_db_put(dbp, txnp, key, data, flags)$/ +__dbcl_db_put_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_put_ret(dbp, txnp, key, data, flags, rep/ +__dbcl_db_re_delim ../rpc_client/gen_client.c /^__dbcl_db_re_delim(dbp, delim)$/ +__dbcl_db_re_len ../rpc_client/gen_client.c /^__dbcl_db_re_len(dbp, len)$/ +__dbcl_db_re_pad ../rpc_client/gen_client.c /^__dbcl_db_re_pad(dbp, pad)$/ +__dbcl_db_re_source ../rpc_client/gen_client.c /^__dbcl_db_re_source(dbp, re_source)$/ +__dbcl_db_remove ../rpc_client/gen_client.c /^__dbcl_db_remove(dbp, name, subdb, flags)$/ +__dbcl_db_remove_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_remove_ret(dbp, name, subdb, flags, repl/ +__dbcl_db_rename ../rpc_client/gen_client.c /^__dbcl_db_rename(dbp, name, subdb, newname, flags)/ +__dbcl_db_rename_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_rename_ret(dbp, name, subdb, newname, fl/ +__dbcl_db_set_append_recno ../rpc_client/gen_client.c /^__dbcl_db_set_append_recno(dbp, func0)$/ +__dbcl_db_stat ../rpc_client/gen_client.c /^__dbcl_db_stat(dbp, sp, flags)$/ +__dbcl_db_stat_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_stat_ret(dbp, sp, flags, replyp)$/ +__dbcl_db_sync ../rpc_client/gen_client.c /^__dbcl_db_sync(dbp, flags)$/ +__dbcl_db_truncate ../rpc_client/gen_client.c /^__dbcl_db_truncate(dbp, name, subdb, countp, flags/ +__dbcl_db_truncate_ret ../rpc_client/gen_client_ret.c /^__dbcl_db_truncate_ret(dbp, name, subdb, countp, f/ +__dbcl_db_upgrade ../rpc_client/gen_client.c /^__dbcl_db_upgrade(dbp, fname, flags)$/ +__dbcl_db_verify ../rpc_client/gen_client.c /^__dbcl_db_verify(dbp, fname, subdb, outfile, flags/ +__dbcl_dbc_close ../rpc_client/gen_client.c /^__dbcl_dbc_close(dbc)$/ +__dbcl_dbc_close_ret ../rpc_client/gen_client_ret.c /^__dbcl_dbc_close_ret(dbcp, replyp)$/ +__dbcl_dbc_count ../rpc_client/gen_client.c /^__dbcl_dbc_count(dbc, countp, flags)$/ +__dbcl_dbc_count_ret ../rpc_client/gen_client_ret.c /^__dbcl_dbc_count_ret(dbc, countp, flags, replyp)$/ +__dbcl_dbc_del ../rpc_client/gen_client.c /^__dbcl_dbc_del(dbc, flags)$/ +__dbcl_dbc_dup ../rpc_client/gen_client.c /^__dbcl_dbc_dup(dbc, dbcp, flags)$/ +__dbcl_dbc_dup_ret ../rpc_client/gen_client_ret.c /^__dbcl_dbc_dup_ret(dbcp, dbcpp, flags, replyp)$/ +__dbcl_dbc_get ../rpc_client/gen_client.c /^__dbcl_dbc_get(dbc, key, data, flags)$/ +__dbcl_dbc_get_ret ../rpc_client/gen_client_ret.c /^__dbcl_dbc_get_ret(dbcp, key, data, flags, replyp)/ +__dbcl_dbc_pget ../rpc_client/gen_client.c /^__dbcl_dbc_pget(dbc, skey, pkey, data, flags)$/ +__dbcl_dbc_pget_ret ../rpc_client/gen_client_ret.c /^__dbcl_dbc_pget_ret(dbc, skey, pkey, data, flags, / +__dbcl_dbc_put ../rpc_client/gen_client.c /^__dbcl_dbc_put(dbc, key, data, flags)$/ +__dbcl_dbc_put_ret ../rpc_client/gen_client_ret.c /^__dbcl_dbc_put_ret(dbcp, key, data, flags, replyp)/ +__dbcl_dbclose_common ../rpc_client/client.c /^__dbcl_dbclose_common(dbp)$/ +__dbcl_env_alloc ../rpc_client/gen_client.c /^__dbcl_env_alloc(dbenv, func0, func1, func2)$/ +__dbcl_env_cachesize ../rpc_client/gen_client.c /^__dbcl_env_cachesize(dbenv, gbytes, bytes, ncache)/ +__dbcl_env_close ../rpc_client/gen_client.c /^__dbcl_env_close(dbenv, flags)$/ +__dbcl_env_close_ret ../rpc_client/gen_client_ret.c /^__dbcl_env_close_ret(dbenv, flags, replyp)$/ +__dbcl_env_create ../rpc_client/gen_client.c /^__dbcl_env_create(dbenv, timeout)$/ +__dbcl_env_create_ret ../rpc_client/gen_client_ret.c /^__dbcl_env_create_ret(dbenv, timeout, replyp)$/ +__dbcl_env_flags ../rpc_client/gen_client.c /^__dbcl_env_flags(dbenv, flags, onoff)$/ +__dbcl_env_open ../rpc_client/gen_client.c /^__dbcl_env_open(dbenv, home, flags, mode)$/ +__dbcl_env_open_ret ../rpc_client/gen_client_ret.c /^__dbcl_env_open_ret(dbenv, home, flags, mode, repl/ +__dbcl_env_open_wrap ../rpc_client/client.c /^__dbcl_env_open_wrap(dbenv, home, flags, mode)$/ +__dbcl_env_paniccall ../rpc_client/gen_client.c /^__dbcl_env_paniccall(dbenv, func0)$/ +__dbcl_env_remove ../rpc_client/gen_client.c /^__dbcl_env_remove(dbenv, home, flags)$/ +__dbcl_env_remove_ret ../rpc_client/gen_client_ret.c /^__dbcl_env_remove_ret(dbenv, home, flags, replyp)$/ +__dbcl_env_set_feedback ../rpc_client/gen_client.c /^__dbcl_env_set_feedback(dbenv, func0)$/ +__dbcl_envrpcserver ../rpc_client/client.c /^__dbcl_envrpcserver(dbenv, clnt, host, tsec, ssec,/ +__dbcl_envserver ../rpc_client/client.c /^__dbcl_envserver(dbenv, host, tsec, ssec, flags)$/ +__dbcl_init ../db/db_method.c /^__dbcl_init(dbp, dbenv, flags)$/ +__dbcl_lock_detect ../rpc_client/gen_client.c /^__dbcl_lock_detect(dbenv, flags, atype, aborted)$/ +__dbcl_lock_get ../rpc_client/gen_client.c /^__dbcl_lock_get(dbenv, locker, flags, obj, mode, l/ +__dbcl_lock_id ../rpc_client/gen_client.c /^__dbcl_lock_id(dbenv, idp)$/ +__dbcl_lock_put ../rpc_client/gen_client.c /^__dbcl_lock_put(dbenv, lock)$/ +__dbcl_lock_stat ../rpc_client/gen_client.c /^__dbcl_lock_stat(dbenv, statp)$/ +__dbcl_lock_vec ../rpc_client/gen_client.c /^__dbcl_lock_vec(dbenv, locker, flags, list, nlist,/ +__dbcl_log_archive ../rpc_client/gen_client.c /^__dbcl_log_archive(dbenv, listp, flags)$/ +__dbcl_log_file ../rpc_client/gen_client.c /^__dbcl_log_file(dbenv, lsn, namep, len)$/ +__dbcl_log_flush ../rpc_client/gen_client.c /^__dbcl_log_flush(dbenv, lsn)$/ +__dbcl_log_get ../rpc_client/gen_client.c /^__dbcl_log_get(dbenv, lsn, data, flags)$/ +__dbcl_log_put ../rpc_client/gen_client.c /^__dbcl_log_put(dbenv, lsn, data, flags)$/ +__dbcl_log_register ../rpc_client/gen_client.c /^__dbcl_log_register(dbenv, dbp, namep)$/ +__dbcl_log_stat ../rpc_client/gen_client.c /^__dbcl_log_stat(dbenv, statp)$/ +__dbcl_log_unregister ../rpc_client/gen_client.c /^__dbcl_log_unregister(dbenv, dbp)$/ +__dbcl_memp_fclose ../rpc_client/gen_client.c /^__dbcl_memp_fclose(mpf)$/ +__dbcl_memp_fget ../rpc_client/gen_client.c /^__dbcl_memp_fget(mpf, pgno, flags, pagep)$/ +__dbcl_memp_fopen ../rpc_client/gen_client.c /^__dbcl_memp_fopen(dbenv, file, flags, mode, pagesi/ +__dbcl_memp_fput ../rpc_client/gen_client.c /^__dbcl_memp_fput(mpf, pgaddr, flags)$/ +__dbcl_memp_fset ../rpc_client/gen_client.c /^__dbcl_memp_fset(mpf, pgaddr, flags)$/ +__dbcl_memp_fsync ../rpc_client/gen_client.c /^__dbcl_memp_fsync(mpf)$/ +__dbcl_memp_register ../rpc_client/gen_client.c /^__dbcl_memp_register(dbenv, ftype, func0, func1)$/ +__dbcl_memp_stat ../rpc_client/gen_client.c /^__dbcl_memp_stat(dbenv, gstatp, fstatp)$/ +__dbcl_memp_sync ../rpc_client/gen_client.c /^__dbcl_memp_sync(dbenv, lsn)$/ +__dbcl_memp_trickle ../rpc_client/gen_client.c /^__dbcl_memp_trickle(dbenv, pct, nwrotep)$/ +__dbcl_refresh ../rpc_client/client.c /^__dbcl_refresh(dbenv)$/ +__dbcl_retcopy ../rpc_client/client.c /^__dbcl_retcopy(dbenv, dbt, data, len)$/ +__dbcl_rpc_illegal ../rpc_client/gen_client.c /^__dbcl_rpc_illegal(dbenv, name)$/ +__dbcl_set_data_dir ../rpc_client/gen_client.c /^__dbcl_set_data_dir(dbenv, dir)$/ +__dbcl_set_lg_bsize ../rpc_client/gen_client.c /^__dbcl_set_lg_bsize(dbenv, bsize)$/ +__dbcl_set_lg_dir ../rpc_client/gen_client.c /^__dbcl_set_lg_dir(dbenv, dir)$/ +__dbcl_set_lg_max ../rpc_client/gen_client.c /^__dbcl_set_lg_max(dbenv, max)$/ +__dbcl_set_lg_regionmax ../rpc_client/gen_client.c /^__dbcl_set_lg_regionmax(dbenv, max)$/ +__dbcl_set_lk_conflict ../rpc_client/gen_client.c /^__dbcl_set_lk_conflict(dbenv, conflicts, modes)$/ +__dbcl_set_lk_detect ../rpc_client/gen_client.c /^__dbcl_set_lk_detect(dbenv, detect)$/ +__dbcl_set_lk_max ../rpc_client/gen_client.c /^__dbcl_set_lk_max(dbenv, max)$/ +__dbcl_set_lk_max_lockers ../rpc_client/gen_client.c /^__dbcl_set_lk_max_lockers(dbenv, max)$/ +__dbcl_set_lk_max_locks ../rpc_client/gen_client.c /^__dbcl_set_lk_max_locks(dbenv, max)$/ +__dbcl_set_lk_max_objects ../rpc_client/gen_client.c /^__dbcl_set_lk_max_objects(dbenv, max)$/ +__dbcl_set_mp_mmapsize ../rpc_client/gen_client.c /^__dbcl_set_mp_mmapsize(dbenv, mmapsize)$/ +__dbcl_set_mutex_locks ../rpc_client/gen_client.c /^__dbcl_set_mutex_locks(dbenv, do_lock)$/ +__dbcl_set_recovery_init ../rpc_client/gen_client.c /^__dbcl_set_recovery_init(dbenv, func0)$/ +__dbcl_set_shm_key ../rpc_client/gen_client.c /^__dbcl_set_shm_key(dbenv, shm_key)$/ +__dbcl_set_tmp_dir ../rpc_client/gen_client.c /^__dbcl_set_tmp_dir(dbenv, dir)$/ +__dbcl_set_tx_max ../rpc_client/gen_client.c /^__dbcl_set_tx_max(dbenv, max)$/ +__dbcl_set_tx_recover ../rpc_client/gen_client.c /^__dbcl_set_tx_recover(dbenv, func0)$/ +__dbcl_set_tx_timestamp ../rpc_client/gen_client.c /^__dbcl_set_tx_timestamp(dbenv, max)$/ +__dbcl_set_verbose ../rpc_client/gen_client.c /^__dbcl_set_verbose(dbenv, which, onoff)$/ +__dbcl_txn_abort ../rpc_client/gen_client.c /^__dbcl_txn_abort(txnp)$/ +__dbcl_txn_abort_ret ../rpc_client/gen_client_ret.c /^__dbcl_txn_abort_ret(txnp, replyp)$/ +__dbcl_txn_begin ../rpc_client/gen_client.c /^__dbcl_txn_begin(dbenv, parent, txnpp, flags)$/ +__dbcl_txn_begin_ret ../rpc_client/gen_client_ret.c /^__dbcl_txn_begin_ret(envp, parent, txnpp, flags, r/ +__dbcl_txn_checkpoint ../rpc_client/gen_client.c /^__dbcl_txn_checkpoint(dbenv, kbyte, min)$/ +__dbcl_txn_close ../rpc_client/client.c /^__dbcl_txn_close(dbenv)$/ +__dbcl_txn_commit ../rpc_client/gen_client.c /^__dbcl_txn_commit(txnp, flags)$/ +__dbcl_txn_commit_ret ../rpc_client/gen_client_ret.c /^__dbcl_txn_commit_ret(txnp, flags, replyp)$/ +__dbcl_txn_end ../rpc_client/client.c /^__dbcl_txn_end(txnp)$/ +__dbcl_txn_prepare ../rpc_client/gen_client.c /^__dbcl_txn_prepare(txnp, gid)$/ +__dbcl_txn_recover ../rpc_client/gen_client.c /^__dbcl_txn_recover(dbenv, preplist, count, retp, f/ +__dbcl_txn_recover_ret ../rpc_client/gen_client_ret.c /^__dbcl_txn_recover_ret(dbenv, preplist, count, ret/ +__dbcl_txn_setup ../rpc_client/client.c /^__dbcl_txn_setup(dbenv, txn, parent, id)$/ +__dbcl_txn_stat ../rpc_client/gen_client.c /^__dbcl_txn_stat(dbenv, statp)$/ +__dbclear_child ../rpc_server/db_server_util.c /^__dbclear_child(parent)$/ +__dbclear_ctp ../rpc_server/db_server_util.c /^__dbclear_ctp(ctp)$/ +__dbdel_ctp ../rpc_server/db_server_util.c /^__dbdel_ctp(parent)$/ +__dbenv_close ../env/env_open.c /^__dbenv_close(dbenv, flags)$/ +__dbenv_close_int ../rpc_server/db_server_util.c /^__dbenv_close_int(id, flags)$/ +__dbenv_config ../env/env_open.c /^__dbenv_config(dbenv, db_home, flags)$/ +__dbenv_err ../env/env_method.c /^__dbenv_err(dbenv, error, fmt, va_alist)$/ +__dbenv_errx ../env/env_method.c /^__dbenv_errx(dbenv, fmt, va_alist)$/ +__dbenv_init ../env/env_method.c /^__dbenv_init(dbenv)$/ +__dbenv_iremove ../env/env_open.c /^__dbenv_iremove(dbenv, db_home, flags, destroy_han/ +__dbenv_open ../env/env_open.c /^__dbenv_open(dbenv, db_home, flags, mode)$/ +__dbenv_refresh ../env/env_open.c /^__dbenv_refresh(dbenv)$/ +__dbenv_remove ../env/env_open.c /^__dbenv_remove(dbenv, db_home, flags)$/ +__dbenv_set_alloc ../env/env_method.c /^__dbenv_set_alloc(dbenv, mal_func, real_func, free/ +__dbenv_set_data_dir ../env/env_method.c /^__dbenv_set_data_dir(dbenv, dir)$/ +__dbenv_set_errcall ../env/env_method.c /^__dbenv_set_errcall(dbenv, errcall)$/ +__dbenv_set_errfile ../env/env_method.c /^__dbenv_set_errfile(dbenv, errfile)$/ +__dbenv_set_errpfx ../env/env_method.c /^__dbenv_set_errpfx(dbenv, errpfx)$/ +__dbenv_set_feedback ../env/env_method.c /^__dbenv_set_feedback(dbenv, feedback)$/ +__dbenv_set_flags ../env/env_method.c /^__dbenv_set_flags(dbenv, flags, onoff)$/ +__dbenv_set_mutexlocks ../env/env_method.c /^__dbenv_set_mutexlocks(dbenv, onoff)$/ +__dbenv_set_paniccall ../env/env_method.c /^__dbenv_set_paniccall(dbenv, paniccall)$/ +__dbenv_set_recovery_init ../env/env_method.c /^__dbenv_set_recovery_init(dbenv, recovery_init)$/ +__dbenv_set_rpc_server_noclnt ../env/env_method.c /^__dbenv_set_rpc_server_noclnt(dbenv, cl, host, tse/ +__dbenv_set_server_noclnt ../env/env_method.c /^__dbenv_set_server_noclnt(dbenv, host, tsec, ssec,/ +__dbenv_set_shm_key ../env/env_method.c /^__dbenv_set_shm_key(dbenv, shm_key)$/ +__dbenv_set_tmp_dir ../env/env_method.c /^__dbenv_set_tmp_dir(dbenv, dir)$/ +__dbenv_set_verbose ../env/env_method.c /^__dbenv_set_verbose(dbenv, which, onoff)$/ +__dbh_am_chk ../db/db_method.c /^__dbh_am_chk(dbp, flags)$/ +__dbh_err ../db/db_method.c /^__dbh_err(dbp, error, fmt, va_alist)$/ +__dbh_errx ../db/db_method.c /^__dbh_errx(dbp, fmt, va_alist)$/ +__dblist_get ../db/db.c /^__dblist_get(dbenv, adjid)$/ +__dbsrv_active ../rpc_server/db_server_util.c /^__dbsrv_active(ctp)$/ +__dbsrv_main ../rpc_server/db_server_svc.c /^void __dbsrv_main()$/ +__dbsrv_settimeout ../rpc_server/db_server_util.c /^__dbsrv_settimeout(ctp, to)$/ +__dbsrv_timeout ../rpc_server/db_server_util.c /^__dbsrv_timeout(force)$/ +__dbt_ferr ../db/db_iface.c /^__dbt_ferr(dbp, name, dbt, check_thread)$/ +__dd_abort ../lock/lock_deadlock.c /^__dd_abort(dbenv, info)$/ +__dd_build ../lock/lock_deadlock.c /^__dd_build(dbenv, atype, bmp, nlockers, allocp, id/ +__dd_debug ../lock/lock_deadlock.c /^__dd_debug(dbenv, idmap, bitmap, nlockers, nalloc)/ +__dd_find ../lock/lock_deadlock.c /^__dd_find(dbenv, bmp, idmap, nlockers, nalloc, dea/ +__dd_verify ../lock/lock_deadlock.c /^__dd_verify(deadmap, tmpmap, origmap, nlockers, na/ +__deprecated_recover ../db/db_dispatch.c /^__deprecated_recover(dbenv, dbtp, lsnp, op, info)$/ +__env_cachesize_proc ../rpc_server/db_server_proc.c /^__env_cachesize_proc(dbenvcl_id, gbytes, bytes,$/ +__env_close_proc ../rpc_server/db_server_proc.c /^__env_close_proc(dbenvcl_id, flags, replyp)$/ +__env_create_proc ../rpc_server/db_server_proc.c /^__env_create_proc(timeout, replyp)$/ +__env_flags_proc ../rpc_server/db_server_proc.c /^__env_flags_proc(dbenvcl_id, flags, onoff, replyp)/ +__env_open_proc ../rpc_server/db_server_proc.c /^__env_open_proc(dbenvcl_id, home, flags,$/ +__env_openfiles ../env/env_recover.c /^__env_openfiles(dbenv, txninfo, data, open_lsn, la/ +__env_remove_proc ../rpc_server/db_server_proc.c /^__env_remove_proc(dbenvcl_id, home, flags, replyp)/ +__epg ../include/btree.h /^struct __epg {$/ +__fh_t ../include/os.h /^struct __fh_t {$/ +__fname ../include/log.h /^struct __fname {$/ +__ham_30_hashmeta ../hash/hash_upgrade.c /^__ham_30_hashmeta(dbp, real_name, obuf)$/ +__ham_30_sizefix ../hash/hash_upgrade.c /^__ham_30_sizefix(dbp, fhp, realname, metabuf)$/ +__ham_31_hash ../hash/hash_upgrade.c /^__ham_31_hash(dbp, real_name, flags, fhp, h, dirty/ +__ham_31_hashmeta ../hash/hash_upgrade.c /^__ham_31_hashmeta(dbp, real_name, flags, fhp, h, d/ +__ham_add_dup ../hash/hash_dup.c /^__ham_add_dup(dbc, nval, flags, pgnop)$/ +__ham_add_el ../hash/hash_page.c /^__ham_add_el(dbc, key, val, type)$/ +__ham_add_ovflpage ../hash/hash_page.c /^__ham_add_ovflpage(dbc, pagep, release, pp)$/ +__ham_alloc_pages ../hash/hash_rec.c /^__ham_alloc_pages(dbp, argp)$/ +__ham_bulk ../hash/hash.c /^__ham_bulk(dbc, data, flags)$/ +__ham_c_chgpg ../hash/hash.c /^__ham_c_chgpg(dbc, old_pgno, old_index, new_pgno, / +__ham_c_close ../hash/hash.c /^__ham_c_close(dbc, root_pgno, rmroot)$/ +__ham_c_count ../hash/hash.c /^__ham_c_count(dbc, recnop)$/ +__ham_c_del ../hash/hash.c /^__ham_c_del(dbc)$/ +__ham_c_destroy ../hash/hash.c /^__ham_c_destroy(dbc)$/ +__ham_c_dup ../hash/hash.c /^__ham_c_dup(orig_dbc, new_dbc)$/ +__ham_c_get ../hash/hash.c /^__ham_c_get(dbc, key, data, flags, pgnop)$/ +__ham_c_init ../hash/hash.c /^__ham_c_init(dbc)$/ +__ham_c_put ../hash/hash.c /^__ham_c_put(dbc, key, data, flags, pgnop)$/ +__ham_c_update ../hash/hash.c /^__ham_c_update(dbc, len, add, is_dup)$/ +__ham_c_writelock ../hash/hash.c /^__ham_c_writelock(dbc)$/ +__ham_call_hash ../hash/hash.c /^__ham_call_hash(dbc, k, len)$/ +__ham_check_move ../hash/hash_dup.c /^__ham_check_move(dbc, add_len)$/ +__ham_chgpg_log ../hash/hash_auto.c /^__ham_chgpg_log(dbenv, txnid, ret_lsnp, flags,$/ +__ham_chgpg_print ../hash/hash_auto.c /^__ham_chgpg_print(dbenv, dbtp, lsnp, notused2, not/ +__ham_chgpg_read ../hash/hash_auto.c /^__ham_chgpg_read(dbenv, recbuf, argpp)$/ +__ham_chgpg_recover ../hash/hash_rec.c /^__ham_chgpg_recover(dbenv, dbtp, lsnp, op, info)$/ +__ham_copy_item ../hash/hash_page.c /^__ham_copy_item(pgsize, src_page, src_ndx, dest_pa/ +__ham_copypage_log ../hash/hash_auto.c /^__ham_copypage_log(dbenv, txnid, ret_lsnp, flags,$/ +__ham_copypage_print ../hash/hash_auto.c /^__ham_copypage_print(dbenv, dbtp, lsnp, notused2, / +__ham_copypage_read ../hash/hash_auto.c /^__ham_copypage_read(dbenv, recbuf, argpp)$/ +__ham_copypage_recover ../hash/hash_rec.c /^__ham_copypage_recover(dbenv, dbtp, lsnp, op, info/ +__ham_cprint ../hash/hash_dup.c /^__ham_cprint(dbc)$/ +__ham_curadj_log ../hash/hash_auto.c /^__ham_curadj_log(dbenv, txnid, ret_lsnp, flags,$/ +__ham_curadj_print ../hash/hash_auto.c /^__ham_curadj_print(dbenv, dbtp, lsnp, notused2, no/ +__ham_curadj_read ../hash/hash_auto.c /^__ham_curadj_read(dbenv, recbuf, argpp)$/ +__ham_curadj_recover ../hash/hash_rec.c /^__ham_curadj_recover(dbenv, dbtp, lsnp, op, info)$/ +__ham_db_close ../hash/hash_method.c /^__ham_db_close(dbp)$/ +__ham_db_create ../hash/hash_method.c /^__ham_db_create(dbp)$/ +__ham_dcursor ../hash/hash_dup.c /^__ham_dcursor(dbc, pgno, indx)$/ +__ham_del_pair ../hash/hash_page.c /^__ham_del_pair(dbc, reclaim_page)$/ +__ham_dirty_meta ../hash/hash_meta.c /^__ham_dirty_meta(dbc)$/ +__ham_dpair ../hash/hash_page.c /^__ham_dpair(dbp, p, indx)$/ +__ham_dsearch ../hash/hash_dup.c /^__ham_dsearch(dbc, dbt, offp, cmpp)$/ +__ham_dup_convert ../hash/hash_dup.c /^__ham_dup_convert(dbc)$/ +__ham_dup_return ../hash/hash.c /^__ham_dup_return (dbc, val, flags)$/ +__ham_dups_unsorted ../hash/hash_verify.c /^__ham_dups_unsorted(dbp, buf, len)$/ +__ham_expand_table ../hash/hash.c /^__ham_expand_table(dbc)$/ +__ham_func2 ../hash/hash_func.c /^__ham_func2(dbp, key, len)$/ +__ham_func3 ../hash/hash_func.c /^__ham_func3(dbp, key, len)$/ +__ham_func4 ../hash/hash_func.c /^__ham_func4(dbp, key, len)$/ +__ham_func5 ../hash/hash_func.c /^__ham_func5(dbp, key, len)$/ +__ham_get_clist ../hash/hash.c /^__ham_get_clist(dbp, bucket, indx, listp)$/ +__ham_get_cpage ../hash/hash_page.c /^__ham_get_cpage(dbc, mode)$/ +__ham_get_meta ../hash/hash_meta.c /^__ham_get_meta(dbc)$/ +__ham_groupalloc1_print ../hash/hash_auto.c /^__ham_groupalloc1_print(dbenv, dbtp, lsnp, notused/ +__ham_groupalloc1_read ../hash/hash_auto.c /^__ham_groupalloc1_read(dbenv, recbuf, argpp)$/ +__ham_groupalloc2_print ../hash/hash_auto.c /^__ham_groupalloc2_print(dbenv, dbtp, lsnp, notused/ +__ham_groupalloc2_read ../hash/hash_auto.c /^__ham_groupalloc2_read(dbenv, recbuf, argpp)$/ +__ham_groupalloc_log ../hash/hash_auto.c /^__ham_groupalloc_log(dbenv, txnid, ret_lsnp, flags/ +__ham_groupalloc_print ../hash/hash_auto.c /^__ham_groupalloc_print(dbenv, dbtp, lsnp, notused2/ +__ham_groupalloc_read ../hash/hash_auto.c /^__ham_groupalloc_read(dbenv, recbuf, argpp)$/ +__ham_groupalloc_recover ../hash/hash_rec.c /^__ham_groupalloc_recover(dbenv, dbtp, lsnp, op, in/ +__ham_init_dbt ../hash/hash.c /^__ham_init_dbt(dbenv, dbt, size, bufp, sizep)$/ +__ham_init_htab ../hash/hash.c /^__ham_init_htab(dbc, name, pgno, nelem, ffactor)$/ +__ham_init_print ../hash/hash_auto.c /^__ham_init_print(dbenv)$/ +__ham_init_recover ../hash/hash_auto.c /^__ham_init_recover(dbenv)$/ +__ham_insdel_log ../hash/hash_auto.c /^__ham_insdel_log(dbenv, txnid, ret_lsnp, flags,$/ +__ham_insdel_print ../hash/hash_auto.c /^__ham_insdel_print(dbenv, dbtp, lsnp, notused2, no/ +__ham_insdel_read ../hash/hash_auto.c /^__ham_insdel_read(dbenv, recbuf, argpp)$/ +__ham_insdel_recover ../hash/hash_rec.c /^__ham_insdel_recover(dbenv, dbtp, lsnp, op, info)$/ +__ham_item ../hash/hash_page.c /^__ham_item(dbc, mode, pgnop)$/ +__ham_item_first ../hash/hash_page.c /^__ham_item_first(dbc, mode, pgnop)$/ +__ham_item_init ../hash/hash_page.c /^__ham_item_init(dbc)$/ +__ham_item_last ../hash/hash_page.c /^__ham_item_last(dbc, mode, pgnop)$/ +__ham_item_next ../hash/hash_page.c /^__ham_item_next(dbc, mode, pgnop)$/ +__ham_item_prev ../hash/hash_page.c /^__ham_item_prev(dbc, mode, pgnop)$/ +__ham_item_reset ../hash/hash_page.c /^__ham_item_reset(dbc)$/ +__ham_lock_bucket ../hash/hash_page.c /^__ham_lock_bucket(dbc, mode)$/ +__ham_lookup ../hash/hash.c /^__ham_lookup(dbc, key, sought, mode, pgnop)$/ +__ham_make_dup ../hash/hash_dup.c /^__ham_make_dup(dbenv, notdup, duplicate, bufp, siz/ +__ham_meta2pgset ../hash/hash_verify.c /^int __ham_meta2pgset(dbp, vdp, hmeta, flags, pgset/ +__ham_metachk ../hash/hash.c /^__ham_metachk(dbp, name, hashm)$/ +__ham_metagroup_log ../hash/hash_auto.c /^__ham_metagroup_log(dbenv, txnid, ret_lsnp, flags,/ +__ham_metagroup_print ../hash/hash_auto.c /^__ham_metagroup_print(dbenv, dbtp, lsnp, notused2,/ +__ham_metagroup_read ../hash/hash_auto.c /^__ham_metagroup_read(dbenv, recbuf, argpp)$/ +__ham_metagroup_recover ../hash/hash_rec.c /^__ham_metagroup_recover(dbenv, dbtp, lsnp, op, inf/ +__ham_move_offpage ../hash/hash_dup.c /^__ham_move_offpage(dbc, pagep, ndx, pgno)$/ +__ham_mswap ../hash/hash_conv.c /^__ham_mswap(pg)$/ +__ham_newpage_log ../hash/hash_auto.c /^__ham_newpage_log(dbenv, txnid, ret_lsnp, flags,$/ +__ham_newpage_print ../hash/hash_auto.c /^__ham_newpage_print(dbenv, dbtp, lsnp, notused2, n/ +__ham_newpage_read ../hash/hash_auto.c /^__ham_newpage_read(dbenv, recbuf, argpp)$/ +__ham_newpage_recover ../hash/hash_rec.c /^__ham_newpage_recover(dbenv, dbtp, lsnp, op, info)/ +__ham_newpgno_print ../hash/hash_auto.c /^__ham_newpgno_print(dbenv, dbtp, lsnp, notused2, n/ +__ham_newpgno_read ../hash/hash_auto.c /^__ham_newpgno_read(dbenv, recbuf, argpp)$/ +__ham_next_cpage ../hash/hash_page.c /^__ham_next_cpage(dbc, pgno, dirty)$/ +__ham_onpage_replace ../hash/hash_page.c /^__ham_onpage_replace(pagep, pgsize, ndx, off, chan/ +__ham_open ../hash/hash.c /^__ham_open(dbp, name, base_pgno, flags)$/ +__ham_overwrite ../hash/hash.c /^__ham_overwrite(dbc, nval, flags)$/ +__ham_ovfl_print ../hash/hash_auto.c /^__ham_ovfl_print(dbenv, dbtp, lsnp, notused2, notu/ +__ham_ovfl_read ../hash/hash_auto.c /^__ham_ovfl_read(dbenv, recbuf, argpp)$/ +__ham_pgin ../hash/hash_conv.c /^__ham_pgin(dbenv, pg, pp, cookie)$/ +__ham_pgout ../hash/hash_conv.c /^__ham_pgout(dbenv, pg, pp, cookie)$/ +__ham_putitem ../hash/hash_page.c /^__ham_putitem(p, dbt, type)$/ +__ham_quick_delete ../hash/hash.c /^__ham_quick_delete(dbc)$/ +__ham_reclaim ../hash/hash_reclaim.c /^__ham_reclaim(dbp, txn)$/ +__ham_release_meta ../hash/hash_meta.c /^__ham_release_meta(dbc)$/ +__ham_replace_log ../hash/hash_auto.c /^__ham_replace_log(dbenv, txnid, ret_lsnp, flags,$/ +__ham_replace_print ../hash/hash_auto.c /^__ham_replace_print(dbenv, dbtp, lsnp, notused2, n/ +__ham_replace_read ../hash/hash_auto.c /^__ham_replace_read(dbenv, recbuf, argpp)$/ +__ham_replace_recover ../hash/hash_rec.c /^__ham_replace_recover(dbenv, dbtp, lsnp, op, info)/ +__ham_replpair ../hash/hash_page.c /^__ham_replpair(dbc, dbt, make_dup)$/ +__ham_reputpair ../hash/hash_page.c /^__ham_reputpair(p, psize, ndx, key, data)$/ +__ham_salvage ../hash/hash_verify.c /^__ham_salvage(dbp, vdp, pgno, h, handle, callback,/ +__ham_set_h_ffactor ../hash/hash_method.c /^__ham_set_h_ffactor(dbp, h_ffactor)$/ +__ham_set_h_hash ../hash/hash_method.c /^__ham_set_h_hash(dbp, func)$/ +__ham_set_h_nelem ../hash/hash_method.c /^__ham_set_h_nelem(dbp, h_nelem)$/ +__ham_split_page ../hash/hash_page.c /^__ham_split_page(dbc, obucket, nbucket)$/ +__ham_splitdata_log ../hash/hash_auto.c /^__ham_splitdata_log(dbenv, txnid, ret_lsnp, flags,/ +__ham_splitdata_print ../hash/hash_auto.c /^__ham_splitdata_print(dbenv, dbtp, lsnp, notused2,/ +__ham_splitdata_read ../hash/hash_auto.c /^__ham_splitdata_read(dbenv, recbuf, argpp)$/ +__ham_splitdata_recover ../hash/hash_rec.c /^__ham_splitdata_recover(dbenv, dbtp, lsnp, op, inf/ +__ham_splitmeta_print ../hash/hash_auto.c /^__ham_splitmeta_print(dbenv, dbtp, lsnp, notused2,/ +__ham_splitmeta_read ../hash/hash_auto.c /^__ham_splitmeta_read(dbenv, recbuf, argpp)$/ +__ham_stat ../hash/hash_stat.c /^__ham_stat(dbp, spp, flags)$/ +__ham_stat_callback ../hash/hash_stat.c /^__ham_stat_callback(dbp, pagep, cookie, putp)$/ +__ham_test ../hash/hash_func.c /^__ham_test(dbp, key, len)$/ +__ham_traverse ../hash/hash_stat.c /^__ham_traverse(dbc, mode, callback, cookie, look_p/ +__ham_truncate ../hash/hash_reclaim.c /^__ham_truncate(dbp, txn, countp)$/ +__ham_vrfy ../hash/hash_verify.c /^__ham_vrfy(dbp, vdp, h, pgno, flags)$/ +__ham_vrfy_bucket ../hash/hash_verify.c /^__ham_vrfy_bucket(dbp, vdp, m, bucket, flags)$/ +__ham_vrfy_hashing ../hash/hash_verify.c /^__ham_vrfy_hashing(dbp, nentries, m, thisbucket, p/ +__ham_vrfy_item ../hash/hash_verify.c /^__ham_vrfy_item(dbp, vdp, pgno, h, i, flags)$/ +__ham_vrfy_meta ../hash/hash_verify.c /^__ham_vrfy_meta(dbp, vdp, m, pgno, flags)$/ +__ham_vrfy_structure ../hash/hash_verify.c /^__ham_vrfy_structure(dbp, vdp, meta_pgno, flags)$/ +__hdr ../include/log.h /^struct __hdr {$/ +__key_range ../include/db.in /^struct __key_range {$/ +__lock_addfamilylocker ../lock/lock.c /^__lock_addfamilylocker(dbenv, pid, id)$/ +__lock_checklocker ../lock/lock.c /^__lock_checklocker(lt, lockp, locker, flags, freed/ +__lock_close ../lock/lock_region.c /^__lock_close(dbenv)$/ +__lock_cmp ../lock/lock_util.c /^__lock_cmp(dbt, lock_obj)$/ +__lock_dbenv_close ../lock/lock_region.c /^__lock_dbenv_close(dbenv)$/ +__lock_dbenv_create ../lock/lock_region.c /^__lock_dbenv_create(dbenv)$/ +__lock_downgrade ../lock/lock.c /^__lock_downgrade(dbenv, lock, new_mode, flags)$/ +__lock_dump_locker ../lock/lock_stat.c /^__lock_dump_locker(lt, lip, fp)$/ +__lock_dump_object ../lock/lock_stat.c /^__lock_dump_object(lt, op, fp)$/ +__lock_dump_region ../lock/lock_stat.c /^__lock_dump_region(dbenv, area, fp)$/ +__lock_dump_status ../lock/lock_stat.c /^__lock_dump_status(status)$/ +__lock_freefamilylocker ../lock/lock.c /^__lock_freefamilylocker(lt, locker)$/ +__lock_freelocker ../lock/lock.c /^__lock_freelocker(lt, region, sh_locker, indx)$/ +__lock_get_internal ../lock/lock.c /^__lock_get_internal(lt, locker, flags, obj, lock_m/ +__lock_getlocker ../lock/lock.c /^__lock_getlocker(lt, locker, indx, create, retp)$/ +__lock_getobj ../lock/lock.c /^__lock_getobj(lt, obj, ndx, create, retp)$/ +__lock_init ../lock/lock_region.c /^__lock_init(dbenv, lt)$/ +__lock_is_parent ../lock/lock.c /^__lock_is_parent(lt, locker, sh_locker)$/ +__lock_lhash ../lock/lock_util.c /^__lock_lhash(lock_obj)$/ +__lock_locker_cmp ../lock/lock_util.c /^__lock_locker_cmp(locker, sh_locker)$/ +__lock_locker_hash ../lock/lock_util.c /^__lock_locker_hash(locker)$/ +__lock_ohash ../lock/lock_util.c /^__lock_ohash(dbt)$/ +__lock_open ../lock/lock_region.c /^__lock_open(dbenv)$/ +__lock_printlock ../lock/lock.c /^__lock_printlock(lt, lp, ispgno)$/ +__lock_promote ../lock/lock.c /^__lock_promote(lt, obj, not_waiters)$/ +__lock_put_internal ../lock/lock.c /^__lock_put_internal(lt, lockp, obj_ndx, flags)$/ +__lock_put_nolock ../lock/lock.c /^__lock_put_nolock(dbenv, lock, runp, flags)$/ +__lock_region_destroy ../lock/lock_region.c /^__lock_region_destroy(dbenv, infop)$/ +__lock_region_maint ../lock/lock_region.c /^__lock_region_maint(dbenv)$/ +__lock_region_size ../lock/lock_region.c /^__lock_region_size(dbenv)$/ +__lock_remove_waiter ../lock/lock.c /^__lock_remove_waiter(dbenv, sh_obj, lockp, status)/ +__lock_set_lk_conflicts ../lock/lock_method.c /^__lock_set_lk_conflicts(dbenv, lk_conflicts, lk_mo/ +__lock_set_lk_detect ../lock/lock_method.c /^__lock_set_lk_detect(dbenv, lk_detect)$/ +__lock_set_lk_max ../lock/lock_method.c /^__lock_set_lk_max(dbenv, lk_max)$/ +__lock_set_lk_max_lockers ../lock/lock_method.c /^__lock_set_lk_max_lockers(dbenv, lk_max)$/ +__lock_set_lk_max_locks ../lock/lock_method.c /^__lock_set_lk_max_locks(dbenv, lk_max)$/ +__lock_set_lk_max_objects ../lock/lock_method.c /^__lock_set_lk_max_objects(dbenv, lk_max)$/ +__log ../include/log.h /^struct __log {$/ +__log_add_logid ../log/log_rec.c /^__log_add_logid(dbenv, logp, dbp, ndx)$/ +__log_check_master ../log/log_rec.c /^__log_check_master(dbenv, uid, name)$/ +__log_close ../log/log.c /^__log_close(dbenv)$/ +__log_close_files ../log/log_rec.c /^__log_close_files(dbenv)$/ +__log_dbenv_create ../log/log_method.c /^__log_dbenv_create(dbenv)$/ +__log_do_open ../log/log_rec.c /^__log_do_open(dbenv, lp, uid, name, ftype, ndx, me/ +__log_earliest ../env/env_recover.c /^__log_earliest(dbenv, lowtime, lowlsn)$/ +__log_file_lock ../log/log_register.c /^__log_file_lock(dbp)$/ +__log_filelist_update ../log/log_register.c /^__log_filelist_update(dbenv, dbp, fid, newname, se/ +__log_fill ../log/log_put.c /^__log_fill(dblp, lsn, addr, len)$/ +__log_find ../log/log.c /^__log_find(dblp, find_first, valp, statusp)$/ +__log_findckp ../log/log_findckp.c /^__log_findckp(dbenv, lsnp)$/ +__log_flush ../log/log_put.c /^__log_flush(dblp, lsn)$/ +__log_get ../log/log_get.c /^__log_get(dblp, alsn, dbt, flags, silent)$/ +__log_init ../log/log.c /^__log_init(dbenv, dblp)$/ +__log_init_print ../log/log_auto.c /^__log_init_print(dbenv)$/ +__log_init_recover ../log/log_auto.c /^__log_init_recover(dbenv)$/ +__log_lastckp ../log/log.c /^__log_lastckp(dbenv, lsnp)$/ +__log_lid_to_fname ../log/log_rec.c /^__log_lid_to_fname(dblp, lid, fnamep)$/ +__log_name ../log/log_put.c /^__log_name(dblp, filenumber, namep, fhp, flags)$/ +__log_newfh ../log/log_put.c /^__log_newfh(dblp)$/ +__log_open ../log/log.c /^__log_open(dbenv)$/ +__log_open_file ../log/log_rec.c /^__log_open_file(dbenv, lp, argp)$/ +__log_open_files ../log/log_put.c /^__log_open_files(dbenv)$/ +__log_persist ../include/log.h /^struct __log_persist {$/ +__log_put ../log/log_put.c /^__log_put(dbenv, lsn, dbt, flags)$/ +__log_putr ../log/log_put.c /^__log_putr(dblp, lsn, dbt, prev)$/ +__log_recover ../log/log.c /^__log_recover(dblp)$/ +__log_region_destroy ../log/log.c /^__log_region_destroy(dbenv, infop)$/ +__log_region_size ../log/log.c /^__log_region_size(dbenv)$/ +__log_register1_print ../log/log_auto.c /^__log_register1_print(dbenv, dbtp, lsnp, notused2,/ +__log_register1_read ../log/log_auto.c /^__log_register1_read(dbenv, recbuf, argpp)$/ +__log_register_log ../log/log_auto.c /^__log_register_log(dbenv, txnid, ret_lsnp, flags,$/ +__log_register_print ../log/log_auto.c /^__log_register_print(dbenv, dbtp, lsnp, notused2, / +__log_register_read ../log/log_auto.c /^__log_register_read(dbenv, recbuf, argpp)$/ +__log_register_recover ../log/log_rec.c /^__log_register_recover(dbenv, dbtp, lsnp, op, info/ +__log_rem_logid ../log/log_rec.c /^__log_rem_logid(logp, dbp, ndx)$/ +__log_reopen_file ../log/log_rec.c /^__log_reopen_file(dbenv, name, ndx, fileid, meta_p/ +__log_set_lg_bsize ../log/log_method.c /^__log_set_lg_bsize(dbenv, lg_bsize)$/ +__log_set_lg_dir ../log/log_method.c /^__log_set_lg_dir(dbenv, dir)$/ +__log_set_lg_max ../log/log_method.c /^__log_set_lg_max(dbenv, lg_max)$/ +__log_set_lg_regionmax ../log/log_method.c /^__log_set_lg_regionmax(dbenv, lg_regionmax)$/ +__log_valid ../log/log.c /^__log_valid(dblp, number, set_persist, statusp)$/ +__log_write ../log/log_put.c /^__log_write(dblp, addr, len)$/ +__lsn_diff ../env/env_recover.c /^__lsn_diff(low, high, current, max, is_forward)$/ +__memp_alloc ../mp/mp_alloc.c /^__memp_alloc(dbmp, memreg, mfp, len, offsetp, retp/ +__memp_bhfree ../mp/mp_bh.c /^__memp_bhfree(dbmp, bhp, free_mem)$/ +__memp_bhwrite ../mp/mp_bh.c /^__memp_bhwrite(dbmp, mfp, bhp, open_extents, resta/ +__memp_clear_unlink ../mp/mp_fopen.c /^__memp_clear_unlink(dbmpf)$/ +__memp_close ../mp/mp_region.c /^__memp_close(dbenv)$/ +__memp_close_flush_files ../mp/mp_sync.c /^__memp_close_flush_files(dbmp)$/ +__memp_dbenv_create ../mp/mp_method.c /^__memp_dbenv_create(dbenv)$/ +__memp_dump_region ../mp/mp_stat.c /^__memp_dump_region(dbenv, area, fp)$/ +__memp_dumpcache ../mp/mp_stat.c /^__memp_dumpcache(dbmp, reginfo, fmap, fp, flags)$/ +__memp_fclose ../mp/mp_fopen.c /^__memp_fclose(dbmfp, needlock)$/ +__memp_fn ../mp/mp_fopen.c /^__memp_fn(dbmfp)$/ +__memp_fns ../mp/mp_fopen.c /^__memp_fns(dbmp, mfp)$/ +__memp_fopen ../mp/mp_fopen.c /^__memp_fopen(dbmp, mfp, path, flags, mode, pagesiz/ +__memp_fremove ../mp/mp_fopen.c /^__memp_fremove(dbmfp)$/ +__memp_fsync ../mp/mp_sync.c /^__memp_fsync(dbmfp)$/ +__memp_mf_discard ../mp/mp_fopen.c /^__memp_mf_discard(dbmp, mfp)$/ +__memp_mf_open ../mp/mp_fopen.c /^__memp_mf_open(dbmp, path, pagesize, last_pgno, fi/ +__memp_open ../mp/mp_region.c /^__memp_open(dbenv)$/ +__memp_pbh ../mp/mp_stat.c /^__memp_pbh(dbmp, bhp, fmap, fp)$/ +__memp_pg ../mp/mp_bh.c /^__memp_pg(dbmfp, bhp, is_pgin)$/ +__memp_pgread ../mp/mp_bh.c /^__memp_pgread(dbmfp, bhp, can_create)$/ +__memp_pgwrite ../mp/mp_bh.c /^__memp_pgwrite(dbmp, dbmfp, bhp, restartp, wrotep)/ +__memp_refcount ../mp/mp_fopen.c /^__memp_refcount(dbmpf, cntp)$/ +__memp_sballoc ../mp/mp_sync.c /^__memp_sballoc(dbenv, bharrayp, ar_maxp)$/ +__memp_set_cachesize ../mp/mp_method.c /^__memp_set_cachesize(dbenv, gbytes, bytes, ncache)/ +__memp_set_mp_mmapsize ../mp/mp_method.c /^__memp_set_mp_mmapsize(dbenv, mp_mmapsize )$/ +__memp_set_unlink ../mp/mp_fopen.c /^__memp_set_unlink(dbmpf)$/ +__memp_trick ../mp/mp_trickle.c /^__memp_trick(dbenv, ncache, pct, nwrotep)$/ +__memp_upgrade ../mp/mp_bh.c /^__memp_upgrade(dbmp, dbmfp, mfp)$/ +__mp_xxx_fh ../mp/mp_sync.c /^__mp_xxx_fh(dbmfp, fhp)$/ +__mpe_fsync ../os/os_fsync.c /^__mpe_fsync(fd)$/ +__mpool ../include/mp.h /^struct __mpool {$/ +__mpool_init ../mp/mp_region.c /^__mpool_init(dbenv, dbmp, reginfo_off, htab_bucket/ +__mpool_region_destroy ../mp/mp_region.c /^__mpool_region_destroy(dbenv, infop)$/ +__mpool_region_maint ../mp/mp_region.c /^__mpool_region_maint(infop)$/ +__mpoolfile ../include/mp.h /^struct __mpoolfile {$/ +__mutex_t ../include/mutex.h /^struct __mutex_t {$/ +__os_abspath ../os/os_abs.c /^__os_abspath(path)$/ +__os_calloc ../os/os_alloc.c /^__os_calloc(dbenv, num, size, storep)$/ +__os_closehandle ../os/os_handle.c /^__os_closehandle(fhp)$/ +__os_dirfree ../os/os_dir.c /^__os_dirfree(dbenv, names, cnt)$/ +__os_dirlist ../os/os_dir.c /^__os_dirlist(dbenv, dir, namesp, cntp)$/ +__os_exists ../os/os_stat.c /^__os_exists(path, isdirp)$/ +__os_fileid ../os/os_fid.c /^__os_fileid(dbenv, fname, unique_okay, fidp)$/ +__os_finit ../os/os_finit.c /^__os_finit(dbenv, fhp, size, zerofill)$/ +__os_fpinit ../os/os_finit.c /^__os_fpinit(dbenv, fhp, pgno, pagecount, pagesize)/ +__os_free ../os/os_alloc.c /^__os_free(dbenv, ptr, size)$/ +__os_freestr ../os/os_alloc.c /^__os_freestr(dbenv, ptr)$/ +__os_fsync ../os/os_fsync.c /^__os_fsync(dbenv, fhp)$/ +__os_get_errno ../os/os_errno.c /^__os_get_errno()$/ +__os_guard ../os/os_alloc.c /^__os_guard(dbenv)$/ +__os_io ../os/os_rw.c /^__os_io(dbenv, db_iop, op, niop)$/ +__os_ioinfo ../os/os_stat.c /^__os_ioinfo(dbenv, path, fhp, mbytesp, bytesp, ios/ +__os_isroot ../os/os_root.c /^__os_isroot()$/ +__os_malloc ../os/os_alloc.c /^__os_malloc(dbenv, size, storep)$/ +__os_map ../os/os_map.c /^__os_map(dbenv, path, fhp, len, is_region, is_rdon/ +__os_mapfile ../os/os_map.c /^__os_mapfile(dbenv, path, fhp, len, is_rdonly, add/ +__os_open ../os/os_open.c /^__os_open(dbenv, name, flags, mode, fhp)$/ +__os_openhandle ../os/os_handle.c /^__os_openhandle(dbenv, name, flags, mode, fhp)$/ +__os_pstat_getdynamic ../os/os_spin.c /^__os_pstat_getdynamic()$/ +__os_r_attach ../os/os_region.c /^__os_r_attach(dbenv, infop, rp)$/ +__os_r_detach ../os/os_region.c /^__os_r_detach(dbenv, infop, destroy)$/ +__os_r_sysattach ../os/os_map.c /^__os_r_sysattach(dbenv, infop, rp)$/ +__os_r_sysdetach ../os/os_map.c /^__os_r_sysdetach(dbenv, infop, destroy)$/ +__os_read ../os/os_rw.c /^__os_read(dbenv, fhp, addr, len, nrp)$/ +__os_realloc ../os/os_alloc.c /^__os_realloc(dbenv, size, storep)$/ +__os_region_open ../os/os_open.c /^__os_region_open(dbenv, name, oflags, mode, fhp)$/ +__os_region_unlink ../os/os_unlink.c /^__os_region_unlink(dbenv, path)$/ +__os_rename ../os/os_rename.c /^__os_rename(dbenv, old, new)$/ +__os_seek ../os/os_seek.c /^__os_seek(dbenv, fhp, pgsize, pageno, relative, is/ +__os_set_errno ../os/os_errno.c /^__os_set_errno(evalue)$/ +__os_shmname ../os/os_open.c /^__os_shmname(dbenv, name, newnamep)$/ +__os_sleep ../os/os_sleep.c /^__os_sleep(dbenv, secs, usecs)$/ +__os_spin ../os/os_spin.c /^__os_spin()$/ +__os_strdup ../os/os_alloc.c /^__os_strdup(dbenv, str, storep)$/ +__os_sysconf ../os/os_spin.c /^__os_sysconf()$/ +__os_tmpdir ../os/os_tmpdir.c /^__os_tmpdir(dbenv, flags)$/ +__os_ufree ../os/os_alloc.c /^__os_ufree(dbenv, ptr, size)$/ +__os_umalloc ../os/os_alloc.c /^__os_umalloc(dbenv, size, storep)$/ +__os_unlink ../os/os_unlink.c /^__os_unlink(dbenv, path)$/ +__os_unmapfile ../os/os_map.c /^__os_unmapfile(dbenv, addr, len)$/ +__os_urealloc ../os/os_alloc.c /^__os_urealloc(dbenv, size, storep)$/ +__os_write ../os/os_rw.c /^__os_write(dbenv, fhp, addr, len, nwp)$/ +__os_yield ../os/os_spin.c /^__os_yield(dbenv, usecs)$/ +__qam_31_qammeta ../qam/qam_upgrade.c /^__qam_31_qammeta(dbp, real_name, buf)$/ +__qam_32_qammeta ../qam/qam_upgrade.c /^__qam_32_qammeta(dbp, real_name, buf)$/ +__qam_add_log ../qam/qam_auto.c /^__qam_add_log(dbenv, txnid, ret_lsnp, flags,$/ +__qam_add_print ../qam/qam_auto.c /^__qam_add_print(dbenv, dbtp, lsnp, notused2, notus/ +__qam_add_read ../qam/qam_auto.c /^__qam_add_read(dbenv, recbuf, argpp)$/ +__qam_add_recover ../qam/qam_rec.c /^__qam_add_recover(dbenv, dbtp, lsnp, op, info)$/ +__qam_append ../qam/qam.c /^__qam_append(dbc, key, data)$/ +__qam_bulk ../qam/qam.c /^__qam_bulk(dbc, data, flags)$/ +__qam_c_close ../qam/qam.c /^__qam_c_close(dbc, root_pgno, rmroot)$/ +__qam_c_del ../qam/qam.c /^__qam_c_del(dbc)$/ +__qam_c_destroy ../qam/qam.c /^__qam_c_destroy(dbc)$/ +__qam_c_dup ../qam/qam.c /^__qam_c_dup(orig_dbc, new_dbc)$/ +__qam_c_get ../qam/qam.c /^__qam_c_get(dbc, key, data, flags, pgnop)$/ +__qam_c_init ../qam/qam.c /^__qam_c_init(dbc)$/ +__qam_c_put ../qam/qam.c /^__qam_c_put(dbc, key, data, flags, pgnop)$/ +__qam_cookie ../qam/qam_method.c /^struct __qam_cookie {$/ +__qam_db_close ../qam/qam_method.c /^__qam_db_close(dbp)$/ +__qam_db_create ../qam/qam_method.c /^__qam_db_create(dbp)$/ +__qam_del_log ../qam/qam_auto.c /^__qam_del_log(dbenv, txnid, ret_lsnp, flags,$/ +__qam_del_print ../qam/qam_auto.c /^__qam_del_print(dbenv, dbtp, lsnp, notused2, notus/ +__qam_del_read ../qam/qam_auto.c /^__qam_del_read(dbenv, recbuf, argpp)$/ +__qam_del_recover ../qam/qam_rec.c /^__qam_del_recover(dbenv, dbtp, lsnp, op, info)$/ +__qam_delete_log ../qam/qam_auto.c /^__qam_delete_log(dbenv, txnid, ret_lsnp, flags,$/ +__qam_delete_print ../qam/qam_auto.c /^__qam_delete_print(dbenv, dbtp, lsnp, notused2, no/ +__qam_delete_read ../qam/qam_auto.c /^__qam_delete_read(dbenv, recbuf, argpp)$/ +__qam_delete_recover ../qam/qam_rec.c /^__qam_delete_recover(dbenv, dbtp, lsnp, op, info)$/ +__qam_delext_log ../qam/qam_auto.c /^__qam_delext_log(dbenv, txnid, ret_lsnp, flags,$/ +__qam_delext_print ../qam/qam_auto.c /^__qam_delext_print(dbenv, dbtp, lsnp, notused2, no/ +__qam_delext_read ../qam/qam_auto.c /^__qam_delext_read(dbenv, recbuf, argpp)$/ +__qam_delext_recover ../qam/qam_rec.c /^__qam_delext_recover(dbenv, dbtp, lsnp, op, info)$/ +__qam_fclose ../qam/qam_files.c /^__qam_fclose(dbp, pgnoaddr)$/ +__qam_fget ../include/qam.h /^#define __qam_fget(dbp, pgnoaddr, flags, addrp) \\/ +__qam_fprobe ../qam/qam_files.c /^__qam_fprobe(dbp, pgno, addrp, mode, flags)$/ +__qam_fput ../include/qam.h /^#define __qam_fput(dbp, pageno, addrp, flags) \\$/ +__qam_fremove ../qam/qam_files.c /^__qam_fremove(dbp, pgnoaddr)$/ +__qam_gen_filelist ../qam/qam_files.c /^__qam_gen_filelist(dbp, filelistp)$/ +__qam_getno ../qam/qam.c /^__qam_getno(dbp, key, rep)$/ +__qam_inc_log ../qam/qam_auto.c /^__qam_inc_log(dbenv, txnid, ret_lsnp, flags,$/ +__qam_inc_print ../qam/qam_auto.c /^__qam_inc_print(dbenv, dbtp, lsnp, notused2, notus/ +__qam_inc_read ../qam/qam_auto.c /^__qam_inc_read(dbenv, recbuf, argpp)$/ +__qam_inc_recover ../qam/qam_rec.c /^__qam_inc_recover(dbenv, dbtp, lsnp, op, info)$/ +__qam_incfirst_log ../qam/qam_auto.c /^__qam_incfirst_log(dbenv, txnid, ret_lsnp, flags,$/ +__qam_incfirst_print ../qam/qam_auto.c /^__qam_incfirst_print(dbenv, dbtp, lsnp, notused2, / +__qam_incfirst_read ../qam/qam_auto.c /^__qam_incfirst_read(dbenv, recbuf, argpp)$/ +__qam_incfirst_recover ../qam/qam_rec.c /^__qam_incfirst_recover(dbenv, dbtp, lsnp, op, info/ +__qam_init_print ../qam/qam_auto.c /^__qam_init_print(dbenv)$/ +__qam_init_recover ../qam/qam_auto.c /^__qam_init_recover(dbenv)$/ +__qam_metachk ../qam/qam_open.c /^__qam_metachk(dbp, name, qmeta)$/ +__qam_mswap ../qam/qam_conv.c /^__qam_mswap(pg)$/ +__qam_mvptr_log ../qam/qam_auto.c /^__qam_mvptr_log(dbenv, txnid, ret_lsnp, flags,$/ +__qam_mvptr_print ../qam/qam_auto.c /^__qam_mvptr_print(dbenv, dbtp, lsnp, notused2, not/ +__qam_mvptr_read ../qam/qam_auto.c /^__qam_mvptr_read(dbenv, recbuf, argpp)$/ +__qam_mvptr_recover ../qam/qam_rec.c /^__qam_mvptr_recover(dbenv, dbtp, lsnp, op, info)$/ +__qam_open ../qam/qam_open.c /^__qam_open(dbp, name, base_pgno, mode, flags)$/ +__qam_pgin_out ../qam/qam_conv.c /^__qam_pgin_out(dbenv, pg, pp, cookie)$/ +__qam_pitem ../qam/qam.c /^__qam_pitem(dbc, pagep, indx, recno, data)$/ +__qam_position ../qam/qam.c /^__qam_position(dbc, recnop, mode, exactp)$/ +__qam_remove ../qam/qam_method.c /^__qam_remove(dbp, name, subdb, lsnp, callbackp, co/ +__qam_remove_callback ../qam/qam_method.c /^__qam_remove_callback(dbp, cookie)$/ +__qam_rename ../qam/qam_method.c /^__qam_rename(dbp, filename, subdb, newname)$/ +__qam_rename_log ../qam/qam_auto.c /^__qam_rename_log(dbenv, txnid, ret_lsnp, flags,$/ +__qam_rename_print ../qam/qam_auto.c /^__qam_rename_print(dbenv, dbtp, lsnp, notused2, no/ +__qam_rename_read ../qam/qam_auto.c /^__qam_rename_read(dbenv, recbuf, argpp)$/ +__qam_rename_recover ../qam/qam_rec.c /^__qam_rename_recover(dbenv, dbtp, lsnp, op, info)$/ +__qam_set_extentsize ../qam/qam_method.c /^__qam_set_extentsize(dbp, extentsize)$/ +__qam_stat ../qam/qam_stat.c /^__qam_stat(dbp, spp, flags)$/ +__qam_sync ../qam/qam_files.c /^__qam_sync(dbp, flags)$/ +__qam_testdocopy ../db/db.c /^__qam_testdocopy(dbp, name)$/ +__qam_truncate ../qam/qam.c /^__qam_truncate(dbp, txn, countp)$/ +__qam_vrfy_data ../qam/qam_verify.c /^__qam_vrfy_data(dbp, vdp, h, pgno, flags)$/ +__qam_vrfy_meta ../qam/qam_verify.c /^__qam_vrfy_meta(dbp, vdp, meta, pgno, flags)$/ +__qam_vrfy_structure ../qam/qam_verify.c /^__qam_vrfy_structure(dbp, vdp, flags)$/ +__qcursor ../include/qam.h /^struct __qcursor {$/ +__qmpf ../include/qam.h /^ struct __qmpf {$/ +__queue ../include/qam.h /^struct __queue {$/ +__ram_add ../btree/bt_recno.c /^__ram_add(dbc, recnop, data, flags, bi_flags)$/ +__ram_append ../btree/bt_recno.c /^__ram_append(dbc, key, data)$/ +__ram_c_del ../btree/bt_recno.c /^__ram_c_del(dbc)$/ +__ram_c_get ../btree/bt_recno.c /^__ram_c_get(dbc, key, data, flags, pgnop)$/ +__ram_c_put ../btree/bt_recno.c /^__ram_c_put(dbc, key, data, flags, pgnop)$/ +__ram_ca ../btree/bt_recno.c /^__ram_ca(dbc_arg, op)$/ +__ram_ca_delete ../btree/bt_curadj.c /^__ram_ca_delete(dbp, root_pgno)$/ +__ram_getno ../btree/bt_recno.c /^__ram_getno(dbc, key, rep, can_create)$/ +__ram_open ../btree/bt_recno.c /^__ram_open(dbp, name, base_pgno, flags)$/ +__ram_root ../btree/bt_split.c /^__ram_root(dbc, rootp, lp, rp)$/ +__ram_set_flags ../btree/bt_method.c /^__ram_set_flags(dbp, flagsp)$/ +__ram_set_re_delim ../btree/bt_method.c /^__ram_set_re_delim(dbp, re_delim)$/ +__ram_set_re_len ../btree/bt_method.c /^__ram_set_re_len(dbp, re_len)$/ +__ram_set_re_pad ../btree/bt_method.c /^__ram_set_re_pad(dbp, re_pad)$/ +__ram_set_re_source ../btree/bt_method.c /^__ram_set_re_source(dbp, re_source)$/ +__ram_source ../btree/bt_recno.c /^__ram_source(dbp)$/ +__ram_sread ../btree/bt_recno.c /^__ram_sread(dbc, top)$/ +__ram_update ../btree/bt_recno.c /^__ram_update(dbc, recno, can_create)$/ +__ram_vrfy_inp ../btree/bt_verify.c /^__ram_vrfy_inp(dbp, vdp, h, pgno, nentriesp, flags/ +__ram_vrfy_leaf ../btree/bt_verify.c /^__ram_vrfy_leaf(dbp, vdp, h, pgno, flags)$/ +__ram_writeback ../btree/bt_recno.c /^__ram_writeback(dbp)$/ +__txn_abort_proc ../rpc_server/db_server_proc.c /^__txn_abort_proc(txnpcl_id, replyp)$/ +__txn_activekids ../txn/txn.c /^__txn_activekids(dbenv, rectype, txnp)$/ +__txn_begin ../txn/txn.c /^__txn_begin(txn, internal)$/ +__txn_begin_proc ../rpc_server/db_server_proc.c /^__txn_begin_proc(dbenvcl_id, parentcl_id,$/ +__txn_child_log ../txn/txn_auto.c /^__txn_child_log(dbenv, txnid, ret_lsnp, flags,$/ +__txn_child_old_print ../txn/txn_auto.c /^__txn_child_old_print(dbenv, dbtp, lsnp, notused2,/ +__txn_child_old_read ../txn/txn_auto.c /^__txn_child_old_read(dbenv, recbuf, argpp)$/ +__txn_child_print ../txn/txn_auto.c /^__txn_child_print(dbenv, dbtp, lsnp, notused2, not/ +__txn_child_read ../txn/txn_auto.c /^__txn_child_read(dbenv, recbuf, argpp)$/ +__txn_child_recover ../txn/txn_rec.c /^__txn_child_recover(dbenv, dbtp, lsnp, op, info)$/ +__txn_ckp_log ../txn/txn_auto.c /^__txn_ckp_log(dbenv, txnid, ret_lsnp, flags,$/ +__txn_ckp_print ../txn/txn_auto.c /^__txn_ckp_print(dbenv, dbtp, lsnp, notused2, notus/ +__txn_ckp_read ../txn/txn_auto.c /^__txn_ckp_read(dbenv, recbuf, argpp)$/ +__txn_ckp_recover ../txn/txn_rec.c /^__txn_ckp_recover(dbenv, dbtp, lsnp, op, info)$/ +__txn_close ../txn/txn_region.c /^__txn_close(dbenv)$/ +__txn_commit_proc ../rpc_server/db_server_proc.c /^__txn_commit_proc(txnpcl_id, flags, replyp)$/ +__txn_compensate_begin ../txn/txn.c /^__txn_compensate_begin(dbenv, txnpp)$/ +__txn_continue ../txn/txn_recover.c /^__txn_continue(env, txnp, td, off)$/ +__txn_dbenv_create ../txn/txn_region.c /^__txn_dbenv_create(dbenv)$/ +__txn_end ../txn/txn.c /^__txn_end(txnp, is_commit)$/ +__txn_force_abort ../txn/txn.c /^__txn_force_abort(buffer)$/ +__txn_get_prepared ../txn/txn_recover.c /^__txn_get_prepared(dbenv, xids, txns, count, retp,/ +__txn_init ../txn/txn_region.c /^__txn_init(dbenv, tmgrp)$/ +__txn_init_print ../txn/txn_auto.c /^__txn_init_print(dbenv)$/ +__txn_init_recover ../txn/txn_auto.c /^__txn_init_recover(dbenv)$/ +__txn_isvalid ../txn/txn.c /^__txn_isvalid(txnp, tdp, op)$/ +__txn_map_gid ../txn/txn_recover.c /^__txn_map_gid(dbenv, gid, tdp, offp)$/ +__txn_old_ckp_print ../txn/txn_auto.c /^__txn_old_ckp_print(dbenv, dbtp, lsnp, notused2, n/ +__txn_old_ckp_read ../txn/txn_auto.c /^__txn_old_ckp_read(dbenv, recbuf, argpp)$/ +__txn_old_regop_print ../txn/txn_auto.c /^__txn_old_regop_print(dbenv, dbtp, lsnp, notused2,/ +__txn_old_regop_read ../txn/txn_auto.c /^__txn_old_regop_read(dbenv, recbuf, argpp)$/ +__txn_open ../txn/txn_region.c /^__txn_open(dbenv)$/ +__txn_prepare_proc ../rpc_server/db_server_proc.c /^__txn_prepare_proc(txnpcl_id, gid, replyp)$/ +__txn_recover_proc ../rpc_server/db_server_proc.c /^__txn_recover_proc(dbenvcl_id, count,$/ +__txn_region_destroy ../txn/txn_region.c /^__txn_region_destroy(dbenv, infop)$/ +__txn_region_size ../txn/txn_region.c /^__txn_region_size(dbenv)$/ +__txn_regop_log ../txn/txn_auto.c /^__txn_regop_log(dbenv, txnid, ret_lsnp, flags,$/ +__txn_regop_print ../txn/txn_auto.c /^__txn_regop_print(dbenv, dbtp, lsnp, notused2, not/ +__txn_regop_read ../txn/txn_auto.c /^__txn_regop_read(dbenv, recbuf, argpp)$/ +__txn_regop_recover ../txn/txn_rec.c /^__txn_regop_recover(dbenv, dbtp, lsnp, op, info)$/ +__txn_restore_txn ../txn/txn_rec.c /^__txn_restore_txn(dbenv, lsnp, argp)$/ +__txn_set_tx_max ../txn/txn_region.c /^__txn_set_tx_max(dbenv, tx_max)$/ +__txn_set_tx_recover ../txn/txn_region.c /^__txn_set_tx_recover(dbenv, tx_recover)$/ +__txn_set_tx_timestamp ../txn/txn_region.c /^__txn_set_tx_timestamp(dbenv, timestamp)$/ +__txn_undo ../txn/txn.c /^__txn_undo(txnp)$/ +__txn_xa_begin ../txn/txn.c /^__txn_xa_begin(dbenv, txn)$/ +__txn_xa_regop_log ../txn/txn_auto.c /^__txn_xa_regop_log(dbenv, txnid, ret_lsnp, flags,$/ +__txn_xa_regop_old_print ../txn/txn_auto.c /^__txn_xa_regop_old_print(dbenv, dbtp, lsnp, notuse/ +__txn_xa_regop_old_read ../txn/txn_auto.c /^__txn_xa_regop_old_read(dbenv, recbuf, argpp)$/ +__txn_xa_regop_print ../txn/txn_auto.c /^__txn_xa_regop_print(dbenv, dbtp, lsnp, notused2, / +__txn_xa_regop_read ../txn/txn_auto.c /^__txn_xa_regop_read(dbenv, recbuf, argpp)$/ +__txn_xa_regop_recover ../txn/txn_rec.c /^__txn_xa_regop_recover(dbenv, dbtp, lsnp, op, info/ +__ua_memcpy ../os/os_alloc.c /^__ua_memcpy(dst, src, len)$/ +__usermem ../log/log_archive.c /^__usermem(dbenv, listp)$/ +__vrfy_childinfo ../include/db_verify.h /^struct __vrfy_childinfo {$/ +__vrfy_dbinfo ../include/db_verify.h /^struct __vrfy_dbinfo {$/ +__vrfy_pageinfo ../include/db_verify.h /^struct __vrfy_pageinfo {$/ +__vx_fsync ../os/os_fsync.c /^__vx_fsync(fd)$/ +__xa_close ../xa/xa_db.c /^__xa_close(dbp, flags)$/ +__xa_cursor ../xa/xa_db.c /^__xa_cursor(dbp, txn, dbcp, flags)$/ +__xa_del ../xa/xa_db.c /^__xa_del(dbp, txn, key, flags)$/ +__xa_get ../xa/xa_db.c /^__xa_get(dbp, txn, key, data, flags)$/ +__xa_open ../xa/xa_db.c /^__xa_open(dbp, name, subdb, type, flags, mode)$/ +__xa_put ../xa/xa_db.c /^__xa_put(dbp, txn, key, data, flags)$/ +__xa_txn_end ../xa/xa.c /^__xa_txn_end(txn)$/ +_debug_check ../tcl/tcl_internal.c /^_debug_check()$/ +_stream_error_function ../cxx/cxx_app.cpp /^void DbEnv::_stream_error_function(const char *pre/ +_stream_error_function_c ../cxx/cxx_app.cpp /^void _stream_error_function_c(const char *prefix, / +_tsl_set ../include/mutex.h /^_tsl_set(void *tsl)$/ +abort ../cxx/cxx_txn.cpp /^int DbTxn::abort()$/ +add_home ../rpc_server/db_server_util.c /^add_home(home)$/ +appinit ../include/db_cxx.h /^\/\/ call appinit() before any other db activity (/ +archopts ../tcl/tcl_log.c /^ enum archopts {$/ +bdb_DbOpen ../tcl/tcl_db_pkg.c /^bdb_DbOpen(interp, objc, objv, ip, dbp)$/ +bdb_DbRemove ../tcl/tcl_db_pkg.c /^bdb_DbRemove(interp, objc, objv)$/ +bdb_DbRename ../tcl/tcl_db_pkg.c /^bdb_DbRename(interp, objc, objv)$/ +bdb_DbTruncate ../tcl/tcl_db_pkg.c /^bdb_DbTruncate(interp, objc, objv)$/ +bdb_DbUpgrade ../tcl/tcl_db_pkg.c /^bdb_DbUpgrade(interp, objc, objv)$/ +bdb_DbVerify ../tcl/tcl_db_pkg.c /^bdb_DbVerify(interp, objc, objv)$/ +bdb_DbmCommand ../tcl/tcl_compat.c /^bdb_DbmCommand(interp, objc, objv, flag, dbm)$/ +bdb_EnvOpen ../tcl/tcl_db_pkg.c /^bdb_EnvOpen(interp, objc, objv, ip, env)$/ +bdb_HCommand ../tcl/tcl_compat.c /^bdb_HCommand(interp, objc, objv)$/ +bdb_Handles ../tcl/tcl_db_pkg.c /^bdb_Handles(interp, objc, objv)$/ +bdb_NdbmOpen ../tcl/tcl_compat.c /^bdb_NdbmOpen(interp, objc, objv, dbpp)$/ +bdb_RandCommand ../tcl/tcl_compat.c /^bdb_RandCommand(interp, objc, objv)$/ +bdb_Version ../tcl/tcl_db_pkg.c /^bdb_Version(interp, objc, objv)$/ +bdbenvopen ../tcl/tcl_db_pkg.c /^ enum bdbenvopen {$/ +bdbmv ../tcl/tcl_db_pkg.c /^ enum bdbmv {$/ +bdbopen ../tcl/tcl_db_pkg.c /^ enum bdbopen {$/ +bdbrem ../tcl/tcl_db_pkg.c /^ enum bdbrem {$/ +bdbtrunc ../tcl/tcl_db_pkg.c /^ enum bdbtrunc {$/ +bdbupg ../tcl/tcl_db_pkg.c /^ enum bdbupg {$/ +bdbver ../tcl/tcl_db_pkg.c /^ enum bdbver {$/ +bdbvrfy ../tcl/tcl_db_pkg.c /^ enum bdbvrfy {$/ +berkdb_Cmd ../tcl/tcl_db_pkg.c /^berkdb_Cmd(notused, interp, objc, objv)$/ +berkdbcmds ../tcl/tcl_db_pkg.c /^ enum berkdbcmds {$/ +ca_recno_arg ../include/btree.h /^} ca_recno_arg;$/ +close ../cxx/cxx_mpool.cpp /^int DbMpoolFile::close()$/ +commitopt ../tcl/tcl_txn.c /^ enum commitopt {$/ +const ../include/db.in /^#define const$/ +construct_flags_ ../cxx/cxx_table.cpp /^, construct_flags_(flags)$/ +convert_object ../libdb_java/java_util.c /^jobject convert_object(JNIEnv *jnienv, const char / +create_default_object ../libdb_java/java_util.c /^jobject create_default_object(JNIEnv *jnienv, cons/ +create_exception ../libdb_java/java_util.c /^jobject create_exception(JNIEnv *jnienv, jstring t/ +ct_anyp ../include/db_server_int.h /^#define ct_anyp handle_u.anyp$/ +ct_dbc ../include/db_server_int.h /^#define ct_dbc handle_u.dbc$/ +ct_dbp ../include/db_server_int.h /^#define ct_dbp handle_u.dbp$/ +ct_entry ../include/db_server_int.h /^typedef struct ct_entry ct_entry;$/ +ct_envp ../include/db_server_int.h /^#define ct_envp handle_u.envp$/ +ct_txnp ../include/db_server_int.h /^#define ct_txnp handle_u.txnp$/ +data ../include/tcl_db.h /^ union data {$/ +data2 ../include/tcl_db.h /^ union data2 {$/ +datum ../include/db.in /^} datum;$/ +db185_close ../db185/db185.c /^db185_close(db185p)$/ +db185_compare ../db185/db185.c /^db185_compare(dbp, a, b)$/ +db185_del ../db185/db185.c /^db185_del(db185p, key185, flags)$/ +db185_fd ../db185/db185.c /^db185_fd(db185p)$/ +db185_get ../db185/db185.c /^db185_get(db185p, key185, data185, flags)$/ +db185_hash ../db185/db185.c /^db185_hash(dbp, key, len)$/ +db185_openstderr ../db185/db185.c /^db185_openstderr(fhp)$/ +db185_prefix ../db185/db185.c /^db185_prefix(dbp, a, b)$/ +db185_put ../db185/db185.c /^db185_put(db185p, key185, data185, flags)$/ +db185_seq ../db185/db185.c /^db185_seq(db185p, key185, data185, flags)$/ +db185_sync ../db185/db185.c /^db185_sync(db185p, flags)$/ +db_Cmd ../tcl/tcl_db.c /^db_Cmd(clientData, interp, objc, objv)$/ +db_ca_mode ../include/btree.h /^} db_ca_mode;$/ +db_create ../db/db_method.c /^db_create(dbpp, dbenv, flags)$/ +db_env_create ../env/env_method.c /^db_env_create(dbenvpp, flags)$/ +db_env_set_func_close ../os/os_method.c /^db_env_set_func_close(func_close)$/ +db_env_set_func_dirfree ../os/os_method.c /^db_env_set_func_dirfree(func_dirfree)$/ +db_env_set_func_dirlist ../os/os_method.c /^db_env_set_func_dirlist(func_dirlist)$/ +db_env_set_func_exists ../os/os_method.c /^db_env_set_func_exists(func_exists)$/ +db_env_set_func_free ../os/os_method.c /^db_env_set_func_free(func_free)$/ +db_env_set_func_fsync ../os/os_method.c /^db_env_set_func_fsync(func_fsync)$/ +db_env_set_func_ioinfo ../os/os_method.c /^db_env_set_func_ioinfo(func_ioinfo)$/ +db_env_set_func_malloc ../os/os_method.c /^db_env_set_func_malloc(func_malloc)$/ +db_env_set_func_map ../os/os_method.c /^db_env_set_func_map(func_map)$/ +db_env_set_func_open ../os/os_method.c /^db_env_set_func_open(func_open)$/ +db_env_set_func_read ../os/os_method.c /^db_env_set_func_read(func_read)$/ +db_env_set_func_realloc ../os/os_method.c /^db_env_set_func_realloc(func_realloc)$/ +db_env_set_func_rename ../os/os_method.c /^db_env_set_func_rename(func_rename)$/ +db_env_set_func_seek ../os/os_method.c /^db_env_set_func_seek(func_seek)$/ +db_env_set_func_sleep ../os/os_method.c /^db_env_set_func_sleep(func_sleep)$/ +db_env_set_func_unlink ../os/os_method.c /^db_env_set_func_unlink(func_unlink)$/ +db_env_set_func_unmap ../os/os_method.c /^db_env_set_func_unmap(func_unmap)$/ +db_env_set_func_write ../os/os_method.c /^db_env_set_func_write(func_write)$/ +db_env_set_func_yield ../os/os_method.c /^db_env_set_func_yield(func_yield)$/ +db_env_set_pageyield ../os/os_method.c /^db_env_set_pageyield(onoff)$/ +db_env_set_panicstate ../os/os_method.c /^db_env_set_panicstate(onoff)$/ +db_env_set_region_init ../os/os_method.c /^db_env_set_region_init(onoff)$/ +db_env_set_tas_spins ../os/os_method.c /^db_env_set_tas_spins(tas_spins)$/ +db_ham_mode ../include/hash.h /^} db_ham_mode;$/ +db_indx_t ../include/db.in /^typedef u_int16_t db_indx_t; \/* Page offset type./ +db_lockmode_t ../include/db.in /^} db_lockmode_t;$/ +db_lockop_t ../include/db.in /^} db_lockop_t;$/ +db_pgno_t ../include/db.in /^typedef u_int32_t db_pgno_t; \/* Page number type./ +db_recno_t ../include/db.in /^typedef u_int32_t db_recno_t; \/* Record number ty/ +db_recops ../include/db.in /^} db_recops;$/ +db_rpc_serverprog_3003 ../rpc_server/db_server_svc.c /^db_rpc_serverprog_3003(rqstp, transp)$/ +db_status_t ../include/db.in /^} db_status_t;$/ +db_strerror ../common/db_err.c /^db_strerror(error)$/ +db_trunc_param ../include/db_am.h /^} db_trunc_param;$/ +db_txnlist_type ../include/db_int.in /^} db_txnlist_type;$/ +db_version ../env/env_open.c /^db_version(majverp, minverp, patchp)$/ +dbaopts ../tcl/tcl_db.c /^ enum dbaopts {$/ +dbc_Cmd ../tcl/tcl_dbcursor.c /^dbc_Cmd(clientData, interp, objc, objv)$/ +dbccmds ../tcl/tcl_dbcursor.c /^ enum dbccmds {$/ +dbcdupopts ../tcl/tcl_dbcursor.c /^ enum dbcdupopts {$/ +dbcgetopts ../tcl/tcl_dbcursor.c /^ enum dbcgetopts {$/ +dbcmds ../tcl/tcl_db.c /^ enum dbcmds {$/ +dbcuropts ../tcl/tcl_db.c /^ enum dbcuropts {$/ +dbcutopts ../tcl/tcl_dbcursor.c /^ enum dbcutopts {$/ +dbdelopts ../tcl/tcl_db.c /^ enum dbdelopts {$/ +dbgetjopts ../tcl/tcl_db.c /^ enum dbgetjopts {$/ +dbgetopts ../tcl/tcl_db.c /^ enum dbgetopts {$/ +dbji_call_append_recno ../libdb_java/java_info.c /^extern int dbji_call_append_recno(DB_JAVAINFO *dbj/ +dbji_call_assoc ../libdb_java/java_info.c /^extern int dbji_call_assoc(DB_JAVAINFO *dbji, DB */ +dbji_call_bt_compare ../libdb_java/java_info.c /^int dbji_call_bt_compare(DB_JAVAINFO *dbji, DB *db/ +dbji_call_bt_prefix ../libdb_java/java_info.c /^size_t dbji_call_bt_prefix(DB_JAVAINFO *dbji, DB */ +dbji_call_dup_compare ../libdb_java/java_info.c /^int dbji_call_dup_compare(DB_JAVAINFO *dbji, DB *d/ +dbji_call_feedback ../libdb_java/java_info.c /^void dbji_call_feedback(DB_JAVAINFO *dbji, DB *db,/ +dbji_call_h_hash ../libdb_java/java_info.c /^int dbji_call_h_hash(DB_JAVAINFO *dbji, DB *db, jo/ +dbji_construct ../libdb_java/java_info.c /^DB_JAVAINFO *dbji_construct(JNIEnv *jnienv, jint f/ +dbji_dealloc ../libdb_java/java_info.c /^dbji_dealloc(DB_JAVAINFO *dbji, JNIEnv *jnienv)$/ +dbji_destroy ../libdb_java/java_info.c /^dbji_destroy(DB_JAVAINFO *dbji, JNIEnv *jnienv)$/ +dbji_get_flags ../libdb_java/java_info.c /^jint dbji_get_flags(DB_JAVAINFO *dbji)$/ +dbji_get_jnienv ../libdb_java/java_info.c /^JNIEnv *dbji_get_jnienv(DB_JAVAINFO *dbji)$/ +dbji_set_append_recno_object ../libdb_java/java_info.c /^void dbji_set_append_recno_object(DB_JAVAINFO *dbj/ +dbji_set_assoc_object ../libdb_java/java_info.c /^void dbji_set_assoc_object(DB_JAVAINFO *dbji, JNIE/ +dbji_set_bt_compare_object ../libdb_java/java_info.c /^void dbji_set_bt_compare_object(DB_JAVAINFO *dbji,/ +dbji_set_bt_prefix_object ../libdb_java/java_info.c /^void dbji_set_bt_prefix_object(DB_JAVAINFO *dbji, / +dbji_set_dup_compare_object ../libdb_java/java_info.c /^void dbji_set_dup_compare_object(DB_JAVAINFO *dbji/ +dbji_set_feedback_object ../libdb_java/java_info.c /^void dbji_set_feedback_object(DB_JAVAINFO *dbji, J/ +dbji_set_h_hash_object ../libdb_java/java_info.c /^void dbji_set_h_hash_object(DB_JAVAINFO *dbji, JNI/ +dbjie_call_feedback ../libdb_java/java_info.c /^void dbjie_call_feedback(DB_ENV_JAVAINFO *dbjie, D/ +dbjie_call_recovery_init ../libdb_java/java_info.c /^int dbjie_call_recovery_init(DB_ENV_JAVAINFO *dbji/ +dbjie_call_tx_recover ../libdb_java/java_info.c /^int dbjie_call_tx_recover(DB_ENV_JAVAINFO *dbjie, / +dbjie_construct ../libdb_java/java_info.c /^dbjie_construct(JNIEnv *jnienv,$/ +dbjie_dealloc ../libdb_java/java_info.c /^void dbjie_dealloc(DB_ENV_JAVAINFO *dbjie, JNIEnv / +dbjie_destroy ../libdb_java/java_info.c /^void dbjie_destroy(DB_ENV_JAVAINFO *dbjie, JNIEnv / +dbjie_get_errcall ../libdb_java/java_info.c /^jobject dbjie_get_errcall(DB_ENV_JAVAINFO *dbjie)$/ +dbjie_get_errpfx ../libdb_java/java_info.c /^dbjie_get_errpfx(DB_ENV_JAVAINFO *dbjie, JNIEnv *j/ +dbjie_get_jnienv ../libdb_java/java_info.c /^dbjie_get_jnienv(DB_ENV_JAVAINFO *dbjie)$/ +dbjie_is_dbopen ../libdb_java/java_info.c /^int dbjie_is_dbopen(DB_ENV_JAVAINFO *dbjie)$/ +dbjie_set_conflict ../libdb_java/java_info.c /^dbjie_set_conflict(DB_ENV_JAVAINFO *dbjie, unsigne/ +dbjie_set_errcall ../libdb_java/java_info.c /^dbjie_set_errcall(DB_ENV_JAVAINFO *dbjie, JNIEnv */ +dbjie_set_errpfx ../libdb_java/java_info.c /^dbjie_set_errpfx(DB_ENV_JAVAINFO *dbjie, JNIEnv *j/ +dbjie_set_feedback_object ../libdb_java/java_info.c /^void dbjie_set_feedback_object(DB_ENV_JAVAINFO *db/ +dbjie_set_recovery_init_object ../libdb_java/java_info.c /^void dbjie_set_recovery_init_object(DB_ENV_JAVAINF/ +dbjie_set_tx_recover_object ../libdb_java/java_info.c /^void dbjie_set_tx_recover_object(DB_ENV_JAVAINFO */ +dbjit_construct ../libdb_java/java_info.c /^dbjit_construct()$/ +dbjit_destroy ../libdb_java/java_info.c /^void dbjit_destroy(DBT_JAVAINFO *dbjit)$/ +dbjopts ../tcl/tcl_db.c /^ enum dbjopts {$/ +dbkeyropts ../tcl/tcl_db.c /^ enum dbkeyropts {$/ +dbmcmds ../tcl/tcl_compat.c /^ enum dbmcmds {$/ +dbputapp ../tcl/tcl_db.c /^ enum dbputapp { DBPUT_APPEND0 };$/ +dbputopts ../tcl/tcl_db.c /^ enum dbputopts {$/ +dbt_ ../cxx/cxx_except.cpp /^, dbt_(dbt)$/ +debug_delete_global_ref ../libdb_java/java_util.h /^static void debug_delete_global_ref(JNIEnv *jnienv/ +debug_new_global_ref ../libdb_java/java_util.h /^static jobject debug_new_global_ref(JNIEnv *jnienv/ +del ../cxx/cxx_table.cpp /^int Db::del(DbTxn *txnid, Dbt *key, u_int32_t flag/ +dirfd ../clib/getcwd.c /^#define dirfd(dirp) ((dirp)->dd_fd)$/ +dupString ../cxx/cxx_except.cpp /^static char *dupString(const char *s)$/ +dup_string ../libdb_java/java_util.c /^char *dup_string(const char *str)$/ +env_Cmd ../tcl/tcl_env.c /^env_Cmd(clientData, interp, objc, objv)$/ +env_recover ../rpc_server/db_server_util.c /^env_recover(progname)$/ +envcmds ../tcl/tcl_env.c /^ enum envcmds {$/ +envopen ../tcl/tcl_db_pkg.c /^ enum envopen {$/ +envremopts ../tcl/tcl_env.c /^ enum envremopts {$/ +envtestat ../tcl/tcl_env.c /^ enum envtestat {$/ +envtestcmd ../tcl/tcl_env.c /^ enum envtestcmd {$/ +err ../cxx/cxx_app.cpp /^void DbEnv::err(int error, const char *format, .../ +err_ ../cxx/cxx_except.cpp /^: err_(err)$/ +error_policy ../cxx/cxx_app.cpp /^int DbEnv::error_policy()$/ +errx ../cxx/cxx_app.cpp /^void DbEnv::errx(const char *format, ...)$/ +exec_one ../mutex/tm.c /^exec_one()$/ +fd ../cxx/cxx_table.cpp /^int Db::fd(int *fdp)$/ +file_init ../mutex/tm.c /^file_init()$/ +fsync ../os/os_fsync.c /^#define fsync(fd) __vx_fsync(fd);$/ +get ../cxx/cxx_table.cpp /^int Db::get(DbTxn *txnid, Dbt *key, Dbt *value, u_/ +get_DB ../libdb_java/java_util.c /^DB *get_DB(JNIEnv *jnienv, jobject obj)$/ +get_DBC ../libdb_java/java_util.c /^DBC *get_DBC(JNIEnv *jnienv, jobject obj)$/ +get_DBT ../libdb_java/java_util.c /^DBT *get_DBT(JNIEnv *jnienv, jobject obj)$/ +get_DBT_JAVAINFO ../libdb_java/java_util.c /^DBT_JAVAINFO *get_DBT_JAVAINFO(JNIEnv *jnienv, job/ +get_DB_BTREE_STAT ../libdb_java/java_util.c /^DB_BTREE_STAT *get_DB_BTREE_STAT(JNIEnv *jnienv, j/ +get_DB_ENV ../libdb_java/java_util.c /^DB_ENV *get_DB_ENV(JNIEnv *jnienv, jobject obj)$/ +get_DB_ENV_JAVAINFO ../libdb_java/java_util.c /^DB_ENV_JAVAINFO *get_DB_ENV_JAVAINFO(JNIEnv *jnien/ +get_DB_HASH_STAT ../libdb_java/java_util.c /^DB_HASH_STAT *get_DB_HASH_STAT(JNIEnv *jnienv, job/ +get_DB_JAVAINFO ../libdb_java/java_util.c /^DB_JAVAINFO *get_DB_JAVAINFO(JNIEnv *jnienv, jobje/ +get_DB_LOCK ../libdb_java/java_util.c /^DB_LOCK *get_DB_LOCK(JNIEnv *jnienv, jobject obj)$/ +get_DB_LOG_STAT ../libdb_java/java_util.c /^DB_LOG_STAT *get_DB_LOG_STAT(JNIEnv *jnienv, jobje/ +get_DB_LSN ../libdb_java/java_util.c /^DB_LSN *get_DB_LSN(JNIEnv *jnienv, \/* DbLsn *\/ j/ +get_DB_MPOOL_FSTAT ../libdb_java/java_util.c /^DB_MPOOL_FSTAT *get_DB_MPOOL_FSTAT(JNIEnv *jnienv,/ +get_DB_MPOOL_STAT ../libdb_java/java_util.c /^DB_MPOOL_STAT *get_DB_MPOOL_STAT(JNIEnv *jnienv, j/ +get_DB_QUEUE_STAT ../libdb_java/java_util.c /^DB_QUEUE_STAT *get_DB_QUEUE_STAT(JNIEnv *jnienv, j/ +get_DB_TXN ../libdb_java/java_util.c /^DB_TXN *get_DB_TXN(JNIEnv *jnienv, jobject obj)$/ +get_DB_TXN_STAT ../libdb_java/java_util.c /^DB_TXN_STAT *get_DB_TXN_STAT(JNIEnv *jnienv, jobje/ +get_DbBtreeStat ../libdb_java/java_util.c /^jobject get_DbBtreeStat(JNIEnv *jnienv, DB_BTREE_S/ +get_DbHashStat ../libdb_java/java_util.c /^jobject get_DbHashStat(JNIEnv *jnienv, DB_HASH_STA/ +get_DbLogStat ../libdb_java/java_util.c /^jobject get_DbLogStat(JNIEnv *jnienv, DB_LOG_STAT / +get_DbLsn ../libdb_java/java_util.c /^jobject get_DbLsn(JNIEnv *jnienv, DB_LSN dbobj)$/ +get_DbMpoolFStat ../libdb_java/java_util.c /^jobject get_DbMpoolFStat(JNIEnv *jnienv, DB_MPOOL_/ +get_DbMpoolStat ../libdb_java/java_util.c /^jobject get_DbMpoolStat(JNIEnv *jnienv, DB_MPOOL_S/ +get_DbQueueStat ../libdb_java/java_util.c /^jobject get_DbQueueStat(JNIEnv *jnienv, DB_QUEUE_S/ +get_DbTxn ../libdb_java/java_util.c /^jobject get_DbTxn(JNIEnv *jnienv, DB_TXN *dbobj)$/ +get_DbTxnStat ../libdb_java/java_util.c /^jobject get_DbTxnStat(JNIEnv *jnienv, DB_TXN_STAT / +get_Dbc ../libdb_java/java_util.c /^jobject get_Dbc(JNIEnv *jnienv, DBC *dbobj)$/ +get_Dbt ../libdb_java/java_util.c /^jobject get_Dbt(JNIEnv *jnienv, DBT *dbt,$/ +get_Dbt_shared ../libdb_java/java_util.c /^static jobject get_Dbt_shared(JNIEnv *jnienv, cons/ +get_app_private ../cxx/cxx_table.cpp /^void *Db::get_app_private() const$/ +get_byteswapped ../cxx/cxx_table.cpp /^int Db::get_byteswapped() const$/ +get_c_string ../libdb_java/java_util.c /^char *get_c_string(JNIEnv *jnienv, jstring jstr)$/ +get_class ../libdb_java/java_util.c /^jclass get_class(JNIEnv *jnienv, const char *class/ +get_const_Dbt ../libdb_java/java_util.c /^jobject get_const_Dbt(JNIEnv *jnienv, const DBT *d/ +get_dbt ../cxx/cxx_except.cpp /^Dbt *DbMemoryException::get_dbt() const$/ +get_errno ../cxx/cxx_except.cpp /^int DbException::get_errno() const$/ +get_home ../rpc_server/db_server_util.c /^get_home(name)$/ +get_java_string ../libdb_java/java_util.c /^jstring get_java_string(JNIEnv *jnienv, const char/ +get_private_dbobj ../libdb_java/java_util.c /^void *get_private_dbobj(JNIEnv *jnienv, const char/ +get_private_info ../libdb_java/java_util.c /^void *get_private_info(JNIEnv *jnienv, const char / +get_tableent ../rpc_server/db_server_util.c /^get_tableent(id)$/ +get_type ../cxx/cxx_table.cpp /^DBTYPE Db::get_type() const$/ +getcwd ../clib/getcwd.c /^getcwd(pt, size)$/ +getopt ../clib/getopt.c /^getopt(nargc, nargv, ostr)$/ +hcmds ../tcl/tcl_compat.c /^ enum hcmds {$/ +home_entry ../include/db_server_int.h /^typedef struct home_entry home_entry;$/ +id ../cxx/cxx_txn.cpp /^u_int32_t DbTxn::id()$/ +if ../cxx/cxx_app.cpp /^ if ((err = env->close(env, flags)) != 0) {$/ +imp ../include/db_cxx.h /^\/\/ DEFINE_DB_CLASS defines an imp_ data member a/ +imp_ ../cxx/cxx_mpool.cpp /^: imp_(0)$/ +indx_t ../include/db_185.in /^typedef u_int16_t indx_t;$/ +infop ../include/tcl_db.h /^ union infop {$/ +initialize ../cxx/cxx_app.cpp /^int DbEnv::initialize(DB_ENV *env)$/ +int ../db/db_upg.c /^static int (* const func_31_list[P_PAGETYPE_MAX])$/ +java_verify_callback ../libdb_java/java_Db.c /^static int java_verify_callback(void *handle, cons/ +jdbt_lock ../libdb_java/java_locked.c /^jdbt_lock(JDBT *jdbt, JNIEnv *jnienv, jobject obj,/ +jdbt_realloc ../libdb_java/java_locked.c /^int jdbt_realloc(JDBT *jdbt, JNIEnv *jnienv)$/ +jdbt_unlock ../libdb_java/java_locked.c /^jdbt_unlock(JDBT *jdbt, JNIEnv *jnienv)$/ +join ../cxx/cxx_table.cpp /^int Db::join(Dbc **curslist, Dbc **cursorp, u_int3/ +jstr_lock ../libdb_java/java_locked.c /^jstr_lock(JSTR *js, JNIEnv *jnienv, jstring jstr)$/ +jstr_unlock ../libdb_java/java_locked.c /^void jstr_unlock(JSTR *js, JNIEnv *jnienv)$/ +key_range ../cxx/cxx_table.cpp /^int Db::key_range(DbTxn *txnid, Dbt *key,$/ +ldopts ../tcl/tcl_lock.c /^ enum ldopts {$/ +lgopts ../tcl/tcl_lock.c /^ enum lgopts {$/ +lkcmds ../tcl/tcl_lock.c /^ enum lkcmds {$/ +lkmode ../tcl/tcl_lock.c /^enum lkmode {$/ +lkops ../tcl/tcl_lock.c /^ enum lkops {$/ +lock_ ../cxx/cxx_lock.cpp /^: lock_(value)$/ +lock_Cmd ../tcl/tcl_lock.c /^lock_Cmd(clientData, interp, objc, objv)$/ +lock_detect ../lock/lock_deadlock.c /^lock_detect(dbenv, flags, atype, abortp)$/ +lock_get ../lock/lock.c /^lock_get(dbenv, locker, flags, obj, lock_mode, loc/ +lock_id ../lock/lock.c /^lock_id(dbenv, idp)$/ +lock_put ../lock/lock.c /^lock_put(dbenv, lock)$/ +lock_stat ../lock/lock_stat.c /^lock_stat(dbenv, statp)$/ +lock_vec ../lock/lock.c /^lock_vec(dbenv, locker, flags, list, nlist, elistp/ +locker_info ../lock/lock_deadlock.c /^} locker_info;$/ +log_archive ../log/log_archive.c /^log_archive(dbenv, listp, flags)$/ +log_compare ../log/log_compare.c /^log_compare(lsn0, lsn1)$/ +log_file ../log/log_put.c /^log_file(dbenv, lsn, namep, len)$/ +log_flush ../log/log_put.c /^log_flush(dbenv, lsn)$/ +log_get ../log/log_get.c /^log_get(dbenv, alsn, dbt, flags)$/ +log_put ../log/log_put.c /^log_put(dbenv, lsn, dbt, flags)$/ +log_register ../log/log_register.c /^log_register(dbenv, dbp, name)$/ +log_stat ../log/log.c /^log_stat(dbenv, statp)$/ +log_unregister ../log/log_register.c /^log_unregister(dbenv, dbp)$/ +logfile_validity ../include/log.h /^} logfile_validity;$/ +loggetopts ../tcl/tcl_log.c /^ enum loggetopts {$/ +logputopts ../tcl/tcl_log.c /^ enum logputopts {$/ +long_to_ptr ../libdb_java/java_util.h /^} long_to_ptr;$/ +lvopts ../tcl/tcl_lock.c /^ enum lvopts {$/ +m ../include/tcl_db.h /^#define m u.r.real_m$/ +map_file ../mutex/tm.c /^map_file(maddrp, fdp)$/ +memcmp ../clib/memcmp.c /^memcmp(s1, s2, n)$/ +memp_fclose ../mp/mp_fopen.c /^memp_fclose(dbmfp)$/ +memp_fget ../mp/mp_fget.c /^memp_fget(dbmfp, pgnoaddr, flags, addrp)$/ +memp_fopen ../mp/mp_fopen.c /^memp_fopen(dbenv, path, flags, mode, pagesize, fin/ +memp_fput ../mp/mp_fput.c /^memp_fput(dbmfp, pgaddr, flags)$/ +memp_fset ../mp/mp_fset.c /^memp_fset(dbmfp, pgaddr, flags)$/ +memp_fsync ../mp/mp_sync.c /^memp_fsync(dbmfp)$/ +memp_register ../mp/mp_register.c /^memp_register(dbenv, ftype, pgin, pgout)$/ +memp_stat ../mp/mp_stat.c /^memp_stat(dbenv, gspp, fspp)$/ +memp_sync ../mp/mp_sync.c /^memp_sync(dbenv, lsnp)$/ +memp_trickle ../mp/mp_trickle.c /^memp_trickle(dbenv, pct, nwrotep)$/ +mp_Cmd ../tcl/tcl_mp.c /^mp_Cmd(clientData, interp, objc, objv)$/ +mpcmds ../tcl/tcl_mp.c /^ enum mpcmds {$/ +mpget ../tcl/tcl_mp.c /^ enum mpget {$/ +mpopts ../tcl/tcl_mp.c /^ enum mpopts {$/ +mu_action ../db/db.c /^typedef enum { MU_REMOVE, MU_RENAME, MU_OPEN } mu_/ +mutex_Cmd ../tcl/tcl_compat.c /^mutex_Cmd(clientData, interp, objc, objv)$/ +mutex_destroy ../mutex/tm.c /^mutex_destroy()$/ +mutex_init ../mutex/tm.c /^mutex_init()$/ +mutex_stats ../mutex/tm.c /^mutex_stats()$/ +mxcmds ../tcl/tcl_compat.c /^ enum mxcmds {$/ +ndbcmds ../tcl/tcl_compat.c /^ enum ndbcmds {$/ +ndbm_Cmd ../tcl/tcl_compat.c /^ndbm_Cmd(clientData, interp, objc, objv)$/ +ndbopen ../tcl/tcl_compat.c /^ enum ndbopen {$/ +new_ct_ent ../rpc_server/db_server_util.c /^new_ct_ent(errp)$/ +one_time_init ../libdb_java/java_util.c /^void one_time_init(JNIEnv *jnienv)$/ +onint ../common/util_sig.c /^onint(signo)$/ +open ../cxx/cxx_app.cpp /^int DbEnv::open(const char *db_home, u_int32_t fla/ +pg_Cmd ../tcl/tcl_mp.c /^pg_Cmd(clientData, interp, objc, objv)$/ +pgcmds ../tcl/tcl_mp.c /^ enum pgcmds {$/ +pgcookie ../include/db_cxx.h /^ (DB_ENV *dbenv, db_pgno_t pgno, void *pgaddr, DB/ +pget ../cxx/cxx_table.cpp /^int Db::pget(DbTxn *txnid, Dbt *key, Dbt *pkey, Db/ +pgno_t ../include/db_185.in /^#define pgno_t db_pgno_t$/ +pgopt ../tcl/tcl_mp.c /^ enum pgopt {$/ +prepare ../cxx/cxx_txn.cpp /^int DbTxn::prepare(u_int8_t *gid)$/ +pthread_cond_signal ../mutex/mut_pthread.c /^#define pthread_cond_signal _lwp_cond_signal$/ +pthread_cond_wait ../mutex/mut_pthread.c /^#define pthread_cond_wait _lwp_cond_wait$/ +pthread_mutex_destroy ../mutex/mut_pthread.c /^#define pthread_mutex_destroy(x) 0$/ +pthread_mutex_lock ../mutex/mut_pthread.c /^#define pthread_mutex_lock _lwp_mutex_lock$/ +pthread_mutex_trylock ../mutex/mut_pthread.c /^#define pthread_mutex_trylock _lwp_mutex_trylock$/ +pthread_mutex_unlock ../mutex/mut_pthread.c /^#define pthread_mutex_unlock _lwp_mutex_unlock$/ +pthread_self ../mutex/mut_pthread.c /^#define pthread_self _lwp_self$/ +put ../cxx/cxx_lock.cpp /^int DbLock::put(DbEnv *env)$/ +qam_position_mode ../include/qam.h /^} qam_position_mode;$/ +qam_probe_mode ../include/qam.h /^} qam_probe_mode;$/ +raise ../clib/raise.c /^raise(s)$/ +rcmds ../tcl/tcl_compat.c /^ enum rcmds {$/ +recno_t ../include/db_185.in /^typedef u_int32_t recno_t;$/ +reg_type ../include/region.h /^ REGION_TYPE_TXN } reg_type;$/ +remove ../cxx/cxx_app.cpp /^int DbEnv::remove(const char *db_home, u_int32_t f/ +rename ../cxx/cxx_table.cpp /^int Db::rename(const char *file, const char *datab/ +report_errcall ../libdb_java/java_util.c /^void report_errcall(JNIEnv *jnienv, jobject errcal/ +report_exception ../libdb_java/java_util.c /^void report_exception(JNIEnv *jnienv, const char */ +roff_t ../include/db_int.in /^typedef u_int32_t roff_t;$/ +run_one ../mutex/tm.c /^run_one()$/ +runtime_error ../cxx/cxx_app.cpp /^void DbEnv::runtime_error(const char *caller, int / +runtime_error_dbt ../cxx/cxx_app.cpp /^void DbEnv::runtime_error_dbt(const char *caller, / +set_alloc ../cxx/cxx_table.cpp /^int Db::set_alloc(db_malloc_fcn_type malloc_fcn,$/ +set_app_private ../cxx/cxx_table.cpp /^void Db::set_app_private(void *value)$/ +set_cachesize ../cxx/cxx_table.cpp /^int Db::set_cachesize(u_int32_t gbytes, u_int32_t / +set_errcall ../cxx/cxx_table.cpp /^void Db::set_errcall(void (*arg)(const char *, cha/ +set_error_stream ../cxx/cxx_table.cpp /^void Db::set_error_stream(ostream *error_stream)$/ +set_int_field ../libdb_java/java_util.c /^void set_int_field(JNIEnv *jnienv, jclass class_of/ +set_long_field ../libdb_java/java_util.c /^void set_long_field(JNIEnv *jnienv, jclass class_o/ +set_lsn_field ../libdb_java/java_util.c /^void set_lsn_field(JNIEnv *jnienv, jclass class_of/ +set_object_field ../libdb_java/java_util.c /^void set_object_field(JNIEnv *jnienv, jclass class/ +set_paniccall ../cxx/cxx_table.cpp /^int Db::set_paniccall(void (*callback)(DbEnv *, in/ +set_private_dbobj ../libdb_java/java_util.c /^void set_private_dbobj(JNIEnv *jnienv, const char / +set_private_info ../libdb_java/java_util.c /^void set_private_info(JNIEnv *jnienv, const char */ +size_t ../include/db_cxx.h /^ (size_t);$/ +snprintf ../clib/snprintf.c /^snprintf(str, n, fmt, va_alist)$/ +srchacts ../tcl/tcl_compat.c /^ enum srchacts {$/ +stat ../cxx/cxx_table.cpp /^int Db::stat(void *sp, u_int32_t flags)$/ +stflag ../tcl/tcl_compat.c /^ enum stflag {$/ +strcasecmp ../clib/strcasecmp.c /^strcasecmp(s1, s2)$/ +strerror ../clib/strerror.c /^strerror(num)$/ +sync ../cxx/cxx_table.cpp /^int Db::sync(u_int32_t flags)$/ +sys_errlist ../libdb_java/java_util.c /^#define sys_errlist _sys_errlist$/ +sys_nerr ../libdb_java/java_util.c /^#define sys_nerr _sys_nerr$/ +tcl_DbAssociate ../tcl/tcl_db.c /^tcl_DbAssociate(interp, objc, objv, dbp)$/ +tcl_DbClose ../tcl/tcl_db.c /^tcl_DbClose(interp, objc, objv, dbp, dbip)$/ +tcl_DbCount ../tcl/tcl_db.c /^tcl_DbCount(interp, objc, objv, dbp)$/ +tcl_DbCursor ../tcl/tcl_db.c /^tcl_DbCursor(interp, objc, objv, dbp, dbcp)$/ +tcl_DbDelete ../tcl/tcl_db.c /^tcl_DbDelete(interp, objc, objv, dbp)$/ +tcl_DbGet ../tcl/tcl_db.c /^tcl_DbGet(interp, objc, objv, dbp, ispget)$/ +tcl_DbGetjoin ../tcl/tcl_db.c /^tcl_DbGetjoin(interp, objc, objv, dbp)$/ +tcl_DbJoin ../tcl/tcl_db.c /^tcl_DbJoin(interp, objc, objv, dbp, dbcp)$/ +tcl_DbKeyRange ../tcl/tcl_db.c /^tcl_DbKeyRange(interp, objc, objv, dbp)$/ +tcl_DbPut ../tcl/tcl_db.c /^tcl_DbPut(interp, objc, objv, dbp)$/ +tcl_DbStat ../tcl/tcl_db.c /^tcl_DbStat(interp, objc, objv, dbp)$/ +tcl_DbcDup ../tcl/tcl_dbcursor.c /^tcl_DbcDup(interp, objc, objv, dbc)$/ +tcl_DbcGet ../tcl/tcl_dbcursor.c /^tcl_DbcGet(interp, objc, objv, dbc, ispget)$/ +tcl_DbcPut ../tcl/tcl_dbcursor.c /^tcl_DbcPut(interp, objc, objv, dbc)$/ +tcl_EnvRemove ../tcl/tcl_env.c /^tcl_EnvRemove(interp, objc, objv, envp, envip)$/ +tcl_EnvTest ../tcl/tcl_env.c /^tcl_EnvTest(interp, objc, objv, envp)$/ +tcl_EnvVerbose ../tcl/tcl_env.c /^tcl_EnvVerbose(interp, envp, which, onoff)$/ +tcl_LockDetect ../tcl/tcl_lock.c /^tcl_LockDetect(interp, objc, objv, envp)$/ +tcl_LockGet ../tcl/tcl_lock.c /^tcl_LockGet(interp, objc, objv, envp)$/ +tcl_LockStat ../tcl/tcl_lock.c /^tcl_LockStat(interp, objc, objv, envp)$/ +tcl_LockVec ../tcl/tcl_lock.c /^tcl_LockVec(interp, objc, objv, envp)$/ +tcl_LogArchive ../tcl/tcl_log.c /^tcl_LogArchive(interp, objc, objv, envp)$/ +tcl_LogCompare ../tcl/tcl_log.c /^tcl_LogCompare(interp, objc, objv)$/ +tcl_LogFile ../tcl/tcl_log.c /^tcl_LogFile(interp, objc, objv, envp)$/ +tcl_LogFlush ../tcl/tcl_log.c /^tcl_LogFlush(interp, objc, objv, envp)$/ +tcl_LogGet ../tcl/tcl_log.c /^tcl_LogGet(interp, objc, objv, envp)$/ +tcl_LogPut ../tcl/tcl_log.c /^tcl_LogPut(interp, objc, objv, envp)$/ +tcl_LogRegister ../tcl/tcl_log.c /^tcl_LogRegister(interp, objc, objv, envp)$/ +tcl_LogStat ../tcl/tcl_log.c /^tcl_LogStat(interp, objc, objv, envp)$/ +tcl_LogUnregister ../tcl/tcl_log.c /^tcl_LogUnregister(interp, objc, objv, envp)$/ +tcl_Mp ../tcl/tcl_mp.c /^tcl_Mp(interp, objc, objv, envp, envip)$/ +tcl_MpGet ../tcl/tcl_mp.c /^tcl_MpGet(interp, objc, objv, mp, mpip)$/ +tcl_MpStat ../tcl/tcl_mp.c /^tcl_MpStat(interp, objc, objv, envp)$/ +tcl_MpSync ../tcl/tcl_mp.c /^tcl_MpSync(interp, objc, objv, envp)$/ +tcl_MpTrickle ../tcl/tcl_mp.c /^tcl_MpTrickle(interp, objc, objv, envp)$/ +tcl_Mutex ../tcl/tcl_compat.c /^tcl_Mutex(interp, objc, objv, envp, envip)$/ +tcl_Pg ../tcl/tcl_mp.c /^tcl_Pg(interp, objc, objv, page, mp, pgip, putop)$/ +tcl_PgInit ../tcl/tcl_mp.c /^tcl_PgInit(interp, objc, objv, page, pgip)$/ +tcl_PgIsset ../tcl/tcl_mp.c /^tcl_PgIsset(interp, objc, objv, page, pgip)$/ +tcl_Txn ../tcl/tcl_txn.c /^tcl_Txn(interp, objc, objv, envp, envip)$/ +tcl_TxnCheckpoint ../tcl/tcl_txn.c /^tcl_TxnCheckpoint(interp, objc, objv, envp)$/ +tcl_TxnCommit ../tcl/tcl_txn.c /^tcl_TxnCommit(interp, objc, objv, txnp, txnip)$/ +tcl_TxnRecover ../tcl/tcl_txn.c /^tcl_TxnRecover(interp, objc, objv, envp, envip)$/ +tcl_TxnStat ../tcl/tcl_txn.c /^tcl_TxnStat(interp, objc, objv, envp)$/ +tcl_bt_compare ../tcl/tcl_db_pkg.c /^tcl_bt_compare(dbp, dbta, dbtb)$/ +tcl_compare_callback ../tcl/tcl_db_pkg.c /^tcl_compare_callback(dbp, dbta, dbtb, procobj, err/ +tcl_dup_compare ../tcl/tcl_db_pkg.c /^tcl_dup_compare(dbp, dbta, dbtb)$/ +tcl_h_hash ../tcl/tcl_db_pkg.c /^tcl_h_hash(dbp, buf, len)$/ +tcl_second_call ../tcl/tcl_db.c /^tcl_second_call(dbp, pkey, data, skey)$/ +truncate ../cxx/cxx_table.cpp /^int Db::truncate(const char *file, const char *dat/ +tsl_t ../include/mutex.h /^typedef int tsl_t;$/ +txn_Cmd ../tcl/tcl_txn.c /^txn_Cmd(clientData, interp, objc, objv)$/ +txn_abort ../txn/txn.c /^txn_abort(txnp)$/ +txn_begin ../txn/txn.c /^txn_begin(dbenv, parent, txnpp, flags)$/ +txn_checkpoint ../txn/txn.c /^txn_checkpoint(dbenv, kbytes, minutes, flags)$/ +txn_commit ../txn/txn.c /^txn_commit(txnp, flags)$/ +txn_discard ../txn/txn.c /^txn_discard(txnp, flags)$/ +txn_id ../txn/txn.c /^txn_id(txnp)$/ +txn_prepare ../txn/txn.c /^txn_prepare(txnp, gid)$/ +txn_recover ../txn/txn_recover.c /^txn_recover(dbenv, preplist, count, retp, flags)$/ +txn_stat ../txn/txn_stat.c /^txn_stat(dbenv, statp)$/ +txnckpopts ../tcl/tcl_txn.c /^ enum txnckpopts {$/ +txncmds ../tcl/tcl_txn.c /^ enum txncmds {$/ +txnop_t ../txn/txn.c /^} txnop_t;$/ +txnopts ../tcl/tcl_txn.c /^ enum txnopts {$/ +u_int32_t ../include/db_cxx.h /^ (DB *, const void *, u_int32_t);$/ +unmap_file ../mutex/tm.c /^unmap_file(maddr, fd)$/ +unwrap ../include/cxx_int.h /^\/\/ back and forth using the various overloaded w/ +upgrade ../cxx/cxx_table.cpp /^int Db::upgrade(const char *name, u_int32_t flags)/ +usage ../rpc_server/db_server_util.c /^usage(prog)$/ +val ../include/tcl_db.h /^#define val u.r.real_val$/ +verbonoff ../tcl/tcl_env.c /^ enum verbonoff {$/ +verbwhich ../tcl/tcl_env.c /^ enum verbwhich {$/ +verify_callback_struct ../libdb_java/java_Db.c /^struct verify_callback_struct {$/ +verify_dbt ../libdb_java/java_util.c /^int verify_dbt(JNIEnv *jnienv, int err, JDBT *jdbt/ +verify_non_null ../libdb_java/java_util.c /^int verify_non_null(JNIEnv *jnienv, void *obj)$/ +verify_return ../libdb_java/java_util.c /^int verify_return(JNIEnv *jnienv, int err, unsigne/ +version_check ../rpc_server/db_server_util.c /^version_check()$/ +void ../include/db_cxx.h /^ (void *);$/ +vsnprintf ../clib/vsnprintf.c /^vsnprintf(str, n, fmt, ap)$/ +what ../cxx/cxx_except.cpp /^const char *DbException::what() const$/ +wmask ../clib/memmove.c /^#define wmask (wsize - 1)$/ +word ../clib/memmove.c /^typedef int word; \/* "word" used for optimal cop/ +wrdebug ../libdb_java/java_util.h /^static void wrdebug(const char *str)$/ +wsize ../clib/memmove.c /^#define wsize sizeof(word)$/ +xa_switch_t ../include/xa.h /^struct xa_switch_t {$/ +xdr___db_associate_msg ../rpc_server/db_server_xdr.c /^xdr___db_associate_msg(xdrs, objp)$/ +xdr___db_associate_reply ../rpc_server/db_server_xdr.c /^xdr___db_associate_reply(xdrs, objp)$/ +xdr___db_bt_maxkey_msg ../rpc_server/db_server_xdr.c /^xdr___db_bt_maxkey_msg(xdrs, objp)$/ +xdr___db_bt_maxkey_reply ../rpc_server/db_server_xdr.c /^xdr___db_bt_maxkey_reply(xdrs, objp)$/ +xdr___db_bt_minkey_msg ../rpc_server/db_server_xdr.c /^xdr___db_bt_minkey_msg(xdrs, objp)$/ +xdr___db_bt_minkey_reply ../rpc_server/db_server_xdr.c /^xdr___db_bt_minkey_reply(xdrs, objp)$/ +xdr___db_close_msg ../rpc_server/db_server_xdr.c /^xdr___db_close_msg(xdrs, objp)$/ +xdr___db_close_reply ../rpc_server/db_server_xdr.c /^xdr___db_close_reply(xdrs, objp)$/ +xdr___db_create_msg ../rpc_server/db_server_xdr.c /^xdr___db_create_msg(xdrs, objp)$/ +xdr___db_create_reply ../rpc_server/db_server_xdr.c /^xdr___db_create_reply(xdrs, objp)$/ +xdr___db_cursor_msg ../rpc_server/db_server_xdr.c /^xdr___db_cursor_msg(xdrs, objp)$/ +xdr___db_cursor_reply ../rpc_server/db_server_xdr.c /^xdr___db_cursor_reply(xdrs, objp)$/ +xdr___db_del_msg ../rpc_server/db_server_xdr.c /^xdr___db_del_msg(xdrs, objp)$/ +xdr___db_del_reply ../rpc_server/db_server_xdr.c /^xdr___db_del_reply(xdrs, objp)$/ +xdr___db_extentsize_msg ../rpc_server/db_server_xdr.c /^xdr___db_extentsize_msg(xdrs, objp)$/ +xdr___db_extentsize_reply ../rpc_server/db_server_xdr.c /^xdr___db_extentsize_reply(xdrs, objp)$/ +xdr___db_flags_msg ../rpc_server/db_server_xdr.c /^xdr___db_flags_msg(xdrs, objp)$/ +xdr___db_flags_reply ../rpc_server/db_server_xdr.c /^xdr___db_flags_reply(xdrs, objp)$/ +xdr___db_get_msg ../rpc_server/db_server_xdr.c /^xdr___db_get_msg(xdrs, objp)$/ +xdr___db_get_reply ../rpc_server/db_server_xdr.c /^xdr___db_get_reply(xdrs, objp)$/ +xdr___db_h_ffactor_msg ../rpc_server/db_server_xdr.c /^xdr___db_h_ffactor_msg(xdrs, objp)$/ +xdr___db_h_ffactor_reply ../rpc_server/db_server_xdr.c /^xdr___db_h_ffactor_reply(xdrs, objp)$/ +xdr___db_h_nelem_msg ../rpc_server/db_server_xdr.c /^xdr___db_h_nelem_msg(xdrs, objp)$/ +xdr___db_h_nelem_reply ../rpc_server/db_server_xdr.c /^xdr___db_h_nelem_reply(xdrs, objp)$/ +xdr___db_join_msg ../rpc_server/db_server_xdr.c /^xdr___db_join_msg(xdrs, objp)$/ +xdr___db_join_reply ../rpc_server/db_server_xdr.c /^xdr___db_join_reply(xdrs, objp)$/ +xdr___db_key_range_msg ../rpc_server/db_server_xdr.c /^xdr___db_key_range_msg(xdrs, objp)$/ +xdr___db_key_range_reply ../rpc_server/db_server_xdr.c /^xdr___db_key_range_reply(xdrs, objp)$/ +xdr___db_lorder_msg ../rpc_server/db_server_xdr.c /^xdr___db_lorder_msg(xdrs, objp)$/ +xdr___db_lorder_reply ../rpc_server/db_server_xdr.c /^xdr___db_lorder_reply(xdrs, objp)$/ +xdr___db_open_msg ../rpc_server/db_server_xdr.c /^xdr___db_open_msg(xdrs, objp)$/ +xdr___db_open_reply ../rpc_server/db_server_xdr.c /^xdr___db_open_reply(xdrs, objp)$/ +xdr___db_pagesize_msg ../rpc_server/db_server_xdr.c /^xdr___db_pagesize_msg(xdrs, objp)$/ +xdr___db_pagesize_reply ../rpc_server/db_server_xdr.c /^xdr___db_pagesize_reply(xdrs, objp)$/ +xdr___db_pget_msg ../rpc_server/db_server_xdr.c /^xdr___db_pget_msg(xdrs, objp)$/ +xdr___db_pget_reply ../rpc_server/db_server_xdr.c /^xdr___db_pget_reply(xdrs, objp)$/ +xdr___db_put_msg ../rpc_server/db_server_xdr.c /^xdr___db_put_msg(xdrs, objp)$/ +xdr___db_put_reply ../rpc_server/db_server_xdr.c /^xdr___db_put_reply(xdrs, objp)$/ +xdr___db_re_delim_msg ../rpc_server/db_server_xdr.c /^xdr___db_re_delim_msg(xdrs, objp)$/ +xdr___db_re_delim_reply ../rpc_server/db_server_xdr.c /^xdr___db_re_delim_reply(xdrs, objp)$/ +xdr___db_re_len_msg ../rpc_server/db_server_xdr.c /^xdr___db_re_len_msg(xdrs, objp)$/ +xdr___db_re_len_reply ../rpc_server/db_server_xdr.c /^xdr___db_re_len_reply(xdrs, objp)$/ +xdr___db_re_pad_msg ../rpc_server/db_server_xdr.c /^xdr___db_re_pad_msg(xdrs, objp)$/ +xdr___db_re_pad_reply ../rpc_server/db_server_xdr.c /^xdr___db_re_pad_reply(xdrs, objp)$/ +xdr___db_remove_msg ../rpc_server/db_server_xdr.c /^xdr___db_remove_msg(xdrs, objp)$/ +xdr___db_remove_reply ../rpc_server/db_server_xdr.c /^xdr___db_remove_reply(xdrs, objp)$/ +xdr___db_rename_msg ../rpc_server/db_server_xdr.c /^xdr___db_rename_msg(xdrs, objp)$/ +xdr___db_rename_reply ../rpc_server/db_server_xdr.c /^xdr___db_rename_reply(xdrs, objp)$/ +xdr___db_stat_msg ../rpc_server/db_server_xdr.c /^xdr___db_stat_msg(xdrs, objp)$/ +xdr___db_stat_reply ../rpc_server/db_server_xdr.c /^xdr___db_stat_reply(xdrs, objp)$/ +xdr___db_sync_msg ../rpc_server/db_server_xdr.c /^xdr___db_sync_msg(xdrs, objp)$/ +xdr___db_sync_reply ../rpc_server/db_server_xdr.c /^xdr___db_sync_reply(xdrs, objp)$/ +xdr___db_truncate_msg ../rpc_server/db_server_xdr.c /^xdr___db_truncate_msg(xdrs, objp)$/ +xdr___db_truncate_reply ../rpc_server/db_server_xdr.c /^xdr___db_truncate_reply(xdrs, objp)$/ +xdr___dbc_close_msg ../rpc_server/db_server_xdr.c /^xdr___dbc_close_msg(xdrs, objp)$/ +xdr___dbc_close_reply ../rpc_server/db_server_xdr.c /^xdr___dbc_close_reply(xdrs, objp)$/ +xdr___dbc_count_msg ../rpc_server/db_server_xdr.c /^xdr___dbc_count_msg(xdrs, objp)$/ +xdr___dbc_count_reply ../rpc_server/db_server_xdr.c /^xdr___dbc_count_reply(xdrs, objp)$/ +xdr___dbc_del_msg ../rpc_server/db_server_xdr.c /^xdr___dbc_del_msg(xdrs, objp)$/ +xdr___dbc_del_reply ../rpc_server/db_server_xdr.c /^xdr___dbc_del_reply(xdrs, objp)$/ +xdr___dbc_dup_msg ../rpc_server/db_server_xdr.c /^xdr___dbc_dup_msg(xdrs, objp)$/ +xdr___dbc_dup_reply ../rpc_server/db_server_xdr.c /^xdr___dbc_dup_reply(xdrs, objp)$/ +xdr___dbc_get_msg ../rpc_server/db_server_xdr.c /^xdr___dbc_get_msg(xdrs, objp)$/ +xdr___dbc_get_reply ../rpc_server/db_server_xdr.c /^xdr___dbc_get_reply(xdrs, objp)$/ +xdr___dbc_pget_msg ../rpc_server/db_server_xdr.c /^xdr___dbc_pget_msg(xdrs, objp)$/ +xdr___dbc_pget_reply ../rpc_server/db_server_xdr.c /^xdr___dbc_pget_reply(xdrs, objp)$/ +xdr___dbc_put_msg ../rpc_server/db_server_xdr.c /^xdr___dbc_put_msg(xdrs, objp)$/ +xdr___dbc_put_reply ../rpc_server/db_server_xdr.c /^xdr___dbc_put_reply(xdrs, objp)$/ +xdr___env_cachesize_msg ../rpc_server/db_server_xdr.c /^xdr___env_cachesize_msg(xdrs, objp)$/ +xdr___env_cachesize_reply ../rpc_server/db_server_xdr.c /^xdr___env_cachesize_reply(xdrs, objp)$/ +xdr___env_close_msg ../rpc_server/db_server_xdr.c /^xdr___env_close_msg(xdrs, objp)$/ +xdr___env_close_reply ../rpc_server/db_server_xdr.c /^xdr___env_close_reply(xdrs, objp)$/ +xdr___env_create_msg ../rpc_server/db_server_xdr.c /^xdr___env_create_msg(xdrs, objp)$/ +xdr___env_create_reply ../rpc_server/db_server_xdr.c /^xdr___env_create_reply(xdrs, objp)$/ +xdr___env_flags_msg ../rpc_server/db_server_xdr.c /^xdr___env_flags_msg(xdrs, objp)$/ +xdr___env_flags_reply ../rpc_server/db_server_xdr.c /^xdr___env_flags_reply(xdrs, objp)$/ +xdr___env_open_msg ../rpc_server/db_server_xdr.c /^xdr___env_open_msg(xdrs, objp)$/ +xdr___env_open_reply ../rpc_server/db_server_xdr.c /^xdr___env_open_reply(xdrs, objp)$/ +xdr___env_remove_msg ../rpc_server/db_server_xdr.c /^xdr___env_remove_msg(xdrs, objp)$/ +xdr___env_remove_reply ../rpc_server/db_server_xdr.c /^xdr___env_remove_reply(xdrs, objp)$/ +xdr___txn_abort_msg ../rpc_server/db_server_xdr.c /^xdr___txn_abort_msg(xdrs, objp)$/ +xdr___txn_abort_reply ../rpc_server/db_server_xdr.c /^xdr___txn_abort_reply(xdrs, objp)$/ +xdr___txn_begin_msg ../rpc_server/db_server_xdr.c /^xdr___txn_begin_msg(xdrs, objp)$/ +xdr___txn_begin_reply ../rpc_server/db_server_xdr.c /^xdr___txn_begin_reply(xdrs, objp)$/ +xdr___txn_commit_msg ../rpc_server/db_server_xdr.c /^xdr___txn_commit_msg(xdrs, objp)$/ +xdr___txn_commit_reply ../rpc_server/db_server_xdr.c /^xdr___txn_commit_reply(xdrs, objp)$/ +xdr___txn_prepare_msg ../rpc_server/db_server_xdr.c /^xdr___txn_prepare_msg(xdrs, objp)$/ +xdr___txn_prepare_reply ../rpc_server/db_server_xdr.c /^xdr___txn_prepare_reply(xdrs, objp)$/ +xdr___txn_recover_msg ../rpc_server/db_server_xdr.c /^xdr___txn_recover_msg(xdrs, objp)$/ +xdr___txn_recover_reply ../rpc_server/db_server_xdr.c /^xdr___txn_recover_reply(xdrs, objp)$/ +xid_t ../include/xa.h /^struct xid_t {$/ diff --git a/db/dist/template/rec_ctemp b/db/dist/template/rec_ctemp new file mode 100644 index 000000000..6be6d3166 --- /dev/null +++ b/db/dist/template/rec_ctemp @@ -0,0 +1,62 @@ +/* + * __PREF_FUNC_recover -- + * Recovery function for FUNC. + * + * PUBLIC: int __PREF_FUNC_recover + * PUBLIC: __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); + */ +int +__PREF_FUNC_recover(dbenv, dbtp, lsnp, op, info) + DB_ENV *dbenv; + DBT *dbtp; + DB_LSN *lsnp; + db_recops op; + void *info; +{ + __PREF_FUNC_args *argp; + DB *file_dbp; + DBC *dbc; + DB_MPOOLFILE *mpf; + PAGE *pagep; + int cmp_n, cmp_p, modified, ret; + + REC_PRINT(__PREF_FUNC_print); + REC_INTRO(__PREF_FUNC_read); + + if ((ret = memp_fget(mpf, &argp->pgno, 0, &pagep)) != 0) + if (DB_REDO(op)) { + if ((ret = memp_fget(mpf, + &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0) + goto out; + } else { + *lsnp = argp->prev_lsn; + ret = 0; + goto out; + } + + modified = 0; + cmp_n = log_compare(lsnp, &LSN(pagep)); + + /* + * Use this when there is something like "pagelsn" in the argp + * structure. Sometimes, you might need to compare meta-data + * lsn's instead. + * + * cmp_p = log_compare(&LSN(pagep), argp->pagelsn); + */ + if (cmp_p == 0 && DB_REDO(op)) { + /* Need to redo update described. */ + modified = 1; + } else if (cmp_n == 0 && !DB_REDO(op)) { + /* Need to undo update described. */ + modified = 1; + } + if (ret = memp_fput(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0)) + goto out; + + *lsnp = argp->prev_lsn; + ret = 0; + +out: REC_CLOSE; +} + diff --git a/db/docs/api_c/db_associate.html b/db/docs/api_c/db_associate.html new file mode 100644 index 000000000..56ea224ea --- /dev/null +++ b/db/docs/api_c/db_associate.html @@ -0,0 +1,156 @@ +<!--Id: db_associate.so,v 10.9 2001/05/05 01:49:09 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DB->associate</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DB->associate</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +DB->associate(DB *primary, DB *secondary, + int (*callback)(DB *, const DBT *, const DBT *, DBT *), + u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>The DB->associate function is used to declare one database a +secondary index for a primary database. After a secondary database has +been "associated" with a primary database, all updates to the primary +will be automatically reflected in the secondary and all reads from the +secondary will return corresponding data from the primary. Note that +as primary keys must be unique for secondary indices to work, the +primary database must be configured without support for duplicate data +items. See <a href="../ref/am/second.html">Secondary indices</a> for +more information. +<p>The <b>primary</b> argument should be a database handle for the primary +database that is to be indexed. +The <b>secondary</b> argument should be an open database handle of +either a newly created and empty database that is to be used to store +a secondary index, or of a database that was previously associated with +the same primary and contains a secondary index. Note that it is not +safe to associate as a secondary database a handle that is in use by +another thread of control or has open cursors. If the handle was opened +with the <a href="../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag it is safe to use it in multiple threads +of control after the DB->associate function has returned. Note also +that either secondary keys must be unique or the secondary database must +be configured with support for duplicate data items. +<p>The <b>callback</b> argument should refer to a callback function that +creates a secondary key from a given primary key and data pair. When +called, the first argument will be the secondary DB handle; the +second and third arguments will be <a href="../api_c/dbt.html">DBT</a>s containing a primary +key and datum respectively; and the fourth argument will be a zeroed +DBT in which the callback function should fill in <b>data</b> and +<b>size</b> fields that describe the secondary key. +<p>If the callback function needs to allocate memory for the <b>data</b> +field rather than simply pointing into the primary key or datum, the +<b>flags</b> field of the returned <a href="../api_c/dbt.html">DBT</a> should be set to +DB_DBT_APPMALLOC, which indicates that Berkeley DB should free the +memory when it is done with it. +<p>If any key/data pair in the primary yields a null secondary key and +should be left out of the secondary index, the callback function may +optionally return DB_DONOTINDEX. Otherwise, the callback +function should return 0 in case of success or any other integer error +code in case of failure; the error code will be returned from the Berkeley DB +interface call that initiated the callback. Note that if the callback +function returns DB_DONOTINDEX for any key/data pairs in the +primary database, the secondary index will not contain any reference to +those key/data pairs, and such operations as cursor iterations and range +queries will reflect only the corresponding subset of the database. If +this is not desirable, the application should ensure that the callback +function is well-defined for all possible values and never returns +DB_DONOTINDEX. +<p>The callback argument may be NULL if and only if both the primary and +secondary database handles were opened with the <a href="../api_c/db_open.html#DB_RDONLY">DB_RDONLY</a> flag. +<p>The <b>flags</b> value must be set to 0 or +the following value: +<p><dl compact> +<p><dt><a name="DB_CREATE">DB_CREATE</a><dd>If the secondary database is empty, walk through the primary and create +an index to it in the empty secondary. Note that this operation is +potentially very expensive. +<p>If the secondary database has been opened in an environment configured +with transactions, each put necessary for its creation will be done in +the context of a transaction created for the purpose. +<p>Note that care should be taken not to use a newly-created secondary +database in another thread of control until the DB->associate +call has returned successfully in the first thread. +</dl> +<h1>Errors</h1> +<p>The DB->associate function may fail and return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>The secondary database handle has already been associated with this or +another database handle. +<p>The secondary database handle is not open. +<p>The primary database has been configured to allow duplicates. +</dl> +<p>The DB->associate function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. +If a catastrophic error has occurred, the DB->associate function may fail and return +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>See Also</h1> +<a href="../api_c/db_create.html">db_create</a>, +<a href="../api_c/db_associate.html">DB->associate</a>, +<a href="../api_c/db_close.html">DB->close</a>, +<a href="../api_c/db_cursor.html">DB->cursor</a>, +<a href="../api_c/db_del.html">DB->del</a>, +<a href="../api_c/db_err.html">DB->err</a>, <a href="../api_c/db_err.html">DB->errx</a> +<a href="../api_c/db_fd.html">DB->fd</a>, +<a href="../api_c/db_get.html">DB->get</a>, +<a href="../api_c/db_get.html">DB->pget</a>, +<a href="../api_c/db_get_byteswapped.html">DB->get_byteswapped</a>, +<a href="../api_c/db_get_type.html">DB->get_type</a>, +<a href="../api_c/db_join.html">DB->join</a>, +<a href="../api_c/db_key_range.html">DB->key_range</a>, +<a href="../api_c/db_open.html">DB->open</a>, +<a href="../api_c/db_put.html">DB->put</a>, +<a href="../api_c/db_remove.html">DB->remove</a>, +<a href="../api_c/db_rename.html">DB->rename</a>, +<a href="../api_c/db_set_alloc.html">DB->set_alloc</a>, +<a href="../api_c/db_set_append_recno.html">DB->set_append_recno</a>, +<a href="../api_c/db_set_bt_compare.html">DB->set_bt_compare</a>, +<a href="../api_c/db_set_bt_minkey.html">DB->set_bt_minkey</a>, +<a href="../api_c/db_set_bt_prefix.html">DB->set_bt_prefix</a>, +<a href="../api_c/db_set_cachesize.html">DB->set_cachesize</a>, +<a href="../api_c/db_set_dup_compare.html">DB->set_dup_compare</a>, +<a href="../api_c/db_set_errcall.html">DB->set_errcall</a>, +<a href="../api_c/db_set_errfile.html">DB->set_errfile</a>, +<a href="../api_c/db_set_errpfx.html">DB->set_errpfx</a>, +<a href="../api_c/db_set_feedback.html">DB->set_feedback</a>, +<a href="../api_c/db_set_flags.html">DB->set_flags</a>, +<a href="../api_c/db_set_h_ffactor.html">DB->set_h_ffactor</a>, +<a href="../api_c/db_set_h_hash.html">DB->set_h_hash</a>, +<a href="../api_c/db_set_h_nelem.html">DB->set_h_nelem</a>, +<a href="../api_c/db_set_lorder.html">DB->set_lorder</a>, +<a href="../api_c/db_set_pagesize.html">DB->set_pagesize</a>, +<a href="../api_c/db_set_paniccall.html">DB->set_paniccall</a>, +<a href="../api_c/db_set_q_extentsize.html">DB->set_q_extentsize</a>, +<a href="../api_c/db_set_re_delim.html">DB->set_re_delim</a>, +<a href="../api_c/db_set_re_len.html">DB->set_re_len</a>, +<a href="../api_c/db_set_re_pad.html">DB->set_re_pad</a>, +<a href="../api_c/db_set_re_source.html">DB->set_re_source</a>, +<a href="../api_c/db_stat.html">DB->stat</a>, +<a href="../api_c/db_sync.html">DB->sync</a>, +<a href="../api_c/db_truncate.html">DB->truncate</a>, +<a href="../api_c/db_upgrade.html">DB->upgrade</a>, +and +<a href="../api_c/db_verify.html">DB->verify</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/db_set_alloc.html b/db/docs/api_c/db_set_alloc.html new file mode 100644 index 000000000..90d55f0cc --- /dev/null +++ b/db/docs/api_c/db_set_alloc.html @@ -0,0 +1,130 @@ +<!--Id: db_set_alloc.so,v 10.1 2001/04/04 19:06:25 bostic Exp --> +<!--Id: env_set_alloc.so,v 1.3 2001/05/01 14:23:07 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DB->set_alloc</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DB->set_alloc</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +int +DB->set_alloc(DB *db, + void *(*app_malloc)(size_t size), + void *(*app_realloc)(void *, size_t), + void (*app_free)(void *)); +</pre></h3> +<h1>Description</h1> +<p>Set the allocation functions used by the DB_ENV and DB +methods to allocate or free memory owned by the application. The +<a href="../api_c/env_set_alloc.html">DBENV->set_alloc</a> interface sets the allocation functions for a +database environment; the DB->set_alloc interface sets the +allocation functions for a single database. If both are specified, +functions specified for a database will be used in preference to +functions specified for environment. +<p>There are a number of interfaces in Berkeley DB where memory is allocated by +the library and then given to the application. For example, the +<a href="../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag, when specified in the <a href="../api_c/dbt.html">DBT</a> object, +will cause the DB methods to allocate and reallocate memory +which then becomes the responsibility of the calling application. (See +<a href="../api_c/dbt.html">DBT</a> for more information.) Other examples are the Berkeley DB +interfaces which return statistical information to the application: +<a href="../api_c/db_stat.html">DB->stat</a>, <a href="../api_c/lock_stat.html">lock_stat</a>, <a href="../api_c/log_archive.html">log_archive</a>, +<a href="../api_c/log_stat.html">log_stat</a>, <a href="../api_c/memp_stat.html">memp_stat</a>, and <a href="../api_c/txn_stat.html">txn_stat</a>. There is +one interface in the Berkeley DB where memory is allocated by the application +and then given to the library: <a href="../api_c/db_associate.html">DB->associate</a>. +<p>On systems in which there may be multiple library versions of the +standard allocation routines (notably Windows NT), transferring memory +between the library and the application will fail because the Berkeley DB +library allocates memory from a different heap than the application uses +to free it. To avoid this problem, the <a href="../api_c/env_set_alloc.html">DBENV->set_alloc</a> and +DB->set_alloc functions can be used to pass Berkeley DB references to the +application's allocation routines. +<p>It is not an error to not specify all three arguments to these +interfaces; however, in that case the specified interfaces must be +compatible with the standard library interfaces, as they will be used +together. The functions specified must match the calling +conventions of the ANSI C X3.159-1989 (ANSI C) library routines of the same name. +<p>For DB handles opened inside of Berkeley DB environments, calling the +DB->set_alloc function affects the entire environment and is equivalent to calling +the <a href="../api_c/env_set_alloc.html">DBENV->set_alloc</a> function. +<p>The DB->set_alloc interface may be used only to configure Berkeley DB before +the <a href="../api_c/db_open.html">DB->open</a> interface is called. +<p>The DB->set_alloc function returns a non-zero error value on failure and 0 on success. +<h1>Errors</h1> +<p>The DB->set_alloc function may fail and return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +</dl> +<p>The DB->set_alloc function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. +If a catastrophic error has occurred, the DB->set_alloc function may fail and return +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>See Also</h1> +<a href="../api_c/db_create.html">db_create</a>, +<a href="../api_c/db_associate.html">DB->associate</a>, +<a href="../api_c/db_close.html">DB->close</a>, +<a href="../api_c/db_cursor.html">DB->cursor</a>, +<a href="../api_c/db_del.html">DB->del</a>, +<a href="../api_c/db_err.html">DB->err</a>, <a href="../api_c/db_err.html">DB->errx</a> +<a href="../api_c/db_fd.html">DB->fd</a>, +<a href="../api_c/db_get.html">DB->get</a>, +<a href="../api_c/db_get.html">DB->pget</a>, +<a href="../api_c/db_get_byteswapped.html">DB->get_byteswapped</a>, +<a href="../api_c/db_get_type.html">DB->get_type</a>, +<a href="../api_c/db_join.html">DB->join</a>, +<a href="../api_c/db_key_range.html">DB->key_range</a>, +<a href="../api_c/db_open.html">DB->open</a>, +<a href="../api_c/db_put.html">DB->put</a>, +<a href="../api_c/db_remove.html">DB->remove</a>, +<a href="../api_c/db_rename.html">DB->rename</a>, +<a href="../api_c/db_set_alloc.html">DB->set_alloc</a>, +<a href="../api_c/db_set_append_recno.html">DB->set_append_recno</a>, +<a href="../api_c/db_set_bt_compare.html">DB->set_bt_compare</a>, +<a href="../api_c/db_set_bt_minkey.html">DB->set_bt_minkey</a>, +<a href="../api_c/db_set_bt_prefix.html">DB->set_bt_prefix</a>, +<a href="../api_c/db_set_cachesize.html">DB->set_cachesize</a>, +<a href="../api_c/db_set_dup_compare.html">DB->set_dup_compare</a>, +<a href="../api_c/db_set_errcall.html">DB->set_errcall</a>, +<a href="../api_c/db_set_errfile.html">DB->set_errfile</a>, +<a href="../api_c/db_set_errpfx.html">DB->set_errpfx</a>, +<a href="../api_c/db_set_feedback.html">DB->set_feedback</a>, +<a href="../api_c/db_set_flags.html">DB->set_flags</a>, +<a href="../api_c/db_set_h_ffactor.html">DB->set_h_ffactor</a>, +<a href="../api_c/db_set_h_hash.html">DB->set_h_hash</a>, +<a href="../api_c/db_set_h_nelem.html">DB->set_h_nelem</a>, +<a href="../api_c/db_set_lorder.html">DB->set_lorder</a>, +<a href="../api_c/db_set_pagesize.html">DB->set_pagesize</a>, +<a href="../api_c/db_set_paniccall.html">DB->set_paniccall</a>, +<a href="../api_c/db_set_q_extentsize.html">DB->set_q_extentsize</a>, +<a href="../api_c/db_set_re_delim.html">DB->set_re_delim</a>, +<a href="../api_c/db_set_re_len.html">DB->set_re_len</a>, +<a href="../api_c/db_set_re_pad.html">DB->set_re_pad</a>, +<a href="../api_c/db_set_re_source.html">DB->set_re_source</a>, +<a href="../api_c/db_stat.html">DB->stat</a>, +<a href="../api_c/db_sync.html">DB->sync</a>, +<a href="../api_c/db_truncate.html">DB->truncate</a>, +<a href="../api_c/db_upgrade.html">DB->upgrade</a>, +and +<a href="../api_c/db_verify.html">DB->verify</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/db_truncate.html b/db/docs/api_c/db_truncate.html new file mode 100644 index 000000000..e011122a0 --- /dev/null +++ b/db/docs/api_c/db_truncate.html @@ -0,0 +1,111 @@ +<!--Id: db_truncate.so,v 1.6 2001/04/18 13:44:46 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DB->truncate</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DB->truncate</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +int +DB->truncate(DB *db, const char *file, + const char *database, u_int32_t *countp, u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>The DB->truncate interface empties the database specified by +the <b>file</b> and <b>database</b> arguments, discarding all records +it contains. If no <b>database</b> is specified, the underlying file +represented by <b>file</b> is emptied. +The number of records discarded from the database is returned in +<b>countp</b>. +<p>Truncate must have exclusive use of the database. While truncate is +transaction-protected, it cannot be part of a application-created +transaction. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>After DB->truncate has been called, regardless of its return, +the DB handle may not be accessed again. +<p>The DB->truncate function returns a non-zero error value on failure and 0 on success. +<h1>Environment Variables</h1> +<p><dl compact> +<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using +<a href="../api_c/env_open.html">DBENV->open</a>, the environment variable <b>DB_HOME</b> may be used +as the path of the database environment home. Specifically, DB->truncate +is affected by the configuration value DB_DATA_DIR. +</dl> +<h1>Errors</h1> +<p>The DB->truncate function may fail and return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>A database in the file is currently open. +</dl> +<p>The DB->truncate function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. +If a catastrophic error has occurred, the DB->truncate function may fail and return +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>See Also</h1> +<a href="../api_c/db_create.html">db_create</a>, +<a href="../api_c/db_associate.html">DB->associate</a>, +<a href="../api_c/db_close.html">DB->close</a>, +<a href="../api_c/db_cursor.html">DB->cursor</a>, +<a href="../api_c/db_del.html">DB->del</a>, +<a href="../api_c/db_err.html">DB->err</a>, <a href="../api_c/db_err.html">DB->errx</a> +<a href="../api_c/db_fd.html">DB->fd</a>, +<a href="../api_c/db_get.html">DB->get</a>, +<a href="../api_c/db_get.html">DB->pget</a>, +<a href="../api_c/db_get_byteswapped.html">DB->get_byteswapped</a>, +<a href="../api_c/db_get_type.html">DB->get_type</a>, +<a href="../api_c/db_join.html">DB->join</a>, +<a href="../api_c/db_key_range.html">DB->key_range</a>, +<a href="../api_c/db_open.html">DB->open</a>, +<a href="../api_c/db_put.html">DB->put</a>, +<a href="../api_c/db_remove.html">DB->remove</a>, +<a href="../api_c/db_rename.html">DB->rename</a>, +<a href="../api_c/db_set_alloc.html">DB->set_alloc</a>, +<a href="../api_c/db_set_append_recno.html">DB->set_append_recno</a>, +<a href="../api_c/db_set_bt_compare.html">DB->set_bt_compare</a>, +<a href="../api_c/db_set_bt_minkey.html">DB->set_bt_minkey</a>, +<a href="../api_c/db_set_bt_prefix.html">DB->set_bt_prefix</a>, +<a href="../api_c/db_set_cachesize.html">DB->set_cachesize</a>, +<a href="../api_c/db_set_dup_compare.html">DB->set_dup_compare</a>, +<a href="../api_c/db_set_errcall.html">DB->set_errcall</a>, +<a href="../api_c/db_set_errfile.html">DB->set_errfile</a>, +<a href="../api_c/db_set_errpfx.html">DB->set_errpfx</a>, +<a href="../api_c/db_set_feedback.html">DB->set_feedback</a>, +<a href="../api_c/db_set_flags.html">DB->set_flags</a>, +<a href="../api_c/db_set_h_ffactor.html">DB->set_h_ffactor</a>, +<a href="../api_c/db_set_h_hash.html">DB->set_h_hash</a>, +<a href="../api_c/db_set_h_nelem.html">DB->set_h_nelem</a>, +<a href="../api_c/db_set_lorder.html">DB->set_lorder</a>, +<a href="../api_c/db_set_pagesize.html">DB->set_pagesize</a>, +<a href="../api_c/db_set_paniccall.html">DB->set_paniccall</a>, +<a href="../api_c/db_set_q_extentsize.html">DB->set_q_extentsize</a>, +<a href="../api_c/db_set_re_delim.html">DB->set_re_delim</a>, +<a href="../api_c/db_set_re_len.html">DB->set_re_len</a>, +<a href="../api_c/db_set_re_pad.html">DB->set_re_pad</a>, +<a href="../api_c/db_set_re_source.html">DB->set_re_source</a>, +<a href="../api_c/db_stat.html">DB->stat</a>, +<a href="../api_c/db_sync.html">DB->sync</a>, +<a href="../api_c/db_truncate.html">DB->truncate</a>, +<a href="../api_c/db_upgrade.html">DB->upgrade</a>, +and +<a href="../api_c/db_verify.html">DB->verify</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/dbt_bulk.html b/db/docs/api_c/dbt_bulk.html new file mode 100644 index 000000000..ec8cb1a9a --- /dev/null +++ b/db/docs/api_c/dbt_bulk.html @@ -0,0 +1,81 @@ +<!--Id: dbt_bulk.so,v 10.5 2001/05/05 01:49:13 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DBT</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DBT: Bulk Retrieval</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> + <a name="3"><!--meow--></a> +<p>If either of the DB_MULTIPLE or DB_MULTIPLE_KEY flags +were specified to the <a href="../api_c/db_get.html">DB->get</a> or <a href="../api_c/dbc_get.html">DBcursor->c_get</a> functions, the data +<a href="../api_c/dbt.html">DBT</a> returned by those interfaces will refer to a buffer that +is filled with data. Access to that data is through the following +macros: +<p><dl compact> +<p><dt><a name="DB_MULTIPLE_INIT">DB_MULTIPLE_INIT</a><dd><pre>DB_MULTIPLE_INIT(void *pointer, <a href="../api_c/dbt.html">DBT</a> *data);</pre> +<p>Initialize the retrieval. The <b>pointer</b> argument is a variable +to be initialized. The <b>data</b> argument is a <a href="../api_c/dbt.html">DBT</a> structure +returned from a successful call to <a href="../api_c/db_get.html">DB->get</a> or <a href="../api_c/dbc_get.html">DBcursor->c_get</a> +for which one of the DB_MULTIPLE or DB_MULTIPLE_KEY +flags was specified. +<p><dt><a name="DB_MULTIPLE_NEXT">DB_MULTIPLE_NEXT</a><dd><pre>DB_MULTIPLE_NEXT(void *pointer, <a href="../api_c/dbt.html">DBT</a> *data, void *retdata, size_t retdlen);</pre> +<p>The <b>data</b> argument is a <a href="../api_c/dbt.html">DBT</a> structure returned from a +successful call to <a href="../api_c/db_get.html">DB->get</a> or <a href="../api_c/dbc_get.html">DBcursor->c_get</a> for which the +DB_MULTIPLE flag was specified. The <b>pointer</b> and +<b>data</b> arguments must have been previously initialized by a call +to DB_MULTIPLE_INIT. The <b>retdata</b> argument is set to +refer to the next data element in the returned set, and the +<b>retdlen</b> argument is set to the length, in bytes, of that data +element. When used with the Queue and Recno access methods, +<b>retdata</b> will be set to NULL for deleted records. The +<b>pointer</b> argument is set to NULL if there are no more data +elements in the returned set. +<p><dt><a name="DB_MULTIPLE_KEY_NEXT">DB_MULTIPLE_KEY_NEXT</a><dd><pre>DB_MULTIPLE_KEY_NEXT(void *pointer, <a href="../api_c/dbt.html">DBT</a> *data, + void *retkey, size_t retklen, void *retdata, size_t retdlen);</pre> +<p>The <b>data</b> argument is a <a href="../api_c/dbt.html">DBT</a> structure returned from a +successful call to <a href="../api_c/db_get.html">DB->get</a> or <a href="../api_c/dbc_get.html">DBcursor->c_get</a> for which the +DB_MULTIPLE_KEY flag was specified. The <b>pointer</b> and +<b>data</b> arguments must have been previously initialized by a call +to DB_MULTIPLE_INIT. The <b>retkey</b> argument is set to +refer to the next key element in the returned set, and the +<b>retklen</b> argument is set to the length, in bytes, of that key +element. The <b>retdata</b> argument is set to refer to the next data +element in the returned set, and the <b>retdlen</b> argument is set to +the length, in bytes, of that data element. The <b>pointer</b> and +argument is set to NULL if there are no more key/data pairs in the +returned set. +<p><dt><a name="DB_MULTIPLE_RECNO_NEXT">DB_MULTIPLE_RECNO_NEXT</a><dd><pre>DB_MULTIPLE_RECNO_NEXT(void *pointer, <a href="../api_c/dbt.html">DBT</a> *data, + db_recno_t recno, void * retdata, size_t retdlen);</pre> +<p>The <b>data</b> argument is a <a href="../api_c/dbt.html">DBT</a> structure returned from a +successful call to <a href="../api_c/db_get.html">DB->get</a> or <a href="../api_c/dbc_get.html">DBcursor->c_get</a> for which the +DB_MULTIPLE_KEY flag was specified. The <b>pointer</b> and +<b>data</b> arguments must have been previously initialized by a call +to DB_MULTIPLE_INIT. The <b>recno</b> argument is set to the +record number of the next record in the returned set. The +<b>retdata</b> argument is set to refer to the next data element in +the returned set, and the <b>retdlen</b> argument is set to the length, +in bytes, of that data element. When used with the Queue and Recno +access methods, <b>retdata</b> will be set to NULL for deleted +records. The <b>pointer</b> argument is set to NULL if there are +no more key/data pairs in the returned set. +</dl> +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/env_err.html b/db/docs/api_c/env_err.html new file mode 100644 index 000000000..01aea3553 --- /dev/null +++ b/db/docs/api_c/env_err.html @@ -0,0 +1,98 @@ +<!--Id: env_err.so,v 10.13 2001/04/05 20:01:26 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DBENV->err</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DBENV->err</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +void +DBENV->err(DB_ENV *dbenv, int error, const char *fmt, ...); +<p> +void +DBENV->errx(DB_ENV *dbenv, const char *fmt, ...); +</pre></h3> +<h1>Description</h1> +<p>The DBENV->err, DBENV->errx, <a href="../api_c/db_err.html">DB->err</a> and +<a href="../api_c/db_err.html">DB->errx</a> functions provide error-messaging functionality for +applications written using the Berkeley DB library. +<p>The DBENV->err function constructs an error message consisting of the +following elements: +<p><blockquote><p><dl compact> +<p><dt>An optional prefix string<dd>If no error callback function has been set using the +<a href="../api_c/env_set_errcall.html">DBENV->set_errcall</a> function, any prefix string specified using the +<a href="../api_c/env_set_errpfx.html">DBENV->set_errpfx</a> function, followed by two separating characters: a colon +and a <space> character. +<p><dt>An optional printf-style message<dd>The supplied message <b>fmt</b>, if non-NULL, in which the +ANSI C X3.159-1989 (ANSI C) printf function specifies how subsequent arguments +are converted for output. +<p><dt>A separator<dd>Two separating characters: a colon and a <space> character. +<p><dt>A standard error string<dd>The standard system or Berkeley DB library error string associated with the +<b>error</b> value, as returned by the <a href="../api_c/env_strerror.html">db_strerror</a> function. +</dl> +</blockquote> +<p>This constructed error message is then handled as follows: +<p><blockquote> +<p>If an error callback function has been set (see <a href="../api_c/db_set_errcall.html">DB->set_errcall</a> +and <a href="../api_c/env_set_errcall.html">DBENV->set_errcall</a>), that function is called with two +arguments: any prefix string specified (see <a href="../api_c/db_set_errpfx.html">DB->set_errpfx</a> and +<a href="../api_c/env_set_errpfx.html">DBENV->set_errpfx</a>) and the error message. +<p>If a C library FILE * has been set (see <a href="../api_c/db_set_errfile.html">DB->set_errfile</a> and +<a href="../api_c/env_set_errfile.html">DBENV->set_errfile</a>), the error message is written to that output +stream. +<p>If none of these output options has been configured, the error message +is written to stderr, the standard error output stream.</blockquote> +<p>The DBENV->errx and <a href="../api_c/db_err.html">DB->errx</a> functions perform identically to the +DBENV->err and <a href="../api_c/db_err.html">DB->err</a> functions, except that they do not append +the final separator characters and standard error string to the error +message. +<h1>See Also</h1> +<a href="../api_c/env_create.html">db_env_create</a>, +<a href="../api_c/env_close.html">DBENV->close</a>, +<a href="../api_c/env_err.html">DBENV->err</a>, <a href="../api_c/env_err.html">DBENV->errx</a> +<a href="../api_c/env_open.html">DBENV->open</a>, +<a href="../api_c/env_remove.html">DBENV->remove</a>, +<a href="../api_c/env_set_alloc.html">DBENV->set_alloc</a>, +<a href="../api_c/env_set_cachesize.html">DBENV->set_cachesize</a>, +<a href="../api_c/env_set_data_dir.html">DBENV->set_data_dir</a>, +<a href="../api_c/env_set_errcall.html">DBENV->set_errcall</a>, +<a href="../api_c/env_set_errfile.html">DBENV->set_errfile</a>, +<a href="../api_c/env_set_errpfx.html">DBENV->set_errpfx</a>, +<a href="../api_c/env_set_feedback.html">DBENV->set_feedback</a>, +<a href="../api_c/env_set_flags.html">DBENV->set_flags</a>, +<a href="../api_c/env_set_mutexlocks.html">DBENV->set_mutexlocks</a>, +<a href="../api_c/env_set_pageyield.html">db_env_set_pageyield</a>, +<a href="../api_c/env_set_paniccall.html">DBENV->set_paniccall</a>, +<a href="../api_c/env_set_panicstate.html">db_env_set_panicstate</a>, +<a href="../api_c/env_set_rec_init.html">DBENV->set_recovery_init</a>, +<a href="../api_c/env_set_rpc_server.html">DBENV->set_rpc_server</a>, +<a href="../api_c/env_set_region_init.html">db_env_set_region_init</a>, +<a href="../api_c/env_set_shm_key.html">DBENV->set_shm_key</a>, +<a href="../api_c/env_set_tas_spins.html">db_env_set_tas_spins</a>, +<a href="../api_c/env_set_tmp_dir.html">DBENV->set_tmp_dir</a>, +<a href="../api_c/env_set_verbose.html">DBENV->set_verbose</a>, +<a href="../api_c/env_strerror.html">db_strerror</a> +and +<a href="../api_c/env_version.html">db_version</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/env_set_alloc.html b/db/docs/api_c/env_set_alloc.html new file mode 100644 index 000000000..dc85ebe89 --- /dev/null +++ b/db/docs/api_c/env_set_alloc.html @@ -0,0 +1,107 @@ +<!--Id: env_set_alloc.so,v 1.3 2001/05/01 14:23:07 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DBENV->set_alloc</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DBENV->set_alloc</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +int +DB_ENV->set_alloc(DB *db, + void *(*app_malloc)(size_t size), + void *(*app_realloc)(void *, size_t), + void (*app_free)(void *)); +</pre></h3> +<h1>Description</h1> +<p>Set the allocation functions used by the DB_ENV and DB +methods to allocate or free memory owned by the application. The +DBENV->set_alloc interface sets the allocation functions for a +database environment; the <a href="../api_c/db_set_alloc.html">DB->set_alloc</a> interface sets the +allocation functions for a single database. If both are specified, +functions specified for a database will be used in preference to +functions specified for environment. +<p>There are a number of interfaces in Berkeley DB where memory is allocated by +the library and then given to the application. For example, the +<a href="../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag, when specified in the <a href="../api_c/dbt.html">DBT</a> object, +will cause the DB methods to allocate and reallocate memory +which then becomes the responsibility of the calling application. (See +<a href="../api_c/dbt.html">DBT</a> for more information.) Other examples are the Berkeley DB +interfaces which return statistical information to the application: +<a href="../api_c/db_stat.html">DB->stat</a>, <a href="../api_c/lock_stat.html">lock_stat</a>, <a href="../api_c/log_archive.html">log_archive</a>, +<a href="../api_c/log_stat.html">log_stat</a>, <a href="../api_c/memp_stat.html">memp_stat</a>, and <a href="../api_c/txn_stat.html">txn_stat</a>. There is +one interface in the Berkeley DB where memory is allocated by the application +and then given to the library: <a href="../api_c/db_associate.html">DB->associate</a>. +<p>On systems in which there may be multiple library versions of the +standard allocation routines (notably Windows NT), transferring memory +between the library and the application will fail because the Berkeley DB +library allocates memory from a different heap than the application uses +to free it. To avoid this problem, the DBENV->set_alloc and +<a href="../api_c/db_set_alloc.html">DB->set_alloc</a> functions can be used to pass Berkeley DB references to the +application's allocation routines. +<p>It is not an error to not specify all three arguments to these +interfaces; however, in that case the specified interfaces must be +compatible with the standard library interfaces, as they will be used +together. The functions specified must match the calling +conventions of the ANSI C X3.159-1989 (ANSI C) library routines of the same name. +<p>The DBENV->set_alloc interface may be used only to configure Berkeley DB before +the <a href="../api_c/env_open.html">DBENV->open</a> interface is called. +<p>The DBENV->set_alloc function returns a non-zero error value on failure and 0 on success. +<h1>Errors</h1> +<p>The DBENV->set_alloc function may fail and return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +</dl> +<p>The DBENV->set_alloc function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. +If a catastrophic error has occurred, the DBENV->set_alloc function may fail and return +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>See Also</h1> +<a href="../api_c/env_create.html">db_env_create</a>, +<a href="../api_c/env_close.html">DBENV->close</a>, +<a href="../api_c/env_err.html">DBENV->err</a>, <a href="../api_c/env_err.html">DBENV->errx</a> +<a href="../api_c/env_open.html">DBENV->open</a>, +<a href="../api_c/env_remove.html">DBENV->remove</a>, +<a href="../api_c/env_set_alloc.html">DBENV->set_alloc</a>, +<a href="../api_c/env_set_cachesize.html">DBENV->set_cachesize</a>, +<a href="../api_c/env_set_data_dir.html">DBENV->set_data_dir</a>, +<a href="../api_c/env_set_errcall.html">DBENV->set_errcall</a>, +<a href="../api_c/env_set_errfile.html">DBENV->set_errfile</a>, +<a href="../api_c/env_set_errpfx.html">DBENV->set_errpfx</a>, +<a href="../api_c/env_set_feedback.html">DBENV->set_feedback</a>, +<a href="../api_c/env_set_flags.html">DBENV->set_flags</a>, +<a href="../api_c/env_set_mutexlocks.html">DBENV->set_mutexlocks</a>, +<a href="../api_c/env_set_pageyield.html">db_env_set_pageyield</a>, +<a href="../api_c/env_set_paniccall.html">DBENV->set_paniccall</a>, +<a href="../api_c/env_set_panicstate.html">db_env_set_panicstate</a>, +<a href="../api_c/env_set_rec_init.html">DBENV->set_recovery_init</a>, +<a href="../api_c/env_set_rpc_server.html">DBENV->set_rpc_server</a>, +<a href="../api_c/env_set_region_init.html">db_env_set_region_init</a>, +<a href="../api_c/env_set_shm_key.html">DBENV->set_shm_key</a>, +<a href="../api_c/env_set_tas_spins.html">db_env_set_tas_spins</a>, +<a href="../api_c/env_set_tmp_dir.html">DBENV->set_tmp_dir</a>, +<a href="../api_c/env_set_verbose.html">DBENV->set_verbose</a>, +<a href="../api_c/env_strerror.html">db_strerror</a> +and +<a href="../api_c/env_version.html">db_version</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/env_set_lg_regionmax.html b/db/docs/api_c/env_set_lg_regionmax.html new file mode 100644 index 000000000..322fdd830 --- /dev/null +++ b/db/docs/api_c/env_set_lg_regionmax.html @@ -0,0 +1,73 @@ +<!--Id: env_set_lg_regionmax.so,v 10.3 2001/05/01 14:23:08 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DBENV->set_lg_regionmax</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DBENV->set_lg_regionmax</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +int +DBENV->set_lg_regionmax(DB_ENV *dbenv, u_int32_t lg_regionmax); +</pre></h3> +<h1>Description</h1> +<p>Set the size of the underlying logging subsystem region, in bytes. By +default, or if the value is set to 0, the base region size is 60KB. +The log region is used to store filenames, and so may need to be +increased in size if a large number of files will be opened and +registered with the specified Berkeley DB environment's log manager. +<p>The DBENV->set_lg_regionmax interface may be used only to configure Berkeley DB before +the <a href="../api_c/env_open.html">DBENV->open</a> interface is called. +<p>The DBENV->set_lg_regionmax function returns a non-zero error value on failure and 0 on success. +<p>The database environment's log region size may also be set using the environment's +<b>DB_CONFIG</b> file. The syntax of the entry in that file is a +single line with the string "set_lg_regionmax", one or more whitespace characters, +and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database +environment is opened, it will silently overrule configuration done +before that time. +<h1>Errors</h1> +<p>The DBENV->set_lg_regionmax function may fail and return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>Called after <a href="../api_c/env_open.html">DBENV->open</a> was called. +</dl> +<p>The DBENV->set_lg_regionmax function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. +If a catastrophic error has occurred, the DBENV->set_lg_regionmax function may fail and return +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>See Also</h1> +<a href="../api_c/env_set_lg_bsize.html">DBENV->set_lg_bsize</a>, +<a href="../api_c/env_set_lg_dir.html">DBENV->set_lg_dir</a>, +<a href="../api_c/env_set_lg_max.html">DBENV->set_lg_max</a>, +<a href="../api_c/env_set_lg_regionmax.html">DBENV->set_lg_regionmax</a>, +<a href="../api_c/log_archive.html">log_archive</a>, +<a href="../api_c/log_compare.html">log_compare</a>, +<a href="../api_c/log_file.html">log_file</a>, +<a href="../api_c/log_flush.html">log_flush</a>, +<a href="../api_c/log_get.html">log_get</a>, +<a href="../api_c/log_put.html">log_put</a>, +<a href="../api_c/log_register.html">log_register</a>, +<a href="../api_c/log_stat.html">log_stat</a>, +and +<a href="../api_c/log_unregister.html">log_unregister</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/env_set_rpc_server.html b/db/docs/api_c/env_set_rpc_server.html new file mode 100644 index 000000000..17f0afe31 --- /dev/null +++ b/db/docs/api_c/env_set_rpc_server.html @@ -0,0 +1,97 @@ +<!--"@(#)env_set_rpc_server.so 10.1 (Sleepycat) 8/25/99"--> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DBENV->set_rpc_server</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DBENV->set_rpc_server</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +int +DBENV->set_rpc_server(DB_ENV *dbenv, CLIENT *client, char *host, + long cl_timeout, long sv_timeout, u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>Establishes a connection for this <b>dbenv</b> to a RPC server. If +the <b>client</b> argument is NULL, this call creates a connection to +the Berkeley DB server on the indicated hostname and sets up a channel for +communication. +If the <b>client</b> channel has been provided by the +application then Berkeley DB will use it as its connection and the <b>host</b> and +<b>cl_timeout</b> fields are ignored. +<p>The <b>cl_timeout</b> argument specifies the number of seconds the client +should wait for results to come back from the server. Once the timeout +has expired on any communication with the server, DB_NOSERVER will +be returned. If this value is zero, a default timeout is used. +<p>The <b>sv_timeout</b> argument specifies the number of seconds the server +should allow a client connection to remain idle before assuming that the +client is gone. Once that timeout has been reached, the server releases +all resources associated with that client connection. Subsequent attempts +by that client to communicate with the server result in +DB_NOSERVER_ID, indicating that an invalid identifier has been +given to the server. This value can be considered a hint to the server. +The server may alter this value based on its own policies or allowed +values. If this value is zero, a default timeout is used. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>When the DBENV->set_rpc_server function has been called, any subsequent calls +to Berkeley DB library interfaces may return either <a name="DB_NOSERVER">DB_NOSERVER</a> or +<a name="DB_NOSERVER_ID">DB_NOSERVER_ID</a>. +<p>The DBENV->set_rpc_server function returns a non-zero error value on failure and 0 on success. +<h1>Errors</h1> +<p>The DBENV->set_rpc_server function may fail and return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +</dl> +<p>The DBENV->set_rpc_server function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. +If a catastrophic error has occurred, the DBENV->set_rpc_server function may fail and return +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>See Also</h1> +<a href="../api_c/env_create.html">db_env_create</a>, +<a href="../api_c/env_close.html">DBENV->close</a>, +<a href="../api_c/env_err.html">DBENV->err</a>, <a href="../api_c/env_err.html">DBENV->errx</a> +<a href="../api_c/env_open.html">DBENV->open</a>, +<a href="../api_c/env_remove.html">DBENV->remove</a>, +<a href="../api_c/env_set_alloc.html">DBENV->set_alloc</a>, +<a href="../api_c/env_set_cachesize.html">DBENV->set_cachesize</a>, +<a href="../api_c/env_set_data_dir.html">DBENV->set_data_dir</a>, +<a href="../api_c/env_set_errcall.html">DBENV->set_errcall</a>, +<a href="../api_c/env_set_errfile.html">DBENV->set_errfile</a>, +<a href="../api_c/env_set_errpfx.html">DBENV->set_errpfx</a>, +<a href="../api_c/env_set_feedback.html">DBENV->set_feedback</a>, +<a href="../api_c/env_set_flags.html">DBENV->set_flags</a>, +<a href="../api_c/env_set_mutexlocks.html">DBENV->set_mutexlocks</a>, +<a href="../api_c/env_set_pageyield.html">db_env_set_pageyield</a>, +<a href="../api_c/env_set_paniccall.html">DBENV->set_paniccall</a>, +<a href="../api_c/env_set_panicstate.html">db_env_set_panicstate</a>, +<a href="../api_c/env_set_rec_init.html">DBENV->set_recovery_init</a>, +<a href="../api_c/env_set_rpc_server.html">DBENV->set_rpc_server</a>, +<a href="../api_c/env_set_region_init.html">db_env_set_region_init</a>, +<a href="../api_c/env_set_shm_key.html">DBENV->set_shm_key</a>, +<a href="../api_c/env_set_tas_spins.html">db_env_set_tas_spins</a>, +<a href="../api_c/env_set_tmp_dir.html">DBENV->set_tmp_dir</a>, +<a href="../api_c/env_set_verbose.html">DBENV->set_verbose</a>, +<a href="../api_c/env_strerror.html">db_strerror</a> +and +<a href="../api_c/env_version.html">db_version</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/txn_discard.html b/db/docs/api_c/txn_discard.html new file mode 100644 index 000000000..7f6f09aae --- /dev/null +++ b/db/docs/api_c/txn_discard.html @@ -0,0 +1,72 @@ +<!--Id: txn_discard.so,v 10.2 2001/05/05 01:49:17 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: txn_discard</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>txn_discard</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +int +txn_discard(DB_TXN *tid, u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>The txn_discard function frees up all the per-process resources +associated with the specified DB_TXN handle, neither committing +nor aborting the transaction. This call may be used only after calls +to <a href="../api_c/txn_recover.html">txn_recover</a> when there are multiple global transaction +managers recovering transactions in a single Berkeley DB environment. Any +transactions returned by <a href="../api_c/txn_recover.html">txn_recover</a> that are not handled by +the current global transaction manager should be discarded using +txn_discard. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>The txn_discard function returns EINVAL if the transaction handle does +not refer to a transaction that was recovered into a prepared but not +yet completed state. +<p>Otherwise, the txn_discard function returns a non-zero error value on failure and 0 on success. +<h1>Errors</h1> +<p>The txn_discard function may fail and return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>The transaction handle does not refer to a transaction that was +recovered into a prepared but not yet completed state. +</dl> +<p>The txn_discard function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. +If a catastrophic error has occurred, the txn_discard function may fail and return +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>See Also</h1> +<a href="../api_c/env_set_tx_max.html">DBENV->set_tx_max</a>, +<a href="../api_c/env_set_tx_recover.html">DBENV->set_tx_recover</a>, +<a href="../api_c/env_set_tx_timestamp.html">DBENV->set_tx_timestamp</a>, +<a href="../api_c/txn_abort.html">txn_abort</a>, +<a href="../api_c/txn_begin.html">txn_begin</a>, +<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>, +<a href="../api_c/txn_commit.html">txn_commit</a>, +<a href="../api_c/txn_discard.html">txn_discard</a>, +<a href="../api_c/txn_id.html">txn_id</a>, +<a href="../api_c/txn_prepare.html">txn_prepare</a>, +<a href="../api_c/txn_recover.html">txn_recover</a>, +and +<a href="../api_c/txn_stat.html">txn_stat</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_c/txn_recover.html b/db/docs/api_c/txn_recover.html new file mode 100644 index 000000000..fd91fce01 --- /dev/null +++ b/db/docs/api_c/txn_recover.html @@ -0,0 +1,82 @@ +<!--Id: txn_recover.so,v 10.6 2001/05/04 14:31:05 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: txn_recover</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>txn_recover</h1> +</td> +<td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db.h> +<p> +int txn_recover(DB_ENV *dbenv, DB_PREPLIST preplist[], + long count, long *retp, u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>The txn_recover interface returns a list of prepared but not +yet resolved transactions. The txn_recover function should only be +called after the environment has been recovered. +<p>On return from txn_recover, the <b>preplist</b> argument will +be filled in with a list of transactions that must be resolved by the +application (committed, aborted or discarded). The <b>preplist</b> +argument is a structure of type DB_PREPLIST; the following DB_PREPLIST +fields will be filled in: +<p><dl compact> +<p><dt>DB_TXN *txn;<dd>The transaction handle for the transaction. +<p><dt>u_int8_t gid[<a href="../api_c/txn_prepare.html#DB_XIDDATASIZE">DB_XIDDATASIZE</a>];<dd>The global transaction ID for the transaction. The global transaction +ID is the one specified when the transaction was prepared. The +application is responsible for ensuring uniqueness among global +transaction IDs. +</dl> +<p>The application must call <a href="../api_c/txn_abort.html">txn_abort</a>, <a href="../api_c/txn_commit.html">txn_commit</a> or +<a href="../api_c/txn_discard.html">txn_discard</a> on each returned DB_TXN handle before +starting any new operations. +<p>The <b>count</b> parameter specifies the number of available entries +in the passed-in <b>preplist</b> array. The <b>retp</b> parameter +returns the number of entries txn_recover has filled in, in the +array. +<p>The <b>flags</b> value must be set to one of the following values: +<p><dl compact> +<p><dt><a name="DB_FIRST">DB_FIRST</a><dd>Begin returning a list of prepared, but not yet resolved transactions. +<p><dt><a name="DB_NEXT">DB_NEXT</a><dd>Continue returning a list of prepared, but not yet resolved transactions, +starting where the last call to txn_recover left off. +</dl> +<p>The txn_recover function returns a non-zero error value on failure and 0 on success. +<h1>Errors</h1> +<p>The txn_recover function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. +If a catastrophic error has occurred, the txn_recover function may fail and return +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>See Also</h1> +<a href="../api_c/env_set_tx_max.html">DBENV->set_tx_max</a>, +<a href="../api_c/env_set_tx_recover.html">DBENV->set_tx_recover</a>, +<a href="../api_c/env_set_tx_timestamp.html">DBENV->set_tx_timestamp</a>, +<a href="../api_c/txn_abort.html">txn_abort</a>, +<a href="../api_c/txn_begin.html">txn_begin</a>, +<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>, +<a href="../api_c/txn_commit.html">txn_commit</a>, +<a href="../api_c/txn_discard.html">txn_discard</a>, +<a href="../api_c/txn_id.html">txn_id</a>, +<a href="../api_c/txn_prepare.html">txn_prepare</a>, +<a href="../api_c/txn_recover.html">txn_recover</a>, +and +<a href="../api_c/txn_stat.html">txn_stat</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/db_associate.html b/db/docs/api_cxx/db_associate.html new file mode 100644 index 000000000..2d17da91c --- /dev/null +++ b/db/docs/api_cxx/db_associate.html @@ -0,0 +1,158 @@ +<!--Id: db_associate.so,v 10.9 2001/05/05 01:49:09 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: Db::associate</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>Db::associate</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +DB::associate(Db *secondary, + int (*callback)(Db *, const Dbt *, const Dbt *, Dbt *), + u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>The Db::associate function is used to declare one database a +secondary index for a primary database. After a secondary database has +been "associated" with a primary database, all updates to the primary +will be automatically reflected in the secondary and all reads from the +secondary will return corresponding data from the primary. Note that +as primary keys must be unique for secondary indices to work, the +primary database must be configured without support for duplicate data +items. See <a href="../ref/am/second.html">Secondary indices</a> for +more information. +<p>The associate method called should be a method off a database handle for +the primary database that is to be indexed. +The <b>secondary</b> argument should be an open database handle of +either a newly created and empty database that is to be used to store +a secondary index, or of a database that was previously associated with +the same primary and contains a secondary index. Note that it is not +safe to associate as a secondary database a handle that is in use by +another thread of control or has open cursors. If the handle was opened +with the <a href="../api_cxx/env_open.html#DB_THREAD">DB_THREAD</a> flag it is safe to use it in multiple threads +of control after the Db::associate method has returned. Note also +that either secondary keys must be unique or the secondary database must +be configured with support for duplicate data items. +<p>The <b>callback</b> argument should refer to a callback function that +creates a secondary key from a given primary key and data pair. When +called, the first argument will be the secondary <a href="../api_cxx/db_class.html">Db</a> handle; the +second and third arguments will be <a href="../api_cxx/dbt_class.html">Dbt</a>s containing a primary +key and datum respectively; and the fourth argument will be a zeroed +DBT in which the callback function should fill in <b>data</b> and +<b>size</b> fields that describe the secondary key. +<p>If the callback function needs to allocate memory for the <b>data</b> +field rather than simply pointing into the primary key or datum, the +<b>flags</b> field of the returned <a href="../api_cxx/dbt_class.html">Dbt</a> should be set to +DB_DBT_APPMALLOC, which indicates that Berkeley DB should free the +memory when it is done with it. +<p>If any key/data pair in the primary yields a null secondary key and +should be left out of the secondary index, the callback function may +optionally return DB_DONOTINDEX. Otherwise, the callback +function should return 0 in case of success or any other integer error +code in case of failure; the error code will be returned from the Berkeley DB +interface call that initiated the callback. Note that if the callback +function returns DB_DONOTINDEX for any key/data pairs in the +primary database, the secondary index will not contain any reference to +those key/data pairs, and such operations as cursor iterations and range +queries will reflect only the corresponding subset of the database. If +this is not desirable, the application should ensure that the callback +function is well-defined for all possible values and never returns +DB_DONOTINDEX. +<p>The callback argument may be NULL if and only if both the primary and +secondary database handles were opened with the <a href="../api_cxx/db_open.html#DB_RDONLY">DB_RDONLY</a> flag. +<p>The <b>flags</b> value must be set to 0 or +the following value: +<p><dl compact> +<p><dt><a name="DB_CREATE">DB_CREATE</a><dd>If the secondary database is empty, walk through the primary and create +an index to it in the empty secondary. Note that this operation is +potentially very expensive. +<p>If the secondary database has been opened in an environment configured +with transactions, each put necessary for its creation will be done in +the context of a transaction created for the purpose. +<p>Note that care should be taken not to use a newly-created secondary +database in another thread of control until the Db::associate +call has returned successfully in the first thread. +</dl> +<h1>Errors</h1> +<p>The Db::associate method may fail and throw an exception or return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>The secondary database handle has already been associated with this or +another database handle. +<p>The secondary database handle is not open. +<p>The primary database has been configured to allow duplicates. +</dl> +<p>The Db::associate method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the Db::associate method may fail and either +return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>Class</h1> +<a href="../api_cxx/db_class.html">Db</a> +<h1>See Also</h1> +<a href="../api_cxx/db_associate.html">Db::associate</a>, +<a href="../api_cxx/db_close.html">Db::close</a>, +<a href="../api_cxx/db_cursor.html">Db::cursor</a>, +<a href="../api_cxx/db_del.html">Db::del</a>, +<a href="../api_cxx/db_err.html">Db::err</a>, <a href="../api_cxx/db_err.html">Db::errx</a> +<a href="../api_cxx/db_fd.html">Db::fd</a>, +<a href="../api_cxx/db_get.html">Db::get</a>, +<a href="../api_cxx/db_get.html">Db::pget</a>, +<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>, +<a href="../api_cxx/db_get_type.html">Db::get_type</a>, +<a href="../api_cxx/db_join.html">Db::join</a>, +<a href="../api_cxx/db_key_range.html">Db::key_range</a>, +<a href="../api_cxx/db_open.html">Db::open</a>, +<a href="../api_cxx/db_put.html">Db::put</a>, +<a href="../api_cxx/db_remove.html">Db::remove</a>, +<a href="../api_cxx/db_rename.html">Db::rename</a>, +<a href="../api_cxx/db_set_alloc.html">Db::set_alloc</a>, +<a href="../api_cxx/db_set_append_recno.html">Db::set_append_recno</a>, +<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>, +<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>, +<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>, +<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>, +<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>, +<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>, +<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>, +<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>, +<a href="../api_cxx/db_set_feedback.html">Db::set_feedback</a>, +<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>, +<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>, +<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>, +<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>, +<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>, +<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>, +<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>, +<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>, +<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>, +<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>, +<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>, +<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>, +<a href="../api_cxx/db_stat.html">Db::stat</a>, +<a href="../api_cxx/db_sync.html">Db::sync</a>, +<a href="../api_cxx/db_truncate.html">Db::truncate</a>, +<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>, +and +<a href="../api_cxx/db_verify.html">Db::verify</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/db_set_alloc.html b/db/docs/api_cxx/db_set_alloc.html new file mode 100644 index 000000000..194ec431a --- /dev/null +++ b/db/docs/api_cxx/db_set_alloc.html @@ -0,0 +1,138 @@ +<!--Id: db_set_alloc.so,v 10.1 2001/04/04 19:06:25 bostic Exp --> +<!--Id: env_set_alloc.so,v 1.3 2001/05/01 14:23:07 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: Db::set_alloc</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>Db::set_alloc</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +extern "C" { + typedef void *(*db_malloc_fcn_type)(void *, size_t); + typedef void *(*db_realloc_fcn_type)(size_t); + typedef void *(*db_free_fcn_type)(void *); +}; +<p> +int +Db::set_alloc(db_malloc_fcn_type app_malloc, + db_realloc_fcn_type app_realloc, + db_free_fcn_type app_free); +</pre></h3> +<h1>Description</h1> +<p>Set the allocation functions used by the <a href="../api_cxx/dbenv_class.html">DbEnv</a> and <a href="../api_cxx/db_class.html">Db</a> +methods to allocate or free memory owned by the application. The +<a href="../api_cxx/env_set_alloc.html">DbEnv::set_alloc</a> interface sets the allocation functions for a +database environment; the Db::set_alloc interface sets the +allocation functions for a single database. If both are specified, +functions specified for a database will be used in preference to +functions specified for environment. +<p>There are a number of interfaces in Berkeley DB where memory is allocated by +the library and then given to the application. For example, the +<a href="../api_cxx/dbt_class.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag, when specified in the <a href="../api_cxx/dbt_class.html">Dbt</a> object, +will cause the <a href="../api_cxx/db_class.html">Db</a> methods to allocate and reallocate memory +which then becomes the responsibility of the calling application. (See +<a href="../api_cxx/dbt_class.html">Dbt</a> for more information.) Other examples are the Berkeley DB +interfaces which return statistical information to the application: +<a href="../api_cxx/db_stat.html">Db::stat</a>, <a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>, <a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>, +<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>, <a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>, and <a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>. There is +one interface in the Berkeley DB where memory is allocated by the application +and then given to the library: <a href="../api_cxx/db_associate.html">Db::associate</a>. +<p>On systems in which there may be multiple library versions of the +standard allocation routines (notably Windows NT), transferring memory +between the library and the application will fail because the Berkeley DB +library allocates memory from a different heap than the application uses +to free it. To avoid this problem, the <a href="../api_cxx/env_set_alloc.html">DbEnv::set_alloc</a> and +Db::set_alloc methods can be used to pass Berkeley DB references to the +application's allocation routines. +<p>It is not an error to not specify all three arguments to these +interfaces; however, in that case the specified interfaces must be +compatible with the standard library interfaces, as they will be used +together. The methods specified must match the calling +conventions of the ANSI C X3.159-1989 (ANSI C) library routines of the same name. +<p>For <a href="../api_cxx/db_class.html">Db</a> handles opened inside of Berkeley DB environments, calling the +Db::set_alloc method affects the entire environment and is equivalent to calling +the <a href="../api_cxx/env_set_alloc.html">DbEnv::set_alloc</a> method. +<p>The Db::set_alloc interface may be used only to configure Berkeley DB before +the <a href="../api_cxx/db_open.html">Db::open</a> interface is called. +<p>The Db::set_alloc method either returns a non-zero error value or throws an exception that +encapsulates a non-zero error value on failure, and returns 0 on success. +<h1>Errors</h1> +<p>The Db::set_alloc method may fail and throw an exception or return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +</dl> +<p>The Db::set_alloc method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the Db::set_alloc method may fail and either +return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>Class</h1> +<a href="../api_cxx/db_class.html">Db</a> +<h1>See Also</h1> +<a href="../api_cxx/db_associate.html">Db::associate</a>, +<a href="../api_cxx/db_close.html">Db::close</a>, +<a href="../api_cxx/db_cursor.html">Db::cursor</a>, +<a href="../api_cxx/db_del.html">Db::del</a>, +<a href="../api_cxx/db_err.html">Db::err</a>, <a href="../api_cxx/db_err.html">Db::errx</a> +<a href="../api_cxx/db_fd.html">Db::fd</a>, +<a href="../api_cxx/db_get.html">Db::get</a>, +<a href="../api_cxx/db_get.html">Db::pget</a>, +<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>, +<a href="../api_cxx/db_get_type.html">Db::get_type</a>, +<a href="../api_cxx/db_join.html">Db::join</a>, +<a href="../api_cxx/db_key_range.html">Db::key_range</a>, +<a href="../api_cxx/db_open.html">Db::open</a>, +<a href="../api_cxx/db_put.html">Db::put</a>, +<a href="../api_cxx/db_remove.html">Db::remove</a>, +<a href="../api_cxx/db_rename.html">Db::rename</a>, +<a href="../api_cxx/db_set_alloc.html">Db::set_alloc</a>, +<a href="../api_cxx/db_set_append_recno.html">Db::set_append_recno</a>, +<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>, +<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>, +<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>, +<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>, +<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>, +<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>, +<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>, +<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>, +<a href="../api_cxx/db_set_feedback.html">Db::set_feedback</a>, +<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>, +<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>, +<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>, +<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>, +<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>, +<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>, +<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>, +<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>, +<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>, +<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>, +<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>, +<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>, +<a href="../api_cxx/db_stat.html">Db::stat</a>, +<a href="../api_cxx/db_sync.html">Db::sync</a>, +<a href="../api_cxx/db_truncate.html">Db::truncate</a>, +<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>, +and +<a href="../api_cxx/db_verify.html">Db::verify</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/db_truncate.html b/db/docs/api_cxx/db_truncate.html new file mode 100644 index 000000000..31f34448e --- /dev/null +++ b/db/docs/api_cxx/db_truncate.html @@ -0,0 +1,114 @@ +<!--Id: db_truncate.so,v 1.6 2001/04/18 13:44:46 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: Db::truncate</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>Db::truncate</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +int +Db::truncate(const char *file, + const char *database, u_int32_t *countp, u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>The Db::truncate interface empties the database specified by +the <b>file</b> and <b>database</b> arguments, discarding all records +it contains. If no <b>database</b> is specified, the underlying file +represented by <b>file</b> is emptied. +The number of records discarded from the database is returned in +<b>countp</b>. +<p>Truncate must have exclusive use of the database. While truncate is +transaction-protected, it cannot be part of a application-created +transaction. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>After Db::truncate has been called, regardless of its return, +the <a href="../api_cxx/db_class.html">Db</a> handle may not be accessed again. +<p>The Db::truncate method either returns a non-zero error value or throws an exception that +encapsulates a non-zero error value on failure, and returns 0 on success. +<h1>Environment Variables</h1> +<p><dl compact> +<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using +<a href="../api_cxx/env_open.html">DbEnv::open</a>, the environment variable <b>DB_HOME</b> may be used +as the path of the database environment home. Specifically, Db::truncate +is affected by the configuration value DB_DATA_DIR. +</dl> +<h1>Errors</h1> +<p>The Db::truncate method may fail and throw an exception or return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>A database in the file is currently open. +</dl> +<p>The Db::truncate method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the Db::truncate method may fail and either +return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>Class</h1> +<a href="../api_cxx/db_class.html">Db</a> +<h1>See Also</h1> +<a href="../api_cxx/db_associate.html">Db::associate</a>, +<a href="../api_cxx/db_close.html">Db::close</a>, +<a href="../api_cxx/db_cursor.html">Db::cursor</a>, +<a href="../api_cxx/db_del.html">Db::del</a>, +<a href="../api_cxx/db_err.html">Db::err</a>, <a href="../api_cxx/db_err.html">Db::errx</a> +<a href="../api_cxx/db_fd.html">Db::fd</a>, +<a href="../api_cxx/db_get.html">Db::get</a>, +<a href="../api_cxx/db_get.html">Db::pget</a>, +<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>, +<a href="../api_cxx/db_get_type.html">Db::get_type</a>, +<a href="../api_cxx/db_join.html">Db::join</a>, +<a href="../api_cxx/db_key_range.html">Db::key_range</a>, +<a href="../api_cxx/db_open.html">Db::open</a>, +<a href="../api_cxx/db_put.html">Db::put</a>, +<a href="../api_cxx/db_remove.html">Db::remove</a>, +<a href="../api_cxx/db_rename.html">Db::rename</a>, +<a href="../api_cxx/db_set_alloc.html">Db::set_alloc</a>, +<a href="../api_cxx/db_set_append_recno.html">Db::set_append_recno</a>, +<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>, +<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>, +<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>, +<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>, +<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>, +<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>, +<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>, +<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>, +<a href="../api_cxx/db_set_feedback.html">Db::set_feedback</a>, +<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>, +<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>, +<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>, +<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>, +<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>, +<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>, +<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>, +<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>, +<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>, +<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>, +<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>, +<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>, +<a href="../api_cxx/db_stat.html">Db::stat</a>, +<a href="../api_cxx/db_sync.html">Db::sync</a>, +<a href="../api_cxx/db_truncate.html">Db::truncate</a>, +<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>, +and +<a href="../api_cxx/db_verify.html">Db::verify</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/dbt_bulk.html b/db/docs/api_cxx/dbt_bulk.html new file mode 100644 index 000000000..aabb547d6 --- /dev/null +++ b/db/docs/api_cxx/dbt_bulk.html @@ -0,0 +1,81 @@ +<!--Id: dbt_bulk.so,v 10.5 2001/05/05 01:49:13 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DBT</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DBT: Bulk Retrieval</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> + <a name="3"><!--meow--></a> +<p>If either of the DB_MULTIPLE or DB_MULTIPLE_KEY flags +were specified to the <a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> methods, the data +<a href="../api_cxx/dbt_class.html">Dbt</a> returned by those interfaces will refer to a buffer that +is filled with data. Access to that data is through the following +macros: +<p><dl compact> +<p><dt><a name="DB_MULTIPLE_INIT">DB_MULTIPLE_INIT</a><dd><pre>DB_MULTIPLE_INIT(void *pointer, <a href="../api_cxx/dbt_class.html">Dbt</a> *data);</pre> +<p>Initialize the retrieval. The <b>pointer</b> argument is a variable +to be initialized. The <b>data</b> argument is a <a href="../api_cxx/dbt_class.html">Dbt</a> structure +returned from a successful call to <a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> +for which one of the DB_MULTIPLE or DB_MULTIPLE_KEY +flags was specified. +<p><dt><a name="DB_MULTIPLE_NEXT">DB_MULTIPLE_NEXT</a><dd><pre>DB_MULTIPLE_NEXT(void *pointer, <a href="../api_cxx/dbt_class.html">Dbt</a> *data, void *retdata, size_t retdlen);</pre> +<p>The <b>data</b> argument is a <a href="../api_cxx/dbt_class.html">Dbt</a> structure returned from a +successful call to <a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> for which the +DB_MULTIPLE flag was specified. The <b>pointer</b> and +<b>data</b> arguments must have been previously initialized by a call +to DB_MULTIPLE_INIT. The <b>retdata</b> argument is set to +refer to the next data element in the returned set, and the +<b>retdlen</b> argument is set to the length, in bytes, of that data +element. When used with the Queue and Recno access methods, +<b>retdata</b> will be set to NULL for deleted records. The +<b>pointer</b> argument is set to NULL if there are no more data +elements in the returned set. +<p><dt><a name="DB_MULTIPLE_KEY_NEXT">DB_MULTIPLE_KEY_NEXT</a><dd><pre>DB_MULTIPLE_KEY_NEXT(void *pointer, <a href="../api_cxx/dbt_class.html">Dbt</a> *data, + void *retkey, size_t retklen, void *retdata, size_t retdlen);</pre> +<p>The <b>data</b> argument is a <a href="../api_cxx/dbt_class.html">Dbt</a> structure returned from a +successful call to <a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> for which the +DB_MULTIPLE_KEY flag was specified. The <b>pointer</b> and +<b>data</b> arguments must have been previously initialized by a call +to DB_MULTIPLE_INIT. The <b>retkey</b> argument is set to +refer to the next key element in the returned set, and the +<b>retklen</b> argument is set to the length, in bytes, of that key +element. The <b>retdata</b> argument is set to refer to the next data +element in the returned set, and the <b>retdlen</b> argument is set to +the length, in bytes, of that data element. The <b>pointer</b> and +argument is set to NULL if there are no more key/data pairs in the +returned set. +<p><dt><a name="DB_MULTIPLE_RECNO_NEXT">DB_MULTIPLE_RECNO_NEXT</a><dd><pre>DB_MULTIPLE_RECNO_NEXT(void *pointer, <a href="../api_cxx/dbt_class.html">Dbt</a> *data, + db_recno_t recno, void * retdata, size_t retdlen);</pre> +<p>The <b>data</b> argument is a <a href="../api_cxx/dbt_class.html">Dbt</a> structure returned from a +successful call to <a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> for which the +DB_MULTIPLE_KEY flag was specified. The <b>pointer</b> and +<b>data</b> arguments must have been previously initialized by a call +to DB_MULTIPLE_INIT. The <b>recno</b> argument is set to the +record number of the next record in the returned set. The +<b>retdata</b> argument is set to refer to the next data element in +the returned set, and the <b>retdlen</b> argument is set to the length, +in bytes, of that data element. When used with the Queue and Recno +access methods, <b>retdata</b> will be set to NULL for deleted +records. The <b>pointer</b> argument is set to NULL if there are +no more key/data pairs in the returned set. +</dl> +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/env_err.html b/db/docs/api_cxx/env_err.html new file mode 100644 index 000000000..26096abde --- /dev/null +++ b/db/docs/api_cxx/env_err.html @@ -0,0 +1,101 @@ +<!--Id: env_err.so,v 10.13 2001/04/05 20:01:26 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbEnv::err</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbEnv::err</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +DbEnv::err(int error, const char *fmt, ...); +<p> +DbEnv::errx(const char *fmt, ...); +</pre></h3> +<h1>Description</h1> +<p>The DbEnv::err, DbEnv::errx, <a href="../api_cxx/db_err.html">Db::err</a> and +<a href="../api_cxx/db_err.html">Db::errx</a> methods provide error-messaging functionality for +applications written using the Berkeley DB library. +<p>The DbEnv::err method constructs an error message consisting of the +following elements: +<p><blockquote><p><dl compact> +<p><dt>An optional prefix string<dd>If no error callback method has been set using the +<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a> method, any prefix string specified using the +<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a> method, followed by two separating characters: a colon +and a <space> character. +<p><dt>An optional printf-style message<dd>The supplied message <b>fmt</b>, if non-NULL, in which the +ANSI C X3.159-1989 (ANSI C) printf function specifies how subsequent arguments +are converted for output. +<p><dt>A separator<dd>Two separating characters: a colon and a <space> character. +<p><dt>A standard error string<dd>The standard system or Berkeley DB library error string associated with the +<b>error</b> value, as returned by the <a href="../api_cxx/env_strerror.html">DbEnv::strerror</a> method. +</dl> +</blockquote> +<p>This constructed error message is then handled as follows: +<p><blockquote> +<p>If an error callback method has been set (see <a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a> +and <a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>), that method is called with two +arguments: any prefix string specified (see <a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a> and +<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>) and the error message. +<p>If a C library FILE * has been set (see <a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a> and +<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>), the error message is written to that output +stream. +<p>If a C++ ostream has been set +(see <a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>), the error message is written to that +stream. +<p>If none of these output options has been configured, the error message +is written to stderr, the standard error output stream.</blockquote> +<p>The DbEnv::errx and <a href="../api_cxx/db_err.html">Db::errx</a> methods perform identically to the +DbEnv::err and <a href="../api_cxx/db_err.html">Db::err</a> methods, except that they do not append +the final separator characters and standard error string to the error +message. +<h1>Class</h1> +<a href="../api_cxx/dbenv_class.html">DbEnv</a> +<h1>See Also</h1> +<a href="../api_cxx/env_close.html">DbEnv::close</a>, +<a href="../api_cxx/env_err.html">DbEnv::err</a>, <a href="../api_cxx/env_err.html">DbEnv::errx</a> +<a href="../api_cxx/env_open.html">DbEnv::open</a>, +<a href="../api_cxx/env_remove.html">DbEnv::remove</a>, +<a href="../api_cxx/env_set_alloc.html">DbEnv::set_alloc</a>, +<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>, +<a href="../api_cxx/env_set_data_dir.html">DbEnv::set_data_dir</a>, +<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>, +<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>, +<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>, +<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>, +<a href="../api_cxx/env_set_feedback.html">DbEnv::set_feedback</a>, +<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>, +<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>, +<a href="../api_cxx/env_set_pageyield.html">DbEnv::set_pageyield</a>, +<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>, +<a href="../api_cxx/env_set_panicstate.html">DbEnv::set_panicstate</a>, +<a href="../api_cxx/env_set_rec_init.html">DbEnv::set_recovery_init</a>, +<a href="../api_cxx/env_set_rpc_server.html">DbEnv::set_rpc_server</a>, +<a href="../api_cxx/env_set_region_init.html">DbEnv::set_region_init</a>, +<a href="../api_cxx/env_set_shm_key.html">DbEnv::set_shm_key</a>, +<a href="../api_cxx/env_set_tas_spins.html">DbEnv::set_tas_spins</a>, +<a href="../api_cxx/env_set_tmp_dir.html">DbEnv::set_tmp_dir</a>, +<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>, +<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a> +and +<a href="../api_cxx/env_version.html">DbEnv::version</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/env_set_alloc.html b/db/docs/api_cxx/env_set_alloc.html new file mode 100644 index 000000000..7838fe017 --- /dev/null +++ b/db/docs/api_cxx/env_set_alloc.html @@ -0,0 +1,116 @@ +<!--Id: env_set_alloc.so,v 1.3 2001/05/01 14:23:07 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbEnv::set_alloc</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbEnv::set_alloc</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +extern "C" { + typedef void *(*db_malloc_fcn_type)(void *, size_t); + typedef void *(*db_realloc_fcn_type)(size_t); + typedef void *(*db_free_fcn_type)(void *); +}; +<p> +int +DbEnv::set_alloc(db_malloc_fcn_type app_malloc, + db_realloc_fcn_type app_realloc, + db_free_fcn_type app_free); +</pre></h3> +<h1>Description</h1> +<p>Set the allocation functions used by the <a href="../api_cxx/dbenv_class.html">DbEnv</a> and <a href="../api_cxx/db_class.html">Db</a> +methods to allocate or free memory owned by the application. The +DbEnv::set_alloc interface sets the allocation functions for a +database environment; the <a href="../api_cxx/db_set_alloc.html">Db::set_alloc</a> interface sets the +allocation functions for a single database. If both are specified, +functions specified for a database will be used in preference to +functions specified for environment. +<p>There are a number of interfaces in Berkeley DB where memory is allocated by +the library and then given to the application. For example, the +<a href="../api_cxx/dbt_class.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag, when specified in the <a href="../api_cxx/dbt_class.html">Dbt</a> object, +will cause the <a href="../api_cxx/db_class.html">Db</a> methods to allocate and reallocate memory +which then becomes the responsibility of the calling application. (See +<a href="../api_cxx/dbt_class.html">Dbt</a> for more information.) Other examples are the Berkeley DB +interfaces which return statistical information to the application: +<a href="../api_cxx/db_stat.html">Db::stat</a>, <a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>, <a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>, +<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>, <a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>, and <a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>. There is +one interface in the Berkeley DB where memory is allocated by the application +and then given to the library: <a href="../api_cxx/db_associate.html">Db::associate</a>. +<p>On systems in which there may be multiple library versions of the +standard allocation routines (notably Windows NT), transferring memory +between the library and the application will fail because the Berkeley DB +library allocates memory from a different heap than the application uses +to free it. To avoid this problem, the DbEnv::set_alloc and +<a href="../api_cxx/db_set_alloc.html">Db::set_alloc</a> methods can be used to pass Berkeley DB references to the +application's allocation routines. +<p>It is not an error to not specify all three arguments to these +interfaces; however, in that case the specified interfaces must be +compatible with the standard library interfaces, as they will be used +together. The methods specified must match the calling +conventions of the ANSI C X3.159-1989 (ANSI C) library routines of the same name. +<p>The DbEnv::set_alloc interface may be used only to configure Berkeley DB before +the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called. +<p>The DbEnv::set_alloc method either returns a non-zero error value or throws an exception that +encapsulates a non-zero error value on failure, and returns 0 on success. +<h1>Errors</h1> +<p>The DbEnv::set_alloc method may fail and throw an exception or return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +</dl> +<p>The DbEnv::set_alloc method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbEnv::set_alloc method may fail and either +return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>Class</h1> +<a href="../api_cxx/dbenv_class.html">DbEnv</a> +<h1>See Also</h1> +<a href="../api_cxx/env_close.html">DbEnv::close</a>, +<a href="../api_cxx/env_err.html">DbEnv::err</a>, <a href="../api_cxx/env_err.html">DbEnv::errx</a> +<a href="../api_cxx/env_open.html">DbEnv::open</a>, +<a href="../api_cxx/env_remove.html">DbEnv::remove</a>, +<a href="../api_cxx/env_set_alloc.html">DbEnv::set_alloc</a>, +<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>, +<a href="../api_cxx/env_set_data_dir.html">DbEnv::set_data_dir</a>, +<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>, +<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>, +<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>, +<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>, +<a href="../api_cxx/env_set_feedback.html">DbEnv::set_feedback</a>, +<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>, +<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>, +<a href="../api_cxx/env_set_pageyield.html">DbEnv::set_pageyield</a>, +<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>, +<a href="../api_cxx/env_set_panicstate.html">DbEnv::set_panicstate</a>, +<a href="../api_cxx/env_set_rec_init.html">DbEnv::set_recovery_init</a>, +<a href="../api_cxx/env_set_rpc_server.html">DbEnv::set_rpc_server</a>, +<a href="../api_cxx/env_set_region_init.html">DbEnv::set_region_init</a>, +<a href="../api_cxx/env_set_shm_key.html">DbEnv::set_shm_key</a>, +<a href="../api_cxx/env_set_tas_spins.html">DbEnv::set_tas_spins</a>, +<a href="../api_cxx/env_set_tmp_dir.html">DbEnv::set_tmp_dir</a>, +<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>, +<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a> +and +<a href="../api_cxx/env_version.html">DbEnv::version</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/env_set_lg_regionmax.html b/db/docs/api_cxx/env_set_lg_regionmax.html new file mode 100644 index 000000000..a3fef85cc --- /dev/null +++ b/db/docs/api_cxx/env_set_lg_regionmax.html @@ -0,0 +1,77 @@ +<!--Id: env_set_lg_regionmax.so,v 10.3 2001/05/01 14:23:08 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbEnv::set_lg_regionmax</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbEnv::set_lg_regionmax</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +int +DbEnv::set_lg_regionmax(u_int32_t lg_regionmax); +</pre></h3> +<h1>Description</h1> +<p>Set the size of the underlying logging subsystem region, in bytes. By +default, or if the value is set to 0, the base region size is 60KB. +The log region is used to store filenames, and so may need to be +increased in size if a large number of files will be opened and +registered with the specified Berkeley DB environment's log manager. +<p>The DbEnv::set_lg_regionmax interface may be used only to configure Berkeley DB before +the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called. +<p>The DbEnv::set_lg_regionmax method either returns a non-zero error value or throws an exception that +encapsulates a non-zero error value on failure, and returns 0 on success. +<p>The database environment's log region size may also be set using the environment's +<b>DB_CONFIG</b> file. The syntax of the entry in that file is a +single line with the string "set_lg_regionmax", one or more whitespace characters, +and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database +environment is opened, it will silently overrule configuration done +before that time. +<h1>Errors</h1> +<p>The DbEnv::set_lg_regionmax method may fail and throw an exception or return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called. +</dl> +<p>The DbEnv::set_lg_regionmax method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbEnv::set_lg_regionmax method may fail and either +return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>Class</h1> +<a href="../api_cxx/dbenv_class.html">DbEnv</a> +<h1>See Also</h1> +<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>, +<a href="../api_cxx/env_set_lg_dir.html">DbEnv::set_lg_dir</a>, +<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>, +<a href="../api_cxx/env_set_lg_regionmax.html">DbEnv::set_lg_regionmax</a>, +<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>, +<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>, +<a href="../api_cxx/log_file.html">DbEnv::log_file</a>, +<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>, +<a href="../api_cxx/log_get.html">DbEnv::log_get</a>, +<a href="../api_cxx/log_put.html">DbEnv::log_put</a>, +<a href="../api_cxx/log_register.html">DbEnv::log_register</a>, +<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>, +and +<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/env_set_rpc_server.html b/db/docs/api_cxx/env_set_rpc_server.html new file mode 100644 index 000000000..90f7e9221 --- /dev/null +++ b/db/docs/api_cxx/env_set_rpc_server.html @@ -0,0 +1,101 @@ +<!--"@(#)env_set_rpc_server.so 10.1 (Sleepycat) 8/25/99"--> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbEnv::set_rpc_server</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbEnv::set_rpc_server</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +int +DbEnv::set_rpc_server(CLIENT *client, char *host, + long cl_timeout, long sv_timeout, u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>Establishes a connection for this <b>dbenv</b> to a RPC server. If +the <b>client</b> argument is NULL, this call creates a connection to +the Berkeley DB server on the indicated hostname and sets up a channel for +communication. +If the <b>client</b> channel has been provided by the +application then Berkeley DB will use it as its connection and the <b>host</b> and +<b>cl_timeout</b> fields are ignored. +<p>The <b>cl_timeout</b> argument specifies the number of seconds the client +should wait for results to come back from the server. Once the timeout +has expired on any communication with the server, DB_NOSERVER will +be returned. If this value is zero, a default timeout is used. +<p>The <b>sv_timeout</b> argument specifies the number of seconds the server +should allow a client connection to remain idle before assuming that the +client is gone. Once that timeout has been reached, the server releases +all resources associated with that client connection. Subsequent attempts +by that client to communicate with the server result in +DB_NOSERVER_ID, indicating that an invalid identifier has been +given to the server. This value can be considered a hint to the server. +The server may alter this value based on its own policies or allowed +values. If this value is zero, a default timeout is used. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>When the DbEnv::set_rpc_server method has been called, any subsequent calls +to Berkeley DB library interfaces may return either <a name="DB_NOSERVER">DB_NOSERVER</a> or +<a name="DB_NOSERVER_ID">DB_NOSERVER_ID</a>. +<p>The DbEnv::set_rpc_server method either returns a non-zero error value or throws an exception that +encapsulates a non-zero error value on failure, and returns 0 on success. +<h1>Errors</h1> +<p>The DbEnv::set_rpc_server method may fail and throw an exception or return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +</dl> +<p>The DbEnv::set_rpc_server method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbEnv::set_rpc_server method may fail and either +return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>Class</h1> +<a href="../api_cxx/dbenv_class.html">DbEnv</a> +<h1>See Also</h1> +<a href="../api_cxx/env_close.html">DbEnv::close</a>, +<a href="../api_cxx/env_err.html">DbEnv::err</a>, <a href="../api_cxx/env_err.html">DbEnv::errx</a> +<a href="../api_cxx/env_open.html">DbEnv::open</a>, +<a href="../api_cxx/env_remove.html">DbEnv::remove</a>, +<a href="../api_cxx/env_set_alloc.html">DbEnv::set_alloc</a>, +<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>, +<a href="../api_cxx/env_set_data_dir.html">DbEnv::set_data_dir</a>, +<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>, +<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>, +<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>, +<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>, +<a href="../api_cxx/env_set_feedback.html">DbEnv::set_feedback</a>, +<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>, +<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>, +<a href="../api_cxx/env_set_pageyield.html">DbEnv::set_pageyield</a>, +<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>, +<a href="../api_cxx/env_set_panicstate.html">DbEnv::set_panicstate</a>, +<a href="../api_cxx/env_set_rec_init.html">DbEnv::set_recovery_init</a>, +<a href="../api_cxx/env_set_rpc_server.html">DbEnv::set_rpc_server</a>, +<a href="../api_cxx/env_set_region_init.html">DbEnv::set_region_init</a>, +<a href="../api_cxx/env_set_shm_key.html">DbEnv::set_shm_key</a>, +<a href="../api_cxx/env_set_tas_spins.html">DbEnv::set_tas_spins</a>, +<a href="../api_cxx/env_set_tmp_dir.html">DbEnv::set_tmp_dir</a>, +<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>, +<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a> +and +<a href="../api_cxx/env_version.html">DbEnv::version</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/get_dbt.html b/db/docs/api_cxx/get_dbt.html new file mode 100644 index 000000000..29e2567f9 --- /dev/null +++ b/db/docs/api_cxx/get_dbt.html @@ -0,0 +1,43 @@ +<!--Id: get_dbt.so,v 1.1 2001/04/06 13:24:51 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbMemoryException::get_dbt</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbMemoryException::get_dbt</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +Dbt * +DbMemoryException::get_dbt() const; +</pre></h3> +<h1>Description</h1> +<p>Return the <a href="../api_cxx/dbt_class.html">Dbt</a> that has insufficient memory to complete the +operation, causing the <a href="../api_cxx/mem_class.html">DbMemoryException</a> to be thrown. +<h1>Class</h1> +<a href="../api_cxx/except_class.html">DbException</a> +<h1>See Also</h1> +<a href="../api_cxx/get_errno.html">DbException::get_errno</a>, +<a href="../api_cxx/what.html">DbException::what</a>, +and +<a href="../api_cxx/mem_class.html">DbMemoryException</a> +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/mem_class.html b/db/docs/api_cxx/mem_class.html new file mode 100644 index 000000000..dbdbfccb4 --- /dev/null +++ b/db/docs/api_cxx/mem_class.html @@ -0,0 +1,54 @@ +<!--Id: mem_class.so,v 10.6 2001/04/26 13:31:24 dda Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbMemoryException</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbMemoryException</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +class DbMemoryException : public DbException { + DbMemoryException(Dbt *dbt); + DbMemoryException(const char *description); + DbMemoryException(const char *prefix, Dbt *dbt); + DbMemoryException(const char *prefix1, const char *prefix2, Dbt *dbt); + Dbt *get_dbt() const; +}; +</pre></h3> +<h1>Description</h1> +<p>This manual page describes the DbMemoryException class and how +it is used by the various Db* classes. +<p>A DbMemoryException is thrown when there is insufficient memory +to complete an operation, and there is the possibility of recovering. +An example is during a <a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> operation with +the <a href="../api_cxx/dbt_class.html">Dbt</a> flags set to <a href="../api_cxx/dbt_class.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a>. In this case, the +<a href="../api_cxx/get_dbt.html">DbMemoryException::get_dbt</a> method returns the problematic <a href="../api_cxx/dbt_class.html">Dbt</a>, and the +operation can be retried with a larger buffer. +<h1>Class</h1> +<a href="../api_cxx/except_class.html">DbException</a> +<h1>See Also</h1> +<a href="../api_cxx/get_errno.html">DbException::get_errno</a>, +<a href="../api_cxx/what.html">DbException::what</a>, +and +<a href="../api_cxx/mem_class.html">DbMemoryException</a> +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/txn_discard.html b/db/docs/api_cxx/txn_discard.html new file mode 100644 index 000000000..ac0d45ec8 --- /dev/null +++ b/db/docs/api_cxx/txn_discard.html @@ -0,0 +1,76 @@ +<!--Id: txn_discard.so,v 10.2 2001/05/05 01:49:17 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbTxn::discard</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbTxn::discard</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +int +DbTxn::discard(u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>The DbTxn::discard method frees up all the per-process resources +associated with the specified <a href="../api_cxx/txn_class.html">DbTxn</a> handle, neither committing +nor aborting the transaction. This call may be used only after calls +to <a href="../api_cxx/txn_recover.html">DbEnv::txn_recover</a> when there are multiple global transaction +managers recovering transactions in a single Berkeley DB environment. Any +transactions returned by <a href="../api_cxx/txn_recover.html">DbEnv::txn_recover</a> that are not handled by +the current global transaction manager should be discarded using +DbTxn::discard. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>The DbTxn::discard method returns EINVAL if the transaction handle does +not refer to a transaction that was recovered into a prepared but not +yet completed state. +<p>Otherwise, the DbTxn::discard method either returns a non-zero error value or throws an exception that +encapsulates a non-zero error value on failure, and returns 0 on success. +<h1>Errors</h1> +<p>The DbTxn::discard method may fail and throw an exception or return a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>The transaction handle does not refer to a transaction that was +recovered into a prepared but not yet completed state. +</dl> +<p>The DbTxn::discard method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbTxn::discard method may fail and either +return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>Class</h1> +<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a> +<h1>See Also</h1> +<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>, +<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>, +<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>, +<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>, +<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>, +<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>, +<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>, +<a href="../api_cxx/txn_discard.html">DbTxn::discard</a>, +<a href="../api_cxx/txn_id.html">DbTxn::id</a>, +<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>, +<a href="../api_cxx/txn_recover.html">DbEnv::txn_recover</a>, +and +<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_cxx/txn_recover.html b/db/docs/api_cxx/txn_recover.html new file mode 100644 index 000000000..97c20aa09 --- /dev/null +++ b/db/docs/api_cxx/txn_recover.html @@ -0,0 +1,87 @@ +<!--Id: txn_recover.so,v 10.6 2001/05/04 14:31:05 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbEnv::txn_recover</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbEnv::txn_recover</h1> +</td> +<td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +#include <db_cxx.h> +<p> +int +DbEnv::txn_recover(DB_PREPLIST preplist[], + long count, long *retp, u_int32_t flags); +</pre></h3> +<h1>Description</h1> +<p>The DbEnv::txn_recover interface returns a list of prepared but not +yet resolved transactions. The DbEnv::txn_recover method should only be +called after the environment has been recovered. +<p>On return from DbEnv::txn_recover, the <b>preplist</b> argument will +be filled in with a list of transactions that must be resolved by the +application (committed, aborted or discarded). The <b>preplist</b> +argument is a structure of type DB_PREPLIST; the following DB_PREPLIST +fields will be filled in: +<p><dl compact> +<p><dt>DB_TXN *txn;<dd>The transaction handle for the transaction. +<p><dt>u_int8_t gid[<a href="../api_cxx/txn_prepare.html#DB_XIDDATASIZE">DB_XIDDATASIZE</a>];<dd>The global transaction ID for the transaction. The global transaction +ID is the one specified when the transaction was prepared. The +application is responsible for ensuring uniqueness among global +transaction IDs. +</dl> +<p>The application must call <a href="../api_cxx/txn_abort.html">DbTxn::abort</a>, <a href="../api_cxx/txn_commit.html">DbTxn::commit</a> or +<a href="../api_cxx/txn_discard.html">DbTxn::discard</a> on each returned <a href="../api_cxx/txn_class.html">DbTxn</a> handle before +starting any new operations. +<p>The <b>count</b> parameter specifies the number of available entries +in the passed-in <b>preplist</b> array. The <b>retp</b> parameter +returns the number of entries DbEnv::txn_recover has filled in, in the +array. +<p>The <b>flags</b> value must be set to one of the following values: +<p><dl compact> +<p><dt><a name="DB_FIRST">DB_FIRST</a><dd>Begin returning a list of prepared, but not yet resolved transactions. +<p><dt><a name="DB_NEXT">DB_NEXT</a><dd>Continue returning a list of prepared, but not yet resolved transactions, +starting where the last call to DbEnv::txn_recover left off. +</dl> +<p>The DbEnv::txn_recover method either returns a non-zero error value or throws an exception that +encapsulates a non-zero error value on failure, and returns 0 on success. +<h1>Errors</h1> +<p>The DbEnv::txn_recover method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbEnv::txn_recover method may fail and either +return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating +<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail +in the same way. +<h1>Class</h1> +<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a> +<h1>See Also</h1> +<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>, +<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>, +<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>, +<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>, +<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>, +<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>, +<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>, +<a href="../api_cxx/txn_discard.html">DbTxn::discard</a>, +<a href="../api_cxx/txn_id.html">DbTxn::id</a>, +<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>, +<a href="../api_cxx/txn_recover.html">DbEnv::txn_recover</a>, +and +<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_java/db_associate.html b/db/docs/api_java/db_associate.html new file mode 100644 index 000000000..9d0301d06 --- /dev/null +++ b/db/docs/api_java/db_associate.html @@ -0,0 +1,154 @@ +<!--Id: db_associate.so,v 10.9 2001/05/05 01:49:09 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: Db.associate</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>Db.associate</h1> +</td> +<td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +import com.sleepycat.db.*; +<p> +public interface DbSecondaryKeyCreate +{ + public abstract Dbt secondary_key_create(Db secondary, Dbt key, Dbt data) + throws DbException; +} +public class Db +{ + ... + public int associate(Db secondary, + DbSecondaryKeyCreate secondary_key_create, int flags) + throws DbException; + ... +} +</pre></h3> +<h1>Description</h1> +<p>The Db.associate function is used to declare one database a +secondary index for a primary database. After a secondary database has +been "associated" with a primary database, all updates to the primary +will be automatically reflected in the secondary and all reads from the +secondary will return corresponding data from the primary. Note that +as primary keys must be unique for secondary indices to work, the +primary database must be configured without support for duplicate data +items. See <a href="../ref/am/second.html">Secondary indices</a> for +more information. +<p>The associate method called should be a method off a database handle for +the primary database that is to be indexed. +The <b>secondary</b> argument should be an open database handle of +either a newly created and empty database that is to be used to store +a secondary index, or of a database that was previously associated with +the same primary and contains a secondary index. Note that it is not +safe to associate as a secondary database a handle that is in use by +another thread of control or has open cursors. If the handle was opened +with the <a href="../api_java/env_open.html#DB_THREAD">Db.DB_THREAD</a> flag it is safe to use it in multiple threads +of control after the Db.associate method has returned. Note also +that either secondary keys must be unique or the secondary database must +be configured with support for duplicate data items. +<p>The <b>callback</b> argument should refer to a callback function that +creates a secondary key from a given primary key and data pair. When +called, the first argument will be the secondary <a href="../api_java/db_class.html">Db</a> handle; the +second and third arguments will be <a href="../api_java/dbt_class.html">Dbt</a>s containing a primary +key and datum respectively; and the fourth argument will be a zeroed +DBT in which the callback function should fill in <b>data</b> and +<b>size</b> fields that describe the secondary key. +<p>If any key/data pair in the primary yields a null secondary key and +should be left out of the secondary index, the callback function may +optionally return Db.DB_DONOTINDEX. Otherwise, the callback +function should return 0 in case of success or any other integer error +code in case of failure; the error code will be returned from the Berkeley DB +interface call that initiated the callback. Note that if the callback +function returns Db.DB_DONOTINDEX for any key/data pairs in the +primary database, the secondary index will not contain any reference to +those key/data pairs, and such operations as cursor iterations and range +queries will reflect only the corresponding subset of the database. If +this is not desirable, the application should ensure that the callback +function is well-defined for all possible values and never returns +Db.DB_DONOTINDEX. +<p>The callback argument may be NULL if and only if both the primary and +secondary database handles were opened with the <a href="../api_java/db_open.html#DB_RDONLY">Db.DB_RDONLY</a> flag. +<p>The <b>flags</b> value must be set to 0 or +the following value: +<p><dl compact> +<p><dt><a name="Db.DB_CREATE">Db.DB_CREATE</a><dd>If the secondary database is empty, walk through the primary and create +an index to it in the empty secondary. Note that this operation is +potentially very expensive. +<p>If the secondary database has been opened in an environment configured +with transactions, each put necessary for its creation will be done in +the context of a transaction created for the purpose. +<p>Note that care should be taken not to use a newly-created secondary +database in another thread of control until the Db.associate +call has returned successfully in the first thread. +</dl> +<h1>Errors</h1> +<p>The Db.associate method may fail and throw an exception encapsulating a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>The secondary database handle has already been associated with this or +another database handle. +<p>The secondary database handle is not open. +<p>The primary database has been configured to allow duplicates. +</dl> +<p>The Db.associate method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the Db.associate method may fail and throw +a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls +will fail in the same way. +<h1>Class</h1> +<a href="../api_java/db_class.html">Db</a> +<h1>See Also</h1> +<a href="../api_java/db_associate.html">Db.associate</a>, +<a href="../api_java/db_close.html">Db.close</a>, +<a href="../api_java/db_cursor.html">Db.cursor</a>, +<a href="../api_java/db_del.html">Db.del</a>, +<a href="../api_java/db_fd.html">Db.fd</a>, +<a href="../api_java/db_get.html">Db.get</a>, +<a href="../api_java/db_get.html">Db.pget</a>, +<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>, +<a href="../api_java/db_get_type.html">Db.get_type</a>, +<a href="../api_java/db_join.html">Db.join</a>, +<a href="../api_java/db_key_range.html">Db.key_range</a>, +<a href="../api_java/db_open.html">Db.open</a>, +<a href="../api_java/db_put.html">Db.put</a>, +<a href="../api_java/db_remove.html">Db.remove</a>, +<a href="../api_java/db_rename.html">Db.rename</a>, +<a href="../api_java/db_set_append_recno.html">Db.set_append_recno</a>, +<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>, +<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>, +<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>, +<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>, +<a href="../api_java/db_set_feedback.html">Db.set_feedback</a>, +<a href="../api_java/db_set_flags.html">Db.set_flags</a>, +<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>, +<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>, +<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>, +<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>, +<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>, +<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>, +<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>, +<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>, +<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>, +<a href="../api_java/db_stat.html">Db.stat</a>, +<a href="../api_java/db_sync.html">Db.sync</a>, +<a href="../api_java/db_truncate.html">Db.truncate</a>, +<a href="../api_java/db_upgrade.html">Db.upgrade</a>, +and +<a href="../api_java/db_verify.html">Db.verify</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_java/db_truncate.html b/db/docs/api_java/db_truncate.html new file mode 100644 index 000000000..c1ce182e0 --- /dev/null +++ b/db/docs/api_java/db_truncate.html @@ -0,0 +1,107 @@ +<!--Id: db_truncate.so,v 1.6 2001/04/18 13:44:46 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: Db.truncate</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>Db.truncate</h1> +</td> +<td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +import com.sleepycat.db.*; +import java.io.FileNotFoundException; +<p> +public int truncate(String file, String database, int flags) + throws DbException, FileNotFoundException; +</pre></h3> +<h1>Description</h1> +<p>The Db.truncate interface empties the database specified by +the <b>file</b> and <b>database</b> arguments, discarding all records +it contains. If no <b>database</b> is specified, the underlying file +represented by <b>file</b> is emptied. +The number of records discarded from the database is returned. +<p>Truncate must have exclusive use of the database. While truncate is +transaction-protected, it cannot be part of a application-created +transaction. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>After Db.truncate has been called, regardless of its return, +the <a href="../api_java/db_class.html">Db</a> handle may not be accessed again. +<p>The Db.truncate method throws an exception that encapsulates a non-zero error value on +failure. +<h1>Environment Variables</h1> +<p><dl compact> +<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using +<a href="../api_java/env_open.html">DbEnv.open</a>, the environment variable <b>DB_HOME</b> may be used +as the path of the database environment home. Specifically, Db.truncate +is affected by the configuration value DB_DATA_DIR. +</dl> +<h1>Errors</h1> +<p>The Db.truncate method may fail and throw an exception encapsulating a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>A database in the file is currently open. +</dl> +<p>If the file or directory does not exist, the Db.truncate method will +fail and +throw a FileNotFoundException exception. +<p>The Db.truncate method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the Db.truncate method may fail and throw +a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls +will fail in the same way. +<h1>Class</h1> +<a href="../api_java/db_class.html">Db</a> +<h1>See Also</h1> +<a href="../api_java/db_associate.html">Db.associate</a>, +<a href="../api_java/db_close.html">Db.close</a>, +<a href="../api_java/db_cursor.html">Db.cursor</a>, +<a href="../api_java/db_del.html">Db.del</a>, +<a href="../api_java/db_fd.html">Db.fd</a>, +<a href="../api_java/db_get.html">Db.get</a>, +<a href="../api_java/db_get.html">Db.pget</a>, +<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>, +<a href="../api_java/db_get_type.html">Db.get_type</a>, +<a href="../api_java/db_join.html">Db.join</a>, +<a href="../api_java/db_key_range.html">Db.key_range</a>, +<a href="../api_java/db_open.html">Db.open</a>, +<a href="../api_java/db_put.html">Db.put</a>, +<a href="../api_java/db_remove.html">Db.remove</a>, +<a href="../api_java/db_rename.html">Db.rename</a>, +<a href="../api_java/db_set_append_recno.html">Db.set_append_recno</a>, +<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>, +<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>, +<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>, +<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>, +<a href="../api_java/db_set_feedback.html">Db.set_feedback</a>, +<a href="../api_java/db_set_flags.html">Db.set_flags</a>, +<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>, +<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>, +<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>, +<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>, +<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>, +<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>, +<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>, +<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>, +<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>, +<a href="../api_java/db_stat.html">Db.stat</a>, +<a href="../api_java/db_sync.html">Db.sync</a>, +<a href="../api_java/db_truncate.html">Db.truncate</a>, +<a href="../api_java/db_upgrade.html">Db.upgrade</a>, +and +<a href="../api_java/db_verify.html">Db.verify</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_java/env_set_lg_regionmax.html b/db/docs/api_java/env_set_lg_regionmax.html new file mode 100644 index 000000000..64995a7e7 --- /dev/null +++ b/db/docs/api_java/env_set_lg_regionmax.html @@ -0,0 +1,76 @@ +<!--Id: env_set_lg_regionmax.so,v 10.3 2001/05/01 14:23:08 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbEnv.set_lg_regionmax</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbEnv.set_lg_regionmax</h1> +</td> +<td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +import com.sleepycat.db.*; +<p> +public void set_lg_regionmax(int lg_regionmax) + throws DbException; +</pre></h3> +<h1>Description</h1> +<p>Set the size of the underlying logging subsystem region, in bytes. By +default, or if the value is set to 0, the base region size is 60KB. +The log region is used to store filenames, and so may need to be +increased in size if a large number of files will be opened and +registered with the specified Berkeley DB environment's log manager. +<p>The DbEnv.set_lg_regionmax interface may be used only to configure Berkeley DB before +the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called. +<p>The DbEnv.set_lg_regionmax method throws an exception that encapsulates a non-zero error value on +failure. +<p>The database environment's log region size may also be set using the environment's +<b>DB_CONFIG</b> file. The syntax of the entry in that file is a +single line with the string "set_lg_regionmax", one or more whitespace characters, +and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database +environment is opened, it will silently overrule configuration done +before that time. +<h1>Errors</h1> +<p>The DbEnv.set_lg_regionmax method may fail and throw an exception encapsulating a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called. +</dl> +<p>The DbEnv.set_lg_regionmax method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbEnv.set_lg_regionmax method may fail and throw +a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls +will fail in the same way. +<h1>Class</h1> +<a href="../api_java/dbenv_class.html">DbEnv</a> +<h1>See Also</h1> +<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>, +<a href="../api_java/env_set_lg_dir.html">DbEnv.set_lg_dir</a>, +<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>, +<a href="../api_java/env_set_lg_regionmax.html">DbEnv.set_lg_regionmax</a>, +<a href="../api_java/log_archive.html">DbEnv.log_archive</a>, +<a href="../api_java/log_compare.html">DbEnv.log_compare</a>, +<a href="../api_java/log_file.html">DbEnv.log_file</a>, +<a href="../api_java/log_flush.html">DbEnv.log_flush</a>, +<a href="../api_java/log_get.html">DbEnv.log_get</a>, +<a href="../api_java/log_put.html">DbEnv.log_put</a>, +<a href="../api_java/log_register.html">DbEnv.log_register</a>, +<a href="../api_java/log_stat.html">DbEnv.log_stat</a>, +and +<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_java/env_set_rpc_server.html b/db/docs/api_java/env_set_rpc_server.html new file mode 100644 index 000000000..b379bc643 --- /dev/null +++ b/db/docs/api_java/env_set_rpc_server.html @@ -0,0 +1,94 @@ +<!--"@(#)env_set_rpc_server.so 10.1 (Sleepycat) 8/25/99"--> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbEnv.set_rpc_server</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbEnv.set_rpc_server</h1> +</td> +<td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +import com.sleepycat.db.*; +<p> +public void set_rpc_server(DbClient client, String host, + long cl_timeout, long sv_timeout, int flags) + throws DbException; +</pre></h3> +<h1>Description</h1> +<p>Establishes a connection for this <b>dbenv</b> to a RPC server. If +the <b>client</b> argument is NULL, this call creates a connection to +the Berkeley DB server on the indicated hostname and sets up a channel for +communication. +The <b>client</b> argument is reserved for future use. +If it is not NULL, an exception is thrown. +<p>The <b>cl_timeout</b> argument specifies the number of seconds the client +should wait for results to come back from the server. Once the timeout +has expired on any communication with the server, Db.DB_NOSERVER will +be returned. If this value is zero, a default timeout is used. +<p>The <b>sv_timeout</b> argument specifies the number of seconds the server +should allow a client connection to remain idle before assuming that the +client is gone. Once that timeout has been reached, the server releases +all resources associated with that client connection. Subsequent attempts +by that client to communicate with the server result in +Db.DB_NOSERVER_ID, indicating that an invalid identifier has been +given to the server. This value can be considered a hint to the server. +The server may alter this value based on its own policies or allowed +values. If this value is zero, a default timeout is used. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>When the DbEnv.set_rpc_server method has been called, any subsequent calls +to Berkeley DB library interfaces may return either <a name="DB_NOSERVER">DB_NOSERVER</a> or +<a name="DB_NOSERVER_ID">DB_NOSERVER_ID</a>. +<p>The DbEnv.set_rpc_server method throws an exception that encapsulates a non-zero error value on +failure. +<h1>Errors</h1> +<p>The DbEnv.set_rpc_server method may fail and throw an exception encapsulating a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +</dl> +<p>The DbEnv.set_rpc_server method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbEnv.set_rpc_server method may fail and throw +a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls +will fail in the same way. +<h1>Class</h1> +<a href="../api_java/dbenv_class.html">DbEnv</a> +<h1>See Also</h1> +<a href="../api_java/env_close.html">DbEnv.close</a>, +<a href="../api_java/env_version.html">DbEnv.get_version_string</a>, +<a href="../api_java/env_open.html">DbEnv.open</a>, +<a href="../api_java/env_remove.html">DbEnv.remove</a>, +<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>, +<a href="../api_java/env_set_data_dir.html">DbEnv.set_data_dir</a>, +<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>, +<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>, +<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>, +<a href="../api_java/env_set_feedback.html">DbEnv.set_feedback</a>, +<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>, +<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>, +<a href="../api_java/env_set_pageyield.html">DbEnv.set_pageyield</a>, +<a href="../api_java/env_set_panicstate.html">DbEnv.set_panicstate</a>, +<a href="../api_java/env_set_rec_init.html">DbEnv.set_recovery_init</a>, +<a href="../api_java/env_set_rpc_server.html">DbEnv.set_rpc_server</a>, +<a href="../api_java/env_set_region_init.html">DbEnv.set_region_init</a>, +<a href="../api_java/env_set_shm_key.html">DbEnv.set_shm_key</a>, +<a href="../api_java/env_set_tas_spins.html">DbEnv.set_tas_spins</a>, +<a href="../api_java/env_set_tmp_dir.html">DbEnv.set_tmp_dir</a>, +<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>, +and <a href="../api_java/env_strerror.html">DbEnv.strerror</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_java/get_dbt.html b/db/docs/api_java/get_dbt.html new file mode 100644 index 000000000..cb1ea69f3 --- /dev/null +++ b/db/docs/api_java/get_dbt.html @@ -0,0 +1,43 @@ +<!--Id: get_dbt.so,v 1.1 2001/04/06 13:24:51 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbMemoryException.get_dbt</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbMemoryException.get_dbt</h1> +</td> +<td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +import com.sleepycat.db.*; +<p> +public Dbt get_dbt(); +</pre></h3> +<h1>Description</h1> +<p>Return the <a href="../api_java/dbt_class.html">Dbt</a> that has insufficient memory to complete the +operation, causing the <a href="../api_java/mem_class.html">DbMemoryException</a> to be thrown. +<h1>Class</h1> +<a href="../api_java/except_class.html">DbException</a> +<h1>See Also</h1> +<a href="../api_java/get_errno.html">DbException.get_errno</a>, +<a href="../api_java/deadlock_class.html">DbDeadlockException</a>, +<a href="../api_java/mem_class.html">DbMemoryException</a>, +and +<a href="../api_java/runrec_class.html">DbRunRecoveryException</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_java/txn_discard.html b/db/docs/api_java/txn_discard.html new file mode 100644 index 000000000..85dc1e53b --- /dev/null +++ b/db/docs/api_java/txn_discard.html @@ -0,0 +1,74 @@ +<!--Id: txn_discard.so,v 10.2 2001/05/05 01:49:17 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbTxn.discard</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbTxn.discard</h1> +</td> +<td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +import com.sleepycat.db.*; +<p> +public void discard(u_int32_t flags) + throws DbException; +</pre></h3> +<h1>Description</h1> +<p>The DbTxn.discard method frees up all the per-process resources +associated with the specified <a href="../api_java/txn_class.html">DbTxn</a> handle, neither committing +nor aborting the transaction. This call may be used only after calls +to <a href="../api_java/txn_recover.html">DbEnv.txn_recover</a> when there are multiple global transaction +managers recovering transactions in a single Berkeley DB environment. Any +transactions returned by <a href="../api_java/txn_recover.html">DbEnv.txn_recover</a> that are not handled by +the current global transaction manager should be discarded using +DbTxn.discard. +<p>The <b>flags</b> parameter is currently unused, and must be set to 0. +<p>The DbTxn.discard method returns EINVAL if the transaction handle does +not refer to a transaction that was recovered into a prepared but not +yet completed state. +<p>Otherwise, the DbTxn.discard method throws an exception that encapsulates a non-zero error value on +failure. +<h1>Errors</h1> +<p>The DbTxn.discard method may fail and throw an exception encapsulating a non-zero error for the following conditions: +<p><dl compact> +<p><dt>EINVAL<dd>An invalid flag value or parameter was specified. +<p>The transaction handle does not refer to a transaction that was +recovered into a prepared but not yet completed state. +</dl> +<p>The DbTxn.discard method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbTxn.discard method may fail and throw +a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls +will fail in the same way. +<h1>Class</h1> +<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a> +<h1>See Also</h1> +<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>, +<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>, +<a href="../api_java/txn_abort.html">DbTxn.abort</a>, +<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>, +<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>, +<a href="../api_java/txn_commit.html">DbTxn.commit</a>, +<a href="../api_java/txn_discard.html">DbTxn.discard</a>, +<a href="../api_java/txn_id.html">DbTxn.id</a>, +<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>, +<a href="../api_java/txn_recover.html">DbEnv.txn_recover</a>, +and +<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_java/txn_recover.html b/db/docs/api_java/txn_recover.html new file mode 100644 index 000000000..402e3c379 --- /dev/null +++ b/db/docs/api_java/txn_recover.html @@ -0,0 +1,81 @@ +<!--Id: txn_recover.so,v 10.6 2001/05/04 14:31:05 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: DbEnv.txn_recover</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1>DbEnv.txn_recover</h1> +</td> +<td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre> +import com.sleepycat.db.*; +<p> +public DbPreplist[] txn_recover(int count, int flags) + throws DbException; +</pre></h3> +<h1>Description</h1> +<p>The DbEnv.txn_recover interface returns a list of prepared but not +yet resolved transactions. The DbEnv.txn_recover method should only be +called after the environment has been recovered. +<p>The DbEnv.txn_recover method returns a list of transactions that must be +resolved by the application (committed, aborted or discarded). The +return value is an array of objects of type DbPreplist; the following +DbPreplist fields will be filled in: +<p><dl compact> +<p><dt>public DbTxn txn;<dd>The transaction handle for the transaction. +<p><dt>public byte[] gid;<dd>The global transaction ID for the transaction. The global transaction +ID is the one specified when the transaction was prepared. The +application is responsible for ensuring uniqueness among global +transaction IDs. +</dl> +<p>The application must call <a href="../api_java/txn_abort.html">DbTxn.abort</a>, <a href="../api_java/txn_commit.html">DbTxn.commit</a> or +<a href="../api_java/txn_discard.html">DbTxn.discard</a> on each returned <a href="../api_java/txn_class.html">DbTxn</a> handle before +starting any new operations. +<p>The <b>count</b> parameter specifies the number of maximum size of the +array that should be returned. +<p>The <b>flags</b> value must be set to one of the following values: +<p><dl compact> +<p><dt><a name="Db.DB_FIRST">Db.DB_FIRST</a><dd>Begin returning a list of prepared, but not yet resolved transactions. +<p><dt><a name="Db.DB_NEXT">Db.DB_NEXT</a><dd>Continue returning a list of prepared, but not yet resolved transactions, +starting where the last call to DbEnv.txn_recover left off. +</dl> +<p>The DbEnv.txn_recover method throws an exception that encapsulates a non-zero error value on +failure. +<h1>Errors</h1> +<p>The DbEnv.txn_recover method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. +If a catastrophic error has occurred, the DbEnv.txn_recover method may fail and throw +a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls +will fail in the same way. +<h1>Class</h1> +<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a> +<h1>See Also</h1> +<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>, +<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>, +<a href="../api_java/txn_abort.html">DbTxn.abort</a>, +<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>, +<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>, +<a href="../api_java/txn_commit.html">DbTxn.commit</a>, +<a href="../api_java/txn_discard.html">DbTxn.discard</a>, +<a href="../api_java/txn_id.html">DbTxn.id</a>, +<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>, +<a href="../api_java/txn_recover.html">DbEnv.txn_recover</a>, +and +<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/api_tcl/db_truncate.html b/db/docs/api_tcl/db_truncate.html new file mode 100644 index 000000000..1ae13d1b4 --- /dev/null +++ b/db/docs/api_tcl/db_truncate.html @@ -0,0 +1,48 @@ +<!--Id: db_truncate.so,v 11.1 2001/02/27 19:00:44 sue Exp --> +<!--Id: m4.tcl,v 11.22 2001/04/18 15:50:10 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: berkdb dbtruncate</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td> +<h1><b>berkdb dbtruncate</b></h1> +</td> +<td align=right> +<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<hr size=1 noshade> +<tt> +<h3><pre>berkdb dbtruncate + [-env env] + [--] + file + [database] +</pre></h3> +<h1>Description</h1> +<p>Truncates the Berkeley DB database specified by the database name <b>file</b> and +[database] name arguments. If no <b>database</b> is specified, +the physical file represented by <b>file</b> is emptied, incidentally +removing all databases that it contained. +<p>The options are as follows: +<p><dl compact> +<p><dt>-env env<dd>If a <b>-env</b> argument is given, the database in the specified Berkeley DB +environment is removed. +<p><dt>--<dd>Mark the end of the command arguments. +</dl> +<p>The <b>berkdb dbtruncate</b> command returns the number of records discarded +from the database on success. If an error occurs, a Berkeley DB error message +is returned or a Tcl error is thrown. +</tt> +<table width="100%"><tr><td><br></td><td align=right> +<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am/second.html b/db/docs/ref/am/second.html new file mode 100644 index 000000000..aa024c48e --- /dev/null +++ b/db/docs/ref/am/second.html @@ -0,0 +1,223 @@ +<!--Id: second.so,v 10.5 2001/05/07 19:28:36 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Secondary indices</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> <a name="3"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am/close.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/cursor.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Secondary indices</h1> +<p>A secondary index, put simply, is a way to efficiently access records +in a database (the primary) by means of some piece of information other +than the usual (primary) key. In Berkeley DB, this index is simply another +database whose keys are these pieces of information (the secondary +keys), and whose data are the primary keys. Secondary indices can be +(and often are) created manually by the application; there is no +disadvantage, other than complexity, to doing so. However, when the +secondary key can be mechanically derived from the primary key and datum +that it points to, as is frequently the case, Berkeley DB can automatically +and transparently manage secondary indices. +<p>As an example of how secondary indices might be used, consider a +database containing a list of students at a college, each of whom has +a unique student ID number. A typical database would use the student +ID number as the key; however, one might also reasonably want to be +able to look up students by last name. To do this, one would construct +a secondary index in which the secondary key was this last name. +<p>In SQL, this would be done by executing something like the following: +<p><blockquote><pre>CREATE TABLE students(student_id CHAR(4) NOT NULL, + lastname CHAR(15), firstname CHAR(15), PRIMARY KEY(student_id)); +CREATE INDEX lname ON students(lastname);</pre></blockquote> +<p>In Berkeley DB, this would work as follows: +<pre><p><blockquote>struct student_record { + char student_id[4]; + char last_name[15]; + char first_name[15]; +}; +<p> +void +second() +{ +<p><blockquote>DB *dbp, *sdbp; +int ret; +<p> +/* Open/create primary */ +if ((ret = db_create(&dbp, dbenv, 0)) != 0) + handle_error(); +if ((ret = dbp->open(dbp, + "students.db", NULL, DB_BTREE, DB_CREATE, 0600)) != 0) + handle_error(); +<p> +/* + * Open/create secondary. Note that it supports duplicate data + * items, since last names might not be unique. + */ +if ((ret = db_create(&sdbp, dbenv, 0)) != 0) + handle_error(); +if ((ret = dbp->set_flags(dbp, DB_DUP | DB_DUPSORT)) != 0) + handle_error(); +if ((ret = dbp->open(dbp, + "lastname.db", NULL, DB_BTREE, DB_CREATE, 0600)) != 0) + handle_error(); +<p> +/* Associate the secondary with the primary. */ +if ((ret = dbp->associate(dbp, sdbp, getname, 0)) != 0) + handle_error();</blockquote> +} +<p> +/* + * getname -- extracts a secondary key (the last name) from a primary + * key/data pair + */ +int +getname(dbp, pkey, pdata, skey) + DB *dbp; + const DBT *pkey, *pdata; + DBT *skey; +{ + /* + * Since the secondary key is a simple structure member of the + * record, we don't have to do anything fancy to return it. If + * we have composite keys that need to be constructed from the + * record, rather than simply pointing into it, then the user's + * function might need to allocate space and copy data. In + * this case, the DB_DBT_APPMALLOC flag should be set in the + * secondary key DBT. + */ + memset(skey, 0, sizeof(DBT)); + skey->data = ((struct student_record *)pdata->data)->last_name; + skey->size = sizeof((struct student_record *)pdata->data)->last_name; + return (0); +}</blockquote></pre> +<p>From the application's perspective, putting things into the database +works exactly as it does without a secondary index; one can simply +insert records into the primary database. In SQL one would do the +following: +<p><blockquote><pre>INSERT INTO student + VALUES ("WC42", "Churchill ", "Winston ");</pre></blockquote> +<p>and in Berkeley DB, one does: +<p><blockquote><pre>struct student_record s; +DBT data, key; +<p> +memset(&key, 0, sizeof(DBT)); +memset(&data, 0, sizeof(DBT)); +memset(&s, 0, sizeof(struct student_record)); +key.data = "WC42"; +key.size = 4; +memcpy(&s.student_id, "WC42", sizeof(s.student_id)); +memcpy(&s.last_name, "Churchill ", sizeof(s.last_name)); +memcpy(&s.first_name, "Winston ", sizeof(s.first_name)); +data.data = &s; +data.size = sizeof(s); +if ((ret = dbp->put(dbp, txn, &key, &data, 0)) != 0) + handle_error();</pre></blockquote> +<p>Internally, a record with secondary key "Churchill" is inserted into +the secondary database (in addition to the insertion of "WC42" into the +primary, of course). +<p>Deletes are similar. The SQL clause: +<p><blockquote><pre>DELETE FROM student WHERE (student_id = "WC42");</pre></blockquote> +<p>looks like: +<p><blockquote><pre>DBT key; +<p> +memset(&key, 0, sizeof(DBT)); +key.data = "WC42"; +key.size = 4; +if ((ret = dbp->del(dbp, txn, &key, 0)) != 0) + handle_error();</pre></blockquote> +<p>Deletes can also be performed on the secondary index directly; a delete +done this way will delete the "real" record in the primary as well. If +the secondary supports duplicates and there are duplicate occurrences of +the secondary key, then all records with that secondary key are removed +from both the secondary index and the primary database. In +SQL: +<p><blockquote><pre>DELETE FROM lname WHERE (lastname = "Churchill ");</pre></blockquote> +<p>In Berkeley DB: +<p><blockquote><pre>DBT skey; +<p> +memset(&skey, 0, sizeof(DBT)); +skey.data = "Churchill "; +skey.size = 15; +if ((ret = sdbp->del(sdbp, txn, &skey, 0)) != 0) + handle_error();</pre></blockquote> +<p>Gets on a secondary automatically return the primary datum. If +<a href="../../api_c/db_get.html">DB->pget</a> or <a href="../../api_c/dbc_get.html">DBcursor->c_pget</a> is used in lieu of <a href="../../api_c/db_get.html">DB->get</a> +or <a href="../../api_c/dbc_get.html">DBcursor->c_get</a>, the primary key is returned as well. Thus, the +equivalent of: +<p><blockquote><pre>SELECT * from lname WHERE (lastname = "Churchill ");</pre></blockquote> +<p>would be: +<p><blockquote><pre>DBT data, pkey, skey; +<p> +memset(&skey, 0, sizeof(DBT)); +memset(&pkey, 0, sizeof(DBT)); +memset(&data, 0, sizeof(DBT)); +skey.data = "Churchill "; +skey.size = 15; +if ((ret = sdbp->pget(sdbp, txn, &skey, &pkey, &data, 0)) != 0) + handle_error(); +/* + * Now pkey contains "WC42" and data contains Winston's record. + */</pre></blockquote> +<p>To create a secondary index to a Berkeley DB database, open the database that +is to become a secondary index normally, then pass it as the "secondary" +argument to the <a href="../../api_c/db_associate.html">DB->associate</a> interface for some primary database. +<p>From the time a <a href="../../api_c/db_associate.html">DB->associate</a> call is made until the secondary +database handle is closed, secondary indices become, as their name +implies, alternate interfaces to the primary database. All updates to +the primary will be automatically reflected in each secondary index that +has been associated with it. All get operations using the +<a href="../../api_c/db_get.html">DB->get</a> or <a href="../../api_c/dbc_get.html">DBcursor->c_get</a> interfaces on the secondary index +return the primary datum associated with the specified (or otherwise +current, in the case of cursor operations) secondary key. The +<a href="../../api_c/db_get.html">DB->pget</a> and <a href="../../api_c/dbc_get.html">DBcursor->c_pget</a> interfaces also become usable; +these behave just like <a href="../../api_c/db_get.html">DB->get</a> and <a href="../../api_c/dbc_get.html">DBcursor->c_get</a>, but return +the primary key in addition to the primary datum, for those applications +that need it as well. +<p>Cursor get operations on a secondary index perform as expected; although +the data returned will by default be those of the primary database, a +position in the secondary index is maintained normally, and records will +appear in the order determined by the secondary key and the comparison +function or other structure of the secondary database. +<p>Delete operations on a secondary index delete the item from the primary +database and all relevant secondaries, including the current one. +<p>Put operations of any kind are forbidden on secondary indices, as there +is no way to specify a primary key for a newly put item. Instead, the +application should use the <a href="../../api_c/dbc_put.html">DBcursor->c_put</a> or <a href="../../api_c/db_put.html">DB->put</a> methods +on the primary database. +<p>Any number of secondary indices may be associated with a given primary +database, up to limitations on available memory and the number of open +file descriptors. +<p>Note that although Berkeley DB guarantees that updates made using any +DB handle with an associated secondary will be reflected in the +that secondary, associating each primary handle with all the appropriate +secondaries is the responsibility of the application and is not enforced +by Berkeley DB. It is generally unsafe, but not forbidden by Berkeley DB, to modify +a database that has secondary indices without having those indices open +and associated. Similarly, it is generally unsafe, but not forbidden, +to modify a secondary index directly. Applications that violate these +rules face the possibility of outdated or incorrect results if the +secondary indices are later used. +<p>If for any reason a secondary index gets outdated, the correct course +of action is to discard it using the <a href="../../api_c/db_remove.html">DB->remove</a> method +and create a new one using the +<a href="../../api_c/db_associate.html">DB->associate</a> method. +<p>Note that there is also no way to disassociate a secondary index from +a primary database. If a secondary index is no longer needed, all of +its handles should be closed using the <a href="../../api_c/db_close.html">DB->close</a> method., and +then the database should be removed (if desired) using a new database +handle and the <a href="../../api_c/db_remove.html">DB->remove</a> method. +<p>Closing a primary database handle automatically closes all secondary +database handles associated with it; continuing to use a secondary +database handle after the primary database has been closed may result +in application crashes or other unexpected behavior. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am/close.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/cursor.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am/truncate.html b/db/docs/ref/am/truncate.html new file mode 100644 index 000000000..043123910 --- /dev/null +++ b/db/docs/ref/am/truncate.html @@ -0,0 +1,24 @@ +<!--Id: truncate.so,v 10.4 2001/03/10 19:05:22 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Database truncation</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> <a name="3"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am/stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/upgrade.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Database truncation</h1> +<p>The <a href="../../api_c/db_truncate.html">DB->truncate</a> function is the standard interface for emptying a +database of all records. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am/stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/upgrade.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/align.html b/db/docs/ref/am_misc/align.html new file mode 100644 index 000000000..abe18acc1 --- /dev/null +++ b/db/docs/ref/am_misc/align.html @@ -0,0 +1,28 @@ +<!--Id: align.so,v 1.3 2001/03/10 19:59:24 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Data alignment</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am/curclose.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/partial.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Data alignment</h1> +<p>The Berkeley DB access methods provide no guarantees about byte alignment for +returned key/data pairs, or callback functions which take <a href="../../api_c/dbt.html">DBT</a> +references as arguments, and applications are responsible for arranging +any necessary alignment. The <a href="../../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a>, +<a href="../../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> and <a href="../../api_c/dbt.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a> flags may be used to +store returned items in memory of arbitrary alignment. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am/curclose.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/partial.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/dbsizes.html b/db/docs/ref/am_misc/dbsizes.html new file mode 100644 index 000000000..25210e5be --- /dev/null +++ b/db/docs/ref/am_misc/dbsizes.html @@ -0,0 +1,45 @@ +<!--Id: dbsizes.so,v 10.25 2001/03/10 19:59:24 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Database limits</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am_misc/stability.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/diskspace.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Database limits</h1> +<p>The largest database file that Berkeley DB can handle depends on the page size +selected by the application. Berkeley DB stores database file page numbers as +unsigned 32-bit numbers and database file page sizes as unsigned 16-bit +numbers. Using the maximum database page size of 65536, this results in +a maximum database file size of 2<sup>48</sup> (256 terabytes). The +minimum database page size is 512 bytes, which results in a minimum +maximum database size of 2<sup>41</sup> (2 terabytes). +<p>The largest database file Berkeley DB can support is potentially further limited +if the host system does not have filesystem support for files larger than +2<sup>32</sup>, including the ability to seek to absolute offsets within +those files. +<p>The largest key or data item that Berkeley DB can support is largely limited +by available memory. Specifically, while key and data byte strings may +be of essentially unlimited length, any one of them must fit into +available memory so that it can be returned to the application. As some +of the Berkeley DB interfaces return both key and data items to the application, +those interfaces will require that any key/data pair fit simultaneously +into memory. Further, as the access methods may need to compare key and +data items with other key and data items, it may be a requirement that +any two key or two data items fit into available memory. Finally, when +writing applications supporting transactions, it may be necessary to have +an additional copy of any data item in memory for logging purposes. +<p>The maximum Btree depth is 255. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am_misc/stability.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/diskspace.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/diskspace.html b/db/docs/ref/am_misc/diskspace.html new file mode 100644 index 000000000..81666fcda --- /dev/null +++ b/db/docs/ref/am_misc/diskspace.html @@ -0,0 +1,146 @@ +<!--Id: diskspace.so,v 10.15 2001/04/21 18:55:01 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Disk space requirements</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am_misc/dbsizes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/tune.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Disk space requirements</h1> +<p>It is possible to estimate the total database size based on the size of +the data. The following calculations are an estimate of how many bytes +you will need to hold a set of data and then how many pages it will take +to actually store it on disk. +<p>Space freed by deleting key/data pairs from a Btree or Hash database is +never returned to the filesystem, although it is reused where possible. +This means that the Btree and Hash databases are grow-only. If enough +keys are deleted from a database that shrinking the underlying file is +desirable, you should create a new database and copy the records from +the old one into it. +<p>These are rough estimates at best. For example, they do not take into +account overflow records, filesystem metadata information, large sets +of duplicate data items (where the key is only stored once), or +real-life situations where the sizes of key and data items are wildly +variable, and the page-fill factor changes over time. +<h3>Btree</h3> +<p>The formulas for the Btree access method are as follows: +<p><blockquote><pre>useful-bytes-per-page = (page-size - page-overhead) * page-fill-factor +<p> +bytes-of-data = n-records * + (bytes-per-entry + page-overhead-for-two-entries) +<p> +n-pages-of-data = bytes-of-data / useful-bytes-per-page +<p> +total-bytes-on-disk = n-pages-of-data * page-size +</pre></blockquote> +<p>The <b>useful-bytes-per-page</b> is a measure of the bytes on each page +that will actually hold the application data. It is computed as the total +number of bytes on the page that are available to hold application data, +corrected by the percentage of the page that is likely to contain data. +The reason for this correction is that the percentage of a page that +contains application data can vary from close to 50% after a page split +to almost 100% if the entries in the database were inserted in sorted +order. Obviously, the <b>page-fill-factor</b> can drastically alter +the amount of disk space required to hold any particular data set. The +page-fill factor of any existing database can be displayed using the +<a href="../../utility/db_stat.html">db_stat</a> utility. +<p>As an example, using an 8K page size, with an 85% page-fill factor, there +are 6941 bytes of useful space on each page: +<p><blockquote><pre>6941 = (8192 - 26) * .85</pre></blockquote> +<p>The total <b>bytes-of-data</b> is an easy calculation: It is the number +of key/data pairs plus the overhead required to store each pair on a page. +The overhead to store a single item on a Btree page is 5 bytes. So, +assuming 60,000,000 key/data pairs, each of which is 8 bytes long, there +are 1440000000 bytes, or roughly 1.34GB of total data: +<p><blockquote><pre>1560000000 = 60000000 * ((8 * 2) + (5 * 2))</pre></blockquote> +<p>The total pages of data, <b>n-pages-of-data</b>, is the +<b>bytes-of-data</b> divided by the <b>useful-bytes-per-page</b>. In +the example, there are 224751 pages of data. +<p><blockquote><pre>224751 = 1560000000 / 6941</pre></blockquote> +<p>The total bytes of disk space for the database is <b>n-pages-of-data</b> +multiplied by the <b>page-size</b>. In the example, the result is +1841160192 bytes, or roughly 1.71GB. +<p><blockquote><pre>1841160192 = 224751 * 8192</pre></blockquote> +<h3>Hash</h3> +<p>The formulas for the Hash access method are as follows: +<p><blockquote><pre>useful-bytes-per-page = (page-size - page-overhead) +<p> +bytes-of-data = n-records * + (bytes-per-entry + page-overhead-for-two-entries) +<p> +n-pages-of-data = bytes-of-data / useful-bytes-per-page +<p> +total-bytes-on-disk = n-pages-of-data * page-size +</pre></blockquote> +<p>The <b>useful-bytes-per-page</b> is a measure of the bytes on each page +that will actually hold the application data. It is computed as the total +number of bytes on the page that are available to hold application data. +If the application has explicitly set a page-fill factor, pages will +not necessarily be kept full. For databases with a preset fill factor, +see the calculation below. The page-overhead for Hash databases is 26 +bytes and the page-overhead-for-two-entries is 6 bytes. +<p>As an example, using an 8K page size, there are 8166 bytes of useful space +on each page: +<p><blockquote><pre>8166 = (8192 - 26)</pre></blockquote> +<p>The total <b>bytes-of-data</b> is an easy calculation: it is the number +of key/data pairs plus the overhead required to store each pair on a page. +In this case that's 6 bytes per pair. So, assuming 60,000,000 key/data +pairs, each of which is 8 bytes long, there are 1320000000 bytes, or +roughly 1.23GB of total data: +<p><blockquote><pre>1320000000 = 60000000 * (16 + 6)</pre></blockquote> +<p>The total pages of data, <b>n-pages-of-data</b>, is the +<b>bytes-of-data</b> divided by the <b>useful-bytes-per-page</b>. In +this example, there are 161646 pages of data. +<p><blockquote><pre>161646 = 1320000000 / 8166</pre></blockquote> +<p>The total bytes of disk space for the database is <b>n-pages-of-data</b> +multiplied by the <b>page-size</b>. In the example, the result is +1324204032 bytes, or roughly 1.23GB. +<p><blockquote><pre>1324204032 = 161646 * 8192</pre></blockquote> +<p>Now, let's assume that the application specified a fill factor explicitly. +The fill factor indicates the target number of items to place on a single +page (a fill factor might reduce the utilization of each page, but it can +be useful in avoiding splits and preventing buckets from becoming too +large). Using our estimates above, each item is 22 bytes (16 + 6), and +there are 8166 useful bytes on a page (8192 - 26). That means that, on +average, you can fit 371 pairs per page. +<p><blockquote><pre>371 = 8166 / 22</pre></blockquote> +<p>However, let's assume that the application designer knows that although +most items are 8 bytes, they can sometimes be as large as 10, and it's +very important to avoid overflowing buckets and splitting. Then, the +application might specify a fill factor of 314. +<p><blockquote><pre>314 = 8166 / 26</pre></blockquote> +<p>With a fill factor of 314, then the formula for computing database size +is +<p><blockquote><pre>n-pages-of-data = npairs / pairs-per-page</pre></blockquote> +<p>or 191082. +<p><blockquote><pre>191082 = 60000000 / 314</pre></blockquote> +<p>At 191082 pages, the total database size would be 1565343744, or 1.46GB. +<p><blockquote><pre>1565343744 = 191082 * 8192</pre></blockquote> +<p>There are a few additional caveats with respect to Hash databases. This +discussion assumes that the hash function does a good job of evenly +distributing keys among hash buckets. If the function does not do this, +you may find your table growing significantly larger than you expected. +Secondly, in order to provide support for Hash databases coexisting with +other databases in a single file, pages within a Hash database are +allocated in power-of-two chunks. That means that a Hash database with 65 +buckets will take up as much space as a Hash database with 128 buckets; +each time the Hash database grows beyond its current power-of-two number +of buckets, it allocates space for the next power-of-two buckets. This +space may be sparsely allocated in the file system, but the files will +appear to be their full size. Finally, because of this need for +contiguous allocation, overflow pages and duplicate pages can be allocated +only at specific points in the file, and this too can lead to sparse hash +tables. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am_misc/dbsizes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/tune.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/error.html b/db/docs/ref/am_misc/error.html new file mode 100644 index 000000000..86d14ad71 --- /dev/null +++ b/db/docs/ref/am_misc/error.html @@ -0,0 +1,62 @@ +<!--Id: error.so,v 10.20 2001/05/07 19:28:38 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Error support</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am_misc/perm.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/stability.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Error support</h1> +<p>Berkeley DB offers programmatic support for displaying error return values. +<p>The <a href="../../api_c/env_strerror.html">db_strerror</a> interface returns a pointer to the error +message corresponding to any Berkeley DB error return, similar to the ANSI C +strerror interface, but is able to handle both system error returns and +Berkeley DB specific return values. +<p>For example: +<p><blockquote><pre>int ret; +if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) != 0) { + fprintf(stderr, "put failed: %s\n", db_strerror(ret)); + return (1); +}</pre></blockquote> +<p>There are also two additional error interfaces, <a href="../../api_c/db_err.html">DB->err</a> and +<a href="../../api_c/db_err.html">DB->errx</a>. These interfaces work like the ANSI C X3.159-1989 (ANSI C) printf +interface, taking a printf-style format string and argument list, and +writing a message constructed from the format string and arguments. +<p>The <a href="../../api_c/db_err.html">DB->err</a> function appends the standard error string to the constructed +message; the <a href="../../api_c/db_err.html">DB->errx</a> function does not. These interfaces provide simpler +ways of displaying Berkeley DB error messages. For example, if your application +tracks session IDs in a variable called session_id, it can include that +information in its error messages: +<p>Error messages can additionally be configured to always include a prefix +(for example, the program name) using the <a href="../../api_c/db_set_errpfx.html">DB->set_errpfx</a> interface. +<p><blockquote><pre>#define DATABASE "access.db" +<p> +int ret; +<p> +(void)dbp->set_errpfx(dbp, program_name); +<p> +if ((ret = + dbp->open(dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) { + dbp->err(dbp, ret, "%s", DATABASE); + dbp->errx(dbp, + "contact your system administrator: session ID was %d", + session_id); + return (1); +}</pre></blockquote> +<p>For example, if the program were called my_app and the open call returned +an EACCESS system error, the error messages shown would appear as follows: +<p><blockquote><pre>my_app: access.db: Permission denied. +my_app: contact your system administrator: session ID was 14</pre></blockquote> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am_misc/perm.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/stability.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/faq.html b/db/docs/ref/am_misc/faq.html new file mode 100644 index 000000000..e8e2103bf --- /dev/null +++ b/db/docs/ref/am_misc/faq.html @@ -0,0 +1,59 @@ +<!--Id: faq.so,v 10.6 2001/05/04 14:38:42 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Access method FAQ</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am_misc/tune.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/bigpic.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Access method FAQ</h1> +<p><ol> +<p><li><b>I'm seeing database corruption when creating multiple databases +in a single physical file.</b> +<p>This problem is usually the result of DB handles not sharing an +underlying database environment. See <a href="../../ref/am/opensub.html">Opening multiple databases in a single file</a> for more information. + <a name="3"><!--meow--></a> <a name="4"><!--meow--></a> +<p><li><b>Is there any way to compact databases, or return unused +database pages to the filesystem?</b> +<p>When Berkeley DB database pages are emptied, they are made available for other +uses, that is, new pages will not be allocated from the underlying +filesystems as long as there are unused pages available. However, you +cannot return those pages to the filesystem without dumping and +reloading the database. + <a name="5"><!--meow--></a> +<p><li><b>Is there any way to avoid double buffering in the Berkeley DB system?</b> +<p>While you cannot avoid double buffering entirely, there are three +different tuning knobs you can work with to address this issue: +<p>First, the Berkeley DB cache size can be explicitly set. Rather than allocate +additional space in the Berkeley DB cache to cover unexpectedly heavy load or +large table sizes, double buffering may suggest you size the cache to +function well under normal conditions, and then depend on the file +buffer cache to cover abnormal conditions. Obviously, this is a +trade-off, as Berkeley DB may not then perform as well as usual under abnormal +conditions. +<p>Second, depending on the underlying operating system you're using, you +may be able to alter the amount of physical memory devoted to the file +buffer cache. Running as the system super-user makes a difference for +some UNIX or UNIX-like operating systems as well. +<p>Third, changing the size of the Berkeley DB environment regions can change +the amount of space the operating system makes available for the file +buffer cache, and it's often worth considering exactly how the operating +system is dividing up its available memory. Further, moving the Berkeley DB +database environment regions from filesystem backed memory into system +memory (or heap memory), can often make additional system memory +available for the file buffer cache, especially on systems without a +unified buffer cache and VM system. +</ol> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am_misc/tune.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/bigpic.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/partial.html b/db/docs/ref/am_misc/partial.html new file mode 100644 index 000000000..0842519ee --- /dev/null +++ b/db/docs/ref/am_misc/partial.html @@ -0,0 +1,134 @@ +<!--Id: partial.so,v 10.21 2001/03/10 19:59:24 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Partial record storage and retrieval</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am_misc/align.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/perm.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Partial record storage and retrieval</h1> +<p>It is possible to both store and retrieve parts of data items in all +Berkeley DB access methods. This is done by setting the +<a href="../../api_c/dbt.html#DB_DBT_PARTIAL">DB_DBT_PARTIAL</a> flag in the <a href="../../api_c/dbt.html">DBT</a> structure passed to the +Berkeley DB interface. +<p>The <a href="../../api_c/dbt.html#DB_DBT_PARTIAL">DB_DBT_PARTIAL</a> flag is based on the values of two fields +of the <a href="../../api_c/dbt.html">DBT</a> structure: <b>dlen</b> and <b>doff</b>. The value +of <b>dlen</b> is the number of bytes of the record in which the +application is interested. The value of <b>doff</b> is the offset from +the beginning of the data item where those bytes start. +<p>For example, if the data item were <b>ABCDEFGHIJKL</b>, a <b>doff</b> +value of 3 would indicate that the bytes of interest started at +<b>D</b>, and a <b>dlen</b> value of 4 would indicate that the bytes +of interest were <b>DEFG</b>. +<p>When retrieving a data item from a database, the <b>dlen</b> bytes +starting <b>doff</b> bytes from the beginning of the record are +returned, as if they comprised the entire record. If any or all of the +specified bytes do not exist in the record, the retrieval is still +successful, and any existing bytes (and nul bytes for any non-existent +bytes) are returned. +<p>When storing a data item into the database, the <b>dlen</b> bytes +starting <b>doff</b> bytes from the beginning of the specified key's +data record are replaced by the data specified by the <b>data</b> and +<b>size</b> fields. If <b>dlen</b> is smaller than <b>size</b>, the +record will grow, and if <b>dlen</b> is larger than <b>size</b>, the +record will shrink. If the specified bytes do not exist, the record will +be extended using nul bytes as necessary, and the store call will still +succeed. +<p>The following are various examples of the put case for the +<a href="../../api_c/dbt.html#DB_DBT_PARTIAL">DB_DBT_PARTIAL</a> flag. In all examples, the initial data item is 20 +bytes in length: +<p><b>ABCDEFGHIJ0123456789</b> +<p><ol> +<p><li><p><blockquote><pre>size = 20 +doff = 0 +dlen = 20 +data = abcdefghijabcdefghij +<p> +Result: The 20 bytes at offset 0 are replaced by the 20 bytes of data; +that is, the entire record is replaced. +<p> +ABCDEFGHIJ0123456789 -> abcdefghijabcdefghij +</pre></blockquote> +<p><li><p><blockquote><pre>size = 10 +doff = 20 +dlen = 0 +data = abcdefghij +<p> +Result: The 0 bytes at offset 20 are replaced by the 10 bytes of data; +that is, the record is extended by 10 bytes. +<p> +ABCDEFGHIJ0123456789 -> ABCDEFGHIJ0123456789abcdefghij +</pre></blockquote> +<p><li><p><blockquote><pre>size = 10 +doff = 10 +dlen = 5 +data = abcdefghij +<p> +Result: The 5 bytes at offset 10 are replaced by the 10 bytes of data. +<p> +ABCDEFGHIJ0123456789 -> ABCDEFGHIJabcdefghij56789 +</pre></blockquote> +<p><li><p><blockquote><pre>size = 10 +doff = 10 +dlen = 0 +data = abcdefghij +<p> +Result: The 0 bytes at offset 10 are replaced by the 10 bytes of data; +that is, 10 bytes are inserted into the record. +<p> +ABCDEFGHIJ0123456789 -> ABCDEFGHIJabcdefghij0123456789 +</pre></blockquote> +<p><li><p><blockquote><pre>size = 10 +doff = 2 +dlen = 15 +data = abcdefghij +<p> +Result: The 15 bytes at offset 2 are replaced by the 10 bytes of data. +<p> +ABCDEFGHIJ0123456789 -> ABabcdefghij789 +</pre></blockquote> +<p><li><p><blockquote><pre>size = 10 +doff = 0 +dlen = 0 +data = abcdefghij +<p> +Result: The 0 bytes at offset 0 are replaced by the 10 bytes of data; +that is, the 10 bytes are inserted at the beginning of the record. +<p> +ABCDEFGHIJ0123456789 -> abcdefghijABCDEFGHIJ0123456789 +</pre></blockquote> +<p><li><p><blockquote><pre>size = 0 +doff = 0 +dlen = 10 +data = "" +<p> +Result: The 10 bytes at offset 0 are replaced by the 0 bytes of data; +that is, the first 10 bytes of the record are discarded. +<p> +ABCDEFGHIJ0123456789 -> 0123456789 +</pre></blockquote> +<p><li><p><blockquote><pre>size = 10 +doff = 25 +dlen = 0 +data = abcdefghij +<p> +Result: The 0 bytes at offset 25 are replaced by the 10 bytes of data; +that is, 10 bytes are inserted into the record past the end of the +current data (\0 represents a nul byte). +<p> +ABCDEFGHIJ0123456789 -> ABCDEFGHIJ0123456789\0\0\0\0\0abcdefghij +</pre></blockquote> +</ol> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am_misc/align.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/perm.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/perm.html b/db/docs/ref/am_misc/perm.html new file mode 100644 index 000000000..e4b1e617e --- /dev/null +++ b/db/docs/ref/am_misc/perm.html @@ -0,0 +1,36 @@ +<!--Id: perm.so,v 1.3 2001/05/05 01:49:22 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Retrieved key/data permanence for C/C++</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> <a name="3"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am_misc/partial.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/error.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Retrieved key/data permanence for C/C++</h1> +<p>When using the non-cursor Berkeley DB calls to retrieve key/data items under +the C/C++ APIs (for example, <a href="../../api_c/db_get.html">DB->get</a>), the memory to which the +pointer stored into the <a href="../../api_c/dbt.html">DBT</a> refers is only valid until the next +call to Berkeley DB using the DB handle. (This includes <b>any</b> +use of the returned DB handle, including by another thread of +control within the process. For this reason, when multiple threads are +using the returned DB handle concurrently, one of the +<a href="../../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a>, <a href="../../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> or <a href="../../api_c/dbt.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a> +flags must be specified with any non-cursor <a href="../../api_c/dbt.html">DBT</a> used for key or +data retrieval.) +<p>When using the cursor Berkeley DB calls to retrieve key/data items under the +C/C++ APIs (for example, <a href="../../api_c/dbc_get.html">DBcursor->c_get</a>), the memory to which the +pointer stored into the <a href="../../api_c/dbt.html">DBT</a> refers is only valid until the next +call to Berkeley DB using the DBC handle returned by <a href="../../api_c/db_cursor.html">DB->cursor</a>. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am_misc/partial.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/error.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/stability.html b/db/docs/ref/am_misc/stability.html new file mode 100644 index 000000000..2570f8cc4 --- /dev/null +++ b/db/docs/ref/am_misc/stability.html @@ -0,0 +1,54 @@ +<!--Id: stability.so,v 10.28 2001/04/04 22:32:29 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Cursor stability</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> <a name="3"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am_misc/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/dbsizes.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Cursor stability</h1> +<p>In the absence of locking, no guarantees are made about the stability +of cursors in different threads of control. However, the Btree, Queue +and Recno access methods guarantee that cursor operations, interspersed +with any other operation in the same thread of control will always +return keys in order and will return each non-deleted key/data pair +exactly once. Because the Hash access method uses a dynamic hashing +algorithm, it cannot guarantee any form of stability in the presence of +inserts and deletes unless transactional locking is performed. +<p>If locking was specified when the Berkeley DB environment was opened, but +transactions are not in effect, the access methods provide repeatable +reads with respect to the cursor. That is, a <a href="../../api_c/dbc_get.html#DB_CURRENT">DB_CURRENT</a> call +on the cursor is guaranteed to return the same record as was returned +on the last call to the cursor. + <a name="4"><!--meow--></a> <a name="5"><!--meow--></a> +<p>In the presence of transactions, the Btree, Hash and Recno access +methods provide degree 3 isolation (serializable transactions). The +Queue access method provides degree 3 isolation with the exception that +it permits phantom records to appear between calls. That is, deleted +records are not locked, therefore another transaction may replace a +deleted record between two calls to retrieve it. The record would not +appear in the first call but would be seen by the second call. For +readers not enclosed in transactions, all access method calls provide +degree 2 isolation, that is, reads are not repeatable. Finally, Berkeley DB +provides degree 1 isolation when the <a href="../../api_c/db_open.html#DB_DIRTY_READ">DB_DIRTY_READ</a> flag is +specified; that is, reads may see data modified in transactions which +have not yet committed. +<p>For all access methods, a cursor scan of the database performed within +the context of a transaction is guaranteed to return each key/data pair +once and only once, except in the following case. If, while performing +a cursor scan using the Hash access method, the transaction performing +the scan inserts a new pair into the database, it is possible that +duplicate key/data pairs will be returned. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am_misc/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/dbsizes.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/am_misc/tune.html b/db/docs/ref/am_misc/tune.html new file mode 100644 index 000000000..f4aa16b6c --- /dev/null +++ b/db/docs/ref/am_misc/tune.html @@ -0,0 +1,84 @@ +<!--Id: tune.so,v 10.6 2001/03/10 19:59:24 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Access method tuning</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> <a name="3"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td> +<td align=right><a href="../../ref/am_misc/diskspace.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/faq.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Access method tuning</h1> +<p>There are a few different issues to consider when tuning the performance +of Berkeley DB access method applications. +<p><dl compact> +<p><dt>access method<dd>An application's choice of a database access method can significantly +affect performance. Applications using fixed-length records and integer +keys are likely to get better performance from the Queue access method. +Applications using variable-length records are likely to get better +performance from the Btree access method, as it tends to be faster for +most applications than either the Hash or Recno access methods. Because +the access method APIs are largely identical between the Berkeley DB access +methods, it is easy for applications to benchmark the different access +methods against each other. See <a href="../../ref/am_conf/select.html">Selecting an access method</a> for more information. +<p><dt>cache size<dd>The Berkeley DB database cache defaults to a fairly small size, and most +applications concerned with performance will want to set it explicitly. +Using a too-small cache will result in horrible performance. The first +step in tuning the cache size is to use the db_stat utility (or the +statistics returned by the <a href="../../api_c/db_stat.html">DB->stat</a> function) to measure the +effectiveness of the cache. The goal is to maximize the cache's hit +rate. Typically, increasing the size of the cache until the hit rate +reaches 100% or levels off will yield the best performance. However, +if your working set is sufficiently large, you will be limited by the +system's available physical memory. Depending on the virtual memory +and file system buffering policies of your system, and the requirements +of other applications, the maximum cache size will be some amount +smaller than the size of physical memory. If you find that +<a href="../../utility/db_stat.html">db_stat</a> shows that increasing the cache size improves your hit +rate, but performance is not improving (or is getting worse), then it's +likely you've hit other system limitations. At this point, you should +review the system's swapping/paging activity and limit the size of the +cache to the maximum size possible without triggering paging activity. +Finally, always remember to make your measurements under conditions as +close as possible to the conditions your deployed application will run +under, and to test your final choices under worst-case conditions. +<p><dt>shared memory<dd>By default, Berkeley DB creates its database environment shared regions in +filesystem backed memory. Some systems do not distinguish between +regular filesystem pages and memory-mapped pages backed by the +filesystem, when selecting dirty pages to be flushed back to disk. For +this reason, dirtying pages in the Berkeley DB cache may cause intense +filesystem activity, typically when the filesystem sync thread or +process is run. In some cases, this can dramatically affect application +throughput. The workaround to this problem is to create the shared +regions in system shared memory (<a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a>) or in +application private memory (<a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a>). +<p><dt>large key/data items<dd>Storing large key/data items in a database can alter the performance +characteristics of Btree, Hash and Recno databases. The first parameter +to consider is the database page size. When a key/data item is too +large to be placed on a database page, it is stored on "overflow" pages +that are maintained outside of the normal database structure (typically, +items that are larger than one-quarter of the page size are deemed to +be too large). Accessing these overflow pages requires at least one +additional page reference over a normal access, so it is usually better +to increase the page size than to create a database with a large number +of overflow pages. Use the <a href="../../utility/db_stat.html">db_stat</a> utility (or the statistics +returned by the <a href="../../api_c/db_stat.html">DB->stat</a> function) to review the number of overflow +pages in the database. +<p>The second issue is using large key/data items instead of duplicate data +items. While this can offer performance gains to some applications +(because it is possible to retrieve several data items in a single get +call), once the key/data items are large enough to be pushed off-page, +they will slow the application down. Using duplicate data items is +usually the better choice in the long run. +</dl> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/am_misc/diskspace.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_misc/faq.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/build_unix/embedix.html b/db/docs/ref/build_unix/embedix.html new file mode 100644 index 000000000..342cf0f3d --- /dev/null +++ b/db/docs/ref/build_unix/embedix.html @@ -0,0 +1,36 @@ +<!--Id: embedix.so,v 11.1 2001/04/04 18:14:17 sue Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Embedix</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td> +<td align=right><a href="../../ref/build_unix/aix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/freebsd.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Embedix</h1> +<p><ol> +<p><li><b>How do I make Embedix aware of Berkeley DB?</b> +<p>In order to make Embedix aware of a software component, two items are +needed, an Embedix Component Descriptor file and a source RPM file +for that component. After Berkeley DB has been configured for RPM and +Embedix using the configuration options described in <a href="conf.html">Configuring +Berkeley DB</a>, the RPM should be built using: +<p><blockquote><pre>make</pre></blockquote> +After the RPM is built, as root, the files need to be installed +in the Embedix installation area, using: +<p><blockquote><pre>make install</pre></blockquote> +After installation, start up the +Embedix target wizard and Berkeley DB will appear in the component list. +</ol> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/build_unix/aix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/freebsd.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/env/faq.html b/db/docs/ref/env/faq.html new file mode 100644 index 000000000..b6d572210 --- /dev/null +++ b/db/docs/ref/env/faq.html @@ -0,0 +1,41 @@ +<!--Id: faq.so,v 10.1 2001/04/25 15:10:45 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Environment FAQ</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td> +<td align=right><a href="../../ref/env/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/cam/intro.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Environment FAQ</h1> +<p><ol> +<p><li><b>I'm using multiple processes to access an Berkeley DB database +environment; is there any way to ensure that two processes don't run +recovery at the same time, or that all processes have exited the +database environment so that recovery can be run?</b> +<p>It's the responsibility of the processes (and/or threads of control) +using a Berkeley DB environment to ensure recovery is never performed if there +are other processes running recovery or using an existing database +environment. It would be great if Berkeley DB could solve this, but it +requires a way to single-thread execution on a system, and there's +rarely anything Berkeley DB can use for that purpose -- let alone a portable +method. +<p>Most application suites solve this problem by writing a tiny watch +program that recovers the database environment and then runs the +processes that actually use the database environment to perform work. +The watcher program then monitors the working processes, and if any of +them exit badly for any reason, the watcher kills any remaining +processes and restarts the cycle. +</ol> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/env/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/cam/intro.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/install/multiple.html b/db/docs/ref/install/multiple.html new file mode 100644 index 000000000..c72a3fd4e --- /dev/null +++ b/db/docs/ref/install/multiple.html @@ -0,0 +1,54 @@ +<!--Id: multiple.so,v 10.3 2001/04/16 17:47:13 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Building with multiple versions of Berkeley DB</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>System Installation Notes</dl></h3></td> +<td align=right><a href="../../ref/install/file.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/install/rpm.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Building with multiple versions of Berkeley DB</h1> +<p>In some cases it may be necessary to build applications which include +multiple versions of Berkeley DB. Examples include applications which include +software from other vendors, or applications running on a system where +the system C library itself uses Berkeley DB. In such cases, the two versions +of Berkeley DB may be incompatible, that is, they may have different external +and internal interfaces, and may even have different underlying database +formats. +<p>To create a Berkeley DB library whose symbols won't collide with other Berkeley DB +libraries (or other application or library modules, for that matter), +configure Berkeley DB using the <a href="../../ref/build_unix/conf.html#--with-uniquename=NAME">--with-uniquename=NAME</a> configuration option, +and then build Berkeley DB as usual. (Note that +<a href="../../ref/build_unix/conf.html#--with-uniquename=NAME">--with-uniquename</a> only affects the Berkeley DB C language library build; +loading multiple versions of the C++ or Java APIs will require +additional work.) The modified symbol names are hidden from the +application in the Berkeley DB header files, that is, there is no need for +the application to be aware that it is using a special library build as +long as it includes the appropriate Berkeley DB header file. +<p>If "NAME" is not specified when configuring with +<a href="../../ref/build_unix/conf.html#--with-uniquename=NAME">--with-uniquename</a>, a default value built from the major and minor +numbers of the Berkeley DB release will be used. It is rarely necessary to +specify NAME; using the major and minor release numbers will ensure that +only one copy of the library will be loaded into the application unless +two distinct versions really are necessary. +<p>When distributing any library software that uses Berkeley DB, or any software +which will be recompiled by users for their systems, we recommend two +things: First, include the Berkeley DB release as part of your release. This +will insulate your software from potential Berkeley DB API changes as well as +simplifying your coding because you will only have to code to a single +version of the Berkeley DB API instead of adapting at compile time to whatever +version of Berkeley DB happens to be installed on the target system. Second, +use <a href="../../ref/build_unix/conf.html#--with-uniquename=NAME">--with-uniquename</a> when configuring Berkeley DB, because that will insure that +you do not unexpectedly collide with other application code or a library +already installed on the target system. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/install/file.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/install/rpm.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/install/rpm.html b/db/docs/ref/install/rpm.html new file mode 100644 index 000000000..fed9524e5 --- /dev/null +++ b/db/docs/ref/install/rpm.html @@ -0,0 +1,28 @@ +<!--Id: rpm.so,v 1.3 2001/04/10 20:44:04 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Building RPM distribution packages</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>System Installation Notes</dl></h3></td> +<td align=right><a href="../../ref/install/multiple.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/intro.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Building RPM distribution packages</h1> +<p>If you would like to distribute your configuration and build of Berkeley DB +as an RPM software package, first configure Berkeley DB using the +<a href="../../ref/build_unix/conf.html#--with-rpm">--with-rpm</a> +configuration option, and then build Berkeley DB as follows: +<p><blockquote><pre>../dist/configure --with-rpm=DIR +make</pre></blockquote> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/install/multiple.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/intro.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/simple_tut/example.cs b/db/docs/ref/simple_tut/example.cs new file mode 100644 index 000000000..e610648d1 --- /dev/null +++ b/db/docs/ref/simple_tut/example.cs @@ -0,0 +1,73 @@ +#include <sys/types.h> + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "db.h" + +#define DATABASE "access.db" + +int +main() +{ + DB *dbp; + DBT key, data; + int ret, t_ret; + + /* Create the database handle and open the underlying database. */ + if ((ret = db_create(&dbp, NULL, 0)) != 0) { + fprintf(stderr, "db_create: %s\n", db_strerror(ret)); + exit (1); + } + if ((ret = + dbp->open(dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) { + dbp->err(dbp, ret, "%s", DATABASE); + goto err; + } + + /* Initialize key/data structures. */ + memset(&key, 0, sizeof(key)); + memset(&data, 0, sizeof(data)); + key.data = "fruit"; + key.size = sizeof("fruit"); + data.data = "apple"; + data.size = sizeof("apple"); + + /* Store a key/data pair. */ + if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0) + printf("db: %s: key stored.\n", (char *)key.data); + else { + dbp->err(dbp, ret, "DB->put"); + goto err; + } + + /* Retrieve a key/data pair. */ + if ((ret = dbp->get(dbp, NULL, &key, &data, 0)) == 0) + printf("db: %s: key retrieved: data was %s.\n", + (char *)key.data, (char *)data.data); + else { + dbp->err(dbp, ret, "DB->get"); + goto err; + } + + /* Delete a key/data pair. */ + if ((ret = dbp->del(dbp, NULL, &key, 0)) == 0) + printf("db: %s: key was deleted.\n", (char *)key.data); + else { + dbp->err(dbp, ret, "DB->del"); + goto err; + } + + /* Retrieve a key/data pair. */ + if ((ret = dbp->get(dbp, NULL, &key, &data, 0)) == 0) + printf("db: %s: key retrieved: data was %s.\n", + (char *)key.data, (char *)data.data); + else + dbp->err(dbp, ret, "DB->get"); + +err: if ((t_ret = dbp->close(dbp, 0)) != 0 && ret == 0) + ret = t_ret; + + exit(ret); +} diff --git a/db/docs/ref/transapp/nested.html b/db/docs/ref/transapp/nested.html new file mode 100644 index 000000000..902f57ed3 --- /dev/null +++ b/db/docs/ref/transapp/nested.html @@ -0,0 +1,65 @@ +<!--Id: nested.so,v 10.22 2001/03/02 21:01:22 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Nested transactions</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Berkeley DB Transactional Data Store Applications</dl></h3></td> +<td align=right><a href="../../ref/transapp/cursor.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/admin.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Nested transactions</h1> +<p>Berkeley DB provides support for nested transactions. Nested transactions +allow an application to decompose a large or long-running transaction +into smaller units that may be independently aborted. +<p>Normally, when beginning a transaction, the application will pass a NULL +value for the parent argument to <a href="../../api_c/txn_begin.html">txn_begin</a>. If, however, the +parent argument is a DB_TXN handle, the newly created transaction +will be treated as a nested transaction within the parent. Transactions +may nest arbitrarily deeply. For the purposes of this discussion, +transactions created with a parent identifier will be called +<i>child transactions</i>. +<p>Once a transaction becomes a parent, as long as any of its child +transactions are unresolved (that is, they have neither committed nor +aborted), the parent may not issue any Berkeley DB calls except to begin more +child transactions, or to commit or abort. For example, it may not +issue any access method or cursor calls. After all of a parent's +children have committed or aborted, the parent may again request +operations on its own behalf. +<p>The semantics of nested transactions are as follows. When a child +transaction is begun, it inherits all the locks of its parent. This +means that the child will never block waiting on a lock held by its +parent. Further, locks held by two children of the same parent will +also conflict. To make this concrete, consider the following set of +transactions and lock acquisitions. +<p>Transaction T1 is the parent transaction. It acquires a write lock on +item A and then begins two child transactions: C1 and C2. C1 also +wishes to acquire a write lock on A; this succeeds. If C2 attempts to +acquire a write lock on A, it will block until C1 releases the lock, at +which point it will succeed. Now, let's say that C1 acquires a write +lock on B. If C2 now attempts to obtain a lock on B, it will block. +However, let's now assume that C1 commits. Its locks are +anti-inherited, which means they are given to T1, so T1 will now hold +a lock on B. At this point, C2 would be unblocked and would then +acquire a lock on B. +<p>Child transactions are entirely subservient to their parent transaction. +They may abort, undoing their operations regardless of the eventual fate +of the parent. However, even if a child transaction commits, if its +parent transaction is eventually aborted, the child's changes are undone +and the child's transaction is effectively aborted. Any child +transactions that are not yet resolved when the parent commits or aborts +are resolved based on the parent's resolution -- committing if the +parent commits and aborting if the parent aborts. Any child +transactions that are not yet resolved when the parent prepares are also +prepared. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/transapp/cursor.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/admin.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/transapp/transapp.cs b/db/docs/ref/transapp/transapp.cs new file mode 100644 index 000000000..82e4fb42f --- /dev/null +++ b/db/docs/ref/transapp/transapp.cs @@ -0,0 +1,492 @@ +#include <sys/types.h> +#include <sys/stat.h> + +#include <errno.h> +#include <pthread.h> +#include <stdarg.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#include <db.h> + +#define ENV_DIRECTORY "TXNAPP" + +void add_cat(DB_ENV *, DB *, char *, ...); +void add_color(DB_ENV *, DB *, char *, int); +void add_fruit(DB_ENV *, DB *, char *, char *); +void *checkpoint_thread(void *); +void log_archlist(DB_ENV *); +void *logfile_thread(void *); +void db_open(DB_ENV *, DB **, char *, int); +void env_dir_create(void); +void env_open(DB_ENV **); +void usage(void); + +int +main(int argc, char *argv[]) +{ + extern char *optarg; + extern int optind; + DB *db_cats, *db_color, *db_fruit; + DB_ENV *dbenv; + pthread_t ptid; + int ch, ret; + + while ((ch = getopt(argc, argv, "")) != EOF) + switch (ch) { + case '?': + default: + usage(); + } + argc -= optind; + argv += optind; + + env_dir_create(); + env_open(&dbenv); + + /* Start a checkpoint thread. */ + if ((ret = pthread_create( + &ptid, NULL, checkpoint_thread, (void *)dbenv)) != 0) { + fprintf(stderr, + "txnapp: failed spawning checkpoint thread: %s\n", + strerror(ret)); + exit (1); + } + + /* Start a logfile removal thread. */ + if ((ret = pthread_create( + &ptid, NULL, logfile_thread, (void *)dbenv)) != 0) { + fprintf(stderr, + "txnapp: failed spawning log file removal thread: %s\n", + strerror(ret)); + exit (1); + } + + /* Open database: Key is fruit class; Data is specific type. */ + db_open(dbenv, &db_fruit, "fruit", 0); + + /* Open database: Key is a color; Data is an integer. */ + db_open(dbenv, &db_color, "color", 0); + + /* + * Open database: + * Key is a name; Data is: company name, address, cat breeds. + */ + db_open(dbenv, &db_cats, "cats", 1); + + add_fruit(dbenv, db_fruit, "apple", "yellow delicious"); + + add_color(dbenv, db_color, "blue", 0); + add_color(dbenv, db_color, "blue", 3); + + add_cat(dbenv, db_cats, + "Amy Adams", + "Sleepycat Software", + "394 E. Riding Dr., Carlisle, MA 01741, USA", + "abyssinian", + "bengal", + "chartreaux", + NULL); + + return (0); +} + +void +env_dir_create() +{ + struct stat sb; + + /* + * If the directory exists, we're done. We do not further check + * the type of the file, DB will fail appropriately if it's the + * wrong type. + */ + if (stat(ENV_DIRECTORY, &sb) == 0) + return; + + /* Create the directory, read/write/access owner only. */ + if (mkdir(ENV_DIRECTORY, S_IRWXU) != 0) { + fprintf(stderr, + "txnapp: mkdir: %s: %s\n", ENV_DIRECTORY, strerror(errno)); + exit (1); + } +} + +void +env_open(DB_ENV **dbenvp) +{ + DB_ENV *dbenv; + int ret; + + /* Create the environment handle. */ + if ((ret = db_env_create(&dbenv, 0)) != 0) { + fprintf(stderr, + "txnapp: db_env_create: %s\n", db_strerror(ret)); + exit (1); + } + + /* Set up error handling. */ + dbenv->set_errpfx(dbenv, "txnapp"); + + /* Do deadlock detection internally. */ + if ((ret = dbenv->set_lk_detect(dbenv, DB_LOCK_DEFAULT)) != 0) { + dbenv->err(dbenv, ret, "set_lk_detect: DB_LOCK_DEFAULT"); + exit (1); + } + + /* + * Open a transactional environment: + * create if it doesn't exist + * free-threaded handle + * run recovery + * read/write owner only + */ + if ((ret = dbenv->open(dbenv, ENV_DIRECTORY, + DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | + DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_THREAD, + S_IRUSR | S_IWUSR)) != 0) { + dbenv->err(dbenv, ret, "dbenv->open: %s", ENV_DIRECTORY); + exit (1); + } + + *dbenvp = dbenv; +} + +void * +checkpoint_thread(void *arg) +{ + DB_ENV *dbenv; + int ret; + + dbenv = arg; + dbenv->errx(dbenv, "Checkpoint thread: %lu", (u_long)pthread_self()); + + /* Checkpoint once a minute. */ + for (;; sleep(60)) + switch (ret = txn_checkpoint(dbenv, 0, 0, 0)) { + case 0: + case DB_INCOMPLETE: + break; + default: + dbenv->err(dbenv, ret, "checkpoint thread"); + exit (1); + } + + /* NOTREACHED */ +} + +void * +logfile_thread(void *arg) +{ + DB_ENV *dbenv; + int ret; + char **begin, **list; + + dbenv = arg; + dbenv->errx(dbenv, + "Log file removal thread: %lu", (u_long)pthread_self()); + + /* Check once every 5 minutes. */ + for (;; sleep(300)) { + /* Get the list of log files. */ + if ((ret = log_archive(dbenv, &list, DB_ARCH_ABS)) != 0) { + dbenv->err(dbenv, ret, "log_archive"); + exit (1); + } + + /* Remove the log files. */ + if (list != NULL) { + for (begin = list; *list != NULL; ++list) + if ((ret = remove(*list)) != 0) { + dbenv->err(dbenv, + ret, "remove %s", *list); + exit (1); + } + free (begin); + } + } + /* NOTREACHED */ +} + +void +log_archlist(DB_ENV *dbenv) +{ + int ret; + char **begin, **list; + + /* Get the list of database files. */ + if ((ret = log_archive(dbenv, + &list, DB_ARCH_ABS | DB_ARCH_DATA)) != 0) { + dbenv->err(dbenv, ret, "log_archive: DB_ARCH_DATA"); + exit (1); + } + if (list != NULL) { + for (begin = list; *list != NULL; ++list) + printf("database file: %s\n", *list); + free (begin); + } + + /* Get the list of log files. */ + if ((ret = log_archive(dbenv, + &list, DB_ARCH_ABS | DB_ARCH_LOG)) != 0) { + dbenv->err(dbenv, ret, "log_archive: DB_ARCH_LOG"); + exit (1); + } + if (list != NULL) { + for (begin = list; *list != NULL; ++list) + printf("log file: %s\n", *list); + free (begin); + } +} + +void +db_open(DB_ENV *dbenv, DB **dbp, char *name, int dups) +{ + DB *db; + int ret; + + /* Create the database handle. */ + if ((ret = db_create(&db, dbenv, 0)) != 0) { + dbenv->err(dbenv, ret, "db_create"); + exit (1); + } + + /* Optionally, turn on duplicate data items. */ + if (dups && (ret = db->set_flags(db, DB_DUP)) != 0) { + dbenv->err(dbenv, ret, "db->set_flags: DB_DUP"); + exit (1); + } + + /* + * Open a database in the environment: + * create if it doesn't exist + * free-threaded handle + * read/write owner only + */ + if ((ret = db->open(db, name, NULL, + DB_BTREE, DB_CREATE | DB_THREAD, S_IRUSR | S_IWUSR)) != 0) { + dbenv->err(dbenv, ret, "db->open: %s", name); + exit (1); + } + + *dbp = db; +} + +void +add_fruit(DB_ENV *dbenv, DB *db, char *fruit, char *name) +{ + DBT key, data; + DB_TXN *tid; + int ret; + + /* Initialization. */ + memset(&key, 0, sizeof(key)); + memset(&data, 0, sizeof(data)); + key.data = fruit; + key.size = strlen(fruit); + data.data = name; + data.size = strlen(name); + + for (;;) { + /* Begin the transaction. */ + if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) { + dbenv->err(dbenv, ret, "txn_begin"); + exit (1); + } + + /* Store the value. */ + switch (ret = db->put(db, tid, &key, &data, 0)) { + case 0: + /* Success: commit the change. */ + if ((ret = txn_commit(tid, 0)) != 0) { + dbenv->err(dbenv, ret, "txn_commit"); + exit (1); + } + return; + case DB_LOCK_DEADLOCK: + /* Deadlock: retry the operation. */ + if ((ret = txn_abort(tid)) != 0) { + dbenv->err(dbenv, ret, "txn_abort"); + exit (1); + } + break; + default: + /* Error: run recovery. */ + dbenv->err(dbenv, ret, "dbc->put: %s/%s", fruit, name); + exit (1); + } + } +} + +void +add_color(DB_ENV *dbenv, DB *dbp, char *color, int increment) +{ + DBT key, data; + DB_TXN *tid; + int original, ret; + char buf[64]; + + /* Initialization. */ + memset(&key, 0, sizeof(key)); + key.data = color; + key.size = strlen(color); + memset(&data, 0, sizeof(data)); + data.flags = DB_DBT_MALLOC; + + for (;;) { + /* Begin the transaction. */ + if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) { + dbenv->err(dbenv, ret, "txn_begin"); + exit (1); + } + + /* + * Get the key. If it exists, we increment the value. If it + * doesn't exist, we create it. + */ + switch (ret = dbp->get(dbp, tid, &key, &data, 0)) { + case 0: + original = atoi(data.data); + break; + case DB_LOCK_DEADLOCK: + /* Deadlock: retry the operation. */ + if ((ret = txn_abort(tid)) != 0) { + dbenv->err(dbenv, ret, "txn_abort"); + exit (1); + } + continue; + case DB_NOTFOUND: + original = 0; + break; + default: + /* Error: run recovery. */ + dbenv->err( + dbenv, ret, "dbc->get: %s/%d", color, increment); + exit (1); + } + if (data.data != NULL) + free(data.data); + + /* Create the new data item. */ + (void)snprintf(buf, sizeof(buf), "%d", original + increment); + data.data = buf; + data.size = strlen(buf) + 1; + + /* Store the new value. */ + switch (ret = dbp->put(dbp, tid, &key, &data, 0)) { + case 0: + /* Success: commit the change. */ + if ((ret = txn_commit(tid, 0)) != 0) { + dbenv->err(dbenv, ret, "txn_commit"); + exit (1); + } + return; + case DB_LOCK_DEADLOCK: + /* Deadlock: retry the operation. */ + if ((ret = txn_abort(tid)) != 0) { + dbenv->err(dbenv, ret, "txn_abort"); + exit (1); + } + break; + default: + /* Error: run recovery. */ + dbenv->err( + dbenv, ret, "dbc->put: %s/%d", color, increment); + exit (1); + } + } +} + +void +add_cat(DB_ENV *dbenv, DB *db, char *name, ...) +{ + va_list ap; + DBC *dbc; + DBT key, data; + DB_TXN *tid; + int ret; + char *s; + + /* Initialization. */ + memset(&key, 0, sizeof(key)); + memset(&data, 0, sizeof(data)); + key.data = name; + key.size = strlen(name); + +retry: /* Begin the transaction. */ + if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) { + dbenv->err(dbenv, ret, "txn_begin"); + exit (1); + } + + /* Delete any previously existing item. */ + switch (ret = db->del(db, tid, &key, 0)) { + case 0: + case DB_NOTFOUND: + break; + case DB_LOCK_DEADLOCK: + /* Deadlock: retry the operation. */ + if ((ret = txn_abort(tid)) != 0) { + dbenv->err(dbenv, ret, "txn_abort"); + exit (1); + } + goto retry; + default: + dbenv->err(dbenv, ret, "db->del: %s", name); + exit (1); + } + + /* Create a cursor. */ + if ((ret = db->cursor(db, tid, &dbc, 0)) != 0) { + dbenv->err(dbenv, ret, "db->cursor"); + exit (1); + } + + /* Append the items, in order. */ + va_start(ap, name); + while ((s = va_arg(ap, char *)) != NULL) { + data.data = s; + data.size = strlen(s); + switch (ret = dbc->c_put(dbc, &key, &data, DB_KEYLAST)) { + case 0: + break; + case DB_LOCK_DEADLOCK: + va_end(ap); + + /* Deadlock: retry the operation. */ + if ((ret = dbc->c_close(dbc)) != 0) { + dbenv->err( + dbenv, ret, "dbc->c_close"); + exit (1); + } + if ((ret = txn_abort(tid)) != 0) { + dbenv->err(dbenv, ret, "txn_abort"); + exit (1); + } + goto retry; + default: + /* Error: run recovery. */ + dbenv->err(dbenv, ret, "dbc->put: %s/%s", name, s); + exit (1); + } + } + va_end(ap); + + /* Success: commit the change. */ + if ((ret = dbc->c_close(dbc)) != 0) { + dbenv->err(dbenv, ret, "dbc->c_close"); + exit (1); + } + if ((ret = txn_commit(tid, 0)) != 0) { + dbenv->err(dbenv, ret, "txn_commit"); + exit (1); + } +} + +void +usage() +{ + (void)fprintf(stderr, "usage: txnapp\n"); + exit(1); +} diff --git a/db/docs/ref/transapp/tune.html b/db/docs/ref/transapp/tune.html new file mode 100644 index 000000000..a8bf1b66c --- /dev/null +++ b/db/docs/ref/transapp/tune.html @@ -0,0 +1,92 @@ +<!--Id: tune.so,v 11.8 2001/04/04 22:32:29 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Transaction tuning</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> <a name="3"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Berkeley DB Transactional Data Store Applications</dl></h3></td> +<td align=right><a href="../../ref/transapp/reclimit.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/throughput.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Transaction tuning</h1> +<p>There are a few different issues to consider when tuning the performance +of Berkeley DB transactional applications. First, you should review +<a href="../../ref/am_misc/tune.html">Access method tuning</a>, as the +tuning issues for access method applications are applicable to +transactional applications as well. The following are additional tuning +issues for Berkeley DB transactional applications: +<p><dl compact> +<p><dt>access method<dd>Highly concurrent applications should use the Queue access method, where +possible, as it provides finer-granularity of locking than the other +access methods. Otherwise, applications usually see better concurrency +when using the Btree access method than when using either the Hash or +Recno access methods. +<p><dt>record numbers<dd>Using record numbers outside of the Queue access method will often slow +down concurrent applications as they limit the degree of concurrency +available in the database. +Using the Recno access method, or the Btree access +method with retrieval by record number configured can slow applications +down. +<p><dt>Btree database size<dd>When using the Btree access method, applications supporting concurrent +access may see excessive numbers of deadlocks in small databases. There +are two different approaches to resolving this problem. First, as the +Btree access method uses page-level locking, decreasing the database +page size can result in fewer lock conflicts. Second, in the case of +databases that are cyclically growing and shrinking, turning off reverse +splits can leave the database with enough pages that there will be fewer +lock conflicts. +<p><dt>transactionally protected read operations<dd>Most applications do not need repeatable reads. Performing all read +operations outside of transactions can often significantly increase +application throughput. In addition, limiting the lifetime of +non-transactional cursors will reduce the length of times locks are +held, thereby improving concurrency. +<p><dt><a href="../../api_c/db_open.html#DB_DIRTY_READ">DB_DIRTY_READ</a><dd>Consider using the <a href="../../api_c/db_open.html#DB_DIRTY_READ">DB_DIRTY_READ</a> flag for transactions, cursors +or individual read operations. This flag allows read operations to +potentially return data which has been modified but not yet committed, +and can significantly increase application throughput in applications +that do not require data be guaranteed to be permanent in the database. +<p><dt><a href="../../api_c/dbc_get.html#DB_RMW">DB_RMW</a><dd>Consider using the <a href="../../api_c/dbc_get.html#DB_RMW">DB_RMW</a> flag to immediate acquire write locks +when reading data items that will subsequently be modified. Although +this flag may increase contention (because write locks are held longer +than they would otherwise be), it may decrease the number of deadlocks +that occur. +<p><dt><a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a><dd>By default, transactional commit in Berkeley DB implies durability, that is, +all committed operations will be present in the database after +recovery from any application or system failure. For applications not +requiring that level of certainty, specifying the <a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> +flag will often provide a significant performance improvement. In this +case, the database will still be fully recoverable, but some number of +committed transactions might be lost after system failure. +<p><dt>large key/data items<dd>Transactional protections in Berkeley DB are guaranteed by before and after +physical image logging. This means applications modifying large +key/data items also write large log records, and, in the case of the +default transaction commit, threads of control must wait until those +log records have been flushed to disk. Applications supporting +concurrent access should try and keep key/data items small wherever +possible. +<p><dt>log buffer size<dd>Berkeley DB internally maintains a buffer of log writes. The buffer is +written to disk at transaction commit, by default, or, whenever it +is filled. If it is consistently being filled before transaction +commit, it will be written multiple times per transaction, costing +application performance. In these cases, increasing the size of the +log buffer can increase application throughput. +<p><dt>trickle write<dd>In some applications, the cache is sufficiently active and dirty that +readers frequently need to write a dirty page in order to have space in +which to read a new page from the backing database file. You can use +the <a href="../../utility/db_stat.html">db_stat</a> utility (or the statistics returned by the +<a href="../../api_c/memp_stat.html">memp_stat</a> function) to see how often this is happening in your +application's cache. In this case, using a separate thread of control +and the <a href="../../api_c/memp_trickle.html">memp_trickle</a> interface to trickle-write pages can often +increase the overall throughput of the application. +</dl> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/transapp/reclimit.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/throughput.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/transapp/writetest.cs b/db/docs/ref/transapp/writetest.cs new file mode 100644 index 000000000..bde092cb6 --- /dev/null +++ b/db/docs/ref/transapp/writetest.cs @@ -0,0 +1,100 @@ +/* + * writetest -- + * + * Id: writetest.cs,v 10.3 1999/11/19 17:21:06 bostic Exp + */ +#include <sys/types.h> + +#include <errno.h> +#include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> + +void usage __P((void)); + +int +main(argc, argv) + int argc; + char *argv[]; +{ + struct timeval start_time, end_time; + long usecs; + int bytes, ch, cnt, fd, ops; + char *fname, buf[100 * 1024]; + + bytes = 256; + fname = "testfile"; + ops = 1000; + while ((ch = getopt(argc, argv, "b:f:o:")) != EOF) + switch (ch) { + case 'b': + if ((bytes = atoi(optarg)) > sizeof(buf)) { + fprintf(stderr, + "max -b option %d\n", sizeof(buf)); + exit (1); + } + break; + case 'f': + fname = optarg; + break; + case 'o': + if ((ops = atoi(optarg)) <= 0) { + fprintf(stderr, "illegal -o option value\n"); + exit (1); + } + break; + case '?': + default: + usage(); + } + argc -= optind; + argv += optind; + + (void)unlink(fname); + if ((fd = open(fname, O_RDWR | O_CREAT, 0666)) == -1) { + perror(fname); + exit (1); + } + + memset(buf, 0, bytes); + + printf("running: %d ops\n", ops); + + (void)gettimeofday(&start_time, NULL); + for (cnt = 0; cnt < ops; ++cnt) { + if (write(fd, buf, bytes) != bytes) { + fprintf(stderr, "write: %s\n", strerror(errno)); + exit (1); + } + if (lseek(fd, (off_t)0, SEEK_SET) == -1) { + fprintf(stderr, "lseek: %s\n", strerror(errno)); + exit (1); + } + if (fsync(fd) != 0) { + fprintf(stderr, "fsync: %s\n", strerror(errno)); + exit (1); + } + } + (void)gettimeofday(&end_time, NULL); + + usecs = (end_time.tv_sec - start_time.tv_sec) * 1000000 + + end_time.tv_usec - start_time.tv_usec; + printf("Elapsed time: %ld.%06ld seconds\n", + usecs / 1000000, usecs % 1000000); + printf("%d ops: %7.2f ops per second\n", + ops, (float)1000000 * ops/usecs); + + (void)unlink(fname); + exit (0); +} + +void +usage() +{ + (void)fprintf(stderr, + "usage: testfile [-b bytes] [-f file] [-o ops]\n"); + exit(1); +} diff --git a/db/docs/ref/upgrade.3.3/alloc.html b/db/docs/ref/upgrade.3.3/alloc.html new file mode 100644 index 000000000..c01fc4de7 --- /dev/null +++ b/db/docs/ref/upgrade.3.3/alloc.html @@ -0,0 +1,62 @@ +<!--Id: alloc.so,v 1.3 2001/04/19 01:35:04 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Release 3.3: DB->set_malloc, DB->set_realloc</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td> +<td align=right><a href="../../ref/upgrade.3.3/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/rpc.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Release 3.3: DB->set_malloc, DB->set_realloc</h1> +<p>There are two new interfaces in the Berkeley DB 3.3 release: +<a href="../../api_c/env_set_alloc.html">DBENV->set_alloc</a> and <a href="../../api_c/db_set_alloc.html">DB->set_alloc</a>. These functions +allow applications to specify a set of allocation functions for the +Berkeley DB library to use when allocating memory to be owned by the +application and when freeing memory that was originally allocated by +the application. +<p>The new interfaces affect or replace the following historic +interfaces: +<p><dl compact> +<p><dt>DB->set_malloc<dd>The DB->set_malloc interface has been replaced in its entirety. +Applications using this interface should replace the call with a call +to <a href="../../api_c/db_set_alloc.html">DB->set_alloc</a>. +<p><dt>DB->set_realloc<dd>The DB->set_realloc interface has been replaced in its entirety. +Applications using this interface should replace the call with a call +to <a href="../../api_c/db_set_alloc.html">DB->set_alloc</a>. +<p><dt><a href="../../api_c/db_stat.html">DB->stat</a><dd>The historic <b>db_malloc</b> argument to the <a href="../../api_c/db_stat.html">DB->stat</a> function has +been replaced. Applications using this interface should do as follows: +if the argument is NULL, it should simply be removed. If non-NULL, +it should be replaced with a call to <a href="../../api_c/db_set_alloc.html">DB->set_alloc</a>. +<p><dt><a href="../../api_c/lock_stat.html">lock_stat</a><dd>The historic <b>db_malloc</b> argument to the <a href="../../api_c/lock_stat.html">lock_stat</a> function has +been replaced. Applications using this interface should do as follows: +if the argument is NULL, it should simply be removed. If +non-NULL, it should be replaced with a call to <a href="../../api_c/env_set_alloc.html">DBENV->set_alloc</a>. +<p><dt><a href="../../api_c/log_archive.html">log_archive</a><dd>The historic <b>db_malloc</b> argument to the <a href="../../api_c/log_archive.html">log_archive</a> function has +been replaced. Applications using this interface should do as follows: +if the argument is NULL, it should simply be removed. If non-NULL, +it should be replaced with a call to <a href="../../api_c/env_set_alloc.html">DBENV->set_alloc</a>. +<p><dt><a href="../../api_c/log_stat.html">log_stat</a><dd>The historic <b>db_malloc</b> argument to the <a href="../../api_c/log_stat.html">log_stat</a> function has +been replaced. Applications using this interface should do as follows: +if the argument is NULL, it should simply be removed. If non-NULL, +it should be replaced with a call to <a href="../../api_c/env_set_alloc.html">DBENV->set_alloc</a>. +<p><dt><a href="../../api_c/memp_stat.html">memp_stat</a><dd>The historic <b>db_malloc</b> argument to the <a href="../../api_c/memp_stat.html">memp_stat</a> function has +been replaced. Applications using this interface should do as follows: +if the argument is NULL, it should simply be removed. If non-NULL, +it should be replaced with a call to <a href="../../api_c/env_set_alloc.html">DBENV->set_alloc</a>. +<p><dt><a href="../../api_c/txn_stat.html">txn_stat</a><dd>The historic <b>db_malloc</b> argument to the <a href="../../api_c/txn_stat.html">txn_stat</a> function has +been replaced. Applications using this interface should do as follows: +if the argument is NULL, it should simply be removed. If non-NULL, +it should be replaced with a call to <a href="../../api_c/env_set_alloc.html">DBENV->set_alloc</a>. +</dl> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/upgrade.3.3/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/rpc.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/upgrade.3.3/conflict.html b/db/docs/ref/upgrade.3.3/conflict.html new file mode 100644 index 000000000..c56d90508 --- /dev/null +++ b/db/docs/ref/upgrade.3.3/conflict.html @@ -0,0 +1,24 @@ +<!--Id: conflict.so,v 1.3 2001/04/24 16:27:53 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Release 3.3: DB_LOCK_CONFLICT</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td> +<td align=right><a href="../../ref/upgrade.3.3/rpc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/memp_fget.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Release 3.3: DB_LOCK_CONFLICT</h1> +<p>The DB_LOCK_CONFLICT flag has been removed from the <a href="../../api_c/lock_detect.html">lock_detect</a> function. +Applications specifying the DB_LOCK_CONFLICT flag should simply replace +it with a flags argument of 0. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/upgrade.3.3/rpc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/memp_fget.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/upgrade.3.3/disk.html b/db/docs/ref/upgrade.3.3/disk.html new file mode 100644 index 000000000..7ac191798 --- /dev/null +++ b/db/docs/ref/upgrade.3.3/disk.html @@ -0,0 +1,24 @@ +<!--Id: disk.so,v 1.1 2001/03/28 13:55:10 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Release 3.3: upgrade requirements</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td> +<td align=right><a href="../../ref/upgrade.3.3/txn_prepare.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/test/run.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Release 3.3: upgrade requirements</h1> +<p>No database formats or log file formats changed in the Berkeley DB 3.3 release. +<p>For further information on upgrading Berkeley DB installations, see +<a href="../../ref/upgrade/process.html">Upgrading Berkeley DB installations</a>. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/upgrade.3.3/txn_prepare.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/test/run.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/upgrade.3.3/intro.html b/db/docs/ref/upgrade.3.3/intro.html new file mode 100644 index 000000000..a7c8272e0 --- /dev/null +++ b/db/docs/ref/upgrade.3.3/intro.html @@ -0,0 +1,26 @@ +<!--Id: intro.so,v 1.2 2001/04/03 16:27:59 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Release 3.3: introduction</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td> +<td align=right><a href="../../ref/upgrade.3.2/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/alloc.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Release 3.3: introduction</h1> +<p>The following pages describe how to upgrade applications coded against +the Berkeley DB 3.2 release interfaces to the Berkeley DB 3.3 release interfaces. +This information does not describe how to upgrade Berkeley DB 1.85 release +applications. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/upgrade.3.2/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/alloc.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/upgrade.3.3/memp_fget.html b/db/docs/ref/upgrade.3.3/memp_fget.html new file mode 100644 index 000000000..9931745eb --- /dev/null +++ b/db/docs/ref/upgrade.3.3/memp_fget.html @@ -0,0 +1,36 @@ +<!--Id: memp_fget.so,v 1.3 2001/04/29 15:51:07 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Release 3.3: memp_fget, EIO</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td> +<td align=right><a href="../../ref/upgrade.3.3/conflict.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/txn_prepare.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Release 3.3: memp_fget, EIO</h1> +<p>Previous releases of Berkeley DB returned the system error EIO when the +<a href="../../api_c/memp_fget.html">memp_fget</a> interface was called to retrieve a page, the page did +not exist, and the <a href="../../api_c/memp_fget.html#DB_MPOOL_CREATE">DB_MPOOL_CREATE</a> flag was not set. In the +3.3 release, the error <a href="../../api_c/memp_fget.html#DB_PAGE_NOTFOUND">DB_PAGE_NOTFOUND</a> is returned instead, to +allow applications to distinguish between recoverable and +non-recoverable errors. Applications calling the <a href="../../api_c/memp_fget.html">memp_fget</a> +interface and checking for a return of EIO should check for +<a href="../../api_c/memp_fget.html#DB_PAGE_NOTFOUND">DB_PAGE_NOTFOUND</a> instead. +<p>Previous releases of Berkeley DB treated filesystem I/O failure (the most +common of which the filesystem running out of space), as a fatal error, +returning <a href="../../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>. When a filesystem failure happens in +the 3.3 release Berkeley DB returns the underlying system error (usually EIO), +but can continue to run. Applications should abort any enclosing +transaction when a recoverable system error occurs in order to recover +from the error. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/upgrade.3.3/conflict.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/txn_prepare.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/upgrade.3.3/rpc.html b/db/docs/ref/upgrade.3.3/rpc.html new file mode 100644 index 000000000..23c2fee10 --- /dev/null +++ b/db/docs/ref/upgrade.3.3/rpc.html @@ -0,0 +1,28 @@ +<!--Id: rpc.so,v 1.1 2001/04/21 19:36:10 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Release 3.3: DBENV->set_server</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td> +<td align=right><a href="../../ref/upgrade.3.3/alloc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/conflict.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Release 3.3: DBENV->set_server</h1> +<p>The DBENV->set_server interface has been deprecated and replaced +with the <a href="../../api_c/env_set_rpc_server.html">DBENV->set_rpc_server</a> function. The DBENV->set_server +interface will be removed in a future release, and so applications using +it should convert. The DBENV->set_server interface can be easily +converted to the <a href="../../api_c/env_set_rpc_server.html">DBENV->set_rpc_server</a> function by changing the name, +and specifying a NULL for the added argument, second in the argument +list. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/upgrade.3.3/alloc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/conflict.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/upgrade.3.3/toc.html b/db/docs/ref/upgrade.3.3/toc.html new file mode 100644 index 000000000..ecb874732 --- /dev/null +++ b/db/docs/ref/upgrade.3.3/toc.html @@ -0,0 +1,23 @@ +<!--Id: toc.so,v 1.6 2001/04/29 15:51:07 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB: Upgrading Berkeley DB 3.2.X applications to Berkeley DB 3.3</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> +<h1 align=center>Upgrading Berkeley DB 3.2.X applications to Berkeley DB 3.3</h1> +<ol> +<li><a href="intro.html">Release 3.3: introduction</a> +<li><a href="alloc.html">Release 3.3: DB->set_malloc, DB->set_realloc</a> +<li><a href="rpc.html">Release 3.3: DBENV->set_server</a> +<li><a href="conflict.html">Release 3.3: DB_LOCK_CONFLICT</a> +<li><a href="memp_fget.html">Release 3.3: memp_fget, EIO</a> +<li><a href="txn_prepare.html">Release 3.3: txn_prepare</a> +<li><a href="disk.html">Release 3.3: upgrade requirements</a> +</ol> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/upgrade.3.3/txn_prepare.html b/db/docs/ref/upgrade.3.3/txn_prepare.html new file mode 100644 index 000000000..5fe3cd07e --- /dev/null +++ b/db/docs/ref/upgrade.3.3/txn_prepare.html @@ -0,0 +1,26 @@ +<!--Id: txn_prepare.so,v 1.5 2001/04/24 16:27:54 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Release 3.3: txn_prepare</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td> +<td align=right><a href="../../ref/upgrade.3.3/memp_fget.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/disk.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Release 3.3: txn_prepare</h1> +<p>An additional argument has been added to the <a href="../../api_c/txn_prepare.html">txn_prepare</a> function. If +your application calls the <a href="../../api_c/txn_prepare.html">txn_prepare</a> interface (that is, is +performing two-phase commit using Berkeley DB as a local resource manager), +see <a href="../../ref/xa/intro.html">Distributed Transactions</a> for more +information. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/upgrade.3.3/memp_fget.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.3/disk.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/xa/build.html b/db/docs/ref/xa/build.html new file mode 100644 index 000000000..4ceb54385 --- /dev/null +++ b/db/docs/ref/xa/build.html @@ -0,0 +1,172 @@ +<!--Id: build.so,v 10.7 2001/05/03 14:22:07 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Building a Global Transaction Manager</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Distributed Transactions</dl></h3></td> +<td align=right><a href="../../ref/xa/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/xa_intro.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Building a Global Transaction Manager</h1> +<p>Managing distributed transactions and using the two-phase commit +protocol of Berkeley DB from an application requires the application provide +the functionality of a global transaction manager (GTM). The GTM is +responsible for the following: +<p><ul type=disc> +<li>Communicating with the multiple environments (potentially on separate +systems). +<li>Managing the global transaction ID name space. +<li>Maintaining state information about each distributed transaction. +<li>Recovering from failures of individual environments. +<li>Recovering the global transaction state after failure of the global +transaction manager. +</ul> +<h3>Communicating with multiple Berkeley DB environments</h3> +<p>Two-phase commit is required if an application wants to transaction +protect Berkeley DB calls across multiple environments. If the environments +reside on the same machine, the application can communicate with each +environment through its own address space with no additional complexity. +If the environments reside on separate machines, the application can +either use the Berkeley DB RPC server to manage the remote environments or it +may use its own messaging capability, translating messages on the remote +machine into calls into the Berkeley DB library (including the recovery +calls). For some applications, it might be sufficient to use Tcl's +remote invocation to remote copies of the tclsh utility into which the +Berkeley DB library has been dynamically loaded. +<h3>Managing the Global Transaction ID (GID) name space</h3> +<p>A global transaction is a transaction that spans multiple environments. +Each global transaction must have a unique transaction ID. This unique +ID is the global transaction ID (GID). In Berkeley DB, global transaction +IDs must be represented with the confines of a <a href="../../api_c/txn_prepare.html#DB_XIDDATASIZE">DB_XIDDATASIZE</a> +size (currently 128 bytes) array. It is the responsibility of the +global transaction manager to assign GIDs, guarantee their uniqueness, +and manage the mapping of local transactions to GID. That is, for each +GID, the GTM should know which local transactions managers participated. +The Berkeley DB logging system or a Berkeley DB table could be used to record this +information. +<h3>Maintaining state for each distributed transaction.</h3> +<p>In addition to knowing which local environments participate in each +global transaction, the GTM must also know the state of each active +global transaction. As soon as a transaction becomes distributed (that +is, a second environment participates), the GTM must record the +existence of the global transaction and all participants (whether this +must reside on stable storage or not depends on the exact configuration +of the system). As new environments participate, the GTM must keep this +information up to date. +<p>When the GTM is ready to begin commit processing, it should issue +<a href="../../api_c/txn_prepare.html">txn_prepare</a> calls to each participating environment, indicating +the GID of the global transaction. Once all the participants have +successfully prepared, then the GTM must record that the global +transaction will be committed. This record should go to stable +storage. Once written to stable storage, the GTM can send +<a href="../../api_c/txn_commit.html">txn_commit</a> requests to each participating environment. Once +all environments have successfully completed the commit, the GTM can +either record the successful commit or can somehow "forget" the global +transaction. +<p>If nested transactions are used (that is, the <b>parent</b> parameter +is specified to <a href="../../api_c/txn_begin.html">txn_begin</a>), no <a href="../../api_c/txn_prepare.html">txn_prepare</a> call should +be made on behalf of any child transaction. Only the ultimate parent +should even issue a <a href="../../api_c/txn_prepare.html">txn_prepare</a>. +<p>Should any participant fail to prepare, then the GTM must abort the +global transaction. The fact that the transaction is going to be +aborted should be written to stable storage. Once written, the GTM can +then issue <a href="../../api_c/txn_abort.html">txn_abort</a> requests to each environment. When all +aborts have returned successfully, the GTM can either record the +successful abort or "forget" the global transaction. +<p>In summary, for each transaction, the GTM must maintain the following: +<p><ul type=disc> +<li>A list of participating environments +<li>The current state of each transaction (pre-prepare, preparing, +committing, aborting, done) +</ul> +<h3>Recovering from the failure of a single environment</h3> +<p>If a single environment fails, there is no need to bring down or recover +other environments (the only exception to this is if all environments +are managed in the same application address space and there is a risk +that the failure of the environment corrupted other environments). +Instead, once the failing environment comes back up, it should be +recovered (that is, conventional recovery, via <a href="../../utility/db_recover.html">db_recover</a> or by +specifying the <a href="../../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a> flag to <a href="../../api_c/env_open.html">DBENV->open</a> should be +run). +If the <a href="../../utility/db_recover.html">db_recover</a> utility is used, then the -e option must be +specified. In this case, the application will almost certainly want +to specify environmental parameters via a DB_CONFIG file in the +environment's home directory, so that <a href="../../utility/db_recover.html">db_recover</a> can create +an appropriately configured environment. +The GTM should then issue a <a href="../../api_c/txn_recover.html">txn_recover</a> call to the environment. +This call will return a list of prepared, but not yet committed or +aborted transactions. For each transaction, the GTM should look up the +GID in its local store to determine if the transaction should commit or +abort. +If the GTM is running in a system with multiple GTMs, it is possible that +some of the transactions returned via <a href="../../api_c/txn_recover.html">txn_recover</a> do not belong +to the current environment. The GTM should detect this and call +<a href="../../api_c/txn_discard.html">txn_discard</a> on each such transaction handle. +Furthermore, it is important to note that the environment does not +retain information about which GTM has issued <a href="../../api_c/txn_recover.html">txn_recover</a> +operations. Therefore, each GTM should issue all its <a href="../../api_c/txn_recover.html">txn_recover</a> +calls, before another GTM issues its calls. If the calls are interleaved, +each GTM may not get a complete and consistent set of transactions. +The simplest way to enforce this is for each GTM to make sure it can +receive all its outstanding transactions in a single <a href="../../api_c/txn_recover.html">txn_recover</a> +call. The maximum number of possible outstanding transactions is bounded +by the maximum number of active transactions in the environment. This +number can be obtained by using the <a href="../../api_c/txn_stat.html">txn_stat</a> interface or the +<a href="../../utility/db_stat.html">db_stat</a> utility. +<p>The newly recovered environment will forbid any new transactions from +being started until the prepared but not yet committed/aborted +transactions have been resolved. In the multiple GTM case, this means +that all GTMs must recover before any GTM can begin issuing new transactions. +<p>Because Berkeley DB flushed both commit and abort records to disk for +two-phase transaction, once the global transaction has either committed +or aborted, no action will be necessary in any environment. If local +environments are running with the <a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> option (that +is, is not writing the log synchronously at commit time), then it is +possible that a commit or abort operation may not have been written in +the environment. In this case, the GTM must always have a record of +completed transactions to determine if prepared transactions should be +committed or aborted. +<h3>Recovering from GTM failure</h3> +<p>If the GTM fails, it must first recover its local state. Assuming the +GTM uses Berkeley DB tables to maintain state, it should run +<a href="../../utility/db_recover.html">db_recover</a> (or the <a href="../../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a> option to +<a href="../../api_c/env_open.html">DBENV->open</a>) upon startup. Once the GTM is back up and running, +it needs to review all its outstanding global transactions, that is all +transaction which are recorded, but not yet committed or aborted. +<p>Any global transactions which have not yet reached the prepare phase +should be aborted. If these transactions were on remote systems, the +remote systems should eventually time them out and abort them. If these +transactions are on the local system, we assume they crashed and were +aborted as part of GTM startup. +<p>The GTM must then identify all environments which need to have their +<a href="../../api_c/txn_recover.html">txn_recover</a> interface called. This includes all environments +that participate in any transaction that is in the preparing, aborting, +or committing state. For each environment, the GTM should issue a +<a href="../../api_c/txn_recover.html">txn_recover</a> call. Once each environment has responded, the GTM +can determine the fate of each transaction. The correct behavior is +defined depending on the state of the global transaction according to +the table below. +<p><dl compact> +<p><dt>preparing<dd>if all participating environments return the transaction in the prepared +but not yet committed/aborted state, then the GTM should commit the +transaction. If any participating environment fails to return it, then +the GTM should issue an abort to all environments that did return it. +<p><dt>committing<dd>the GTM should send a commit to any environment that returned this +transaction in its list of prepared but not yet committed/aborted +transactions. +<p><dt>aborting<dd>the GTM should send an abort to any environment that returned this +transaction in its list of prepared but not yet committed/aborted +transactions. +</dl> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/xa/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/xa_intro.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/xa/xa_config.html b/db/docs/ref/xa/xa_config.html new file mode 100644 index 000000000..94b46a21c --- /dev/null +++ b/db/docs/ref/xa/xa_config.html @@ -0,0 +1,80 @@ +<!--Id: xa_config.so,v 10.21 2001/03/30 20:34:54 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: Configuring Berkeley DB with the Tuxedo System</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Distributed Transactions</dl></h3></td> +<td align=right><a href="../../ref/xa/xa_intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/faq.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>Configuring Berkeley DB with the Tuxedo System</h1> +<p>This information assumes that you have already installed the Berkeley DB +library. +<p>First, you must update the resource manager file in Tuxedo. For the +purposes of this discussion, assume that the Tuxedo home directory is in +<p><blockquote><pre>/home/tuxedo</pre></blockquote> +In that case, the resource manager file will be located in +<p><blockquote><pre>/home/tuxedo/udataobj/RM</pre></blockquote> +Edit the resource manager file, adding the line +<p><blockquote><pre>BERKELEY-DB:db_xa_switch:-L${DB_INSTALL}/lib -ldb \ + -lsocket -ldl -lm</pre></blockquote> +<p>where ${DB_INSTALLHOME} is the directory into which you installed the Berkeley DB +library. +<p><b>Note that the previous load options are for a Sun Microsystems +Solaris 5.6 Sparc installation of Tuxedo, and may not be correct for +your system.</b> +<p>Next, you must build the transaction manager server. To do this, use the +Tuxedo <b>buildtms</b>(1) utility. The buildtms utility will create +the Berkeley-DB resource manager in the directory from which it was run. +The parameters to buildtms should be +<p><blockquote><pre>buildtms -v -o DBRM -r BERKELEY-DB</pre></blockquote> +<p>This will create an executable transaction manager server, DBRM, which is +called by Tuxedo to process begins, commits, and aborts. +<p>Finally, you must make sure that your TUXCONFIG environment variable +identifies an ubbconfig file that properly identifies your resource +managers. In the GROUPS section of the ubb file, you should identify the +group's LMID and GRPNO, as well as the transaction manager server name +"TMSNAME=DBRM." You must also specify the OPENINFO parameter, setting it +equal to the string +<p><blockquote><pre>rm_name:dir</pre></blockquote> +<p>where rm_name is the resource name specified in the RM file (that is, +BERKELEY-DB) and dir is the directory for the Berkeley DB home environment +(see <a href="../../api_c/env_open.html">DBENV->open</a> for a discussion of Berkeley DB environments). +<p>Because Tuxedo resource manager startup accepts only a single string +for configuration, any environment customization that might have been +done via the config parameter to <a href="../../api_c/env_open.html">DBENV->open</a> must instead be done +by placing a <a href="../../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a> file in the Berkeley DB environment directory. +See <a href="../../ref/env/naming.html">Berkeley DB File Naming</a> for further +information. +<p>Consider the following configuration. We have built a transaction +manager server, as described previously. We want the Berkeley DB environment +to be <b>/home/dbhome</b>, our database files to be maintained in +<b>/home/datafiles</b>, our log files to be maintained in +<b>/home/log</b>, and we want a duplexed server. +<p>The GROUPS section of the ubb file might look like the following +<p><blockquote><pre>group_tm LMID=myname GRPNO=1 TMSNAME=DBRM TMSCOUNT=2 \ + OPENINFO="BERKELEY-DB:/home/dbhome"</pre></blockquote> +<p>There would be a <a href="../../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a> configuration file in the directory +<b>/home/dbhome</b> that contained the following two lines: +<p><blockquote><pre>DB_DATA_DIR /home/datafiles +DB_LOG_DIR /home/log +</pre></blockquote> +<p>Finally, the ubb file must be translated into a binary version using +Tuxedo's <b>tmloadcf</b>(1) utility, and then the pathname of that +binary file must be specified as your TUXCONFIG environment variable. +<p>At this point, your system is properly initialized to use the Berkeley DB +resource manager. +<p>See <a href="../../api_c/db_create.html">db_create</a> for further information on accessing data files +using XA. +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/xa/xa_intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/faq.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/ref/xa/xa_intro.html b/db/docs/ref/xa/xa_intro.html new file mode 100644 index 000000000..553a6e260 --- /dev/null +++ b/db/docs/ref/xa/xa_intro.html @@ -0,0 +1,61 @@ +<!--Id: xa_intro.so,v 10.22 2001/03/30 20:34:54 bostic Exp --> +<!--Copyright 1997-2001 by Sleepycat Software, Inc.--> +<!--All rights reserved.--> +<html> +<head> +<title>Berkeley DB Reference Guide: XA Introduction</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + <a name="2"><!--meow--></a> <a name="3"><!--meow--></a> +<table width="100%"><tr valign=top> +<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Distributed Transactions</dl></h3></td> +<td align=right><a href="../../ref/xa/build.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/xa_config.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p> +<h1 align=center>XA Introduction</h1> +<p>Berkeley DB can be used as an XA-compliant resource manager. The XA +implementation is known to work with the Tuxedo(tm) transaction +manager. +<p>The XA support is encapsulated in the resource manager switch +db_xa_switch, which defines the following functions: +<p><blockquote><pre>__db_xa_close Close the resource manager. +__db_xa_commit Commit the specified transaction. +__db_xa_complete Wait for asynchronous operations to + complete. +__db_xa_end Disassociate the application from a + transaction. +__db_xa_forget Forget about a transaction that was heuristically + completed. (Berkeley DB does not support heuristic + completion.) +__db_xa_open Open the resource manager. +__db_xa_prepare Prepare the specified transaction. +__db_xa_recover Return a list of prepared, but not yet + committed transactions. +__db_xa_rollback Abort the specified transaction. +__db_xa_start Associate the application with a + transaction. +</pre></blockquote> +<p>The Berkeley DB resource manager does not support the following optional +XA features: +<p><ul type=disc> +<li>Asynchronous operations +<li>Transaction migration +</ul> +<p>The Tuxedo System is available from <a href="http://www.beasys.com">BEA Systems, Inc.</a> +<p>For additional information on Tuxedo, see +<p><blockquote><i>Building Client/Server Applications Using Tuxedo</i>, +by Hall (John Wiley & Sons, Inc.).</blockquote> +<p>For additional information on XA Resource Managers, see +<p><blockquote>X/Open CAE Specification +<i>Distributed Transaction Processing: The XA Specification</i>, +X/Open Document Number: XO/CAE/91/300.</blockquote> +<p>For additional information on The Tuxedo System, see +<p><blockquote><i>The Tuxedo System</i>, +by Andrade, Carges, Dwyer and Felts (Addison Wesley Longman).</blockquote> +<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/xa/build.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/xa_config.html"><img src="../../images/next.gif" alt="Next"></a> +</td></tr></table> +<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> +</body> +</html> diff --git a/db/docs/reftoc.html b/db/docs/reftoc.html new file mode 100644 index 000000000..e56bba80b --- /dev/null +++ b/db/docs/reftoc.html @@ -0,0 +1,335 @@ +<!--Id: reftoc.html,v 10.186 2001/04/26 20:59:15 bostic Exp --> +<html> +<head> +<title>Berkeley DB Tutorial and Reference Guide (Version: 3.3.4)</title> +<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> +<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> +</head> +<body bgcolor=white> + +<center> +<h1>Berkeley DB Tutorial and Reference Guide (Version: 3.3.4)</h1> +</center> + +<ol> +<font size="+1"><li><a name="intro">Introduction</a></font> + <ol> + <li><a href="ref/intro/data.html">An introduction to data management</a> + <li><a href="ref/intro/terrain.html">Mapping the terrain: theory and practice</a> + <li><a href="ref/intro/dbis.html">What is Berkeley DB?</a> + <li><a href="ref/intro/dbisnot.html">What is Berkeley DB not?</a> + <li><a href="ref/intro/need.html">Do you need Berkeley DB?</a> + <li><a href="ref/intro/what.html">What other services does Berkeley DB provide?</a> + <li><a href="ref/intro/distrib.html">What does the Berkeley DB distribution include?</a> + <li><a href="ref/intro/where.html">Where does Berkeley DB run?</a> + <li><a href="ref/intro/products.html">Sleepycat Software's Berkeley DB products</a> + </ol> +<font size="+1"><li><a name="simple_tut">A Simple Access Method Tutorial</a></font> + <ol> + <li><a href="ref/simple_tut/intro.html">Introduction</a> + <li><a href="ref/simple_tut/keydata.html">Key/data pairs</a> + <li><a href="ref/simple_tut/handles.html">Object handles</a> + <li><a href="ref/simple_tut/errors.html">Error returns</a> + <li><a href="ref/simple_tut/open.html">Opening a database</a> + <li><a href="ref/simple_tut/put.html">Adding elements to a database</a> + <li><a href="ref/simple_tut/get.html">Retrieving elements from a database</a> + <li><a href="ref/simple_tut/del.html">Removing elements from a database</a> + <li><a href="ref/simple_tut/close.html">Closing a database</a> + </ol> +<font size="+1"><li><a name="am_conf">Access Method Configuration</a></font> + <ol> + <li><a href="ref/am_conf/intro.html">What are the available access methods?</a> + <li><a href="ref/am_conf/select.html">Selecting an access method</a> + <li><a href="ref/am_conf/logrec.html">Logical record numbers</a> + <li>General access method configuration + <ol> + <li><a href="ref/am_conf/pagesize.html">Selecting a page size</a> + <li><a href="ref/am_conf/cachesize.html">Selecting a cache size</a> + <li><a href="ref/am_conf/byteorder.html">Selecting a byte order</a> + <li><a href="ref/am_conf/dup.html">Duplicate data items</a> + <li><a href="ref/am_conf/malloc.html">Non-local memory allocation</a> + </ol> + <li>Btree access method specific configuration + <ol> + <li><a href="ref/am_conf/bt_compare.html">Btree comparison</a> + <li><a href="ref/am_conf/bt_prefix.html">Btree prefix comparison</a> + <li><a href="ref/am_conf/bt_minkey.html">Minimum keys per page</a> + <li><a href="ref/am_conf/bt_recnum.html"> + Retrieving Btree records by logical record number</a> + </ol> + <li>Hash access method specific configuration + <ol> + <li><a href="ref/am_conf/h_ffactor.html">Page fill factor</a> + <li><a href="ref/am_conf/h_hash.html">Specifying a database hash</a> + <li><a href="ref/am_conf/h_nelem.html">Hash table size</a> + </ol> + <li>Queue and Recno access method specific configuration + <ol> + <li><a href="ref/am_conf/recno.html">Managing record-based databases</a> + <li><a href="ref/am_conf/extentsize.html">Selecting a Queue extent size</a> + <li><a href="ref/am_conf/re_source.html">Flat-text backing files</a> + <li><a href="ref/am_conf/renumber.html">Logically renumbering records</a> + </ol> + </ol> +<font size="+1"><li><a name="am">Access Method Operations</a></font> + <ol> + <li><a href="ref/am/ops.html">Access method operations</a> + <li><a href="ref/am/open.html">Database open</a> + <li><a href="ref/am/opensub.html">Opening multiple databases in a single file</a> + <li><a href="ref/am/get.html">Retrieving records</a> + <li><a href="ref/am/put.html">Storing records</a> + <li><a href="ref/am/delete.html">Deleting records</a> + <li><a href="ref/am/stat.html">Database statistics</a> + <li><a href="ref/am/truncate.html">Database truncation</a> + <li><a href="ref/am/upgrade.html">Database upgrade</a> + <li><a href="ref/am/verify.html">Database verification and salvage</a> + <li><a href="ref/am/sync.html">Flushing the database cache</a> + <li><a href="ref/am/close.html">Database close</a> + <li><a href="ref/am/second.html">Secondary indices</a> + <li><a href="ref/am/cursor.html">Cursor operations</a> + <ol> + <li><a href="ref/am/curget.html">Retrieving records with a cursor</a> + <li><a href="ref/am/curput.html">Storing records with a cursor</a> + <li><a href="ref/am/curdel.html">Deleting records with a cursor</a> + <li><a href="ref/am/curdup.html">Duplicating a cursor</a> + <li><a href="ref/am/join.html">Logical join</a> + <li><a href="ref/am/count.html">Data item count</a> + <li><a href="ref/am/curclose.html">Cursor close</a> + </ol> + </ol> +<font size="+1"><li><a name="am_misc">Access Method Wrapup</a></font> + <ol> + <li><a href="ref/am_misc/align.html">Data alignment</a> + <li><a href="ref/am_misc/partial.html">Partial record storage and retrieval</a> + <li><a href="ref/am_misc/perm.html">Retrieved key/data permanence for C/C++</a> + <li><a href="ref/am_misc/error.html">Error support</a> + <li><a href="ref/am_misc/stability.html">Cursor stability</a> + <li><a href="ref/am_misc/dbsizes.html">Database limits</a> + <li><a href="ref/am_misc/diskspace.html">Disk space requirements</a> + <li><a href="ref/am_misc/tune.html">Access method tuning</a> + <li><a href="ref/am_misc/faq.html">Access method FAQ</a> + </ol> +<font size="+1"><li><a name="arch">Berkeley DB Architecture</a></font> + <ol> + <li><a href="ref/arch/bigpic.html">The big picture</a> + <li><a href="ref/arch/progmodel.html">Programming model</a> + <li><a href="ref/arch/apis.html">Programmatic APIs</a> + <li><a href="ref/arch/script.html">Scripting languages</a> + <li><a href="ref/arch/utilities.html">Supporting utilities</a> + </ol> +<font size="+1"><li><a name="env">The Berkeley DB Environment</a></font> + <ol> + <li><a href="ref/env/intro.html">Introduction</a> + <li><a href="ref/env/create.html">Creating a database environment</a> + <li><a href="ref/env/naming.html">File naming</a> + <li><a href="ref/env/security.html">Security</a> + <li><a href="ref/env/region.html">Shared memory regions</a> + <li><a href="ref/env/remote.html">Remote filesystems</a> + <li><a href="ref/env/open.html">Opening databases within the environment</a> + <li><a href="ref/env/error.html">Error support</a> + <li><a href="ref/env/faq.html">Environment FAQ</a> + </ol> +<font size="+1"><li><a name="cam">Berkeley DB Concurrent Data Store Applications</a></font> + <ol> + <li><a href="ref/cam/intro.html">Berkeley DB Concurrent Data Store applications</a> + </ol> +<font size="+1"><li><a name="transapp">Berkeley DB Transactional Data Store Applications</a></font> + <ol> + <li><a href="ref/transapp/intro.html">Berkeley DB Transactional Data Store applications</a> + <li><a href="ref/transapp/why.html">Why transactions?</a> + <li><a href="ref/transapp/term.html">Terminology</a> + <li><a href="ref/transapp/app.html">Application structure</a> + <li><a href="ref/transapp/env_open.html">Opening the environment</a> + <li><a href="ref/transapp/data_open.html">Opening the databases</a> + <li><a href="ref/transapp/put.html">Recoverability and deadlock avoidance</a> + <li><a href="ref/transapp/inc.html">Atomicity</a> + <li><a href="ref/transapp/read.html">Repeatable reads</a> + <li><a href="ref/transapp/cursor.html">Transactional cursors</a> + <li><a href="ref/transapp/nested.html">Nested transactions</a> + <li><a href="ref/transapp/admin.html">Environment infrastructure</a> + <li><a href="ref/transapp/deadlock.html">Deadlock detection</a> + <li><a href="ref/transapp/checkpoint.html">Checkpoints</a> + <li><a href="ref/transapp/archival.html">Database and log file archival</a> + <li><a href="ref/transapp/logfile.html">Log file removal</a> + <li><a href="ref/transapp/recovery.html">Recovery procedures</a> + <li><a href="ref/transapp/filesys.html">Recovery and filesystem operations</a> + <li><a href="ref/transapp/reclimit.html">Berkeley DB recoverability</a> + <li><a href="ref/transapp/tune.html">Transaction tuning</a> + <li><a href="ref/transapp/throughput.html">Transaction throughput</a> + </ol> +<font size="+1"><li><a name="xa">Distributed Transactions</a></font> + <ol> + <li><a href="ref/xa/intro.html">Introduction</a> + <li><a href="ref/xa/build.html">Building a Global Transaction Manager</a> + <li><a href="ref/xa/xa_intro.html">XA Introduction</a> + <li><a href="ref/xa/xa_config.html">Configuring Berkeley DB with the Tuxedo System</a> + <li><a href="ref/xa/faq.html">Frequently Asked Questions</a> + </ol> +<font size="+1"><li><a name="program">Programmer Notes</a></font> + <ol> + <li><a href="ref/program/appsignals.html">Application signal handling</a> + <li><a href="ref/program/errorret.html">Error returns to applications</a> + <li><a href="ref/program/environ.html">Environmental variables</a> + <li><a href="ref/program/mt.html">Multithreaded applications</a> + <li><a href="ref/program/scope.html">Berkeley DB handles</a> + <li><a href="ref/program/namespace.html">Name spaces</a> + <li><a href="ref/program/copy.html">Copying databases</a> + <li><a href="ref/program/version.html">Library version information</a> + <li><a href="ref/program/compatible.html">Compatibility with historic UNIX interfaces</a> + <li><a href="ref/program/recimp.html">Recovery implementation</a> + <li><a href="ref/program/extending.html">Application-specific logging and recovery</a> + <li><a href="ref/program/runtime.html">Run-time configuration</a> + </ol> +<font size="+1"><li><a name="lock">The Locking Subsystem</a></font> + <ol> + <li><a href="ref/lock/intro.html">Berkeley DB and locking</a> + <li><a href="ref/lock/page.html">Page locks</a> + <ol> + <li><a href="ref/lock/stdmode.html">Standard lock modes</a> + <li><a href="ref/lock/notxn.html">Locking without transactions</a> + <li><a href="ref/lock/twopl.html">Locking with transactions: two-phase locking</a> + </ol> + <li><a href="ref/lock/am_conv.html">Access method locking conventions</a> + <li><a href="ref/lock/cam_conv.html">Berkeley DB Concurrent Data Store locking conventions</a> + <li><a href="ref/lock/dead.html">Deadlocks and deadlock avoidance</a> + <li><a href="ref/lock/config.html">Configuring locking</a> + <li><a href="ref/lock/max.html">Configuring locking: sizing the system</a> + <li><a href="ref/lock/nondb.html">Locking and non-Berkeley DB applications</a> + </ol> +<font size="+1"><li><a name="log">The Logging Subsystem</a></font> + <ol> + <li><a href="ref/log/intro.html">Berkeley DB and logging</a> + <li><a href="ref/log/config.html">Configuring logging</a> + <li><a href="ref/log/limits.html">Log file limits</a> + </ol> +<font size="+1"><li><a name="mp">The Memory Pool Subsystem</a></font> + <ol> + <li><a href="ref/mp/intro.html">Berkeley DB and the memory pool</a> + <li><a href="ref/mp/config.html">Configuring the memory pool</a> + </ol> +<font size="+1"><li><a name="txn">The Transaction Subsystem</a></font> + <ol> + <li><a href="ref/txn/intro.html">Berkeley DB and transactions</a> + <li><a href="ref/txn/limits.html">Transaction limits</a> + <li><a href="ref/txn/config.html">Configuring transactions</a> + <li><a href="ref/txn/other.html">Transactions and non-Berkeley DB applications</a> + </ol> +<font size="+1"><li><a name="rpc">RPC Client/Server</a></font> + <ol> + <li><a href="ref/rpc/intro.html">Introduction</a> + <li><a href="ref/rpc/client.html">Client program</a> + <li><a href="ref/rpc/server.html">Server program</a> + </ol> +<font size="+1"><li><a name="java">Java API</a></font> + <ol> + <li><a href="ref/java/conf.html">Configuration</a> + <li><a href="ref/java/compat.html">Compatibility</a> + <li><a href="ref/java/program.html">Java programming notes</a> + <li><a href="ref/java/faq.html">Java FAQ</a> + </ol> +<font size="+1"><li><a name="perl">Perl API</a></font> + <ol> + <li><a href="ref/perl/intro.html">Using Berkeley DB with Perl</a> + </ol> +<font size="+1"><li><a name="tcl">Tcl API</a></font> + <ol> + <li><a href="ref/tcl/intro.html">Loading Berkeley DB with Tcl</a> + <li><a href="ref/tcl/using.html">Using Berkeley DB with Tcl</a> + <li><a href="ref/tcl/program.html">Tcl API programming notes</a> + <li><a href="ref/tcl/error.html">Tcl error handling</a> + <li><a href="ref/tcl/faq.html">Tcl FAQ</a> + </ol> +<font size="+1"><li><a name="sendmail">Sendmail</a></font> + <ol> + <li><a href="ref/sendmail/intro.html">Using Berkeley DB with Sendmail</a> + </ol> +<font size="+1"><li><a name="dumpload">Dumping and Reloading Databases</a></font> + <ol> + <li><a href="ref/dumpload/utility.html">The db_dump and db_load utilities</a> + <li><a href="ref/dumpload/format.html">Dump output formats</a> + <li><a href="ref/dumpload/text.html">Loading text into databases</a> + </ol> +<font size="+1"><li><a name="install">System Installation Notes</a></font> + <ol> + <li><a href="ref/install/file.html">File utility /etc/magic information</a> + <li><a href="ref/install/multiple.html">Building with multiple versions of Berkeley DB</a> + <li><a href="ref/install/rpm.html">Building RPM distribution packages</a> + </ol> +<font size="+1"><li><a name="debug">Debugging Applications</a></font> + <ol> + <li><a href="ref/debug/intro.html">Introduction</a> + <li><a href="ref/debug/compile.html">Compile-time configuration</a> + <li><a href="ref/debug/runtime.html">Run-time error information</a> + <li><a href="ref/debug/printlog.html">Reviewing Berkeley DB log files</a> + <li><a href="ref/debug/common.html">Common errors</a> + </ol> +<font size="+1"><li><a name="build_unix">Berkeley DB for UNIX and QNX systems</a></font> + <ol> + <li><a href="ref/build_unix/intro.html">Building for UNIX</a> + <li><a href="ref/build_unix/conf.html">Configuring Berkeley DB</a> + <li><a href="ref/build_unix/flags.html">Changing compile or load options</a> + <li><a href="ref/build_unix/install.html">Installing Berkeley DB</a> + <li><a href="ref/build_unix/shlib.html">Dynamic shared libraries</a> + <li><a href="ref/build_unix/test.html">Running the test suite under UNIX</a> + <li><a href="ref/build_unix/notes.html">Architecture independent FAQ</a> + <li>Architecture specific FAQs + <ol> + <li><a href="ref/build_unix/aix.html">AIX</a> + <li><a href="ref/build_unix/embedix.html">Embedix</a> + <li><a href="ref/build_unix/freebsd.html">FreeBSD</a> + <li><a href="ref/build_unix/hpux.html">HP-UX</a> + <li><a href="ref/build_unix/irix.html">IRIX</a> + <li><a href="ref/build_unix/linux.html">Linux</a> + <li><a href="ref/build_unix/osf1.html">OSF/1</a> + <li><a href="ref/build_unix/qnx.html">QNX</a> + <li><a href="ref/build_unix/sco.html">SCO</a> + <li><a href="ref/build_unix/solaris.html">Solaris</a> + <li><a href="ref/build_unix/sunos.html">SunOS</a> + <li><a href="ref/build_unix/ultrix.html">Ultrix</a> + </ol> + </ol> +<font size="+1"><li><a name="build_win">Berkeley DB for Win32 platforms</a></font> + <ol> + <li><a href="ref/build_win/intro.html">Building for Win32</a> + <li><a href="ref/build_win/test.html">Running the test suite under Windows</a> + <li><a href="ref/build_win/notes.html">Windows notes</a> + <li><a href="ref/build_win/faq.html">Windows FAQ</a> + </ol> +<font size="+1"><li><a name="build_vxworks">Berkeley DB for VxWorks systems</a></font> + <ol> + <li><a href="ref/build_vxworks/intro.html">Building for VxWorks</a> + <li><a href="ref/build_vxworks/notes.html">VxWorks notes</a> + <li><a href="ref/build_vxworks/faq.html">VxWorks FAQ</a> + </ol> +<font size="+1"><li><a name="upgrade">Upgrading Berkeley DB Applications</a></font> + <ol> + <li><a href="ref/upgrade/process.html"> + Upgrading Berkeley DB installations</a> + <li><a href="ref/upgrade.2.0/toc.html"> + Upgrading Berkeley DB 1.XX applications to Berkeley DB 2.0</a> + <li><a href="ref/upgrade.3.0/toc.html"> + Upgrading Berkeley DB 2.X.X applications to Berkeley DB 3.0</a> + <li><a href="ref/upgrade.3.1/toc.html"> + Upgrading Berkeley DB 3.0.X applications to Berkeley DB 3.1</a> + <li><a href="ref/upgrade.3.2/toc.html"> + Upgrading Berkeley DB 3.1.X applications to Berkeley DB 3.2</a> + <li><a href="ref/upgrade.3.3/toc.html"> + Upgrading Berkeley DB 3.2.X applications to Berkeley DB 3.3</a> + </ol> +<font size="+1"><li><a name="test">Test Suite</a></font> + <ol> + <li><a href="ref/test/run.html">Running the test suite</a> + <li><a href="ref/test/faq.html">Test suite FAQ</a> + </ol> +<font size="+1"><li><a name="distrib">Distribution</a></font> + <ol> + <li><a href="ref/distrib/layout.html">Source code layout</a> + </ol> +<font size="+1"><li><a name="refs">Additional References</a></font> + <ol> + <li><a href="ref/refs/refs.html">Additional references</a> + </ol> +</ol> + +</body> +</html> diff --git a/db/include/cxx_common.h b/db/include/cxx_common.h new file mode 100644 index 000000000..45b21c6cb --- /dev/null +++ b/db/include/cxx_common.h @@ -0,0 +1,45 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1997-2001 + * Sleepycat Software. All rights reserved. + * + * Id: cxx_common.h,v 11.1 2001/04/29 06:44:05 dda Exp + */ + +#ifndef _CXX_COMMON_H_ +#define _CXX_COMMON_H_ + +// +// Common definitions used by all of Berkeley DB's C++ include files. +// + +//////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////// +// +// Mechanisms for declaring classes +// + +// +// Every class defined in this file has an _exported next to the class name. +// This is needed for WinTel machines so that the class methods can +// be exported or imported in a DLL as appropriate. Users of the DLL +// use the define DB_USE_DLL. When the DLL is built, DB_CREATE_DLL +// must be defined. +// +#if defined(_MSC_VER) + +# if defined(DB_CREATE_DLL) +# define _exported __declspec(dllexport) // creator of dll +# elif defined(DB_USE_DLL) +# define _exported __declspec(dllimport) // user of dll +# else +# define _exported // static lib creator or user +# endif + +#else /* _MSC_VER */ + +# define _exported + +#endif /* _MSC_VER */ +#endif /* !_CXX_COMMON_H_ */ diff --git a/db/include/cxx_except.h b/db/include/cxx_except.h new file mode 100644 index 000000000..d19d9715b --- /dev/null +++ b/db/include/cxx_except.h @@ -0,0 +1,78 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1997-2001 + * Sleepycat Software. All rights reserved. + * + * Id: cxx_except.h,v 11.2 2001/05/08 18:58:45 bostic Exp + */ + +#ifndef _CXX_EXCEPT_H_ +#define _CXX_EXCEPT_H_ + +#include "cxx_common.h" + +//////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////// +// +// Forward declarations +// + +class DbException; // forward +class DbMemoryException; // forward +class Dbt; // forward + +//////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////// +// +// Exception classes +// + +// Almost any error in the DB library throws a DbException. +// Every exception should be considered an abnormality +// (e.g. bug, misuse of DB, file system error). +// +// NOTE: We would like to inherit from class exception and +// let it handle what(), but there are +// MSVC++ problems when <exception> is included. +// +class _exported DbException +{ +public: + virtual ~DbException(); + DbException(int err); + DbException(const char *description); + DbException(const char *prefix, int err); + DbException(const char *prefix1, const char *prefix2, int err); + int get_errno() const; + virtual const char *what() const; + + DbException(const DbException &); + DbException &operator = (const DbException &); + +private: + char *what_; + int err_; // errno +}; + +// +// A specific sort of exception that occurs when +// user declared memory is insufficient in a Dbt. +// +class _exported DbMemoryException : public DbException +{ +public: + virtual ~DbMemoryException(); + DbMemoryException(Dbt *dbt); + DbMemoryException(const char *description); + DbMemoryException(const char *prefix, Dbt *dbt); + DbMemoryException(const char *prefix1, const char *prefix2, Dbt *dbt); + Dbt *get_dbt() const; + + DbMemoryException(const DbMemoryException &); + DbMemoryException &operator = (const DbMemoryException &); + +private: + Dbt *dbt_; +}; +#endif /* !_CXX_EXCEPT_H_ */ diff --git a/db/include/db.in b/db/include/db.in new file mode 100644 index 000000000..26455cd79 --- /dev/null +++ b/db/include/db.in @@ -0,0 +1,1388 @@ +/* + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1996-2001 + * Sleepycat Software. All rights reserved. + * + * Id: db.in,v 11.158 2001/05/08 18:54:39 bostic Exp + */ + +#ifndef _DB_H_ +#define _DB_H_ + +#ifndef __NO_SYSTEM_INCLUDES +#include <sys/types.h> + +#include <stdio.h> +#endif + +#if defined(__cplusplus) +extern "C" { +#endif + +/* + * XXX + * Handle function prototypes and the keyword "const". This steps on name + * space that DB doesn't control, but all of the other solutions are worse. + * + * XXX + * While Microsoft's compiler is ANSI C compliant, it doesn't have _STDC_ + * defined by default, you specify a command line flag or #pragma to turn + * it on. Don't do that, however, because some of Microsoft's own header + * files won't compile. + */ +#undef __P +#if defined(__STDC__) || defined(__cplusplus) || defined(_MSC_VER) +#define __P(protos) protos /* ANSI C prototypes */ +#else +#define const +#define __P(protos) () /* K&R C preprocessor */ +#endif + +/* + * !!! + * DB needs basic information about specifically sized types. If they're + * not provided by the system, typedef them here. + * + * We protect them against multiple inclusion using __BIT_TYPES_DEFINED__, + * as does BIND and Kerberos, since we don't know for sure what #include + * files the user is using. + * + * !!! + * We also provide the standard u_int, u_long etc., if they're not provided + * by the system. + */ +#ifndef __BIT_TYPES_DEFINED__ +#define __BIT_TYPES_DEFINED__ +@u_int8_decl@ +@int16_decl@ +@u_int16_decl@ +@int32_decl@ +@u_int32_decl@ +#endif + +@u_char_decl@ +@u_short_decl@ +@u_int_decl@ +@u_long_decl@ +@ssize_t_decl@ + +#define DB_VERSION_MAJOR @DB_VERSION_MAJOR@ +#define DB_VERSION_MINOR @DB_VERSION_MINOR@ +#define DB_VERSION_PATCH @DB_VERSION_PATCH@ +#define DB_VERSION_STRING @DB_VERSION_STRING@ + +typedef u_int32_t db_pgno_t; /* Page number type. */ +typedef u_int16_t db_indx_t; /* Page offset type. */ +#define DB_MAX_PAGES 0xffffffff /* >= # of pages in a file */ + +typedef u_int32_t db_recno_t; /* Record number type. */ +#define DB_MAX_RECORDS 0xffffffff /* >= # of records in a tree */ + +/* Forward structure declarations, so applications get type checking. */ +struct __db; typedef struct __db DB; +struct __db_bt_stat; typedef struct __db_bt_stat DB_BTREE_STAT; +struct __db_dbt; typedef struct __db_dbt DBT; +struct __db_env; typedef struct __db_env DB_ENV; +struct __db_h_stat; typedef struct __db_h_stat DB_HASH_STAT; +struct __db_ilock; typedef struct __db_ilock DB_LOCK_ILOCK; +struct __db_lock_stat; typedef struct __db_lock_stat DB_LOCK_STAT; +struct __db_lock_u; typedef struct __db_lock_u DB_LOCK; +struct __db_lockreq; typedef struct __db_lockreq DB_LOCKREQ; +struct __db_log_stat; typedef struct __db_log_stat DB_LOG_STAT; +struct __db_lsn; typedef struct __db_lsn DB_LSN; +struct __db_mpool_finfo;typedef struct __db_mpool_finfo DB_MPOOL_FINFO; +struct __db_mpool_fstat;typedef struct __db_mpool_fstat DB_MPOOL_FSTAT; +struct __db_mpool_stat; typedef struct __db_mpool_stat DB_MPOOL_STAT; +struct __db_mpoolfile; typedef struct __db_mpoolfile DB_MPOOLFILE; +struct __db_qam_stat; typedef struct __db_qam_stat DB_QUEUE_STAT; +struct __db_txn; typedef struct __db_txn DB_TXN; +struct __db_txn_active; typedef struct __db_txn_active DB_TXN_ACTIVE; +struct __db_txn_stat; typedef struct __db_txn_stat DB_TXN_STAT; +struct __dbc; typedef struct __dbc DBC; +struct __dbc_internal; typedef struct __dbc_internal DBC_INTERNAL; +struct __fh_t; typedef struct __fh_t DB_FH; +struct __key_range; typedef struct __key_range DB_KEY_RANGE; + +/* Key/data structure -- a Data-Base Thang. */ +struct __db_dbt { + /* + * data/size must be fields 1 and 2 for DB 1.85 compatibility. + */ + void *data; /* Key/data */ + u_int32_t size; /* key/data length */ + + u_int32_t ulen; /* RO: length of user buffer. */ + u_int32_t dlen; /* RO: get/put record length. */ + u_int32_t doff; /* RO: get/put record offset. */ + +#define DB_DBT_APPMALLOC 0x001 /* Callback allocated memory. */ +#define DB_DBT_ISSET 0x002 /* Lower level calls set value. */ +#define DB_DBT_MALLOC 0x004 /* Return in malloc'd memory. */ +#define DB_DBT_PARTIAL 0x008 /* Partial put/get. */ +#define DB_DBT_REALLOC 0x010 /* Return in realloc'd memory. */ +#define DB_DBT_USERMEM 0x020 /* Return in user's memory. */ +#define DB_DBT_DUPOK 0x040 /* Insert if duplicate. */ + u_int32_t flags; +}; + +/* + * Macros for bulk get. Note that wherever we use a DBT *, we explicitly + * cast it; this allows the same macros to work with C++ Dbt *'s, as + * Dbt is a subclass of struct DBT in C++. + */ +#define DB_MULTIPLE_INIT(pointer, dbt) \ + (pointer = (u_int8_t *)((DBT *)(dbt))->data + \ + ((DBT *)(dbt))->ulen - sizeof(u_int32_t)) +#define DB_MULTIPLE_NEXT(pointer, dbt, retdata, retdlen) \ + do { \ + if (*((u_int32_t *)(pointer)) == (u_int32_t)-1) { \ + retdata = NULL; \ + pointer = NULL; \ + break; \ + } \ + retdata = (u_int8_t *) \ + ((DBT *)(dbt))->data + *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + if (retdata == (u_int8_t *)((DBT *)(dbt))->data) \ + retdata = NULL; \ + retdlen = *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + } while (0) +#define DB_MULTIPLE_KEY_NEXT(pointer, dbt, retkey, retklen, retdata, retdlen) \ + do { \ + if (*((u_int32_t *)(pointer)) == (u_int32_t)-1) { \ + retdata = NULL; \ + retkey = NULL; \ + pointer = NULL; \ + break; \ + } \ + retkey = (u_int8_t *) \ + ((DBT *)(dbt))->data + *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + retklen = *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + retdata = (u_int8_t *) \ + ((DBT *)(dbt))->data + *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + retdlen = *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + } while (0) + +#define DB_MULTIPLE_RECNO_NEXT(pointer, dbt, recno, retdata, retdlen) \ + do { \ + if (*((u_int32_t *)(pointer)) == (u_int32_t)-1) { \ + recno = 0; \ + retdata = NULL; \ + pointer = NULL; \ + break; \ + } \ + recno = *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + retdata = (u_int8_t *) \ + ((DBT *)(dbt))->data + *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + retdlen = *(u_int32_t *)(pointer); \ + (pointer) = (u_int32_t *)(pointer) - 1; \ + } while (0) + +/* + * Common flags -- + * Interfaces which use any of these common flags should never have + * interface specific flags in this range. + */ +#define DB_CREATE 0x000001 /* Create file as necessary. */ +#define DB_CXX_NO_EXCEPTIONS 0x000002 /* C++: return error values. */ +#define DB_FORCE 0x000004 /* Force (anything). */ +#define DB_NOMMAP 0x000008 /* Don't mmap underlying file. */ +#define DB_RDONLY 0x000010 /* Read-only (O_RDONLY). */ +#define DB_RECOVER 0x000020 /* Run normal recovery. */ +#define DB_THREAD 0x000040 /* Applications are threaded. */ +#define DB_TXN_NOSYNC 0x000080 /* Do not sync log on commit. */ +#define DB_USE_ENVIRON 0x000100 /* Use the environment. */ +#define DB_USE_ENVIRON_ROOT 0x000200 /* Use the environment if root. */ + +/* This flag is common between the open call and the command calls */ +/* define DB_DIRTY_READ 0x10000000 Support Dirty Read. */ + +/* + * Flags private to db_env_create. + */ +#define DB_CLIENT 0x000400 /* Open for a client environment. */ + +/* + * Flags private to db_create. + */ +#define DB_XA_CREATE 0x000400 /* Open in an XA environment. */ + +/* + * Flags private to DBENV->open. + */ +#define DB_INIT_CDB 0x000400 /* Concurrent Access Methods. */ +#define DB_INIT_LOCK 0x000800 /* Initialize locking. */ +#define DB_INIT_LOG 0x001000 /* Initialize logging. */ +#define DB_INIT_MPOOL 0x002000 /* Initialize mpool. */ +#define DB_INIT_TXN 0x004000 /* Initialize transactions. */ +#define DB_JOINENV 0x008000 /* Initialize all subsystems present. */ +#define DB_LOCKDOWN 0x010000 /* Lock memory into physical core. */ +#define DB_PRIVATE 0x020000 /* DB_ENV is process local. */ +#define DB_RECOVER_FATAL 0x040000 /* Run catastrophic recovery. */ +#define DB_SYSTEM_MEM 0x080000 /* Use system-backed memory. */ + +/* + * Flags private to DB->open. + */ +#define DB_EXCL 0x000400 /* Exclusive open (O_EXCL). */ +#define DB_FCNTL_LOCKING 0x000800 /* UNDOC: fcntl(2) locking. */ +#define DB_ODDFILESIZE 0x001000 /* UNDOC: truncate to N * pgsize. */ +#define DB_RDWRMASTER 0x002000 /* UNDOC: allow subdb master open R/W */ +#define DB_TRUNCATE 0x004000 /* Discard existing DB (O_TRUNC). */ +#define DB_EXTENT 0x008000 /* UNDOC: dealing with an extent. */ + +/* + * Flags private to DBENV->txn_begin. + */ +#define DB_TXN_NOWAIT 0x000400 /* Do not wait for locks in this TXN. */ +#define DB_TXN_SYNC 0x000800 /* Always sync log on commit. */ + +/* + * Flags private to DBENV->set_flags. + */ +#define DB_CDB_ALLDB 0x000400 /* In CDB, lock across environment. */ + +/* + * Flags private to DB->set_feedback's callback. + */ +#define DB_UPGRADE 0x000400 /* Upgrading. */ +#define DB_VERIFY 0x000800 /* Verifying. */ + +/* + * Flags private to DB->set_flags. + * + * DB->set_flags does not share common flags and so values start at 0x01. + */ +#define DB_DUP 0x0001 /* Btree, Hash: duplicate keys. */ +#define DB_DUPSORT 0x0002 /* Btree, Hash: duplicate keys. */ +#define DB_RECNUM 0x0004 /* Btree: record numbers. */ +#define DB_RENUMBER 0x0008 /* Recno: renumber on insert/delete. */ +#define DB_REVSPLITOFF 0x0010 /* Btree: turn off reverse splits. */ +#define DB_SNAPSHOT 0x0020 /* Recno: snapshot the input. */ + +/* + * Flags private to DB->join. + * + * DB->join does not share common flags and so values start at 0x01. + */ +#define DB_JOIN_NOSORT 0x0001 /* Don't try to optimize join. */ + +/* + * Flags private to DB->verify. + * + * DB->verify does not share common flags and so values start at 0x01. + */ +#define DB_AGGRESSIVE 0x0001 /* Salvage anything which might be data.*/ +#define DB_NOORDERCHK 0x0002 /* Skip order check; subdb w/ user func */ +#define DB_ORDERCHKONLY 0x0004 /* Only perform an order check on subdb */ +#define DB_PR_PAGE 0x0008 /* Show page contents (-da). */ +#define DB_PR_RECOVERYTEST 0x0010 /* Recovery test (-dr). */ +#define DB_SALVAGE 0x0020 /* Salvage what looks like data. */ +/* + * !!! + * These must not go over 0x8000, or they will collide with the flags + * used by __bam_vrfy_subtree. + */ + +/* + * Deadlock detector modes; used in the DBENV structure to configure the + * locking subsystem. + */ +#define DB_LOCK_NORUN 0 +#define DB_LOCK_DEFAULT 1 /* Default policy. */ +#define DB_LOCK_MAXLOCKS 2 /* Abort txn with maximum # of locks. */ +#define DB_LOCK_MINLOCKS 3 /* Abort txn with minimum # of locks. */ +#define DB_LOCK_MINWRITE 4 /* Abort txn with minimum writelocks. */ +#define DB_LOCK_OLDEST 5 /* Abort oldest transaction. */ +#define DB_LOCK_RANDOM 6 /* Abort random transaction. */ +#define DB_LOCK_YOUNGEST 7 /* Abort youngest transaction. */ + +/******************************************************* + * Environment. + *******************************************************/ +#define DB_REGION_MAGIC 0x120897 /* Environment magic number. */ + +/* + * !!! + * The values of these enums are used explicitly by the Java code, since + * the DbConstant-building facility does not handle enums. Make sure + * that java/src/com/sleepycat/db/Db.java is kept up-to-date with this. + */ +typedef enum { + DB_TXN_ABORT = 0, + DB_TXN_BACKWARD_ROLL = 1, + DB_TXN_FORWARD_ROLL = 2, + DB_TXN_OPENFILES = 3, + DB_TXN_POPENFILES = 4 +} db_recops; + +#define DB_UNDO(op) ((op) == DB_TXN_ABORT || (op) == DB_TXN_BACKWARD_ROLL) +#define DB_REDO(op) ((op) == DB_TXN_FORWARD_ROLL) + +struct __db_env { + /******************************************************* + * Public: owned by the application. + *******************************************************/ + FILE *db_errfile; /* Error message file stream. */ + const char *db_errpfx; /* Error message prefix. */ + /* Callbacks. */ + void (*db_errcall) __P((const char *, char *)); + void (*db_feedback) __P((DB_ENV *, int, int)); + void (*db_paniccall) __P((DB_ENV *, int)); + int (*db_recovery_init) __P((DB_ENV *)); + + /* App-specified alloc functions. */ + void *(*db_malloc) __P((size_t)); + void *(*db_realloc) __P((void *, size_t)); + void (*db_free) __P((void *)); + + /* + * Currently, the verbose list is a bit field with room for 32 + * entries. There's no reason that it needs to be limited, if + * there are ever more than 32 entries, convert to a bit array. + */ +#define DB_VERB_CHKPOINT 0x0001 /* List checkpoints. */ +#define DB_VERB_DEADLOCK 0x0002 /* Deadlock detection information. */ +#define DB_VERB_RECOVERY 0x0004 /* Recovery information. */ +#define DB_VERB_WAITSFOR 0x0008 /* Dump waits-for table. */ + u_int32_t verbose; /* Verbose output. */ + + void *app_private; /* Application-private handle. */ + + /* Locking. */ + u_int8_t *lk_conflicts; /* Two dimensional conflict matrix. */ + u_int32_t lk_modes; /* Number of lock modes in table. */ + u_int32_t lk_max; /* Maximum number of locks. */ + u_int32_t lk_max_lockers;/* Maximum number of lockers. */ + u_int32_t lk_max_objects;/* Maximum number of locked objects. */ + u_int32_t lk_detect; /* Deadlock detect on all conflicts. */ + + /* Logging. */ + u_int32_t lg_bsize; /* Buffer size. */ + u_int32_t lg_max; /* Maximum file size. */ + u_int32_t lg_regionmax; /* Region size. */ + + /* Memory pool. */ + u_int32_t mp_gbytes; /* Cachesize: GB. */ + u_int32_t mp_bytes; /* Cachesize: Bytes. */ + size_t mp_size; /* DEPRECATED: Cachesize: bytes. */ + int mp_ncache; /* Number of cache regions. */ + size_t mp_mmapsize; /* Maximum file size for mmap. */ + + /* Transactions. */ + u_int32_t tx_max; /* Maximum number of transactions. */ + time_t tx_timestamp; /* Recover to specific timestamp. */ + int (*tx_recover) /* Dispatch function for recovery. */ + __P((DB_ENV *, DBT *, DB_LSN *, db_recops)); + + /******************************************************* + * Private: owned by DB. + *******************************************************/ + int panic_errval; /* Panic causing errno. */ + + /* User files, paths. */ + char *db_home; /* Database home. */ + char *db_log_dir; /* Database log file directory. */ + char *db_tmp_dir; /* Database tmp file directory. */ + + char **db_data_dir; /* Database data file directories. */ + int data_cnt; /* Database data file slots. */ + int data_next; /* Next Database data file slot. */ + + int db_mode; /* Default open permissions. */ + + void *reginfo; /* REGINFO structure reference. */ + DB_FH *lockfhp; /* fcntl(2) locking file handle. */ + long shm_key; /* shmget(2) key. */ + + void *lg_handle; /* Log handle. */ + + void *lk_handle; /* Lock handle. */ + + void *mp_handle; /* Mpool handle. */ + + void *tx_handle; /* Txn handle. */ + + int (**dtab) /* Dispatch table */ + __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); + size_t dtab_size; /* Slots in the dispatch table. */ + + void *cl_handle; /* RPC: remote client handle. */ + long cl_id; /* RPC: remote client env id. */ + + int db_ref; /* db reference count. */ + u_int32_t db_mutexlocks; /* db_set_mutexlocks */ + + /* + * List of open DB handles for this DB_ENV, used for cursor + * adjustment. Must be protected for multi-threaded support. + * + * !!! + * As this structure is allocated in per-process memory, the + * mutex may need to be stored elsewhere on architectures unable + * to support mutexes in heap memory, e.g. HP/UX 9. + */ + void *dblist_mutexp; /* Mutex. */ + /* + * !!! + * Explicit representation of structure in queue.h. + * LIST_HEAD(dblist, __db); + */ + struct { + struct __db *lh_first; + } dblist; + + /* + * XA support. + * + * !!! + * Explicit representations of structures in queue.h. + * + * TAILQ_ENTRY(__db_env); + */ + struct { + struct __db_env *tqe_next; + struct __db_env **tqe_prev; + } links; + int xa_rmid; /* XA Resource Manager ID. */ + DB_TXN *xa_txn; /* XA Current transaction. */ + + void *cj_internal; /* C++/Java private. */ + + /* Methods. */ + int (*close) __P((DB_ENV *, u_int32_t)); + void (*err) __P((const DB_ENV *, int, const char *, ...)); + void (*errx) __P((const DB_ENV *, const char *, ...)); + int (*open) __P((DB_ENV *, const char *, u_int32_t, int)); + int (*remove) __P((DB_ENV *, const char *, u_int32_t)); + int (*set_data_dir) __P((DB_ENV *, const char *)); + int (*set_alloc) __P((DB_ENV *, void *(*)(size_t), + void *(*)(void *, size_t), void (*)(void *))); + void (*set_errcall) __P((DB_ENV *, void (*)(const char *, char *))); + void (*set_errfile) __P((DB_ENV *, FILE *)); + void (*set_errpfx) __P((DB_ENV *, const char *)); + int (*set_feedback) __P((DB_ENV *, void (*)(DB_ENV *, int, int))); + int (*set_flags) __P((DB_ENV *, u_int32_t, int)); + int (*set_mutexlocks) __P((DB_ENV *, int)); + int (*set_paniccall) __P((DB_ENV *, void (*)(DB_ENV *, int))); + int (*set_recovery_init) __P((DB_ENV *, int (*)(DB_ENV *))); + int (*set_rpc_server) __P((DB_ENV *, + void *, const char *, long, long, u_int32_t)); + int (*set_server) __P((DB_ENV *, const char *, long, long, u_int32_t)); + int (*set_shm_key) __P((DB_ENV *, long)); + int (*set_tmp_dir) __P((DB_ENV *, const char *)); + int (*set_verbose) __P((DB_ENV *, u_int32_t, int)); + + int (*set_lg_bsize) __P((DB_ENV *, u_int32_t)); + int (*set_lg_dir) __P((DB_ENV *, const char *)); + int (*set_lg_max) __P((DB_ENV *, u_int32_t)); + int (*set_lg_regionmax) __P((DB_ENV *, u_int32_t)); + + int (*set_lk_conflicts) __P((DB_ENV *, u_int8_t *, int)); + int (*set_lk_detect) __P((DB_ENV *, u_int32_t)); + int (*set_lk_max) __P((DB_ENV *, u_int32_t)); + int (*set_lk_max_locks) __P((DB_ENV *, u_int32_t)); + int (*set_lk_max_lockers) __P((DB_ENV *, u_int32_t)); + int (*set_lk_max_objects) __P((DB_ENV *, u_int32_t)); + + int (*set_mp_mmapsize) __P((DB_ENV *, size_t)); + int (*set_cachesize) __P((DB_ENV *, u_int32_t, u_int32_t, int)); + + int (*set_tx_max) __P((DB_ENV *, u_int32_t)); + int (*set_tx_recover) __P((DB_ENV *, + int (*)(DB_ENV *, DBT *, DB_LSN *, db_recops))); + int (*set_tx_timestamp) __P((DB_ENV *, time_t *)); + +#ifdef CONFIG_TEST +#define DB_TEST_PREOPEN 1 /* before __os_open */ +#define DB_TEST_POSTOPEN 2 /* after __os_open */ +#define DB_TEST_POSTLOGMETA 3 /* after logging meta in btree */ +#define DB_TEST_POSTLOG 4 /* after logging all pages */ +#define DB_TEST_POSTSYNC 5 /* after syncing the log */ +#define DB_TEST_PRERENAME 6 /* before __os_rename */ +#define DB_TEST_POSTRENAME 7 /* after __os_rename */ + int test_abort; /* Abort value for testing. */ + int test_copy; /* Copy value for testing. */ +#endif + +#define DB_ENV_CDB 0x00001 /* DB_INIT_CDB. */ +#define DB_ENV_CDB_ALLDB 0x00002 /* CDB environment wide locking. */ +#define DB_ENV_CREATE 0x00004 /* DB_CREATE set. */ +#define DB_ENV_DBLOCAL 0x00008 /* DB_ENV allocated for private DB. */ +#define DB_ENV_LOCKDOWN 0x00010 /* DB_LOCKDOWN set. */ +#define DB_ENV_NOMMAP 0x00020 /* DB_NOMMAP set. */ +#define DB_ENV_OPEN_CALLED 0x00040 /* DBENV->open called (paths valid). */ +#define DB_ENV_PANIC_OK 0x00080 /* Removing env, okay if panic set */ +#define DB_ENV_PRIVATE 0x00100 /* DB_PRIVATE set. */ +#define DB_ENV_RPCCLIENT 0x00200 /* DB_CLIENT set. */ +#define DB_ENV_RPCCLIENT_GIVEN 0x00400 /* User-supplied RPC client struct */ +#define DB_ENV_STANDALONE 0x00800 /* Test: freestanding environment. */ +#define DB_ENV_SYSTEM_MEM 0x01000 /* DB_SYSTEM_MEM set. */ +#define DB_ENV_THREAD 0x02000 /* DB_THREAD set. */ +#define DB_ENV_TXN_NOSYNC 0x04000 /* DB_TXN_NOSYNC set. */ +#define DB_ENV_USER_ALLOC 0x08000 /* User allocated the structure. */ + u_int32_t flags; /* Flags. */ +}; + +/******************************************************* + * Access methods. + *******************************************************/ +/* + * !!! + * Changes here must be reflected in java/src/com/sleepycat/db/Db.java. + */ +typedef enum { + DB_BTREE=1, + DB_HASH, + DB_RECNO, + DB_QUEUE, + DB_UNKNOWN /* Figure it out on open. */ +} DBTYPE; + +#define DB_BTREEVERSION 8 /* Current btree version. */ +#define DB_BTREEOLDVER 6 /* Oldest btree version supported. */ +#define DB_BTREEMAGIC 0x053162 + +#define DB_HASHVERSION 7 /* Current hash version. */ +#define DB_HASHOLDVER 4 /* Oldest hash version supported. */ +#define DB_HASHMAGIC 0x061561 + +#define DB_QAMVERSION 3 /* Current queue version. */ +#define DB_QAMOLDVER 1 /* Oldest queue version supported. */ +#define DB_QAMMAGIC 0x042253 + +#define DB_LOGVERSION 3 /* Current log version. */ +#define DB_LOGOLDVER 3 /* Oldest log version supported. */ +#define DB_LOGMAGIC 0x040988 + +/* + * DB access method and cursor operation values. Each value is an operation + * code to which additional bit flags are added. + */ +#define DB_AFTER 1 /* c_put() */ +#define DB_APPEND 2 /* put() */ +#define DB_BEFORE 3 /* c_put() */ +#define DB_CACHED_COUNTS 4 /* stat() */ +#define DB_CHECKPOINT 5 /* log_put(), log_get() */ +#define DB_COMMIT 6 /* log_put() (internal) */ +#define DB_CONSUME 7 /* get() */ +#define DB_CONSUME_WAIT 8 /* get() */ +#define DB_CURLSN 9 /* log_put() */ +#define DB_CURRENT 10 /* c_get(), c_put(), log_get() */ +#define DB_FAST_STAT 11 /* stat() */ +#define DB_FIRST 12 /* c_get(), log_get() */ +#define DB_FLUSH 13 /* log_put() */ +#define DB_GET_BOTH 14 /* get(), c_get() */ +#define DB_GET_BOTHC 15 /* c_get() (internal) */ +#define DB_GET_RECNO 16 /* c_get() */ +#define DB_JOIN_ITEM 17 /* c_get(); do not do primary lookup */ +#define DB_KEYFIRST 18 /* c_put() */ +#define DB_KEYLAST 19 /* c_put() */ +#define DB_LAST 20 /* c_get(), log_get() */ +#define DB_NEXT 21 /* c_get(), log_get() */ +#define DB_NEXT_DUP 22 /* c_get() */ +#define DB_NEXT_NODUP 23 /* c_get() */ +#define DB_NODUPDATA 24 /* put(), c_put() */ +#define DB_NOOVERWRITE 25 /* put() */ +#define DB_NOSYNC 26 /* close() */ +#define DB_POSITION 27 /* c_dup() */ +#define DB_POSITIONI 28 /* c_dup() (internal) */ +#define DB_PREV 29 /* c_get(), log_get() */ +#define DB_PREV_NODUP 30 /* c_get(), log_get() */ +#define DB_RECORDCOUNT 31 /* stat() */ +#define DB_SET 32 /* c_get(), log_get() */ +#define DB_SET_RANGE 33 /* c_get() */ +#define DB_SET_RECNO 34 /* get(), c_get() */ +#define DB_UPDATE_SECONDARY 35 /* c_get(), c_del() (internal) */ +#define DB_WRITECURSOR 36 /* cursor() */ +#define DB_WRITELOCK 37 /* cursor() (internal) */ + +/* This has to change when the max opcode hits 255. */ +#define DB_OPFLAGS_MASK 0x000000ff /* Mask for operations flags. */ +#define DB_DIRTY_READ 0x10000000 /* Support Dirty Read. */ +#define DB_MULTIPLE 0x20000000 /* Return multiple data values. */ +#define DB_MULTIPLE_KEY 0x40000000 /* Return multiple data/key pairs. */ +#define DB_RMW 0x80000000 /* Acquire write flag immediately. */ + +/* + * DB (user visible) error return codes. + * + * !!! + * Changes to any of the user visible error return codes must be reflected + * in java/src/com/sleepycat/db/Db.java. + * + * !!! + * For source compatibility with DB 2.X deadlock return (EAGAIN), use the + * following: + * #include <errno.h> + * #define DB_LOCK_DEADLOCK EAGAIN + * + * !!! + * We don't want our error returns to conflict with other packages where + * possible, so pick a base error value that's hopefully not common. We + * document that we own the error name space from -30,800 to -30,999. + */ +/* Public error return codes. */ +#define DB_DONOTINDEX (-30999)/* "Null" return from 2ndary callbk. */ +#define DB_INCOMPLETE (-30998)/* Sync didn't finish. */ +#define DB_KEYEMPTY (-30997)/* Key/data deleted or never created. */ +#define DB_KEYEXIST (-30996)/* The key/data pair already exists. */ +#define DB_LOCK_DEADLOCK (-30995)/* Deadlock. */ +#define DB_LOCK_NOTGRANTED (-30994)/* Lock unavailable. */ +#define DB_NOSERVER (-30993)/* Server panic return. */ +#define DB_NOSERVER_HOME (-30992)/* Bad home sent to server. */ +#define DB_NOSERVER_ID (-30991)/* Bad ID sent to server. */ +#define DB_NOTFOUND (-30990)/* Key/data pair not found (EOF). */ +#define DB_OLD_VERSION (-30989)/* Out-of-date version. */ +#define DB_PAGE_NOTFOUND (-30988)/* Verify failed; bad format. */ +#define DB_RUNRECOVERY (-30987)/* Panic return. */ +#define DB_VERIFY_BAD (-30986)/* Verify failed; bad format. */ + +/* DB (private) error return codes. */ +#define DB_ALREADY_ABORTED (-30899) +#define DB_DELETED (-30898)/* Recovery file marked deleted. */ +#define DB_JAVA_CALLBACK (-30897)/* Exception during a java callback. */ +#define DB_NEEDSPLIT (-30896)/* Page needs to be split. */ +#define DB_SWAPBYTES (-30895)/* Database needs byte swapping. */ +#define DB_TXN_CKP (-30894)/* Encountered ckp record in log. */ +#define DB_VERIFY_FATAL (-30893)/* Fatal: DB->verify cannot proceed. */ + +#define DB_FILE_ID_LEN 20 /* DB file ID length. */ + +/* DB access method description structure. */ +struct __db { + /******************************************************* + * Public: owned by the application. + *******************************************************/ + u_int32_t pgsize; /* Database logical page size. */ + + /* Callbacks. */ + int (*db_append_recno) __P((DB *, DBT *, db_recno_t)); + void (*db_feedback) __P((DB *, int, int)); + int (*dup_compare) __P((DB *, const DBT *, const DBT *)); + + void *app_private; /* Application-private handle. */ + + /******************************************************* + * Private: owned by DB. + *******************************************************/ + DB_ENV *dbenv; /* Backing environment. */ + + DBTYPE type; /* DB access method type. */ + + DB_MPOOLFILE *mpf; /* Backing buffer pool. */ + + void *mutexp; /* Synchronization for free threading */ + + u_int8_t fileid[DB_FILE_ID_LEN];/* File's unique ID for locking. */ + + u_int32_t adj_fileid; /* File's unique ID for curs. adj. */ + +#define DB_LOGFILEID_INVALID -1 + int32_t log_fileid; /* File's unique ID for logging. */ + db_pgno_t meta_pgno; /* Meta page number */ + DB_TXN *open_txn; /* Transaction to protect creates. */ + + long cl_id; /* RPC: remote client id. */ + + /* + * Returned data memory for DB->get() and friends. + */ + DBT my_rskey; /* Secondary key. */ + DBT my_rkey; /* [Primary] key. */ + DBT my_rdata; /* Data. */ + + /* + * !!! + * Some applications use DB but implement their own locking outside of + * DB. If they're using fcntl(2) locking on the underlying database + * file, and we open and close a file descriptor for that file, we will + * discard their locks. The DB_FCNTL_LOCKING flag to DB->open is an + * undocumented interface to support this usage which leaves any file + * descriptors we open until DB->close. This will only work with the + * DB->open interface and simple caches, e.g., creating a transaction + * thread may open/close file descriptors this flag doesn't protect. + * Locking with fcntl(2) on a file that you don't own is a very, very + * unsafe thing to do. 'Nuff said. + */ + DB_FH *saved_open_fhp; /* Saved file handle. */ + + /* + * Linked list of DBP's, used in the log's dbentry table + * to keep track of all open db handles for a given log id. + * !!! + * Explicit representations of structures in queue.h. + * + * TAILQ_ENTRY(__db) links; + */ + struct { + struct __db *tqe_next; + struct __db **tqe_prev; + } links; + + /* + * Linked list of DBP's, linked from the DB_ENV, used to + * keep track of all open db handles for cursor adjustment. + * + * XXX + * Eventually, this should be merged with "links" above. + * + * !!! + * Explicit representations of structures in queue.h. + * + * LIST_ENTRY(__db) dblistlinks; + */ + struct { + struct __db *le_next; + struct __db **le_prev; + } dblistlinks; + + /* + * Cursor queues. + * + * !!! + * Explicit representations of structures in queue.h. + * + * TAILQ_HEAD(free_queue, __dbc); + * TAILQ_HEAD(active_queue, __dbc); + * TAILQ_HEAD(join_queue, __dbc); + */ + struct { + struct __dbc *tqh_first; + struct __dbc **tqh_last; + } free_queue; + struct { + struct __dbc *tqh_first; + struct __dbc **tqh_last; + } active_queue; + struct { + struct __dbc *tqh_first; + struct __dbc **tqh_last; + } join_queue; + + /* + * Secondary index support. + * + * !!! + * Explicit representations of structures in queue.h. + */ + /* Linked list of secondary indices -- set in the primary. */ + struct { + struct __db *lh_first; + } s_secondaries; + + /* + * List entries for secondaries, and reference count of how + * many threads are updating this secondary (see __db_c_put). + * + * !!! + * Note that these are synchronized by the primary's mutex, but + * filled in in the secondaries. + */ + struct { + struct __db *le_next; + struct __db **le_prev; + } s_links; + u_int32_t s_refcnt; + + /* Secondary callback and free functions -- set in the secondary. */ + int (*s_callback)(DB *, const DBT *, const DBT *, DBT *); + + /* Reference to primary -- set in the secondary. */ + DB *s_primary; + + /* + * Subsystem-private structures. + */ + + void *bt_internal; /* Btree/Recno access method private. */ + void *cj_internal; /* C++/Java private. */ + void *h_internal; /* Hash access method private. */ + void *q_internal; /* Queue access method private. */ + void *xa_internal; /* XA private. */ + + /* Methods. */ + int (*associate) __P((DB *, DB *, int (*)(DB *, const DBT *, + const DBT *, DBT *), u_int32_t)); + int (*close) __P((DB *, u_int32_t)); + int (*cursor) __P((DB *, DB_TXN *, DBC **, u_int32_t)); + int (*del) __P((DB *, DB_TXN *, DBT *, u_int32_t)); + void (*err) __P((DB *, int, const char *, ...)); + void (*errx) __P((DB *, const char *, ...)); + int (*fd) __P((DB *, int *)); + int (*get) __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); + int (*pget) __P((DB *, DB_TXN *, DBT *, DBT *, DBT *, u_int32_t)); + int (*get_byteswapped) __P((DB *)); + DBTYPE + (*get_type) __P((DB *)); + int (*join) __P((DB *, DBC **, DBC **, u_int32_t)); + int (*key_range) __P((DB *, + DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t)); + int (*open) __P((DB *, + const char *, const char *, DBTYPE, u_int32_t, int)); + int (*put) __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); + int (*remove) __P((DB *, const char *, const char *, u_int32_t)); + int (*rename) __P((DB *, + const char *, const char *, const char *, u_int32_t)); + int (*truncate) __P((DB *, + const char *, const char *, u_int32_t *, u_int32_t)); + int (*set_append_recno) __P((DB *, int (*)(DB *, DBT *, db_recno_t))); + int (*set_alloc) __P((DB *, void *(*)(size_t), + void *(*)(void *, size_t), void (*)(void *))); + int (*set_cachesize) __P((DB *, u_int32_t, u_int32_t, int)); + int (*set_dup_compare) __P((DB *, + int (*)(DB *, const DBT *, const DBT *))); + void (*set_errcall) __P((DB *, void (*)(const char *, char *))); + void (*set_errfile) __P((DB *, FILE *)); + void (*set_errpfx) __P((DB *, const char *)); + int (*set_feedback) __P((DB *, void (*)(DB *, int, int))); + int (*set_flags) __P((DB *, u_int32_t)); + int (*set_lorder) __P((DB *, int)); + int (*set_pagesize) __P((DB *, u_int32_t)); + int (*set_paniccall) __P((DB *, void (*)(DB_ENV *, int))); + int (*stat) __P((DB *, void *, u_int32_t)); + int (*sync) __P((DB *, u_int32_t)); + int (*upgrade) __P((DB *, const char *, u_int32_t)); + int (*verify) __P((DB *, + const char *, const char *, FILE *, u_int32_t)); + + int (*set_bt_compare) __P((DB *, + int (*)(DB *, const DBT *, const DBT *))); + int (*set_bt_maxkey) __P((DB *, u_int32_t)); + int (*set_bt_minkey) __P((DB *, u_int32_t)); + int (*set_bt_prefix) __P((DB *, + size_t (*)(DB *, const DBT *, const DBT *))); + + int (*set_h_ffactor) __P((DB *, u_int32_t)); + int (*set_h_hash) __P((DB *, + u_int32_t (*)(DB *, const void *, u_int32_t))); + int (*set_h_nelem) __P((DB *, u_int32_t)); + + int (*set_re_delim) __P((DB *, int)); + int (*set_re_len) __P((DB *, u_int32_t)); + int (*set_re_pad) __P((DB *, int)); + int (*set_re_source) __P((DB *, const char *)); + int (*set_q_extentsize) __P((DB *, u_int32_t)); + + int (*db_am_remove) __P((DB *, const char *, + const char *, DB_LSN *, int (**)(DB *, void *), void **)); + int (*db_am_rename) __P((DB *, + const char *, const char *, const char *)); + +#define DB_OK_BTREE 0x01 +#define DB_OK_HASH 0x02 +#define DB_OK_QUEUE 0x04 +#define DB_OK_RECNO 0x08 + u_int32_t am_ok; /* Legal AM choices. */ + +#define DB_AM_DIRTY 0x000001 /* Support Dirty Reads. */ +#define DB_AM_DISCARD 0x000002 /* Discard any cached pages. */ +#define DB_AM_DUP 0x000004 /* DB_DUP. */ +#define DB_AM_DUPSORT 0x000008 /* DB_DUPSORT. */ +#define DB_AM_INMEM 0x000010 /* In-memory; no sync on close. */ +#define DB_AM_PGDEF 0x000020 /* Page size was defaulted. */ +#define DB_AM_RDONLY 0x000040 /* Database is readonly. */ +#define DB_AM_RECOVER 0x000080 /* DBP opened by recovery routine. */ +#define DB_AM_SECONDARY 0x000100 /* Database is a secondary index. */ +#define DB_AM_SUBDB 0x000200 /* Subdatabases supported. */ +#define DB_AM_SWAP 0x000400 /* Pages need to be byte-swapped. */ +#define DB_AM_TXN 0x000800 /* DBP was in a transaction. */ +#define DB_AM_VERIFYING 0x001000 /* DB handle is in the verifier. */ +#define DB_BT_RECNUM 0x002000 /* DB_RECNUM. */ +#define DB_BT_REVSPLIT 0x004000 /* DB_REVSPLITOFF. */ +#define DB_DBM_ERROR 0x008000 /* Error in DBM/NDBM database. */ +#define DB_OPEN_CALLED 0x010000 /* DB->open called. */ +#define DB_RE_DELIMITER 0x020000 /* Variablen length delimiter set. */ +#define DB_RE_FIXEDLEN 0x040000 /* Fixed-length records. */ +#define DB_RE_PAD 0x080000 /* Fixed-length record pad. */ +#define DB_RE_RENUMBER 0x100000 /* DB_RENUMBER. */ +#define DB_RE_SNAPSHOT 0x200000 /* DB_SNAPSHOT. */ + u_int32_t flags; +}; +/******************************************************* + * Locking + *******************************************************/ +#define DB_LOCKVERSION 1 + +/* Flag values for lock_vec(), lock_get(). */ +#define DB_LOCK_NOWAIT 0x01 /* Don't wait on unavailable lock. */ +#define DB_LOCK_RECORD 0x02 /* Internal: record lock. */ +#define DB_LOCK_UPGRADE 0x04 /* Internal: upgrade existing lock. */ +#define DB_LOCK_SWITCH 0x08 /* Internal: switch existing lock. */ + +/* + * Request types. + * + * !!! + * Changes here must be reflected in java/src/com/sleepycat/db/Db.java. + */ +typedef enum { + DB_LOCK_DUMP=0, /* Display held locks. */ + DB_LOCK_GET, /* Get the lock. */ + DB_LOCK_INHERIT, /* Pass locks to parent. */ + DB_LOCK_PUT, /* Release the lock. */ + DB_LOCK_PUT_ALL, /* Release locker's locks. */ + DB_LOCK_PUT_OBJ, /* Release locker's locks on obj. */ + DB_LOCK_UPGRADE_WRITE /* Upgrade writes for dirty reads. */ +} db_lockop_t; + +/* + * Simple R/W lock modes and for multi-granularity intention locking. + * + * !!! + * These values are NOT random, as they are used as an index into the lock + * conflicts arrays, i.e., DB_LOCK_IWRITE must be == 3, and DB_LOCK_IREAD + * must be == 4. + * + * !!! + * Changes here must be reflected in java/src/com/sleepycat/db/Db.java. + */ +typedef enum { + DB_LOCK_NG=0, /* Not granted. */ + DB_LOCK_READ, /* Shared/read. */ + DB_LOCK_WRITE, /* Exclusive/write. */ + DB_LOCK_WAIT, /* Wait for event */ + DB_LOCK_IWRITE, /* Intent exclusive/write. */ + DB_LOCK_IREAD, /* Intent to share/read. */ + DB_LOCK_IWR, /* Intent to read and write. */ + DB_LOCK_DIRTY, /* Dirty Read. */ + DB_LOCK_WWRITE /* Was Written. */ +} db_lockmode_t; + +/* + * Status of a lock. + */ +typedef enum { + DB_LSTAT_ABORTED, /* Lock belongs to an aborted txn. */ + DB_LSTAT_ERR, /* Lock is bad. */ + DB_LSTAT_FREE, /* Lock is unallocated. */ + DB_LSTAT_HELD, /* Lock is currently held. */ + DB_LSTAT_NOGRANT, /* Lock was not granted. */ + DB_LSTAT_PENDING, /* Lock was waiting and has been + * promoted; waiting for the owner + * to run and upgrade it to held. */ + DB_LSTAT_WAITING /* Lock is on the wait queue. */ +} db_status_t; + +/* Lock statistics structure. */ +struct __db_lock_stat { + u_int32_t st_lastid; /* Last allocated locker ID. */ + u_int32_t st_maxlocks; /* Maximum number of locks in table. */ + u_int32_t st_maxlockers; /* Maximum num of lockers in table. */ + u_int32_t st_maxobjects; /* Maximum num of objects in table. */ + u_int32_t st_nmodes; /* Number of lock modes. */ + u_int32_t st_nlocks; /* Current number of locks. */ + u_int32_t st_maxnlocks; /* Maximum number of locks so far. */ + u_int32_t st_nlockers; /* Current number of lockers. */ + u_int32_t st_maxnlockers; /* Maximum number of lockers so far. */ + u_int32_t st_nobjects; /* Current number of objects. */ + u_int32_t st_maxnobjects; /* Maximum number of objects so far. */ + u_int32_t st_nconflicts; /* Number of lock conflicts. */ + u_int32_t st_nrequests; /* Number of lock gets. */ + u_int32_t st_nreleases; /* Number of lock puts. */ + u_int32_t st_nnowaits; /* Number of requests that would have + waited, but NOWAIT was set. */ + u_int32_t st_ndeadlocks; /* Number of lock deadlocks. */ + u_int32_t st_region_wait; /* Region lock granted after wait. */ + u_int32_t st_region_nowait; /* Region lock granted without wait. */ + u_int32_t st_regsize; /* Region size. */ +}; + +/* + * DB_LOCK_ILOCK -- + * Internal DB access method lock. + */ +struct __db_ilock { + db_pgno_t pgno; /* Page being locked. */ + u_int8_t fileid[DB_FILE_ID_LEN];/* File id. */ +#define DB_RECORD_LOCK 1 +#define DB_PAGE_LOCK 2 + u_int8_t type; /* Record or Page lock */ +}; + +/* + * DB_LOCK -- + * The structure is allocated by the caller and filled in during a + * lock_get request (or a lock_vec/DB_LOCK_GET). + */ +struct __db_lock_u { + size_t off; /* Offset of the lock in the region */ + u_int32_t ndx; /* Index of the object referenced by + * this lock; used for locking. */ + u_int32_t gen; /* Generation number of this lock. */ + db_lockmode_t mode; /* mode of this lock. */ +}; + +/* Lock request structure. */ +struct __db_lockreq { + db_lockop_t op; /* Operation. */ + db_lockmode_t mode; /* Requested mode. */ + DBT *obj; /* Object being locked. */ + DB_LOCK lock; /* Lock returned. */ +}; + +/* Cursor description structure. */ +struct __dbc { + DB *dbp; /* Related DB access method. */ + DB_TXN *txn; /* Associated transaction. */ + + /* + * !!! + * Explicit representations of structures in queue.h. + * + * TAILQ_ENTRY(__dbc) links; Active/free cursor queues. + */ + struct { + DBC *tqe_next; + DBC **tqe_prev; + } links; + + /* + * The DBT *'s below are used by the cursor routines to return + * data to the user when DBT flags indicate that DB should manage + * the returned memory. They point at a DBT containing the buffer + * and length that will be used, and "belonging" to the handle that + * should "own" this memory. This may be a "my_*" field of this + * cursor--the default--or it may be the corresponding field of + * another cursor, a DB handle, a join cursor, etc. In general, it + * will be whatever handle the user originally used for the current + * DB interface call. + */ + DBT *rskey; /* Returned secondary key. */ + DBT *rkey; /* Returned [primary] key. */ + DBT *rdata; /* Returned data. */ + + DBT my_rskey; /* Space for returned secondary key. */ + DBT my_rkey; /* Space for returned [primary] key. */ + DBT my_rdata; /* Space for returned data. */ + + u_int32_t lid; /* Default process' locker id. */ + u_int32_t locker; /* Locker for this operation. */ + DBT lock_dbt; /* DBT referencing lock. */ + DB_LOCK_ILOCK lock; /* Object to be locked. */ + DB_LOCK mylock; /* Lock held on this cursor. */ + + long cl_id; /* Remote client id. */ + + DBTYPE dbtype; /* Cursor type. */ + + DBC_INTERNAL *internal; /* Access method private. */ + + int (*c_close) __P((DBC *)); /* Methods: public. */ + int (*c_count) __P((DBC *, db_recno_t *, u_int32_t)); + int (*c_del) __P((DBC *, u_int32_t)); + int (*c_dup) __P((DBC *, DBC **, u_int32_t)); + int (*c_get) __P((DBC *, DBT *, DBT *, u_int32_t)); + int (*c_pget) __P((DBC *, DBT *, DBT *, DBT *, u_int32_t)); + int (*c_put) __P((DBC *, DBT *, DBT *, u_int32_t)); + + /* Methods: private. */ + int (*c_am_bulk) __P((DBC *, DBT *, u_int32_t)); + int (*c_am_close) __P((DBC *, db_pgno_t, int *)); + int (*c_am_del) __P((DBC *)); + int (*c_am_destroy) __P((DBC *)); + int (*c_am_get) __P((DBC *, DBT *, DBT *, u_int32_t, db_pgno_t *)); + int (*c_am_put) __P((DBC *, DBT *, DBT *, u_int32_t, db_pgno_t *)); + int (*c_am_writelock) __P((DBC *)); + + /* Private: for secondary indices. */ + int (*c_real_get) __P((DBC *, DBT *, DBT *, u_int32_t)); + +#define DBC_ACTIVE 0x001 /* Cursor is being used. */ +#define DBC_COMPENSATE 0x002 /* Cursor is doing compensation + * do not lock. + */ +#define DBC_DIRTY_READ 0x004 /* Cursor is supporting dirty reads. */ +#define DBC_OPD 0x008 /* Cursor references off-page dups. */ +#define DBC_RECOVER 0x010 /* Cursor created by recovery routine + * (do not log or lock). + */ +#define DBC_RMW 0x020 /* Acquire write flag in read op. */ +#define DBC_TRANSIENT 0x040 /* Cursor is transient. */ +#define DBC_WRITECURSOR 0x080 /* Cursor may be used to write (CDB). */ +#define DBC_WRITEDUP 0x100 /* idup'ed DBC_WRITECURSOR (CDB). */ +#define DBC_WRITER 0x200 /* Cursor immediately writing (CDB). */ +#define DBC_MULTIPLE 0x400 /* Return Multiple data. */ +#define DBC_MULTIPLE_KEY 0x800 /* Return Multiple keys and data. */ + u_int32_t flags; +}; + +/* Key range statistics structure */ +struct __key_range { + double less; + double equal; + double greater; +}; + +/* Btree/Recno statistics structure. */ +struct __db_bt_stat { + u_int32_t bt_magic; /* Magic number. */ + u_int32_t bt_version; /* Version number. */ + u_int32_t bt_metaflags; /* Metadata flags. */ + u_int32_t bt_nkeys; /* Number of unique keys. */ + u_int32_t bt_ndata; /* Number of data items. */ + u_int32_t bt_pagesize; /* Page size. */ + u_int32_t bt_maxkey; /* Maxkey value. */ + u_int32_t bt_minkey; /* Minkey value. */ + u_int32_t bt_re_len; /* Fixed-length record length. */ + u_int32_t bt_re_pad; /* Fixed-length record pad. */ + u_int32_t bt_levels; /* Tree levels. */ + u_int32_t bt_int_pg; /* Internal pages. */ + u_int32_t bt_leaf_pg; /* Leaf pages. */ + u_int32_t bt_dup_pg; /* Duplicate pages. */ + u_int32_t bt_over_pg; /* Overflow pages. */ + u_int32_t bt_free; /* Pages on the free list. */ + u_int32_t bt_int_pgfree; /* Bytes free in internal pages. */ + u_int32_t bt_leaf_pgfree; /* Bytes free in leaf pages. */ + u_int32_t bt_dup_pgfree; /* Bytes free in duplicate pages. */ + u_int32_t bt_over_pgfree; /* Bytes free in overflow pages. */ +}; + +/* Queue statistics structure. */ +struct __db_qam_stat { + u_int32_t qs_magic; /* Magic number. */ + u_int32_t qs_version; /* Version number. */ + u_int32_t qs_metaflags; /* Metadata flags. */ + u_int32_t qs_nkeys; /* Number of unique keys. */ + u_int32_t qs_ndata; /* Number of data items. */ + u_int32_t qs_pagesize; /* Page size. */ + u_int32_t qs_extentsize; /* Pages per extent. */ + u_int32_t qs_pages; /* Data pages. */ + u_int32_t qs_re_len; /* Fixed-length record length. */ + u_int32_t qs_re_pad; /* Fixed-length record pad. */ + u_int32_t qs_pgfree; /* Bytes free in data pages. */ + u_int32_t qs_first_recno; /* First not deleted record. */ + u_int32_t qs_cur_recno; /* Last allocated record number. */ +}; + +/* Hash statistics structure. */ +struct __db_h_stat { + u_int32_t hash_magic; /* Magic number. */ + u_int32_t hash_version; /* Version number. */ + u_int32_t hash_metaflags; /* Metadata flags. */ + u_int32_t hash_nkeys; /* Number of unique keys. */ + u_int32_t hash_ndata; /* Number of data items. */ + u_int32_t hash_pagesize; /* Page size. */ + u_int32_t hash_nelem; /* Original nelem specified. */ + u_int32_t hash_ffactor; /* Fill factor specified at create. */ + u_int32_t hash_buckets; /* Number of hash buckets. */ + u_int32_t hash_free; /* Pages on the free list. */ + u_int32_t hash_bfree; /* Bytes free on bucket pages. */ + u_int32_t hash_bigpages; /* Number of big key/data pages. */ + u_int32_t hash_big_bfree; /* Bytes free on big item pages. */ + u_int32_t hash_overflows; /* Number of overflow pages. */ + u_int32_t hash_ovfl_free; /* Bytes free on ovfl pages. */ + u_int32_t hash_dup; /* Number of dup pages. */ + u_int32_t hash_dup_free; /* Bytes free on duplicate pages. */ +}; + +/******************************************************* +* Logging. + *******************************************************/ +/* Flag values for log_archive(). */ +#define DB_ARCH_ABS 0x001 /* Absolute pathnames. */ +#define DB_ARCH_DATA 0x002 /* Data files. */ +#define DB_ARCH_LOG 0x004 /* Log files. */ + +/* + * A DB_LSN has two parts, a fileid which identifies a specific file, and an + * offset within that file. The fileid is an unsigned 4-byte quantity that + * uniquely identifies a file within the log directory -- currently a simple + * counter inside the log. The offset is also an unsigned 4-byte value. The + * log manager guarantees the offset is never more than 4 bytes by switching + * to a new log file before the maximum length imposed by an unsigned 4-byte + * offset is reached. + */ +struct __db_lsn { + u_int32_t file; /* File ID. */ + u_int32_t offset; /* File offset. */ +}; + +/* Log statistics structure. */ +struct __db_log_stat { + u_int32_t st_magic; /* Log file magic number. */ + u_int32_t st_version; /* Log file version number. */ + int st_mode; /* Log file mode. */ + u_int32_t st_lg_bsize; /* Log buffer size. */ + u_int32_t st_lg_max; /* Maximum log file size. */ + u_int32_t st_w_bytes; /* Bytes to log. */ + u_int32_t st_w_mbytes; /* Megabytes to log. */ + u_int32_t st_wc_bytes; /* Bytes to log since checkpoint. */ + u_int32_t st_wc_mbytes; /* Megabytes to log since checkpoint. */ + u_int32_t st_wcount; /* Total writes to the log. */ + u_int32_t st_wcount_fill; /* Overflow writes to the log. */ + u_int32_t st_scount; /* Total syncs to the log. */ + u_int32_t st_region_wait; /* Region lock granted after wait. */ + u_int32_t st_region_nowait; /* Region lock granted without wait. */ + u_int32_t st_cur_file; /* Current log file number. */ + u_int32_t st_cur_offset; /* Current log file offset. */ + u_int32_t st_regsize; /* Region size. */ +}; + +/******************************************************* + * Mpool + *******************************************************/ +/* Flag values for memp_fget(). */ +#define DB_MPOOL_CREATE 0x001 /* Create a page. */ +#define DB_MPOOL_LAST 0x002 /* Return the last page. */ +#define DB_MPOOL_NEW 0x004 /* Create a new page. */ +#define DB_MPOOL_NEW_GROUP 0x008 /* Create a group of pages. */ + +/* Flag values for memp_fput(), memp_fset(). */ +#define DB_MPOOL_CLEAN 0x001 /* Page is not modified. */ +#define DB_MPOOL_DIRTY 0x002 /* Page is modified. */ +#define DB_MPOOL_DISCARD 0x004 /* Don't cache the page. */ + +/* Mpool statistics structure. */ +struct __db_mpool_stat { + u_int32_t st_cache_hit; /* Pages found in the cache. */ + u_int32_t st_cache_miss; /* Pages not found in the cache. */ + u_int32_t st_map; /* Pages from mapped files. */ + u_int32_t st_page_create; /* Pages created in the cache. */ + u_int32_t st_page_in; /* Pages read in. */ + u_int32_t st_page_out; /* Pages written out. */ + u_int32_t st_ro_evict; /* Clean pages forced from the cache. */ + u_int32_t st_rw_evict; /* Dirty pages forced from the cache. */ + u_int32_t st_hash_buckets; /* Number of hash buckets. */ + u_int32_t st_hash_searches; /* Total hash chain searches. */ + u_int32_t st_hash_longest; /* Longest hash chain searched. */ + u_int32_t st_hash_examined; /* Total hash entries searched. */ + u_int32_t st_page_clean; /* Clean pages. */ + u_int32_t st_page_dirty; /* Dirty pages. */ + u_int32_t st_page_trickle; /* Pages written by memp_trickle. */ + u_int32_t st_region_wait; /* Region lock granted after wait. */ + u_int32_t st_region_nowait; /* Region lock granted without wait. */ + u_int32_t st_gbytes; /* Total cache size: GB. */ + u_int32_t st_bytes; /* Total cache size: B. */ + u_int32_t st_ncache; /* Number of caches. */ + u_int32_t st_regsize; /* Cache size. */ +}; + +/* Mpool file open information structure. */ +struct __db_mpool_finfo { + int ftype; /* File type. */ + DBT *pgcookie; /* Byte-string passed to pgin/pgout. */ + u_int8_t *fileid; /* Unique file ID. */ + int32_t lsn_offset; /* LSN offset in page. */ + u_int32_t clear_len; /* Cleared length on created pages. */ +}; + +/* Mpool file statistics structure. */ +struct __db_mpool_fstat { + char *file_name; /* File name. */ + size_t st_pagesize; /* Page size. */ + u_int32_t st_cache_hit; /* Pages found in the cache. */ + u_int32_t st_cache_miss; /* Pages not found in the cache. */ + u_int32_t st_map; /* Pages from mapped files. */ + u_int32_t st_page_create; /* Pages created in the cache. */ + u_int32_t st_page_in; /* Pages read in. */ + u_int32_t st_page_out; /* Pages written out. */ +}; + +/******************************************************* + * Transactions. + *******************************************************/ +#define DB_TXNVERSION 1 + +/* Transaction statistics structure. */ +struct __db_txn_active { + u_int32_t txnid; /* Transaction ID */ + u_int32_t parentid; /* Transaction ID of parent */ + DB_LSN lsn; /* Lsn of the begin record */ +}; + +struct __db_txn_stat { + DB_LSN st_last_ckp; /* lsn of the last checkpoint */ + DB_LSN st_pending_ckp; /* last checkpoint did not finish */ + time_t st_time_ckp; /* time of last checkpoint */ + u_int32_t st_last_txnid; /* last transaction id given out */ + u_int32_t st_maxtxns; /* maximum txns possible */ + u_int32_t st_naborts; /* number of aborted transactions */ + u_int32_t st_nbegins; /* number of begun transactions */ + u_int32_t st_ncommits; /* number of committed transactions */ + u_int32_t st_nactive; /* number of active transactions */ + u_int32_t st_nrestores; /* number of restored transactions + after recovery. */ + u_int32_t st_maxnactive; /* maximum active transactions */ + DB_TXN_ACTIVE + *st_txnarray; /* array of active transactions */ + u_int32_t st_region_wait; /* Region lock granted after wait. */ + u_int32_t st_region_nowait; /* Region lock granted without wait. */ + u_int32_t st_regsize; /* Region size. */ +}; + +/* + * Structure used for two phase commit interface. Berkeley DB support for two + * phase commit is compatible with the X/open XA interface. The xa #define + * XIDDATASIZE defines the size of a global transaction ID. We have our own + * version here which must have the same value. + */ +#define DB_XIDDATASIZE 128 +typedef struct db_preplist { + DB_TXN *txn; + u_int8_t gid[DB_XIDDATASIZE]; +} DB_PREPLIST; + +#ifndef DB_DBM_HSEARCH +#define DB_DBM_HSEARCH 0 /* No historic interfaces by default. */ +#endif +#if DB_DBM_HSEARCH != 0 +/******************************************************* + * Dbm/Ndbm historic interfaces. + *******************************************************/ +typedef struct __db DBM; + +#define DBM_INSERT 0 /* Flags to dbm_store(). */ +#define DBM_REPLACE 1 + +/* + * The DB support for ndbm(3) always appends this suffix to the + * file name to avoid overwriting the user's original database. + */ +#define DBM_SUFFIX ".db" + +#if defined(_XPG4_2) +typedef struct { + char *dptr; + size_t dsize; +} datum; +#else +typedef struct { + char *dptr; + int dsize; +} datum; +#endif + +/******************************************************* + * Hsearch historic interface. + *******************************************************/ +typedef enum { + FIND, ENTER +} ACTION; + +typedef struct entry { + char *key; + char *data; +} ENTRY; + +#endif /* DB_DBM_HSEARCH */ + +/* + * XXX + * MacOS: Reset Metrowerks C enum sizes. + */ +#ifdef __MWERKS__ +#pragma enumsalwaysint reset +#endif + +#if defined(__cplusplus) +} +#endif diff --git a/db/include/db_185.in b/db/include/db_185.in new file mode 100644 index 000000000..2aabce823 --- /dev/null +++ b/db/include/db_185.in @@ -0,0 +1,165 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1996-2001 + * Sleepycat Software. All rights reserved. + */ +/* + * 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. 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. + * + * Id: db_185.in,v 11.6 2001/04/10 20:44:10 bostic Exp + */ + +#ifndef _DB_185_H_ +#define _DB_185_H_ + +#include <sys/types.h> + +#include <limits.h> + +/* + * XXX + * Handle function prototypes and the keyword "const". This steps on name + * space that DB doesn't control, but all of the other solutions are worse. + */ +#undef __P +#if defined(__STDC__) || defined(__cplusplus) +#define __P(protos) protos /* ANSI C prototypes */ +#else +#define const +#define __P(protos) () /* K&R C preprocessor */ +#endif + +#define RET_ERROR -1 /* Return values. */ +#define RET_SUCCESS 0 +#define RET_SPECIAL 1 + +#ifndef __BIT_TYPES_DEFINED__ +#define __BIT_TYPES_DEFINED__ +@u_int8_decl@ +@int16_decl@ +@u_int16_decl@ +@int32_decl@ +@u_int32_decl@ +#endif + +/* + * XXX + * SGI/IRIX already has a pgno_t. + */ +#ifdef sgi +#define pgno_t db_pgno_t +#endif + +#define MAX_PAGE_NUMBER 0xffffffff /* >= # of pages in a file */ +typedef u_int32_t 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; + +/* 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; + +/* 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_int32_t flags; + u_int32_t cachesize; /* bytes to cache */ + u_int32_t maxkeypage; /* maximum keys per page */ + u_int32_t minkeypage; /* minimum keys per page */ + u_int32_t 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 2 + +/* Structure used to pass parameters to the hashing routines. */ +typedef struct { + u_int32_t bsize; /* bucket size */ + u_int32_t ffactor; /* fill factor */ + u_int32_t nelem; /* number of elements */ + u_int32_t 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_int32_t flags; + u_int32_t cachesize; /* bytes to cache */ + u_int32_t 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; + diff --git a/db/include/db_int.in b/db/include/db_int.in new file mode 100644 index 000000000..b556d6a0e --- /dev/null +++ b/db/include/db_int.in @@ -0,0 +1,442 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1996-2001 + * Sleepycat Software. All rights reserved. + * + * Id: db_int.in,v 11.54 2001/04/27 15:49:47 bostic Exp + */ + +#ifndef _DB_INTERNAL_H_ +#define _DB_INTERNAL_H_ + +/******************************************************* + * General includes. + *******************************************************/ +#include "db.h" + +#ifndef NO_SYSTEM_INCLUDES +#if defined(__STDC__) || defined(__cplusplus) +#include <stdarg.h> +#else +#include <varargs.h> +#endif +#include <errno.h> +#endif + +#include "queue.h" +#include "shqueue.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/******************************************************* + * General purpose constants and macros. + *******************************************************/ +#define UINT16_T_MAX 0xffff /* Maximum 16 bit unsigned. */ +#define UINT32_T_MAX 0xffffffff /* Maximum 32 bit unsigned. */ + +#define MEGABYTE 1048576 +#define GIGABYTE 1073741824 + +#define MS_PER_SEC 1000 /* Milliseconds in a second. */ +#define USEC_PER_MS 1000 /* Microseconds in a millisecond. */ + +#define DB_MIN_PGSIZE 0x000200 /* Minimum page size (512). */ +#define DB_MAX_PGSIZE 0x010000 /* Maximum page size (65536). */ + +#define RECNO_OOB 0 /* Illegal record number. */ + +/* + * If we are unable to determine the underlying filesystem block size, use + * 8K on the grounds that most OS's use less than 8K for a VM page size. + */ +#define DB_DEF_IOSIZE (8 * 1024) + +/* + * Aligning items to particular sizes or in pages or memory. + * + * db_align_t -- + * Largest integral type, used to align structures in memory. We don't store + * floating point types in structures, so integral types should be sufficient + * (and we don't have to worry about systems that store floats in other than + * power-of-2 numbers of bytes). Additionally this fixes compiler that rewrite + * structure assignments and ANSI C memcpy calls to be in-line instructions + * that happen to require alignment. Note: this alignment isn't sufficient for + * mutexes, which depend on things like cache line alignment. Mutex alignment + * is handled separately, in mutex.h. + * + * db_alignp_t -- + * Integral type that's the same size as a pointer. There are places where + * DB modifies pointers by discarding the bottom bits to guarantee alignment. + * We can't use db_align_t, it may be larger than the pointer, and compilers + * get upset about that. So far we haven't run on any machine where there + * isn't an integral type the same size as a pointer -- here's hoping. + */ +@db_align_t_decl@ +@db_alignp_t_decl@ + +/* Align an integer to a specific boundary. */ +#undef ALIGN +#define ALIGN(value, bound) \ + (((value) + (bound) - 1) & ~(((u_int)bound) - 1)) + +/* Align a pointer to a specific boundary. */ +#undef ALIGNP +#define ALIGNP(value, bound) ALIGN((db_alignp_t)value, bound) + +/* + * There are several on-page structures that are declared to have a number of + * fields followed by a variable length array of items. The structure size + * without including the variable length array or the address of the first of + * those elements can be found using SSZ. + * + * This macro can also be used to find the offset of a structure element in a + * structure. This is used in various places to copy structure elements from + * unaligned memory references, e.g., pointers into a packed page. + * + * There are two versions because compilers object if you take the address of + * an array. + */ +#undef SSZ +#define SSZ(name, field) ((int)&(((name *)0)->field)) + +#undef SSZA +#define SSZA(name, field) ((int)&(((name *)0)->field[0])) + +/* + * Print an address as a u_long (a u_long is the largest type we can print + * portably). Most 64-bit systems have made longs 64-bits, so this should + * work. + */ +#define P_TO_ULONG(p) ((u_long)(db_alignp_t)(p)) + +/* Structure used to print flag values. */ +typedef struct __fn { + u_int32_t mask; /* Flag value. */ + const char *name; /* Flag name. */ +} FN; + +/* Set, clear and test flags. */ +#define FLD_CLR(fld, f) (fld) &= ~(f) +#define FLD_ISSET(fld, f) ((fld) & (f)) +#define FLD_SET(fld, f) (fld) |= (f) +#define F_CLR(p, f) (p)->flags &= ~(f) +#define F_ISSET(p, f) ((p)->flags & (f)) +#define F_SET(p, f) (p)->flags |= (f) +#define LF_CLR(f) (flags &= ~(f)) +#define LF_ISSET(f) (flags & (f)) +#define LF_SET(f) (flags |= (f)) + +/* Display separator string. */ +#undef DB_LINE +#define DB_LINE "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + +/* Unused, or not-used-yet variable. "Shut that bloody compiler up!" */ +#define COMPQUIET(n, v) (n) = (v) + +/******************************************************* + * Files. + *******************************************************/ + /* + * We use 1024 as the maximum path length. It's too hard to figure out what + * the real path length is, as it was traditionally stored in <sys/param.h>, + * and that file isn't always available. + */ +#undef MAXPATHLEN +#define MAXPATHLEN 1024 + +#define PATH_DOT "." /* Current working directory. */ +#define PATH_SEPARATOR "/" /* Path separator character. */ + +/* + * Flags understood by __os_open. + */ +#define DB_OSO_CREATE 0x001 /* POSIX: O_CREAT */ +#define DB_OSO_EXCL 0x002 /* POSIX: O_EXCL */ +#define DB_OSO_LOG 0x004 /* Opening a log file. */ +#define DB_OSO_RDONLY 0x008 /* POSIX: O_RDONLY */ +#define DB_OSO_REGION 0x010 /* Opening a region file. */ +#define DB_OSO_SEQ 0x020 /* Expected sequential access. */ +#define DB_OSO_TEMP 0x040 /* Remove after last close. */ +#define DB_OSO_TRUNC 0x080 /* POSIX: O_TRUNC */ + +/* + * Seek options understood by __os_seek. + */ +typedef enum { + DB_OS_SEEK_CUR, /* POSIX: SEEK_CUR */ + DB_OS_SEEK_END, /* POSIX: SEEK_END */ + DB_OS_SEEK_SET /* POSIX: SEEK_SET */ +} DB_OS_SEEK; + +/******************************************************* + * Environment. + *******************************************************/ +/* Type passed to __db_appname(). */ +typedef enum { + DB_APP_NONE=0, /* No type (region). */ + DB_APP_DATA, /* Data file. */ + DB_APP_LOG, /* Log file. */ + DB_APP_TMP /* Temporary file. */ +} APPNAME; + +/* + * CDB_LOCKING CDB product locking. + * LOCKING_ON Locking has been configured. + * LOGGING_ON Logging has been configured. + * MPOOL_ON Memory pool has been configured. + * TXN_ON Transactions have been configured. + */ +#define CDB_LOCKING(dbenv) F_ISSET(dbenv, DB_ENV_CDB) +#define LOCKING_ON(dbenv) ((dbenv)->lk_handle != NULL) +#define LOGGING_ON(dbenv) ((dbenv)->lg_handle != NULL) +#define MPOOL_ON(dbenv) ((dbenv)->mp_handle != NULL) +#define TXN_ON(dbenv) ((dbenv)->tx_handle != NULL) + +/* + * STD_LOCKING Standard locking, that is, locking was configured and CDB + * was not. We do not do locking in off-page duplicate trees, + * so we check for that in the cursor first. + */ +#define STD_LOCKING(dbc) \ + (!F_ISSET(dbc, DBC_OPD) && \ + !CDB_LOCKING((dbc)->dbp->dbenv) && LOCKING_ON((dbc)->dbp->dbenv)) + +/* + * IS_RECOVERING The system is running recovery. + */ +#define IS_RECOVERING(dbenv) \ + (LOGGING_ON(dbenv) && \ + F_ISSET((DB_LOG *)(dbenv)->lg_handle, DBLOG_RECOVER)) + +/* Most initialization methods cannot be called after open is called. */ +#define ENV_ILLEGAL_AFTER_OPEN(dbenv, name) \ + if (F_ISSET((dbenv), DB_ENV_OPEN_CALLED)) \ + return (__db_mi_open(dbenv, name, 1)); + +/* We're not actually user hostile, honest. */ +#define ENV_REQUIRES_CONFIG(dbenv, handle, i, flags) \ + if (handle == NULL) \ + return (__db_env_config(dbenv, i, flags)); + +/******************************************************* + * Database Access Methods. + *******************************************************/ +/* + * DB_IS_THREADED -- + * The database handle is free-threaded (was opened with DB_THREAD). + */ +#define DB_IS_THREADED(dbp) \ + ((dbp)->mutexp != NULL) + +/* Initialization methods are often illegal before/after open is called. */ +#define DB_ILLEGAL_AFTER_OPEN(dbp, name) \ + if (F_ISSET((dbp), DB_OPEN_CALLED)) \ + return (__db_mi_open(dbp->dbenv, name, 1)); +#define DB_ILLEGAL_BEFORE_OPEN(dbp, name) \ + if (!F_ISSET((dbp), DB_OPEN_CALLED)) \ + return (__db_mi_open(dbp->dbenv, name, 0)); +/* Some initialization methods are illegal if environment isn't local. */ +#define DB_ILLEGAL_IN_ENV(dbp, name) \ + if (!F_ISSET(dbp->dbenv, DB_ENV_DBLOCAL)) \ + return (__db_mi_env(dbp->dbenv, name)); +#define DB_ILLEGAL_METHOD(dbp, flags) { \ + int __ret; \ + if ((__ret = __dbh_am_chk(dbp, flags)) != 0) \ + return (__ret); \ +} + +/* + * Common DBC->internal fields. Each access method adds additional fields + * to this list, but the initial fields are common. + */ +#define __DBC_INTERNAL \ + DBC *opd; /* Off-page duplicate cursor. */\ + \ + void *page; /* Referenced page. */ \ + db_pgno_t root; /* Tree root. */ \ + db_pgno_t pgno; /* Referenced page number. */ \ + db_indx_t indx; /* Referenced key item index. */\ + \ + DB_LOCK lock; /* Cursor lock. */ \ + db_lockmode_t lock_mode; /* Lock mode. */ + +struct __dbc_internal { + __DBC_INTERNAL +}; + +/* + * Access-method-common macro for determining whether a cursor + * has been initialized. + */ +#define IS_INITIALIZED(dbc) ((dbc)->internal->pgno != PGNO_INVALID) + +/* Free the callback-allocated buffer, if necessary, hanging off of a DBT. */ +#define FREE_IF_NEEDED(sdbp, dbt) \ + if (F_ISSET((dbt), DB_DBT_APPMALLOC)) { \ + __os_ufree((sdbp)->dbenv, (dbt)->data, 0); \ + F_CLR((dbt), DB_DBT_APPMALLOC); \ + } + +/* + * Use memory belonging to object "owner" to return the results of + * any no-DBT-flag get ops on cursor "dbc". + */ +#define SET_RET_MEM(dbc, owner) \ + do { \ + (dbc)->rskey = &(owner)->my_rskey; \ + (dbc)->rkey = &(owner)->my_rkey; \ + (dbc)->rdata = &(owner)->my_rdata; \ + } while (0) + +/* Use the return-data memory src is currently set to use in dest as well. */ +#define COPY_RET_MEM(src, dest) \ + do { \ + (dest)->rskey = (src)->rskey; \ + (dest)->rkey = (src)->rkey; \ + (dest)->rdata = (src)->rdata; \ + } while (0) + +/* Reset the returned-memory pointers to their defaults. */ +#define RESET_RET_MEM(dbc) \ + do { \ + (dbc)->rskey = &(dbc)->my_rskey; \ + (dbc)->rkey = &(dbc)->my_rkey; \ + (dbc)->rdata = &(dbc)->my_rdata; \ + } while (0) + +/******************************************************* + * Mpool. + *******************************************************/ +/* + * File types for DB access methods. Negative numbers are reserved to DB. + */ +#define DB_FTYPE_SET -1 /* Call pgin/pgout functions. */ +#define DB_FTYPE_NOTSET 0 /* Don't call... */ + +/* Structure used as the DB pgin/pgout pgcookie. */ +typedef struct __dbpginfo { + size_t db_pagesize; /* Underlying page size. */ + int needswap; /* If swapping required. */ +} DB_PGINFO; + +/******************************************************* + * Log. + *******************************************************/ +/* Initialize an LSN to 'zero'. */ +#define ZERO_LSN(LSN) do { \ + (LSN).file = 0; \ + (LSN).offset = 0; \ +} while (0) + +#define MAX_LSN(LSN) do { \ + (LSN).file = UINT32_T_MAX; \ + (LSN).offset = UINT32_T_MAX; \ +} while (0) + +/* If logging is turned off, smash the lsn. */ +#define LSN_NOT_LOGGED(LSN) do { \ + (LSN).file = 0; \ + (LSN).offset = 1; \ +} while (0) + +/* Return 1 if LSN is a 'zero' lsn, otherwise return 0. */ +#define IS_ZERO_LSN(LSN) ((LSN).file == 0) +#define IS_MAX_LSN(LSN) \ + ((LSN).file == UINT32_T_MAX && (LSN).file == UINT32_T_MAX) + +/* Test if we need to log a change. */ +#define DB_LOGGING(dbc) \ + (LOGGING_ON((dbc)->dbp->dbenv) && !F_ISSET(dbc, DBC_RECOVER)) + +/******************************************************* + * Txn. + *******************************************************/ +#define DB_NONBLOCK(C) ((C)->txn != NULL && F_ISSET((C)->txn, TXN_NOWAIT)) +#define IS_SUBTRANSACTION(txn) \ + ((txn) != NULL && (txn)->parent != NULL) + +/******************************************************* + * Global variables. + *******************************************************/ +#ifdef HAVE_VXWORKS +#include "semLib.h" +#endif + +/* + * DB global variables. Done in a single structure to minimize the name-space + * pollution. + */ +typedef struct __db_globals { + u_int32_t db_pageyield; /* db_set_pageyield */ + u_int32_t db_panic; /* db_set_panic */ + u_int32_t db_region_init; /* db_set_region_init */ + u_int32_t db_tas_spins; /* db_set_tas_spins */ +#ifdef HAVE_VXWORKS + u_int32_t db_global_init; /* VxWorks: inited */ + SEM_ID db_global_lock; /* VxWorks: global semaphore */ +#endif + /* XA: list of opened environments. */ + TAILQ_HEAD(__db_envq, __db_env) db_envq; +} DB_GLOBALS; + +#ifdef DB_INITIALIZE_DB_GLOBALS +DB_GLOBALS __db_global_values = { + 0, /* db_set_pageyield */ + 1, /* db_set_panic */ + 0, /* db_set_region_init */ + 0, /* db_set_tas_spins */ +#ifdef HAVE_VXWORKS + 0, /* db_global_init */ + NULL, /* db_global_lock */ +#endif + /* XA environment queue */ + {NULL, &__db_global_values.db_envq.tqh_first} +}; +#else +extern DB_GLOBALS __db_global_values; +#endif +#define DB_GLOBAL(v) __db_global_values.v + +/* Forward structure declarations. */ +struct __db_reginfo_t; typedef struct __db_reginfo_t REGINFO; +struct __mutex_t; typedef struct __mutex_t MUTEX; +struct __vrfy_childinfo; typedef struct __vrfy_childinfo VRFY_CHILDINFO; +struct __vrfy_dbinfo; typedef struct __vrfy_dbinfo VRFY_DBINFO; +struct __vrfy_pageinfo; typedef struct __vrfy_pageinfo VRFY_PAGEINFO; +struct __db_txnlist; typedef struct __db_txnlist DB_TXNLIST; +struct __db_txnhead; typedef struct __db_txnhead DB_TXNHEAD; +typedef enum { + TXNLIST_DELETE, + TXNLIST_LSN, + TXNLIST_TXNID, + TXNLIST_PGNO +} db_txnlist_type; + +/* + * Currently, region offsets are limited to 32-bits. I expect that's going + * to have to be fixed in the not-too-distant future, since we won't want to + * split 100Gb memory pools into that many different regions. It's typedef'd + * so it won't be too painful to upgrade. + */ +typedef u_int32_t roff_t; + +#if defined(__cplusplus) +} +#endif + +/******************************************************* + * More general includes. + *******************************************************/ +#include "debug.h" +#include "mutex.h" +#include "region.h" +#include "mutex_ext.h" +#include "env_ext.h" +#include "os.h" +#include "os_ext.h" +#include "common_ext.h" + +#endif /* !_DB_INTERNAL_H_ */ diff --git a/db/include_auto/btree_auto.h b/db/include_auto/btree_auto.h new file mode 100644 index 000000000..6816cc03f --- /dev/null +++ b/db/include_auto/btree_auto.h @@ -0,0 +1,209 @@ +/* Do not edit: automatically built by gen_rec.awk. */ + +#ifndef bam_AUTO_H +#define bam_AUTO_H +#define DB_bam_pg_alloc 51 +typedef struct _bam_pg_alloc_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DB_LSN meta_lsn; + DB_LSN page_lsn; + db_pgno_t pgno; + u_int32_t ptype; + db_pgno_t next; +} __bam_pg_alloc_args; + +#define DB_bam_pg_alloc1 60 +typedef struct _bam_pg_alloc1_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DB_LSN meta_lsn; + DB_LSN alloc_lsn; + DB_LSN page_lsn; + db_pgno_t pgno; + u_int32_t ptype; + db_pgno_t next; +} __bam_pg_alloc1_args; + +#define DB_bam_pg_free 52 +typedef struct _bam_pg_free_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN meta_lsn; + DBT header; + db_pgno_t next; +} __bam_pg_free_args; + +#define DB_bam_pg_free1 61 +typedef struct _bam_pg_free1_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN meta_lsn; + DB_LSN alloc_lsn; + DBT header; + db_pgno_t next; +} __bam_pg_free1_args; + +#define DB_bam_split1 53 +typedef struct _bam_split1_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t left; + DB_LSN llsn; + db_pgno_t right; + DB_LSN rlsn; + u_int32_t indx; + db_pgno_t npgno; + DB_LSN nlsn; + DBT pg; +} __bam_split1_args; + +#define DB_bam_split 62 +typedef struct _bam_split_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t left; + DB_LSN llsn; + db_pgno_t right; + DB_LSN rlsn; + u_int32_t indx; + db_pgno_t npgno; + DB_LSN nlsn; + db_pgno_t root_pgno; + DBT pg; + u_int32_t opflags; +} __bam_split_args; + +#define DB_bam_rsplit1 54 +typedef struct _bam_rsplit1_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DBT pgdbt; + db_pgno_t nrec; + DBT rootent; + DB_LSN rootlsn; +} __bam_rsplit1_args; + +#define DB_bam_rsplit 63 +typedef struct _bam_rsplit_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DBT pgdbt; + db_pgno_t root_pgno; + db_pgno_t nrec; + DBT rootent; + DB_LSN rootlsn; +} __bam_rsplit_args; + +#define DB_bam_adj 55 +typedef struct _bam_adj_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN lsn; + u_int32_t indx; + u_int32_t indx_copy; + u_int32_t is_insert; +} __bam_adj_args; + +#define DB_bam_cadjust 56 +typedef struct _bam_cadjust_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN lsn; + u_int32_t indx; + int32_t adjust; + u_int32_t opflags; +} __bam_cadjust_args; + +#define DB_bam_cdel 57 +typedef struct _bam_cdel_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN lsn; + u_int32_t indx; +} __bam_cdel_args; + +#define DB_bam_repl 58 +typedef struct _bam_repl_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN lsn; + u_int32_t indx; + u_int32_t isdeleted; + DBT orig; + DBT repl; + u_int32_t prefix; + u_int32_t suffix; +} __bam_repl_args; + +#define DB_bam_root 59 +typedef struct _bam_root_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t meta_pgno; + db_pgno_t root_pgno; + DB_LSN meta_lsn; +} __bam_root_args; + +#define DB_bam_curadj 64 +typedef struct _bam_curadj_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_ca_mode mode; + db_pgno_t from_pgno; + db_pgno_t to_pgno; + db_pgno_t left_pgno; + u_int32_t first_indx; + u_int32_t from_indx; + u_int32_t to_indx; +} __bam_curadj_args; + +#define DB_bam_rcuradj 65 +typedef struct _bam_rcuradj_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + ca_recno_arg mode; + db_pgno_t root; + db_recno_t recno; + u_int32_t order; +} __bam_rcuradj_args; + +#endif diff --git a/db/include_auto/btree_ext.h b/db/include_auto/btree_ext.h new file mode 100644 index 000000000..4be50d495 --- /dev/null +++ b/db/include_auto/btree_ext.h @@ -0,0 +1,133 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _btree_ext_h_ +#define _btree_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __bam_cmp __P((DB *, const DBT *, PAGE *, u_int32_t, int (*)(DB *, const DBT *, const DBT *), int *)); +int __bam_defcmp __P((DB *, const DBT *, const DBT *)); +size_t __bam_defpfx __P((DB *, const DBT *, const DBT *)); +int __bam_pgin __P((DB_ENV *, db_pgno_t, void *, DBT *)); +int __bam_pgout __P((DB_ENV *, db_pgno_t, void *, DBT *)); +int __bam_mswap __P((PAGE *)); +void __bam_cprint __P((DBC *)); +int __bam_ca_delete __P((DB *, db_pgno_t, u_int32_t, int)); +int __ram_ca_delete __P((DB *, db_pgno_t)); +int __bam_ca_di __P((DBC *, db_pgno_t, u_int32_t, int)); +int __bam_ca_dup __P((DBC *, u_int32_t, db_pgno_t, u_int32_t, db_pgno_t, u_int32_t)); +int __bam_ca_undodup __P((DB *, u_int32_t, db_pgno_t, u_int32_t, u_int32_t)); +int __bam_ca_rsplit __P((DBC *, db_pgno_t, db_pgno_t)); +int __bam_ca_split __P((DBC *, db_pgno_t, db_pgno_t, db_pgno_t, u_int32_t, int)); +void __bam_ca_undosplit __P((DB *, db_pgno_t, db_pgno_t, db_pgno_t, u_int32_t)); +int __bam_c_init __P((DBC *, DBTYPE)); +int __bam_c_refresh __P((DBC *)); +int __bam_c_count __P((DBC *, db_recno_t *)); +int __bam_c_dup __P((DBC *, DBC *)); +int __bam_bulk_overflow __P((DBC *, u_int32_t, db_pgno_t, u_int8_t *)); +int __bam_bulk_duplicates __P((DBC *, db_pgno_t, u_int8_t *, int32_t *, int32_t **, u_int8_t **, u_int32_t *, int)); +int __bam_c_rget __P((DBC *, DBT *)); +int __bam_ditem __P((DBC *, PAGE *, u_int32_t)); +int __bam_adjindx __P((DBC *, PAGE *, u_int32_t, u_int32_t, int)); +int __bam_dpages __P((DBC *, EPG *)); +int __bam_db_create __P((DB *)); +int __bam_db_close __P((DB *)); +int __bam_set_flags __P((DB *, u_int32_t *flagsp)); +int __ram_set_flags __P((DB *, u_int32_t *flagsp)); +int __bam_open __P((DB *, const char *, db_pgno_t, u_int32_t)); +int __bam_metachk __P((DB *, const char *, BTMETA *)); +int __bam_read_root __P((DB *, const char *, db_pgno_t, u_int32_t)); +int __bam_iitem __P((DBC *, DBT *, DBT *, u_int32_t, u_int32_t)); +int __bam_ritem __P((DBC *, PAGE *, u_int32_t, DBT *)); +int __bam_pg_alloc_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_pg_free_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_split_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_rsplit_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_adj_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_cadjust_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_cdel_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_repl_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_root_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_curadj_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_rcuradj_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_reclaim __P((DB *, DB_TXN *)); +int __bam_truncate __P((DB *, DB_TXN *, u_int32_t *)); +int __ram_open __P((DB *, const char *, db_pgno_t, u_int32_t)); +int __ram_append __P((DBC *, DBT *, DBT *)); +int __ram_c_del __P((DBC *)); +int __ram_c_get __P((DBC *, DBT *, DBT *, u_int32_t, db_pgno_t *)); +int __ram_c_put __P((DBC *, DBT *, DBT *, u_int32_t, db_pgno_t *)); +int __ram_ca __P((DBC *, ca_recno_arg)); +int __ram_getno __P((DBC *, const DBT *, db_recno_t *, int)); +int __ram_writeback __P((DB *)); +int __bam_rsearch __P((DBC *, db_recno_t *, u_int32_t, int, int *)); +int __bam_adjust __P((DBC *, int32_t)); +int __bam_nrecs __P((DBC *, db_recno_t *)); +db_recno_t __bam_total __P((PAGE *)); +int __bam_search __P((DBC *, db_pgno_t, const DBT *, u_int32_t, int, db_recno_t *, int *)); +int __bam_stkrel __P((DBC *, u_int32_t)); +int __bam_stkgrow __P((DB_ENV *, BTREE_CURSOR *)); +int __bam_split __P((DBC *, void *, db_pgno_t *)); +int __bam_copy __P((DB *, PAGE *, PAGE *, u_int32_t, u_int32_t)); +int __bam_stat __P((DB *, void *, u_int32_t)); +int __bam_traverse __P((DBC *, db_lockmode_t, db_pgno_t, int (*)(DB *, PAGE *, void *, int *), void *)); +int __bam_stat_callback __P((DB *, PAGE *, void *, int *)); +int __bam_key_range __P((DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t)); +int __bam_30_btreemeta __P((DB *, char *, u_int8_t *)); +int __bam_31_btreemeta __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); +int __bam_31_lbtree __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); +int __bam_vrfy_meta __P((DB *, VRFY_DBINFO *, BTMETA *, db_pgno_t, u_int32_t)); +int __ram_vrfy_leaf __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +int __bam_vrfy __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +int __bam_vrfy_itemorder __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t, int, int, u_int32_t)); +int __bam_vrfy_structure __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t)); +int __bam_vrfy_subtree __P((DB *, VRFY_DBINFO *, db_pgno_t, void *, void *, u_int32_t, u_int32_t *, u_int32_t *, u_int32_t *)); +int __bam_salvage __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t, PAGE *, void *, int (*)(void *, const void *), DBT *, u_int32_t)); +int __bam_salvage_walkdupint __P((DB *, VRFY_DBINFO *, PAGE *, DBT *, void *, int (*)(void *, const void *), u_int32_t)); +int __bam_meta2pgset __P((DB *, VRFY_DBINFO *, BTMETA *, u_int32_t, DB *)); +int __bam_pg_alloc_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, DB_LSN *, db_pgno_t, u_int32_t, db_pgno_t)); +int __bam_pg_alloc_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_pg_alloc_read __P((DB_ENV *, void *, __bam_pg_alloc_args **)); +int __bam_pg_alloc1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_pg_alloc1_read __P((DB_ENV *, void *, __bam_pg_alloc1_args **)); +int __bam_pg_free_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, const DBT *, db_pgno_t)); +int __bam_pg_free_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_pg_free_read __P((DB_ENV *, void *, __bam_pg_free_args **)); +int __bam_pg_free1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_pg_free1_read __P((DB_ENV *, void *, __bam_pg_free1_args **)); +int __bam_split1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_split1_read __P((DB_ENV *, void *, __bam_split1_args **)); +int __bam_split_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, u_int32_t, db_pgno_t, DB_LSN *, db_pgno_t, const DBT *, u_int32_t)); +int __bam_split_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_split_read __P((DB_ENV *, void *, __bam_split_args **)); +int __bam_rsplit1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_rsplit1_read __P((DB_ENV *, void *, __bam_rsplit1_args **)); +int __bam_rsplit_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, const DBT *, db_pgno_t, db_pgno_t, const DBT *, DB_LSN *)); +int __bam_rsplit_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_rsplit_read __P((DB_ENV *, void *, __bam_rsplit_args **)); +int __bam_adj_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, u_int32_t, u_int32_t, u_int32_t)); +int __bam_adj_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_adj_read __P((DB_ENV *, void *, __bam_adj_args **)); +int __bam_cadjust_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, u_int32_t, int32_t, u_int32_t)); +int __bam_cadjust_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_cadjust_read __P((DB_ENV *, void *, __bam_cadjust_args **)); +int __bam_cdel_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, u_int32_t)); +int __bam_cdel_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_cdel_read __P((DB_ENV *, void *, __bam_cdel_args **)); +int __bam_repl_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, u_int32_t, u_int32_t, const DBT *, const DBT *, u_int32_t, u_int32_t)); +int __bam_repl_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_repl_read __P((DB_ENV *, void *, __bam_repl_args **)); +int __bam_root_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, db_pgno_t, DB_LSN *)); +int __bam_root_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_root_read __P((DB_ENV *, void *, __bam_root_args **)); +int __bam_curadj_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_ca_mode, db_pgno_t, db_pgno_t, db_pgno_t, u_int32_t, u_int32_t, u_int32_t)); +int __bam_curadj_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_curadj_read __P((DB_ENV *, void *, __bam_curadj_args **)); +int __bam_rcuradj_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, ca_recno_arg, db_pgno_t, db_recno_t, u_int32_t)); +int __bam_rcuradj_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __bam_rcuradj_read __P((DB_ENV *, void *, __bam_rcuradj_args **)); +int __bam_init_print __P((DB_ENV *)); +int __bam_init_recover __P((DB_ENV *)); +#if defined(__cplusplus) +} +#endif +#endif /* _btree_ext_h_ */ diff --git a/db/include_auto/btree_ext.in b/db/include_auto/btree_ext.in new file mode 100644 index 000000000..ba19afa03 --- /dev/null +++ b/db/include_auto/btree_ext.in @@ -0,0 +1,256 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _btree_ext_h_ +#define _btree_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __bam_cmp __bam_cmp@DB_VERSION_UNIQUE_NAME@ +int __bam_cmp __P((DB *, const DBT *, PAGE *, u_int32_t, int (*)(DB *, const DBT *, const DBT *), int *)); +#define __bam_defcmp __bam_defcmp@DB_VERSION_UNIQUE_NAME@ +int __bam_defcmp __P((DB *, const DBT *, const DBT *)); +#define __bam_defpfx __bam_defpfx@DB_VERSION_UNIQUE_NAME@ +size_t __bam_defpfx __P((DB *, const DBT *, const DBT *)); +#define __bam_pgin __bam_pgin@DB_VERSION_UNIQUE_NAME@ +int __bam_pgin __P((DB_ENV *, db_pgno_t, void *, DBT *)); +#define __bam_pgout __bam_pgout@DB_VERSION_UNIQUE_NAME@ +int __bam_pgout __P((DB_ENV *, db_pgno_t, void *, DBT *)); +#define __bam_mswap __bam_mswap@DB_VERSION_UNIQUE_NAME@ +int __bam_mswap __P((PAGE *)); +#define __bam_cprint __bam_cprint@DB_VERSION_UNIQUE_NAME@ +void __bam_cprint __P((DBC *)); +#define __bam_ca_delete __bam_ca_delete@DB_VERSION_UNIQUE_NAME@ +int __bam_ca_delete __P((DB *, db_pgno_t, u_int32_t, int)); +#define __ram_ca_delete __ram_ca_delete@DB_VERSION_UNIQUE_NAME@ +int __ram_ca_delete __P((DB *, db_pgno_t)); +#define __bam_ca_di __bam_ca_di@DB_VERSION_UNIQUE_NAME@ +int __bam_ca_di __P((DBC *, db_pgno_t, u_int32_t, int)); +#define __bam_ca_dup __bam_ca_dup@DB_VERSION_UNIQUE_NAME@ +int __bam_ca_dup __P((DBC *, u_int32_t, db_pgno_t, u_int32_t, db_pgno_t, u_int32_t)); +#define __bam_ca_undodup __bam_ca_undodup@DB_VERSION_UNIQUE_NAME@ +int __bam_ca_undodup __P((DB *, u_int32_t, db_pgno_t, u_int32_t, u_int32_t)); +#define __bam_ca_rsplit __bam_ca_rsplit@DB_VERSION_UNIQUE_NAME@ +int __bam_ca_rsplit __P((DBC *, db_pgno_t, db_pgno_t)); +#define __bam_ca_split __bam_ca_split@DB_VERSION_UNIQUE_NAME@ +int __bam_ca_split __P((DBC *, db_pgno_t, db_pgno_t, db_pgno_t, u_int32_t, int)); +#define __bam_ca_undosplit __bam_ca_undosplit@DB_VERSION_UNIQUE_NAME@ +void __bam_ca_undosplit __P((DB *, db_pgno_t, db_pgno_t, db_pgno_t, u_int32_t)); +#define __bam_c_init __bam_c_init@DB_VERSION_UNIQUE_NAME@ +int __bam_c_init __P((DBC *, DBTYPE)); +#define __bam_c_refresh __bam_c_refresh@DB_VERSION_UNIQUE_NAME@ +int __bam_c_refresh __P((DBC *)); +#define __bam_c_count __bam_c_count@DB_VERSION_UNIQUE_NAME@ +int __bam_c_count __P((DBC *, db_recno_t *)); +#define __bam_c_dup __bam_c_dup@DB_VERSION_UNIQUE_NAME@ +int __bam_c_dup __P((DBC *, DBC *)); +#define __bam_bulk_overflow __bam_bulk_overflow@DB_VERSION_UNIQUE_NAME@ +int __bam_bulk_overflow __P((DBC *, u_int32_t, db_pgno_t, u_int8_t *)); +#define __bam_bulk_duplicates __bam_bulk_duplicates@DB_VERSION_UNIQUE_NAME@ +int __bam_bulk_duplicates __P((DBC *, db_pgno_t, u_int8_t *, int32_t *, int32_t **, u_int8_t **, u_int32_t *, int)); +#define __bam_c_rget __bam_c_rget@DB_VERSION_UNIQUE_NAME@ +int __bam_c_rget __P((DBC *, DBT *)); +#define __bam_ditem __bam_ditem@DB_VERSION_UNIQUE_NAME@ +int __bam_ditem __P((DBC *, PAGE *, u_int32_t)); +#define __bam_adjindx __bam_adjindx@DB_VERSION_UNIQUE_NAME@ +int __bam_adjindx __P((DBC *, PAGE *, u_int32_t, u_int32_t, int)); +#define __bam_dpages __bam_dpages@DB_VERSION_UNIQUE_NAME@ +int __bam_dpages __P((DBC *, EPG *)); +#define __bam_db_create __bam_db_create@DB_VERSION_UNIQUE_NAME@ +int __bam_db_create __P((DB *)); +#define __bam_db_close __bam_db_close@DB_VERSION_UNIQUE_NAME@ +int __bam_db_close __P((DB *)); +#define __bam_set_flags __bam_set_flags@DB_VERSION_UNIQUE_NAME@ +int __bam_set_flags __P((DB *, u_int32_t *flagsp)); +#define __ram_set_flags __ram_set_flags@DB_VERSION_UNIQUE_NAME@ +int __ram_set_flags __P((DB *, u_int32_t *flagsp)); +#define __bam_open __bam_open@DB_VERSION_UNIQUE_NAME@ +int __bam_open __P((DB *, const char *, db_pgno_t, u_int32_t)); +#define __bam_metachk __bam_metachk@DB_VERSION_UNIQUE_NAME@ +int __bam_metachk __P((DB *, const char *, BTMETA *)); +#define __bam_read_root __bam_read_root@DB_VERSION_UNIQUE_NAME@ +int __bam_read_root __P((DB *, const char *, db_pgno_t, u_int32_t)); +#define __bam_iitem __bam_iitem@DB_VERSION_UNIQUE_NAME@ +int __bam_iitem __P((DBC *, DBT *, DBT *, u_int32_t, u_int32_t)); +#define __bam_ritem __bam_ritem@DB_VERSION_UNIQUE_NAME@ +int __bam_ritem __P((DBC *, PAGE *, u_int32_t, DBT *)); +#define __bam_pg_alloc_recover __bam_pg_alloc_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_alloc_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_pg_free_recover __bam_pg_free_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_free_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_split_recover __bam_split_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_split_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_rsplit_recover __bam_rsplit_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_rsplit_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_adj_recover __bam_adj_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_adj_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_cadjust_recover __bam_cadjust_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_cadjust_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_cdel_recover __bam_cdel_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_cdel_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_repl_recover __bam_repl_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_repl_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_root_recover __bam_root_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_root_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_curadj_recover __bam_curadj_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_curadj_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_rcuradj_recover __bam_rcuradj_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_rcuradj_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_reclaim __bam_reclaim@DB_VERSION_UNIQUE_NAME@ +int __bam_reclaim __P((DB *, DB_TXN *)); +#define __bam_truncate __bam_truncate@DB_VERSION_UNIQUE_NAME@ +int __bam_truncate __P((DB *, DB_TXN *, u_int32_t *)); +#define __ram_open __ram_open@DB_VERSION_UNIQUE_NAME@ +int __ram_open __P((DB *, const char *, db_pgno_t, u_int32_t)); +#define __ram_append __ram_append@DB_VERSION_UNIQUE_NAME@ +int __ram_append __P((DBC *, DBT *, DBT *)); +#define __ram_c_del __ram_c_del@DB_VERSION_UNIQUE_NAME@ +int __ram_c_del __P((DBC *)); +#define __ram_c_get __ram_c_get@DB_VERSION_UNIQUE_NAME@ +int __ram_c_get __P((DBC *, DBT *, DBT *, u_int32_t, db_pgno_t *)); +#define __ram_c_put __ram_c_put@DB_VERSION_UNIQUE_NAME@ +int __ram_c_put __P((DBC *, DBT *, DBT *, u_int32_t, db_pgno_t *)); +#define __ram_ca __ram_ca@DB_VERSION_UNIQUE_NAME@ +int __ram_ca __P((DBC *, ca_recno_arg)); +#define __ram_getno __ram_getno@DB_VERSION_UNIQUE_NAME@ +int __ram_getno __P((DBC *, const DBT *, db_recno_t *, int)); +#define __ram_writeback __ram_writeback@DB_VERSION_UNIQUE_NAME@ +int __ram_writeback __P((DB *)); +#define __bam_rsearch __bam_rsearch@DB_VERSION_UNIQUE_NAME@ +int __bam_rsearch __P((DBC *, db_recno_t *, u_int32_t, int, int *)); +#define __bam_adjust __bam_adjust@DB_VERSION_UNIQUE_NAME@ +int __bam_adjust __P((DBC *, int32_t)); +#define __bam_nrecs __bam_nrecs@DB_VERSION_UNIQUE_NAME@ +int __bam_nrecs __P((DBC *, db_recno_t *)); +#define __bam_total __bam_total@DB_VERSION_UNIQUE_NAME@ +db_recno_t __bam_total __P((PAGE *)); +#define __bam_search __bam_search@DB_VERSION_UNIQUE_NAME@ +int __bam_search __P((DBC *, db_pgno_t, const DBT *, u_int32_t, int, db_recno_t *, int *)); +#define __bam_stkrel __bam_stkrel@DB_VERSION_UNIQUE_NAME@ +int __bam_stkrel __P((DBC *, u_int32_t)); +#define __bam_stkgrow __bam_stkgrow@DB_VERSION_UNIQUE_NAME@ +int __bam_stkgrow __P((DB_ENV *, BTREE_CURSOR *)); +#define __bam_split __bam_split@DB_VERSION_UNIQUE_NAME@ +int __bam_split __P((DBC *, void *, db_pgno_t *)); +#define __bam_copy __bam_copy@DB_VERSION_UNIQUE_NAME@ +int __bam_copy __P((DB *, PAGE *, PAGE *, u_int32_t, u_int32_t)); +#define __bam_stat __bam_stat@DB_VERSION_UNIQUE_NAME@ +int __bam_stat __P((DB *, void *, u_int32_t)); +#define __bam_traverse __bam_traverse@DB_VERSION_UNIQUE_NAME@ +int __bam_traverse __P((DBC *, db_lockmode_t, db_pgno_t, int (*)(DB *, PAGE *, void *, int *), void *)); +#define __bam_stat_callback __bam_stat_callback@DB_VERSION_UNIQUE_NAME@ +int __bam_stat_callback __P((DB *, PAGE *, void *, int *)); +#define __bam_key_range __bam_key_range@DB_VERSION_UNIQUE_NAME@ +int __bam_key_range __P((DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t)); +#define __bam_30_btreemeta __bam_30_btreemeta@DB_VERSION_UNIQUE_NAME@ +int __bam_30_btreemeta __P((DB *, char *, u_int8_t *)); +#define __bam_31_btreemeta __bam_31_btreemeta@DB_VERSION_UNIQUE_NAME@ +int __bam_31_btreemeta __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); +#define __bam_31_lbtree __bam_31_lbtree@DB_VERSION_UNIQUE_NAME@ +int __bam_31_lbtree __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); +#define __bam_vrfy_meta __bam_vrfy_meta@DB_VERSION_UNIQUE_NAME@ +int __bam_vrfy_meta __P((DB *, VRFY_DBINFO *, BTMETA *, db_pgno_t, u_int32_t)); +#define __ram_vrfy_leaf __ram_vrfy_leaf@DB_VERSION_UNIQUE_NAME@ +int __ram_vrfy_leaf __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +#define __bam_vrfy __bam_vrfy@DB_VERSION_UNIQUE_NAME@ +int __bam_vrfy __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +#define __bam_vrfy_itemorder __bam_vrfy_itemorder@DB_VERSION_UNIQUE_NAME@ +int __bam_vrfy_itemorder __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t, int, int, u_int32_t)); +#define __bam_vrfy_structure __bam_vrfy_structure@DB_VERSION_UNIQUE_NAME@ +int __bam_vrfy_structure __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t)); +#define __bam_vrfy_subtree __bam_vrfy_subtree@DB_VERSION_UNIQUE_NAME@ +int __bam_vrfy_subtree __P((DB *, VRFY_DBINFO *, db_pgno_t, void *, void *, u_int32_t, u_int32_t *, u_int32_t *, u_int32_t *)); +#define __bam_salvage __bam_salvage@DB_VERSION_UNIQUE_NAME@ +int __bam_salvage __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t, PAGE *, void *, int (*)(void *, const void *), DBT *, u_int32_t)); +#define __bam_salvage_walkdupint __bam_salvage_walkdupint@DB_VERSION_UNIQUE_NAME@ +int __bam_salvage_walkdupint __P((DB *, VRFY_DBINFO *, PAGE *, DBT *, void *, int (*)(void *, const void *), u_int32_t)); +#define __bam_meta2pgset __bam_meta2pgset@DB_VERSION_UNIQUE_NAME@ +int __bam_meta2pgset __P((DB *, VRFY_DBINFO *, BTMETA *, u_int32_t, DB *)); +#define __bam_pg_alloc_log __bam_pg_alloc_log@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_alloc_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, DB_LSN *, db_pgno_t, u_int32_t, db_pgno_t)); +#define __bam_pg_alloc_print __bam_pg_alloc_print@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_alloc_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_pg_alloc_read __bam_pg_alloc_read@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_alloc_read __P((DB_ENV *, void *, __bam_pg_alloc_args **)); +#define __bam_pg_alloc1_print __bam_pg_alloc1_print@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_alloc1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_pg_alloc1_read __bam_pg_alloc1_read@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_alloc1_read __P((DB_ENV *, void *, __bam_pg_alloc1_args **)); +#define __bam_pg_free_log __bam_pg_free_log@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_free_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, const DBT *, db_pgno_t)); +#define __bam_pg_free_print __bam_pg_free_print@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_free_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_pg_free_read __bam_pg_free_read@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_free_read __P((DB_ENV *, void *, __bam_pg_free_args **)); +#define __bam_pg_free1_print __bam_pg_free1_print@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_free1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_pg_free1_read __bam_pg_free1_read@DB_VERSION_UNIQUE_NAME@ +int __bam_pg_free1_read __P((DB_ENV *, void *, __bam_pg_free1_args **)); +#define __bam_split1_print __bam_split1_print@DB_VERSION_UNIQUE_NAME@ +int __bam_split1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_split1_read __bam_split1_read@DB_VERSION_UNIQUE_NAME@ +int __bam_split1_read __P((DB_ENV *, void *, __bam_split1_args **)); +#define __bam_split_log __bam_split_log@DB_VERSION_UNIQUE_NAME@ +int __bam_split_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, u_int32_t, db_pgno_t, DB_LSN *, db_pgno_t, const DBT *, u_int32_t)); +#define __bam_split_print __bam_split_print@DB_VERSION_UNIQUE_NAME@ +int __bam_split_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_split_read __bam_split_read@DB_VERSION_UNIQUE_NAME@ +int __bam_split_read __P((DB_ENV *, void *, __bam_split_args **)); +#define __bam_rsplit1_print __bam_rsplit1_print@DB_VERSION_UNIQUE_NAME@ +int __bam_rsplit1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_rsplit1_read __bam_rsplit1_read@DB_VERSION_UNIQUE_NAME@ +int __bam_rsplit1_read __P((DB_ENV *, void *, __bam_rsplit1_args **)); +#define __bam_rsplit_log __bam_rsplit_log@DB_VERSION_UNIQUE_NAME@ +int __bam_rsplit_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, const DBT *, db_pgno_t, db_pgno_t, const DBT *, DB_LSN *)); +#define __bam_rsplit_print __bam_rsplit_print@DB_VERSION_UNIQUE_NAME@ +int __bam_rsplit_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_rsplit_read __bam_rsplit_read@DB_VERSION_UNIQUE_NAME@ +int __bam_rsplit_read __P((DB_ENV *, void *, __bam_rsplit_args **)); +#define __bam_adj_log __bam_adj_log@DB_VERSION_UNIQUE_NAME@ +int __bam_adj_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, u_int32_t, u_int32_t, u_int32_t)); +#define __bam_adj_print __bam_adj_print@DB_VERSION_UNIQUE_NAME@ +int __bam_adj_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_adj_read __bam_adj_read@DB_VERSION_UNIQUE_NAME@ +int __bam_adj_read __P((DB_ENV *, void *, __bam_adj_args **)); +#define __bam_cadjust_log __bam_cadjust_log@DB_VERSION_UNIQUE_NAME@ +int __bam_cadjust_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, u_int32_t, int32_t, u_int32_t)); +#define __bam_cadjust_print __bam_cadjust_print@DB_VERSION_UNIQUE_NAME@ +int __bam_cadjust_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_cadjust_read __bam_cadjust_read@DB_VERSION_UNIQUE_NAME@ +int __bam_cadjust_read __P((DB_ENV *, void *, __bam_cadjust_args **)); +#define __bam_cdel_log __bam_cdel_log@DB_VERSION_UNIQUE_NAME@ +int __bam_cdel_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, u_int32_t)); +#define __bam_cdel_print __bam_cdel_print@DB_VERSION_UNIQUE_NAME@ +int __bam_cdel_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_cdel_read __bam_cdel_read@DB_VERSION_UNIQUE_NAME@ +int __bam_cdel_read __P((DB_ENV *, void *, __bam_cdel_args **)); +#define __bam_repl_log __bam_repl_log@DB_VERSION_UNIQUE_NAME@ +int __bam_repl_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, u_int32_t, u_int32_t, const DBT *, const DBT *, u_int32_t, u_int32_t)); +#define __bam_repl_print __bam_repl_print@DB_VERSION_UNIQUE_NAME@ +int __bam_repl_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_repl_read __bam_repl_read@DB_VERSION_UNIQUE_NAME@ +int __bam_repl_read __P((DB_ENV *, void *, __bam_repl_args **)); +#define __bam_root_log __bam_root_log@DB_VERSION_UNIQUE_NAME@ +int __bam_root_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, db_pgno_t, DB_LSN *)); +#define __bam_root_print __bam_root_print@DB_VERSION_UNIQUE_NAME@ +int __bam_root_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_root_read __bam_root_read@DB_VERSION_UNIQUE_NAME@ +int __bam_root_read __P((DB_ENV *, void *, __bam_root_args **)); +#define __bam_curadj_log __bam_curadj_log@DB_VERSION_UNIQUE_NAME@ +int __bam_curadj_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_ca_mode, db_pgno_t, db_pgno_t, db_pgno_t, u_int32_t, u_int32_t, u_int32_t)); +#define __bam_curadj_print __bam_curadj_print@DB_VERSION_UNIQUE_NAME@ +int __bam_curadj_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_curadj_read __bam_curadj_read@DB_VERSION_UNIQUE_NAME@ +int __bam_curadj_read __P((DB_ENV *, void *, __bam_curadj_args **)); +#define __bam_rcuradj_log __bam_rcuradj_log@DB_VERSION_UNIQUE_NAME@ +int __bam_rcuradj_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, ca_recno_arg, db_pgno_t, db_recno_t, u_int32_t)); +#define __bam_rcuradj_print __bam_rcuradj_print@DB_VERSION_UNIQUE_NAME@ +int __bam_rcuradj_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __bam_rcuradj_read __bam_rcuradj_read@DB_VERSION_UNIQUE_NAME@ +int __bam_rcuradj_read __P((DB_ENV *, void *, __bam_rcuradj_args **)); +#define __bam_init_print __bam_init_print@DB_VERSION_UNIQUE_NAME@ +int __bam_init_print __P((DB_ENV *)); +#define __bam_init_recover __bam_init_recover@DB_VERSION_UNIQUE_NAME@ +int __bam_init_recover __P((DB_ENV *)); +#if defined(__cplusplus) +} +#endif +#endif /* _btree_ext_h_ */ diff --git a/db/include_auto/clib_ext.h b/db/include_auto/clib_ext.h new file mode 100644 index 000000000..1818ae49d --- /dev/null +++ b/db/include_auto/clib_ext.h @@ -0,0 +1,39 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _clib_ext_h_ +#define _clib_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#ifndef HAVE_GETCWD +char *getcwd __P((char *, size_t)); +#endif +#ifndef HAVE_GETOPT +int getopt __P((int, char * const *, const char *)); +#endif +#ifndef HAVE_MEMCMP +int memcmp __P((const void *, const void *, size_t)); +#endif +#ifndef HAVE_MEMCPY +void *memcpy __P((void *, const void *, size_t)); +#endif +#ifndef HAVE_MEMMOVE +void *memmove __P((void *, const void *, size_t)); +#endif +#ifndef HAVE_RAISE +int raise __P((int)); +#endif +#ifndef HAVE_SNPRINTF +int snprintf __P((char *, size_t, const char *, ...)); +#endif +#ifndef HAVE_STRCASECMP +int strcasecmp __P((const char *, const char *)); +#endif +#ifndef HAVE_STRERROR +char *strerror __P((int)); +#endif +#ifndef HAVE_VSNPRINTF +#endif +#if defined(__cplusplus) +} +#endif +#endif /* _clib_ext_h_ */ diff --git a/db/include_auto/clib_ext.in b/db/include_auto/clib_ext.in new file mode 100644 index 000000000..fbce4eda7 --- /dev/null +++ b/db/include_auto/clib_ext.in @@ -0,0 +1,48 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _clib_ext_h_ +#define _clib_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#ifndef HAVE_GETCWD +#define getcwd getcwd@DB_VERSION_UNIQUE_NAME@ +char *getcwd __P((char *, size_t)); +#endif +#ifndef HAVE_GETOPT +#define getopt getopt@DB_VERSION_UNIQUE_NAME@ +int getopt __P((int, char * const *, const char *)); +#endif +#ifndef HAVE_MEMCMP +#define memcmp memcmp@DB_VERSION_UNIQUE_NAME@ +int memcmp __P((const void *, const void *, size_t)); +#endif +#ifndef HAVE_MEMCPY +#define memcpy memcpy@DB_VERSION_UNIQUE_NAME@ +void *memcpy __P((void *, const void *, size_t)); +#endif +#ifndef HAVE_MEMMOVE +#define memmove memmove@DB_VERSION_UNIQUE_NAME@ +void *memmove __P((void *, const void *, size_t)); +#endif +#ifndef HAVE_RAISE +#define raise raise@DB_VERSION_UNIQUE_NAME@ +int raise __P((int)); +#endif +#ifndef HAVE_SNPRINTF +#define snprintf snprintf@DB_VERSION_UNIQUE_NAME@ +int snprintf __P((char *, size_t, const char *, ...)); +#endif +#ifndef HAVE_STRCASECMP +#define strcasecmp strcasecmp@DB_VERSION_UNIQUE_NAME@ +int strcasecmp __P((const char *, const char *)); +#endif +#ifndef HAVE_STRERROR +#define strerror strerror@DB_VERSION_UNIQUE_NAME@ +char *strerror __P((int)); +#endif +#ifndef HAVE_VSNPRINTF +#endif +#if defined(__cplusplus) +} +#endif +#endif /* _clib_ext_h_ */ diff --git a/db/include_auto/common_ext.h b/db/include_auto/common_ext.h new file mode 100644 index 000000000..cf6fe5b0b --- /dev/null +++ b/db/include_auto/common_ext.h @@ -0,0 +1,40 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _common_ext_h_ +#define _common_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __db_byteorder __P((DB_ENV *, int)); +int __db_fchk __P((DB_ENV *, const char *, u_int32_t, u_int32_t)); +int __db_fcchk __P((DB_ENV *, const char *, u_int32_t, u_int32_t, u_int32_t)); +int __db_ferr __P((const DB_ENV *, const char *, int)); +int __db_pgerr __P((DB *, db_pgno_t)); +int __db_pgfmt __P((DB *, db_pgno_t)); +int __db_eopnotsup __P((const DB_ENV *)); +#ifdef DIAGNOSTIC +void __db_assert __P((const char *, const char *, int)); +#endif +int __db_panic_msg __P((DB_ENV *)); +int __db_panic __P((DB_ENV *, int)); +void __db_err __P((const DB_ENV *, const char *, ...)); +void __db_real_err __P((const DB_ENV *, int, int, int, const char *, va_list)); +void __db_logmsg __P((const DB_ENV *, DB_TXN *, const char *, u_int32_t, const char *, ...)); +int __db_unknown_flag __P((DB_ENV *, char *, u_int32_t)); +int __db_unknown_type __P((DB_ENV *, char *, u_int32_t)); +#ifdef DIAGNOSTIC +int __db_missing_txn_err __P((DB *)); +#endif +#ifdef DIAGNOSTIC +int __db_not_txn_env __P((DB *)); +#endif +int __db_getlong __P((DB *, const char *, char *, long, long, long *)); +int __db_getulong __P((DB *, const char *, char *, u_long, u_long, u_long *)); +u_int32_t __db_log2 __P((u_int32_t)); +int __db_util_logset __P((const char *, char *)); +void __db_util_siginit __P((void)); +int __db_util_interrupted __P((void)); +void __db_util_sigresend __P((void)); +#if defined(__cplusplus) +} +#endif +#endif /* _common_ext_h_ */ diff --git a/db/include_auto/common_ext.in b/db/include_auto/common_ext.in new file mode 100644 index 000000000..54c9717e3 --- /dev/null +++ b/db/include_auto/common_ext.in @@ -0,0 +1,64 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _common_ext_h_ +#define _common_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __db_byteorder __db_byteorder@DB_VERSION_UNIQUE_NAME@ +int __db_byteorder __P((DB_ENV *, int)); +#define __db_fchk __db_fchk@DB_VERSION_UNIQUE_NAME@ +int __db_fchk __P((DB_ENV *, const char *, u_int32_t, u_int32_t)); +#define __db_fcchk __db_fcchk@DB_VERSION_UNIQUE_NAME@ +int __db_fcchk __P((DB_ENV *, const char *, u_int32_t, u_int32_t, u_int32_t)); +#define __db_ferr __db_ferr@DB_VERSION_UNIQUE_NAME@ +int __db_ferr __P((const DB_ENV *, const char *, int)); +#define __db_pgerr __db_pgerr@DB_VERSION_UNIQUE_NAME@ +int __db_pgerr __P((DB *, db_pgno_t)); +#define __db_pgfmt __db_pgfmt@DB_VERSION_UNIQUE_NAME@ +int __db_pgfmt __P((DB *, db_pgno_t)); +#define __db_eopnotsup __db_eopnotsup@DB_VERSION_UNIQUE_NAME@ +int __db_eopnotsup __P((const DB_ENV *)); +#ifdef DIAGNOSTIC +#define __db_assert __db_assert@DB_VERSION_UNIQUE_NAME@ +void __db_assert __P((const char *, const char *, int)); +#endif +#define __db_panic_msg __db_panic_msg@DB_VERSION_UNIQUE_NAME@ +int __db_panic_msg __P((DB_ENV *)); +#define __db_panic __db_panic@DB_VERSION_UNIQUE_NAME@ +int __db_panic __P((DB_ENV *, int)); +#define __db_err __db_err@DB_VERSION_UNIQUE_NAME@ +void __db_err __P((const DB_ENV *, const char *, ...)); +#define __db_real_err __db_real_err@DB_VERSION_UNIQUE_NAME@ +void __db_real_err __P((const DB_ENV *, int, int, int, const char *, va_list)); +#define __db_logmsg __db_logmsg@DB_VERSION_UNIQUE_NAME@ +void __db_logmsg __P((const DB_ENV *, DB_TXN *, const char *, u_int32_t, const char *, ...)); +#define __db_unknown_flag __db_unknown_flag@DB_VERSION_UNIQUE_NAME@ +int __db_unknown_flag __P((DB_ENV *, char *, u_int32_t)); +#define __db_unknown_type __db_unknown_type@DB_VERSION_UNIQUE_NAME@ +int __db_unknown_type __P((DB_ENV *, char *, u_int32_t)); +#ifdef DIAGNOSTIC +#define __db_missing_txn_err __db_missing_txn_err@DB_VERSION_UNIQUE_NAME@ +int __db_missing_txn_err __P((DB *)); +#endif +#ifdef DIAGNOSTIC +#define __db_not_txn_env __db_not_txn_env@DB_VERSION_UNIQUE_NAME@ +int __db_not_txn_env __P((DB *)); +#endif +#define __db_getlong __db_getlong@DB_VERSION_UNIQUE_NAME@ +int __db_getlong __P((DB *, const char *, char *, long, long, long *)); +#define __db_getulong __db_getulong@DB_VERSION_UNIQUE_NAME@ +int __db_getulong __P((DB *, const char *, char *, u_long, u_long, u_long *)); +#define __db_log2 __db_log2@DB_VERSION_UNIQUE_NAME@ +u_int32_t __db_log2 __P((u_int32_t)); +#define __db_util_logset __db_util_logset@DB_VERSION_UNIQUE_NAME@ +int __db_util_logset __P((const char *, char *)); +#define __db_util_siginit __db_util_siginit@DB_VERSION_UNIQUE_NAME@ +void __db_util_siginit __P((void)); +#define __db_util_interrupted __db_util_interrupted@DB_VERSION_UNIQUE_NAME@ +int __db_util_interrupted __P((void)); +#define __db_util_sigresend __db_util_sigresend@DB_VERSION_UNIQUE_NAME@ +void __db_util_sigresend __P((void)); +#if defined(__cplusplus) +} +#endif +#endif /* _common_ext_h_ */ diff --git a/db/include_auto/crdel_auto.h b/db/include_auto/crdel_auto.h new file mode 100644 index 000000000..73175d65f --- /dev/null +++ b/db/include_auto/crdel_auto.h @@ -0,0 +1,63 @@ +/* Do not edit: automatically built by gen_rec.awk. */ + +#ifndef crdel_AUTO_H +#define crdel_AUTO_H +#define DB_crdel_fileopen 141 +typedef struct _crdel_fileopen_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + DBT name; + u_int32_t mode; +} __crdel_fileopen_args; + +#define DB_crdel_metasub 142 +typedef struct _crdel_metasub_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DBT page; + DB_LSN lsn; +} __crdel_metasub_args; + +#define DB_crdel_metapage 143 +typedef struct _crdel_metapage_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DBT name; + db_pgno_t pgno; + DBT page; +} __crdel_metapage_args; + +#define DB_crdel_old_delete 144 +typedef struct _crdel_old_delete_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + DBT name; +} __crdel_old_delete_args; + +#define DB_crdel_rename 145 +typedef struct _crdel_rename_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DBT name; + DBT newname; +} __crdel_rename_args; + +#define DB_crdel_delete 146 +typedef struct _crdel_delete_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DBT name; +} __crdel_delete_args; + +#endif diff --git a/db/include_auto/db185_ext.in b/db/include_auto/db185_ext.in new file mode 100644 index 000000000..1fe3dbb31 --- /dev/null +++ b/db/include_auto/db185_ext.in @@ -0,0 +1,11 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#if defined(__cplusplus) +extern "C" { +#endif +#define dbopen __db185_open +DB185 *__db185_open __P((const char *, int, int, DBTYPE, const void *)); +#if defined(__cplusplus) +} +#endif + +#endif /* !_DB_185_H_ */ diff --git a/db/include_auto/db185_uext.in b/db/include_auto/db185_uext.in new file mode 100644 index 000000000..f4bf4dcfa --- /dev/null +++ b/db/include_auto/db185_uext.in @@ -0,0 +1,12 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#if defined(__cplusplus) +extern "C" { +#endif +#define dbopen __db185_open@DB_VERSION_UNIQUE_NAME@ +#define __db185_open __db185_open@DB_VERSION_UNIQUE_NAME@ +DB185 *__db185_open __P((const char *, int, int, DBTYPE, const void *)); +#if defined(__cplusplus) +} +#endif + +#endif /* !_DB_185_H_ */ diff --git a/db/include_auto/db_auto.h b/db/include_auto/db_auto.h new file mode 100644 index 000000000..a82b750c7 --- /dev/null +++ b/db/include_auto/db_auto.h @@ -0,0 +1,108 @@ +/* Do not edit: automatically built by gen_rec.awk. */ + +#ifndef db_AUTO_H +#define db_AUTO_H +#define DB_db_addrem 41 +typedef struct _db_addrem_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t fileid; + db_pgno_t pgno; + u_int32_t indx; + size_t nbytes; + DBT hdr; + DBT dbt; + DB_LSN pagelsn; +} __db_addrem_args; + +#define DB_db_split 42 +typedef struct _db_split_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t fileid; + db_pgno_t pgno; + DBT pageimage; + DB_LSN pagelsn; +} __db_split_args; + +#define DB_db_big 43 +typedef struct _db_big_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t fileid; + db_pgno_t pgno; + db_pgno_t prev_pgno; + db_pgno_t next_pgno; + DBT dbt; + DB_LSN pagelsn; + DB_LSN prevlsn; + DB_LSN nextlsn; +} __db_big_args; + +#define DB_db_ovref 44 +typedef struct _db_ovref_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + int32_t adjust; + DB_LSN lsn; +} __db_ovref_args; + +#define DB_db_relink 45 +typedef struct _db_relink_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t fileid; + db_pgno_t pgno; + DB_LSN lsn; + db_pgno_t prev; + DB_LSN lsn_prev; + db_pgno_t next; + DB_LSN lsn_next; +} __db_relink_args; + +#define DB_db_addpage 46 +typedef struct _db_addpage_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN lsn; + db_pgno_t nextpgno; + DB_LSN nextlsn; +} __db_addpage_args; + +#define DB_db_debug 47 +typedef struct _db_debug_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + DBT op; + int32_t fileid; + DBT key; + DBT data; + u_int32_t arg_flags; +} __db_debug_args; + +#define DB_db_noop 48 +typedef struct _db_noop_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN prevlsn; +} __db_noop_args; + +#endif diff --git a/db/include_auto/db_ext.h b/db/include_auto/db_ext.h new file mode 100644 index 000000000..46526a30a --- /dev/null +++ b/db/include_auto/db_ext.h @@ -0,0 +1,205 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _db_ext_h_ +#define _db_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __crdel_fileopen_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, const DBT *, u_int32_t)); +int __crdel_fileopen_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_fileopen_read __P((DB_ENV *, void *, __crdel_fileopen_args **)); +int __crdel_metasub_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, const DBT *, DB_LSN *)); +int __crdel_metasub_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_metasub_read __P((DB_ENV *, void *, __crdel_metasub_args **)); +int __crdel_metapage_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, const DBT *, db_pgno_t, const DBT *)); +int __crdel_metapage_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_metapage_read __P((DB_ENV *, void *, __crdel_metapage_args **)); +int __crdel_old_delete_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_old_delete_read __P((DB_ENV *, void *, __crdel_old_delete_args **)); +int __crdel_rename_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, const DBT *, const DBT *)); +int __crdel_rename_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_rename_read __P((DB_ENV *, void *, __crdel_rename_args **)); +int __crdel_delete_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, const DBT *)); +int __crdel_delete_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_delete_read __P((DB_ENV *, void *, __crdel_delete_args **)); +int __crdel_init_print __P((DB_ENV *)); +int __crdel_init_recover __P((DB_ENV *)); +int __crdel_fileopen_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_metasub_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_metapage_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_delete_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __crdel_rename_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_open __P((DB *, const char *, const char *, DBTYPE, u_int32_t, int)); +int __db_dbopen __P((DB *, const char *, u_int32_t, int, db_pgno_t)); +int __db_master_open __P((DB *, const char *, u_int32_t, int, DB **)); +int __db_dbenv_setup __P((DB *, const char *, u_int32_t)); +int __db_close __P((DB *, u_int32_t)); +int __db_remove __P((DB *, const char *, const char *, u_int32_t)); +int __db_rename __P((DB *, const char *, const char *, const char *, u_int32_t)); +int __db_truncate __P((DB *, const char *, const char *, u_int32_t *, u_int32_t)); +int __db_log_page __P((DB *, const char *, DB_LSN *, db_pgno_t, PAGE *)); +int __db_backup_name __P((DB_ENV *, const char *, char **, DB_LSN *)); +DB *__dblist_get __P((DB_ENV *, u_int32_t)); +int __db_testcopy __P((DB *, const char *)); +int __db_cursor __P((DB *, DB_TXN *, DBC **, u_int32_t)); +int __db_icursor __P((DB *, DB_TXN *, DBTYPE, db_pgno_t, int, u_int32_t, DBC **)); +int __db_cprint __P((DB *)); +int __db_fd __P((DB *, int *)); +int __db_get __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); +int __db_put __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); +int __db_delete __P((DB *, DB_TXN *, DBT *, u_int32_t)); +int __db_sync __P((DB *, u_int32_t)); +int __db_associate __P((DB *, DB *, int (*)(DB *, const DBT *, const DBT *, DBT *), u_int32_t)); +int __db_pget __P((DB *, DB_TXN *, DBT *, DBT *, DBT *, u_int32_t)); +int __db_addrem_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, u_int32_t, size_t, const DBT *, const DBT *, DB_LSN *)); +int __db_addrem_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_addrem_read __P((DB_ENV *, void *, __db_addrem_args **)); +int __db_split_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_split_read __P((DB_ENV *, void *, __db_split_args **)); +int __db_big_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, db_pgno_t, db_pgno_t, const DBT *, DB_LSN *, DB_LSN *, DB_LSN *)); +int __db_big_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_big_read __P((DB_ENV *, void *, __db_big_args **)); +int __db_ovref_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, int32_t, DB_LSN *)); +int __db_ovref_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_ovref_read __P((DB_ENV *, void *, __db_ovref_args **)); +int __db_relink_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *)); +int __db_relink_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_relink_read __P((DB_ENV *, void *, __db_relink_args **)); +int __db_addpage_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_addpage_read __P((DB_ENV *, void *, __db_addpage_args **)); +int __db_debug_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, const DBT *, int32_t, const DBT *, const DBT *, u_int32_t)); +int __db_debug_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_debug_read __P((DB_ENV *, void *, __db_debug_args **)); +int __db_noop_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *)); +int __db_noop_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_noop_read __P((DB_ENV *, void *, __db_noop_args **)); +int __db_init_print __P((DB_ENV *)); +int __db_init_recover __P((DB_ENV *)); +int __db_c_close __P((DBC *)); +int __db_c_destroy __P((DBC *)); +int __db_c_count __P((DBC *, db_recno_t *, u_int32_t)); +int __db_c_del __P((DBC *, u_int32_t)); +int __db_c_dup __P((DBC *, DBC **, u_int32_t)); +int __db_c_idup __P((DBC *, DBC **, u_int32_t)); +int __db_c_newopd __P((DBC *, db_pgno_t, DBC **)); +int __db_c_get __P((DBC *, DBT *, DBT *, u_int32_t)); +int __db_c_put __P((DBC *, DBT *, DBT *, u_int32_t)); +int __db_duperr __P((DB *, u_int32_t)); +int __db_c_secondary_get __P((DBC *, DBT *, DBT *, u_int32_t)); +int __db_c_pget __P((DBC *, DBT *, DBT *, DBT *, u_int32_t)); +int __db_c_del_primary __P((DBC *)); +DB *__db_s_first __P((DB *)); +int __db_s_next __P((DB **)); +int __db_s_done __P((DB *)); +u_int32_t __db_partsize __P((u_int32_t, DBT *)); +int __db_pgin __P((DB_ENV *, db_pgno_t, void *, DBT *)); +int __db_pgout __P((DB_ENV *, db_pgno_t, void *, DBT *)); +void __db_metaswap __P((PAGE *)); +int __db_byteswap __P((DB_ENV *, db_pgno_t, PAGE *, size_t, int)); +int __db_dispatch __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_add_recovery __P((DB_ENV *, int (*)(DB_ENV *, DBT *, DB_LSN *, db_recops, void *), u_int32_t)); +int __deprecated_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_txnlist_init __P((DB_ENV *, void *)); +int __db_txnlist_add __P((DB_ENV *, void *, u_int32_t, int32_t)); +int __db_txnlist_remove __P((DB_ENV *, void *, u_int32_t)); +int __db_txnlist_close __P((void *, int32_t, u_int32_t)); +int __db_txnlist_delete __P((DB_ENV *, void *, char *, u_int32_t, int)); +void __db_txnlist_end __P((DB_ENV *, void *)); +int __db_txnlist_find __P((DB_ENV *, void *, u_int32_t)); +void __db_txnlist_gen __P((void *, int)); +int __db_txnlist_lsnadd __P((DB_ENV *, void *, DB_LSN *, u_int32_t)); +int __db_txnlist_lsninit __P((DB_ENV *, DB_TXNHEAD *, DB_LSN *)); +int __db_add_limbo __P((DB_ENV *, void *, int32_t, db_pgno_t, int32_t)); +int __db_do_the_limbo __P((DB_ENV *, DB_TXNHEAD *)); +void __db_txnlist_print __P((void *)); +int __db_ditem __P((DBC *, PAGE *, u_int32_t, u_int32_t)); +int __db_pitem __P((DBC *, PAGE *, u_int32_t, u_int32_t, DBT *, DBT *)); +int __db_relink __P((DBC *, u_int32_t, PAGE *, PAGE **, int)); +int __db_cursorchk __P((const DB *, u_int32_t, int)); +int __db_ccountchk __P((const DB *, u_int32_t, int)); +int __db_cdelchk __P((const DB *, u_int32_t, int, int)); +int __db_cgetchk __P((const DB *, DBT *, DBT *, u_int32_t, int)); +int __db_cputchk __P((const DB *, const DBT *, DBT *, u_int32_t, int, int)); +int __db_pgetchk __P((const DB *, const DBT *, DBT *, DBT *, u_int32_t)); +int __db_cpgetchk __P((const DB *, DBT *, DBT *, DBT *, u_int32_t, int)); +int __db_closechk __P((const DB *, u_int32_t)); +int __db_delchk __P((const DB *, DBT *, u_int32_t, int)); +int __db_getchk __P((const DB *, const DBT *, DBT *, u_int32_t)); +int __db_joinchk __P((const DB *, DBC * const *, u_int32_t)); +int __db_joingetchk __P((const DB *, DBT *, u_int32_t)); +int __db_putchk __P((const DB *, DBT *, const DBT *, u_int32_t, int, int)); +int __db_removechk __P((const DB *, u_int32_t)); +int __db_statchk __P((const DB *, u_int32_t)); +int __db_syncchk __P((const DB *, u_int32_t)); +int __db_associatechk __P((DB *, DB *, int (*)(DB *, const DBT *, const DBT *, DBT *), u_int32_t)); +int __db_join __P((DB *, DBC **, DBC **, u_int32_t)); +int __db_new __P((DBC *, u_int32_t, PAGE **)); +int __db_free __P((DBC *, PAGE *)); +int __db_lprint __P((DBC *)); +int __db_lget __P((DBC *, int, db_pgno_t, db_lockmode_t, int, DB_LOCK *)); +int __dbh_am_chk __P((DB *, u_int32_t)); +int __db_set_lorder __P((DB *, int)); +int __db_goff __P((DB *, DBT *, u_int32_t, db_pgno_t, void **, u_int32_t *)); +int __db_poff __P((DBC *, const DBT *, db_pgno_t *)); +int __db_ovref __P((DBC *, db_pgno_t, int32_t)); +int __db_doff __P((DBC *, db_pgno_t)); +int __db_moff __P((DB *, const DBT *, db_pgno_t, u_int32_t, int (*)(DB *, const DBT *, const DBT *), int *)); +int __db_vrfy_overflow __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +int __db_vrfy_ovfl_structure __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t, u_int32_t)); +int __db_safe_goff __P((DB *, VRFY_DBINFO *, db_pgno_t, DBT *, void **, u_int32_t)); +void __db_loadme __P((void)); +int __db_dump __P((DB *, char *, char *)); +int __db_prnpage __P((DB *, db_pgno_t)); +int __db_prpage __P((DB *, PAGE *, u_int32_t)); +void __db_pr __P((u_int8_t *, u_int32_t)); +int __db_prdbt __P((DBT *, int, const char *, void *, int (*)(void *, const void *), int, VRFY_DBINFO *)); +void __db_prflags __P((u_int32_t, const FN *, FILE *)); +int __db_prheader __P((DB *, char *, int, int, void *, int (*)(void *, const void *), VRFY_DBINFO *, db_pgno_t)); +int __db_prfooter __P((void *, int (*)(void *, const void *))); +int __db_addrem_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_big_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_ovref_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_relink_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_debug_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_noop_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __db_traverse_big __P((DB *, db_pgno_t, int (*)(DB *, PAGE *, void *, int *), void *)); +int __db_reclaim_callback __P((DB *, PAGE *, void *, int *)); +int __db_truncate_callback __P((DB *, PAGE *, void *, int *)); +int __db_ret __P((DB *, PAGE *, u_int32_t, DBT *, void **, u_int32_t *)); +int __db_retcopy __P((DB *, DBT *, void *, u_int32_t, void **, u_int32_t *)); +int __db_upgrade __P((DB *, const char *, u_int32_t)); +int __db_lastpgno __P((DB *, char *, DB_FH *, db_pgno_t *)); +int __db_31_offdup __P((DB *, char *, DB_FH *, int, db_pgno_t *)); +int __db_verify __P((DB *, const char *, const char *, FILE *, u_int32_t)); +int __db_verify_callback __P((void *, const void *)); +int __db_verify_internal __P((DB *, const char *, const char *, void *, int (*)(void *, const void *), u_int32_t)); +int __db_vrfy_datapage __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +int __db_vrfy_meta __P((DB *, VRFY_DBINFO *, DBMETA *, db_pgno_t, u_int32_t)); +int __db_vrfy_struct_feedback __P((DB *, VRFY_DBINFO *)); +int __db_salvage __P((DB *, VRFY_DBINFO *, db_pgno_t, PAGE *, void *, int (*)(void *, const void *), u_int32_t)); +int __db_vrfy_inpitem __P((DB *, PAGE *, db_pgno_t, u_int32_t, int, u_int32_t, u_int32_t *, u_int32_t *)); +int __db_vrfy_duptype __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t)); +int __db_salvage_duptree __P((DB *, VRFY_DBINFO *, db_pgno_t, DBT *, void *, int (*)(void *, const void *), u_int32_t)); +int __db_vrfy_dbinfo_create __P((DB_ENV *, u_int32_t, VRFY_DBINFO **)); +int __db_vrfy_dbinfo_destroy __P((DB_ENV *, VRFY_DBINFO *)); +int __db_vrfy_getpageinfo __P((VRFY_DBINFO *, db_pgno_t, VRFY_PAGEINFO **)); +int __db_vrfy_putpageinfo __P((DB_ENV *, VRFY_DBINFO *, VRFY_PAGEINFO *)); +int __db_vrfy_pgset __P((DB_ENV *, u_int32_t, DB **)); +int __db_vrfy_pgset_get __P((DB *, db_pgno_t, int *)); +int __db_vrfy_pgset_inc __P((DB *, db_pgno_t)); +int __db_vrfy_pgset_dec __P((DB *, db_pgno_t)); +int __db_vrfy_pgset_next __P((DBC *, db_pgno_t *)); +int __db_vrfy_childcursor __P((VRFY_DBINFO *, DBC **)); +int __db_vrfy_childput __P((VRFY_DBINFO *, db_pgno_t, VRFY_CHILDINFO *)); +int __db_vrfy_ccset __P((DBC *, db_pgno_t, VRFY_CHILDINFO **)); +int __db_vrfy_ccnext __P((DBC *, VRFY_CHILDINFO **)); +int __db_vrfy_ccclose __P((DBC *)); +int __db_salvage_init __P((VRFY_DBINFO *)); +void __db_salvage_destroy __P((VRFY_DBINFO *)); +int __db_salvage_getnext __P((VRFY_DBINFO *, db_pgno_t *, u_int32_t *)); +int __db_salvage_isdone __P((VRFY_DBINFO *, db_pgno_t)); +int __db_salvage_markdone __P((VRFY_DBINFO *, db_pgno_t)); +int __db_salvage_markneeded __P((VRFY_DBINFO *, db_pgno_t, u_int32_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _db_ext_h_ */ diff --git a/db/include_auto/db_ext.in b/db/include_auto/db_ext.in new file mode 100644 index 000000000..9d2504347 --- /dev/null +++ b/db/include_auto/db_ext.in @@ -0,0 +1,400 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _db_ext_h_ +#define _db_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __crdel_fileopen_log __crdel_fileopen_log@DB_VERSION_UNIQUE_NAME@ +int __crdel_fileopen_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, const DBT *, u_int32_t)); +#define __crdel_fileopen_print __crdel_fileopen_print@DB_VERSION_UNIQUE_NAME@ +int __crdel_fileopen_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_fileopen_read __crdel_fileopen_read@DB_VERSION_UNIQUE_NAME@ +int __crdel_fileopen_read __P((DB_ENV *, void *, __crdel_fileopen_args **)); +#define __crdel_metasub_log __crdel_metasub_log@DB_VERSION_UNIQUE_NAME@ +int __crdel_metasub_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, const DBT *, DB_LSN *)); +#define __crdel_metasub_print __crdel_metasub_print@DB_VERSION_UNIQUE_NAME@ +int __crdel_metasub_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_metasub_read __crdel_metasub_read@DB_VERSION_UNIQUE_NAME@ +int __crdel_metasub_read __P((DB_ENV *, void *, __crdel_metasub_args **)); +#define __crdel_metapage_log __crdel_metapage_log@DB_VERSION_UNIQUE_NAME@ +int __crdel_metapage_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, const DBT *, db_pgno_t, const DBT *)); +#define __crdel_metapage_print __crdel_metapage_print@DB_VERSION_UNIQUE_NAME@ +int __crdel_metapage_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_metapage_read __crdel_metapage_read@DB_VERSION_UNIQUE_NAME@ +int __crdel_metapage_read __P((DB_ENV *, void *, __crdel_metapage_args **)); +#define __crdel_old_delete_print __crdel_old_delete_print@DB_VERSION_UNIQUE_NAME@ +int __crdel_old_delete_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_old_delete_read __crdel_old_delete_read@DB_VERSION_UNIQUE_NAME@ +int __crdel_old_delete_read __P((DB_ENV *, void *, __crdel_old_delete_args **)); +#define __crdel_rename_log __crdel_rename_log@DB_VERSION_UNIQUE_NAME@ +int __crdel_rename_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, const DBT *, const DBT *)); +#define __crdel_rename_print __crdel_rename_print@DB_VERSION_UNIQUE_NAME@ +int __crdel_rename_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_rename_read __crdel_rename_read@DB_VERSION_UNIQUE_NAME@ +int __crdel_rename_read __P((DB_ENV *, void *, __crdel_rename_args **)); +#define __crdel_delete_log __crdel_delete_log@DB_VERSION_UNIQUE_NAME@ +int __crdel_delete_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, const DBT *)); +#define __crdel_delete_print __crdel_delete_print@DB_VERSION_UNIQUE_NAME@ +int __crdel_delete_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_delete_read __crdel_delete_read@DB_VERSION_UNIQUE_NAME@ +int __crdel_delete_read __P((DB_ENV *, void *, __crdel_delete_args **)); +#define __crdel_init_print __crdel_init_print@DB_VERSION_UNIQUE_NAME@ +int __crdel_init_print __P((DB_ENV *)); +#define __crdel_init_recover __crdel_init_recover@DB_VERSION_UNIQUE_NAME@ +int __crdel_init_recover __P((DB_ENV *)); +#define __crdel_fileopen_recover __crdel_fileopen_recover@DB_VERSION_UNIQUE_NAME@ +int __crdel_fileopen_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_metasub_recover __crdel_metasub_recover@DB_VERSION_UNIQUE_NAME@ +int __crdel_metasub_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_metapage_recover __crdel_metapage_recover@DB_VERSION_UNIQUE_NAME@ +int __crdel_metapage_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_delete_recover __crdel_delete_recover@DB_VERSION_UNIQUE_NAME@ +int __crdel_delete_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __crdel_rename_recover __crdel_rename_recover@DB_VERSION_UNIQUE_NAME@ +int __crdel_rename_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_open __db_open@DB_VERSION_UNIQUE_NAME@ +int __db_open __P((DB *, const char *, const char *, DBTYPE, u_int32_t, int)); +#define __db_dbopen __db_dbopen@DB_VERSION_UNIQUE_NAME@ +int __db_dbopen __P((DB *, const char *, u_int32_t, int, db_pgno_t)); +#define __db_master_open __db_master_open@DB_VERSION_UNIQUE_NAME@ +int __db_master_open __P((DB *, const char *, u_int32_t, int, DB **)); +#define __db_dbenv_setup __db_dbenv_setup@DB_VERSION_UNIQUE_NAME@ +int __db_dbenv_setup __P((DB *, const char *, u_int32_t)); +#define __db_close __db_close@DB_VERSION_UNIQUE_NAME@ +int __db_close __P((DB *, u_int32_t)); +#define __db_remove __db_remove@DB_VERSION_UNIQUE_NAME@ +int __db_remove __P((DB *, const char *, const char *, u_int32_t)); +#define __db_rename __db_rename@DB_VERSION_UNIQUE_NAME@ +int __db_rename __P((DB *, const char *, const char *, const char *, u_int32_t)); +#define __db_truncate __db_truncate@DB_VERSION_UNIQUE_NAME@ +int __db_truncate __P((DB *, const char *, const char *, u_int32_t *, u_int32_t)); +#define __db_log_page __db_log_page@DB_VERSION_UNIQUE_NAME@ +int __db_log_page __P((DB *, const char *, DB_LSN *, db_pgno_t, PAGE *)); +#define __db_backup_name __db_backup_name@DB_VERSION_UNIQUE_NAME@ +int __db_backup_name __P((DB_ENV *, const char *, char **, DB_LSN *)); +#define __dblist_get __dblist_get@DB_VERSION_UNIQUE_NAME@ +DB *__dblist_get __P((DB_ENV *, u_int32_t)); +#define __db_testcopy __db_testcopy@DB_VERSION_UNIQUE_NAME@ +int __db_testcopy __P((DB *, const char *)); +#define __db_cursor __db_cursor@DB_VERSION_UNIQUE_NAME@ +int __db_cursor __P((DB *, DB_TXN *, DBC **, u_int32_t)); +#define __db_icursor __db_icursor@DB_VERSION_UNIQUE_NAME@ +int __db_icursor __P((DB *, DB_TXN *, DBTYPE, db_pgno_t, int, u_int32_t, DBC **)); +#define __db_cprint __db_cprint@DB_VERSION_UNIQUE_NAME@ +int __db_cprint __P((DB *)); +#define __db_fd __db_fd@DB_VERSION_UNIQUE_NAME@ +int __db_fd __P((DB *, int *)); +#define __db_get __db_get@DB_VERSION_UNIQUE_NAME@ +int __db_get __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); +#define __db_put __db_put@DB_VERSION_UNIQUE_NAME@ +int __db_put __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); +#define __db_delete __db_delete@DB_VERSION_UNIQUE_NAME@ +int __db_delete __P((DB *, DB_TXN *, DBT *, u_int32_t)); +#define __db_sync __db_sync@DB_VERSION_UNIQUE_NAME@ +int __db_sync __P((DB *, u_int32_t)); +#define __db_associate __db_associate@DB_VERSION_UNIQUE_NAME@ +int __db_associate __P((DB *, DB *, int (*)(DB *, const DBT *, const DBT *, DBT *), u_int32_t)); +#define __db_pget __db_pget@DB_VERSION_UNIQUE_NAME@ +int __db_pget __P((DB *, DB_TXN *, DBT *, DBT *, DBT *, u_int32_t)); +#define __db_addrem_log __db_addrem_log@DB_VERSION_UNIQUE_NAME@ +int __db_addrem_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, u_int32_t, size_t, const DBT *, const DBT *, DB_LSN *)); +#define __db_addrem_print __db_addrem_print@DB_VERSION_UNIQUE_NAME@ +int __db_addrem_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_addrem_read __db_addrem_read@DB_VERSION_UNIQUE_NAME@ +int __db_addrem_read __P((DB_ENV *, void *, __db_addrem_args **)); +#define __db_split_print __db_split_print@DB_VERSION_UNIQUE_NAME@ +int __db_split_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_split_read __db_split_read@DB_VERSION_UNIQUE_NAME@ +int __db_split_read __P((DB_ENV *, void *, __db_split_args **)); +#define __db_big_log __db_big_log@DB_VERSION_UNIQUE_NAME@ +int __db_big_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, db_pgno_t, db_pgno_t, const DBT *, DB_LSN *, DB_LSN *, DB_LSN *)); +#define __db_big_print __db_big_print@DB_VERSION_UNIQUE_NAME@ +int __db_big_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_big_read __db_big_read@DB_VERSION_UNIQUE_NAME@ +int __db_big_read __P((DB_ENV *, void *, __db_big_args **)); +#define __db_ovref_log __db_ovref_log@DB_VERSION_UNIQUE_NAME@ +int __db_ovref_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, int32_t, DB_LSN *)); +#define __db_ovref_print __db_ovref_print@DB_VERSION_UNIQUE_NAME@ +int __db_ovref_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_ovref_read __db_ovref_read@DB_VERSION_UNIQUE_NAME@ +int __db_ovref_read __P((DB_ENV *, void *, __db_ovref_args **)); +#define __db_relink_log __db_relink_log@DB_VERSION_UNIQUE_NAME@ +int __db_relink_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *)); +#define __db_relink_print __db_relink_print@DB_VERSION_UNIQUE_NAME@ +int __db_relink_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_relink_read __db_relink_read@DB_VERSION_UNIQUE_NAME@ +int __db_relink_read __P((DB_ENV *, void *, __db_relink_args **)); +#define __db_addpage_print __db_addpage_print@DB_VERSION_UNIQUE_NAME@ +int __db_addpage_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_addpage_read __db_addpage_read@DB_VERSION_UNIQUE_NAME@ +int __db_addpage_read __P((DB_ENV *, void *, __db_addpage_args **)); +#define __db_debug_log __db_debug_log@DB_VERSION_UNIQUE_NAME@ +int __db_debug_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, const DBT *, int32_t, const DBT *, const DBT *, u_int32_t)); +#define __db_debug_print __db_debug_print@DB_VERSION_UNIQUE_NAME@ +int __db_debug_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_debug_read __db_debug_read@DB_VERSION_UNIQUE_NAME@ +int __db_debug_read __P((DB_ENV *, void *, __db_debug_args **)); +#define __db_noop_log __db_noop_log@DB_VERSION_UNIQUE_NAME@ +int __db_noop_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *)); +#define __db_noop_print __db_noop_print@DB_VERSION_UNIQUE_NAME@ +int __db_noop_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_noop_read __db_noop_read@DB_VERSION_UNIQUE_NAME@ +int __db_noop_read __P((DB_ENV *, void *, __db_noop_args **)); +#define __db_init_print __db_init_print@DB_VERSION_UNIQUE_NAME@ +int __db_init_print __P((DB_ENV *)); +#define __db_init_recover __db_init_recover@DB_VERSION_UNIQUE_NAME@ +int __db_init_recover __P((DB_ENV *)); +#define __db_c_close __db_c_close@DB_VERSION_UNIQUE_NAME@ +int __db_c_close __P((DBC *)); +#define __db_c_destroy __db_c_destroy@DB_VERSION_UNIQUE_NAME@ +int __db_c_destroy __P((DBC *)); +#define __db_c_count __db_c_count@DB_VERSION_UNIQUE_NAME@ +int __db_c_count __P((DBC *, db_recno_t *, u_int32_t)); +#define __db_c_del __db_c_del@DB_VERSION_UNIQUE_NAME@ +int __db_c_del __P((DBC *, u_int32_t)); +#define __db_c_dup __db_c_dup@DB_VERSION_UNIQUE_NAME@ +int __db_c_dup __P((DBC *, DBC **, u_int32_t)); +#define __db_c_idup __db_c_idup@DB_VERSION_UNIQUE_NAME@ +int __db_c_idup __P((DBC *, DBC **, u_int32_t)); +#define __db_c_newopd __db_c_newopd@DB_VERSION_UNIQUE_NAME@ +int __db_c_newopd __P((DBC *, db_pgno_t, DBC **)); +#define __db_c_get __db_c_get@DB_VERSION_UNIQUE_NAME@ +int __db_c_get __P((DBC *, DBT *, DBT *, u_int32_t)); +#define __db_c_put __db_c_put@DB_VERSION_UNIQUE_NAME@ +int __db_c_put __P((DBC *, DBT *, DBT *, u_int32_t)); +#define __db_duperr __db_duperr@DB_VERSION_UNIQUE_NAME@ +int __db_duperr __P((DB *, u_int32_t)); +#define __db_c_secondary_get __db_c_secondary_get@DB_VERSION_UNIQUE_NAME@ +int __db_c_secondary_get __P((DBC *, DBT *, DBT *, u_int32_t)); +#define __db_c_pget __db_c_pget@DB_VERSION_UNIQUE_NAME@ +int __db_c_pget __P((DBC *, DBT *, DBT *, DBT *, u_int32_t)); +#define __db_c_del_primary __db_c_del_primary@DB_VERSION_UNIQUE_NAME@ +int __db_c_del_primary __P((DBC *)); +#define __db_s_first __db_s_first@DB_VERSION_UNIQUE_NAME@ +DB *__db_s_first __P((DB *)); +#define __db_s_next __db_s_next@DB_VERSION_UNIQUE_NAME@ +int __db_s_next __P((DB **)); +#define __db_s_done __db_s_done@DB_VERSION_UNIQUE_NAME@ +int __db_s_done __P((DB *)); +#define __db_partsize __db_partsize@DB_VERSION_UNIQUE_NAME@ +u_int32_t __db_partsize __P((u_int32_t, DBT *)); +#define __db_pgin __db_pgin@DB_VERSION_UNIQUE_NAME@ +int __db_pgin __P((DB_ENV *, db_pgno_t, void *, DBT *)); +#define __db_pgout __db_pgout@DB_VERSION_UNIQUE_NAME@ +int __db_pgout __P((DB_ENV *, db_pgno_t, void *, DBT *)); +#define __db_metaswap __db_metaswap@DB_VERSION_UNIQUE_NAME@ +void __db_metaswap __P((PAGE *)); +#define __db_byteswap __db_byteswap@DB_VERSION_UNIQUE_NAME@ +int __db_byteswap __P((DB_ENV *, db_pgno_t, PAGE *, size_t, int)); +#define __db_dispatch __db_dispatch@DB_VERSION_UNIQUE_NAME@ +int __db_dispatch __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_add_recovery __db_add_recovery@DB_VERSION_UNIQUE_NAME@ +int __db_add_recovery __P((DB_ENV *, int (*)(DB_ENV *, DBT *, DB_LSN *, db_recops, void *), u_int32_t)); +#define __deprecated_recover __deprecated_recover@DB_VERSION_UNIQUE_NAME@ +int __deprecated_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_txnlist_init __db_txnlist_init@DB_VERSION_UNIQUE_NAME@ +int __db_txnlist_init __P((DB_ENV *, void *)); +#define __db_txnlist_add __db_txnlist_add@DB_VERSION_UNIQUE_NAME@ +int __db_txnlist_add __P((DB_ENV *, void *, u_int32_t, int32_t)); +#define __db_txnlist_remove __db_txnlist_remove@DB_VERSION_UNIQUE_NAME@ +int __db_txnlist_remove __P((DB_ENV *, void *, u_int32_t)); +#define __db_txnlist_close __db_txnlist_close@DB_VERSION_UNIQUE_NAME@ +int __db_txnlist_close __P((void *, int32_t, u_int32_t)); +#define __db_txnlist_delete __db_txnlist_delete@DB_VERSION_UNIQUE_NAME@ +int __db_txnlist_delete __P((DB_ENV *, void *, char *, u_int32_t, int)); +#define __db_txnlist_end __db_txnlist_end@DB_VERSION_UNIQUE_NAME@ +void __db_txnlist_end __P((DB_ENV *, void *)); +#define __db_txnlist_find __db_txnlist_find@DB_VERSION_UNIQUE_NAME@ +int __db_txnlist_find __P((DB_ENV *, void *, u_int32_t)); +#define __db_txnlist_gen __db_txnlist_gen@DB_VERSION_UNIQUE_NAME@ +void __db_txnlist_gen __P((void *, int)); +#define __db_txnlist_lsnadd __db_txnlist_lsnadd@DB_VERSION_UNIQUE_NAME@ +int __db_txnlist_lsnadd __P((DB_ENV *, void *, DB_LSN *, u_int32_t)); +#define __db_txnlist_lsninit __db_txnlist_lsninit@DB_VERSION_UNIQUE_NAME@ +int __db_txnlist_lsninit __P((DB_ENV *, DB_TXNHEAD *, DB_LSN *)); +#define __db_add_limbo __db_add_limbo@DB_VERSION_UNIQUE_NAME@ +int __db_add_limbo __P((DB_ENV *, void *, int32_t, db_pgno_t, int32_t)); +#define __db_do_the_limbo __db_do_the_limbo@DB_VERSION_UNIQUE_NAME@ +int __db_do_the_limbo __P((DB_ENV *, DB_TXNHEAD *)); +#define __db_txnlist_print __db_txnlist_print@DB_VERSION_UNIQUE_NAME@ +void __db_txnlist_print __P((void *)); +#define __db_ditem __db_ditem@DB_VERSION_UNIQUE_NAME@ +int __db_ditem __P((DBC *, PAGE *, u_int32_t, u_int32_t)); +#define __db_pitem __db_pitem@DB_VERSION_UNIQUE_NAME@ +int __db_pitem __P((DBC *, PAGE *, u_int32_t, u_int32_t, DBT *, DBT *)); +#define __db_relink __db_relink@DB_VERSION_UNIQUE_NAME@ +int __db_relink __P((DBC *, u_int32_t, PAGE *, PAGE **, int)); +#define __db_cursorchk __db_cursorchk@DB_VERSION_UNIQUE_NAME@ +int __db_cursorchk __P((const DB *, u_int32_t, int)); +#define __db_ccountchk __db_ccountchk@DB_VERSION_UNIQUE_NAME@ +int __db_ccountchk __P((const DB *, u_int32_t, int)); +#define __db_cdelchk __db_cdelchk@DB_VERSION_UNIQUE_NAME@ +int __db_cdelchk __P((const DB *, u_int32_t, int, int)); +#define __db_cgetchk __db_cgetchk@DB_VERSION_UNIQUE_NAME@ +int __db_cgetchk __P((const DB *, DBT *, DBT *, u_int32_t, int)); +#define __db_cputchk __db_cputchk@DB_VERSION_UNIQUE_NAME@ +int __db_cputchk __P((const DB *, const DBT *, DBT *, u_int32_t, int, int)); +#define __db_pgetchk __db_pgetchk@DB_VERSION_UNIQUE_NAME@ +int __db_pgetchk __P((const DB *, const DBT *, DBT *, DBT *, u_int32_t)); +#define __db_cpgetchk __db_cpgetchk@DB_VERSION_UNIQUE_NAME@ +int __db_cpgetchk __P((const DB *, DBT *, DBT *, DBT *, u_int32_t, int)); +#define __db_closechk __db_closechk@DB_VERSION_UNIQUE_NAME@ +int __db_closechk __P((const DB *, u_int32_t)); +#define __db_delchk __db_delchk@DB_VERSION_UNIQUE_NAME@ +int __db_delchk __P((const DB *, DBT *, u_int32_t, int)); +#define __db_getchk __db_getchk@DB_VERSION_UNIQUE_NAME@ +int __db_getchk __P((const DB *, const DBT *, DBT *, u_int32_t)); +#define __db_joinchk __db_joinchk@DB_VERSION_UNIQUE_NAME@ +int __db_joinchk __P((const DB *, DBC * const *, u_int32_t)); +#define __db_joingetchk __db_joingetchk@DB_VERSION_UNIQUE_NAME@ +int __db_joingetchk __P((const DB *, DBT *, u_int32_t)); +#define __db_putchk __db_putchk@DB_VERSION_UNIQUE_NAME@ +int __db_putchk __P((const DB *, DBT *, const DBT *, u_int32_t, int, int)); +#define __db_removechk __db_removechk@DB_VERSION_UNIQUE_NAME@ +int __db_removechk __P((const DB *, u_int32_t)); +#define __db_statchk __db_statchk@DB_VERSION_UNIQUE_NAME@ +int __db_statchk __P((const DB *, u_int32_t)); +#define __db_syncchk __db_syncchk@DB_VERSION_UNIQUE_NAME@ +int __db_syncchk __P((const DB *, u_int32_t)); +#define __db_associatechk __db_associatechk@DB_VERSION_UNIQUE_NAME@ +int __db_associatechk __P((DB *, DB *, int (*)(DB *, const DBT *, const DBT *, DBT *), u_int32_t)); +#define __db_join __db_join@DB_VERSION_UNIQUE_NAME@ +int __db_join __P((DB *, DBC **, DBC **, u_int32_t)); +#define __db_new __db_new@DB_VERSION_UNIQUE_NAME@ +int __db_new __P((DBC *, u_int32_t, PAGE **)); +#define __db_free __db_free@DB_VERSION_UNIQUE_NAME@ +int __db_free __P((DBC *, PAGE *)); +#define __db_lprint __db_lprint@DB_VERSION_UNIQUE_NAME@ +int __db_lprint __P((DBC *)); +#define __db_lget __db_lget@DB_VERSION_UNIQUE_NAME@ +int __db_lget __P((DBC *, int, db_pgno_t, db_lockmode_t, int, DB_LOCK *)); +#define __dbh_am_chk __dbh_am_chk@DB_VERSION_UNIQUE_NAME@ +int __dbh_am_chk __P((DB *, u_int32_t)); +#define __db_set_lorder __db_set_lorder@DB_VERSION_UNIQUE_NAME@ +int __db_set_lorder __P((DB *, int)); +#define __db_goff __db_goff@DB_VERSION_UNIQUE_NAME@ +int __db_goff __P((DB *, DBT *, u_int32_t, db_pgno_t, void **, u_int32_t *)); +#define __db_poff __db_poff@DB_VERSION_UNIQUE_NAME@ +int __db_poff __P((DBC *, const DBT *, db_pgno_t *)); +#define __db_ovref __db_ovref@DB_VERSION_UNIQUE_NAME@ +int __db_ovref __P((DBC *, db_pgno_t, int32_t)); +#define __db_doff __db_doff@DB_VERSION_UNIQUE_NAME@ +int __db_doff __P((DBC *, db_pgno_t)); +#define __db_moff __db_moff@DB_VERSION_UNIQUE_NAME@ +int __db_moff __P((DB *, const DBT *, db_pgno_t, u_int32_t, int (*)(DB *, const DBT *, const DBT *), int *)); +#define __db_vrfy_overflow __db_vrfy_overflow@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_overflow __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +#define __db_vrfy_ovfl_structure __db_vrfy_ovfl_structure@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_ovfl_structure __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t, u_int32_t)); +#define __db_safe_goff __db_safe_goff@DB_VERSION_UNIQUE_NAME@ +int __db_safe_goff __P((DB *, VRFY_DBINFO *, db_pgno_t, DBT *, void **, u_int32_t)); +#define __db_loadme __db_loadme@DB_VERSION_UNIQUE_NAME@ +void __db_loadme __P((void)); +#define __db_dump __db_dump@DB_VERSION_UNIQUE_NAME@ +int __db_dump __P((DB *, char *, char *)); +#define __db_prnpage __db_prnpage@DB_VERSION_UNIQUE_NAME@ +int __db_prnpage __P((DB *, db_pgno_t)); +#define __db_prpage __db_prpage@DB_VERSION_UNIQUE_NAME@ +int __db_prpage __P((DB *, PAGE *, u_int32_t)); +#define __db_pr __db_pr@DB_VERSION_UNIQUE_NAME@ +void __db_pr __P((u_int8_t *, u_int32_t)); +#define __db_prdbt __db_prdbt@DB_VERSION_UNIQUE_NAME@ +int __db_prdbt __P((DBT *, int, const char *, void *, int (*)(void *, const void *), int, VRFY_DBINFO *)); +#define __db_prflags __db_prflags@DB_VERSION_UNIQUE_NAME@ +void __db_prflags __P((u_int32_t, const FN *, FILE *)); +#define __db_prheader __db_prheader@DB_VERSION_UNIQUE_NAME@ +int __db_prheader __P((DB *, char *, int, int, void *, int (*)(void *, const void *), VRFY_DBINFO *, db_pgno_t)); +#define __db_prfooter __db_prfooter@DB_VERSION_UNIQUE_NAME@ +int __db_prfooter __P((void *, int (*)(void *, const void *))); +#define __db_addrem_recover __db_addrem_recover@DB_VERSION_UNIQUE_NAME@ +int __db_addrem_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_big_recover __db_big_recover@DB_VERSION_UNIQUE_NAME@ +int __db_big_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_ovref_recover __db_ovref_recover@DB_VERSION_UNIQUE_NAME@ +int __db_ovref_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_relink_recover __db_relink_recover@DB_VERSION_UNIQUE_NAME@ +int __db_relink_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_debug_recover __db_debug_recover@DB_VERSION_UNIQUE_NAME@ +int __db_debug_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_noop_recover __db_noop_recover@DB_VERSION_UNIQUE_NAME@ +int __db_noop_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __db_traverse_big __db_traverse_big@DB_VERSION_UNIQUE_NAME@ +int __db_traverse_big __P((DB *, db_pgno_t, int (*)(DB *, PAGE *, void *, int *), void *)); +#define __db_reclaim_callback __db_reclaim_callback@DB_VERSION_UNIQUE_NAME@ +int __db_reclaim_callback __P((DB *, PAGE *, void *, int *)); +#define __db_truncate_callback __db_truncate_callback@DB_VERSION_UNIQUE_NAME@ +int __db_truncate_callback __P((DB *, PAGE *, void *, int *)); +#define __db_ret __db_ret@DB_VERSION_UNIQUE_NAME@ +int __db_ret __P((DB *, PAGE *, u_int32_t, DBT *, void **, u_int32_t *)); +#define __db_retcopy __db_retcopy@DB_VERSION_UNIQUE_NAME@ +int __db_retcopy __P((DB *, DBT *, void *, u_int32_t, void **, u_int32_t *)); +#define __db_upgrade __db_upgrade@DB_VERSION_UNIQUE_NAME@ +int __db_upgrade __P((DB *, const char *, u_int32_t)); +#define __db_lastpgno __db_lastpgno@DB_VERSION_UNIQUE_NAME@ +int __db_lastpgno __P((DB *, char *, DB_FH *, db_pgno_t *)); +#define __db_31_offdup __db_31_offdup@DB_VERSION_UNIQUE_NAME@ +int __db_31_offdup __P((DB *, char *, DB_FH *, int, db_pgno_t *)); +#define __db_verify __db_verify@DB_VERSION_UNIQUE_NAME@ +int __db_verify __P((DB *, const char *, const char *, FILE *, u_int32_t)); +#define __db_verify_callback __db_verify_callback@DB_VERSION_UNIQUE_NAME@ +int __db_verify_callback __P((void *, const void *)); +#define __db_verify_internal __db_verify_internal@DB_VERSION_UNIQUE_NAME@ +int __db_verify_internal __P((DB *, const char *, const char *, void *, int (*)(void *, const void *), u_int32_t)); +#define __db_vrfy_datapage __db_vrfy_datapage@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_datapage __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +#define __db_vrfy_meta __db_vrfy_meta@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_meta __P((DB *, VRFY_DBINFO *, DBMETA *, db_pgno_t, u_int32_t)); +#define __db_vrfy_struct_feedback __db_vrfy_struct_feedback@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_struct_feedback __P((DB *, VRFY_DBINFO *)); +#define __db_salvage __db_salvage@DB_VERSION_UNIQUE_NAME@ +int __db_salvage __P((DB *, VRFY_DBINFO *, db_pgno_t, PAGE *, void *, int (*)(void *, const void *), u_int32_t)); +#define __db_vrfy_inpitem __db_vrfy_inpitem@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_inpitem __P((DB *, PAGE *, db_pgno_t, u_int32_t, int, u_int32_t, u_int32_t *, u_int32_t *)); +#define __db_vrfy_duptype __db_vrfy_duptype@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_duptype __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t)); +#define __db_salvage_duptree __db_salvage_duptree@DB_VERSION_UNIQUE_NAME@ +int __db_salvage_duptree __P((DB *, VRFY_DBINFO *, db_pgno_t, DBT *, void *, int (*)(void *, const void *), u_int32_t)); +#define __db_vrfy_dbinfo_create __db_vrfy_dbinfo_create@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_dbinfo_create __P((DB_ENV *, u_int32_t, VRFY_DBINFO **)); +#define __db_vrfy_dbinfo_destroy __db_vrfy_dbinfo_destroy@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_dbinfo_destroy __P((DB_ENV *, VRFY_DBINFO *)); +#define __db_vrfy_getpageinfo __db_vrfy_getpageinfo@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_getpageinfo __P((VRFY_DBINFO *, db_pgno_t, VRFY_PAGEINFO **)); +#define __db_vrfy_putpageinfo __db_vrfy_putpageinfo@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_putpageinfo __P((DB_ENV *, VRFY_DBINFO *, VRFY_PAGEINFO *)); +#define __db_vrfy_pgset __db_vrfy_pgset@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_pgset __P((DB_ENV *, u_int32_t, DB **)); +#define __db_vrfy_pgset_get __db_vrfy_pgset_get@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_pgset_get __P((DB *, db_pgno_t, int *)); +#define __db_vrfy_pgset_inc __db_vrfy_pgset_inc@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_pgset_inc __P((DB *, db_pgno_t)); +#define __db_vrfy_pgset_dec __db_vrfy_pgset_dec@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_pgset_dec __P((DB *, db_pgno_t)); +#define __db_vrfy_pgset_next __db_vrfy_pgset_next@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_pgset_next __P((DBC *, db_pgno_t *)); +#define __db_vrfy_childcursor __db_vrfy_childcursor@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_childcursor __P((VRFY_DBINFO *, DBC **)); +#define __db_vrfy_childput __db_vrfy_childput@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_childput __P((VRFY_DBINFO *, db_pgno_t, VRFY_CHILDINFO *)); +#define __db_vrfy_ccset __db_vrfy_ccset@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_ccset __P((DBC *, db_pgno_t, VRFY_CHILDINFO **)); +#define __db_vrfy_ccnext __db_vrfy_ccnext@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_ccnext __P((DBC *, VRFY_CHILDINFO **)); +#define __db_vrfy_ccclose __db_vrfy_ccclose@DB_VERSION_UNIQUE_NAME@ +int __db_vrfy_ccclose __P((DBC *)); +#define __db_salvage_init __db_salvage_init@DB_VERSION_UNIQUE_NAME@ +int __db_salvage_init __P((VRFY_DBINFO *)); +#define __db_salvage_destroy __db_salvage_destroy@DB_VERSION_UNIQUE_NAME@ +void __db_salvage_destroy __P((VRFY_DBINFO *)); +#define __db_salvage_getnext __db_salvage_getnext@DB_VERSION_UNIQUE_NAME@ +int __db_salvage_getnext __P((VRFY_DBINFO *, db_pgno_t *, u_int32_t *)); +#define __db_salvage_isdone __db_salvage_isdone@DB_VERSION_UNIQUE_NAME@ +int __db_salvage_isdone __P((VRFY_DBINFO *, db_pgno_t)); +#define __db_salvage_markdone __db_salvage_markdone@DB_VERSION_UNIQUE_NAME@ +int __db_salvage_markdone __P((VRFY_DBINFO *, db_pgno_t)); +#define __db_salvage_markneeded __db_salvage_markneeded@DB_VERSION_UNIQUE_NAME@ +int __db_salvage_markneeded __P((VRFY_DBINFO *, db_pgno_t, u_int32_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _db_ext_h_ */ diff --git a/db/include_auto/db_server.h b/db/include_auto/db_server.h new file mode 100644 index 000000000..93c99ca1d --- /dev/null +++ b/db/include_auto/db_server.h @@ -0,0 +1,904 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#ifndef _DB_SERVER_H_RPCGEN +#define _DB_SERVER_H_RPCGEN + +#include <rpc/rpc.h> + +struct __env_cachesize_msg { + u_int dbenvcl_id; + u_int gbytes; + u_int bytes; + u_int ncache; +}; +typedef struct __env_cachesize_msg __env_cachesize_msg; + +struct __env_cachesize_reply { + int status; +}; +typedef struct __env_cachesize_reply __env_cachesize_reply; + +struct __env_close_msg { + u_int dbenvcl_id; + u_int flags; +}; +typedef struct __env_close_msg __env_close_msg; + +struct __env_close_reply { + int status; +}; +typedef struct __env_close_reply __env_close_reply; + +struct __env_create_msg { + u_int timeout; +}; +typedef struct __env_create_msg __env_create_msg; + +struct __env_create_reply { + int status; + u_int envcl_id; +}; +typedef struct __env_create_reply __env_create_reply; + +struct __env_flags_msg { + u_int dbenvcl_id; + u_int flags; + u_int onoff; +}; +typedef struct __env_flags_msg __env_flags_msg; + +struct __env_flags_reply { + int status; +}; +typedef struct __env_flags_reply __env_flags_reply; + +struct __env_open_msg { + u_int dbenvcl_id; + char *home; + u_int flags; + u_int mode; +}; +typedef struct __env_open_msg __env_open_msg; + +struct __env_open_reply { + int status; +}; +typedef struct __env_open_reply __env_open_reply; + +struct __env_remove_msg { + u_int dbenvcl_id; + char *home; + u_int flags; +}; +typedef struct __env_remove_msg __env_remove_msg; + +struct __env_remove_reply { + int status; +}; +typedef struct __env_remove_reply __env_remove_reply; + +struct __txn_abort_msg { + u_int txnpcl_id; +}; +typedef struct __txn_abort_msg __txn_abort_msg; + +struct __txn_abort_reply { + int status; +}; +typedef struct __txn_abort_reply __txn_abort_reply; + +struct __txn_begin_msg { + u_int dbenvcl_id; + u_int parentcl_id; + u_int flags; +}; +typedef struct __txn_begin_msg __txn_begin_msg; + +struct __txn_begin_reply { + int status; + u_int txnidcl_id; +}; +typedef struct __txn_begin_reply __txn_begin_reply; + +struct __txn_commit_msg { + u_int txnpcl_id; + u_int flags; +}; +typedef struct __txn_commit_msg __txn_commit_msg; + +struct __txn_commit_reply { + int status; +}; +typedef struct __txn_commit_reply __txn_commit_reply; + +struct __txn_prepare_msg { + u_int txnpcl_id; + char gid[128]; +}; +typedef struct __txn_prepare_msg __txn_prepare_msg; + +struct __txn_prepare_reply { + int status; +}; +typedef struct __txn_prepare_reply __txn_prepare_reply; + +struct __txn_recover_msg { + u_int dbenvcl_id; + u_int count; + u_int flags; +}; +typedef struct __txn_recover_msg __txn_recover_msg; + +struct __txn_recover_reply { + int status; + struct { + u_int txn_len; + u_int *txn_val; + } txn; + struct { + u_int gid_len; + char *gid_val; + } gid; + u_int retcount; +}; +typedef struct __txn_recover_reply __txn_recover_reply; + +struct __db_associate_msg { + u_int dbpcl_id; + u_int sdbpcl_id; + u_int flags; +}; +typedef struct __db_associate_msg __db_associate_msg; + +struct __db_associate_reply { + int status; +}; +typedef struct __db_associate_reply __db_associate_reply; + +struct __db_bt_maxkey_msg { + u_int dbpcl_id; + u_int maxkey; +}; +typedef struct __db_bt_maxkey_msg __db_bt_maxkey_msg; + +struct __db_bt_maxkey_reply { + int status; +}; +typedef struct __db_bt_maxkey_reply __db_bt_maxkey_reply; + +struct __db_bt_minkey_msg { + u_int dbpcl_id; + u_int minkey; +}; +typedef struct __db_bt_minkey_msg __db_bt_minkey_msg; + +struct __db_bt_minkey_reply { + int status; +}; +typedef struct __db_bt_minkey_reply __db_bt_minkey_reply; + +struct __db_close_msg { + u_int dbpcl_id; + u_int flags; +}; +typedef struct __db_close_msg __db_close_msg; + +struct __db_close_reply { + int status; +}; +typedef struct __db_close_reply __db_close_reply; + +struct __db_create_msg { + u_int dbenvcl_id; + u_int flags; +}; +typedef struct __db_create_msg __db_create_msg; + +struct __db_create_reply { + int status; + u_int dbcl_id; +}; +typedef struct __db_create_reply __db_create_reply; + +struct __db_del_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int flags; +}; +typedef struct __db_del_msg __db_del_msg; + +struct __db_del_reply { + int status; +}; +typedef struct __db_del_reply __db_del_reply; + +struct __db_extentsize_msg { + u_int dbpcl_id; + u_int extentsize; +}; +typedef struct __db_extentsize_msg __db_extentsize_msg; + +struct __db_extentsize_reply { + int status; +}; +typedef struct __db_extentsize_reply __db_extentsize_reply; + +struct __db_flags_msg { + u_int dbpcl_id; + u_int flags; +}; +typedef struct __db_flags_msg __db_flags_msg; + +struct __db_flags_reply { + int status; +}; +typedef struct __db_flags_reply __db_flags_reply; + +struct __db_get_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __db_get_msg __db_get_msg; + +struct __db_get_reply { + int status; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; +}; +typedef struct __db_get_reply __db_get_reply; + +struct __db_h_ffactor_msg { + u_int dbpcl_id; + u_int ffactor; +}; +typedef struct __db_h_ffactor_msg __db_h_ffactor_msg; + +struct __db_h_ffactor_reply { + int status; +}; +typedef struct __db_h_ffactor_reply __db_h_ffactor_reply; + +struct __db_h_nelem_msg { + u_int dbpcl_id; + u_int nelem; +}; +typedef struct __db_h_nelem_msg __db_h_nelem_msg; + +struct __db_h_nelem_reply { + int status; +}; +typedef struct __db_h_nelem_reply __db_h_nelem_reply; + +struct __db_key_range_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int flags; +}; +typedef struct __db_key_range_msg __db_key_range_msg; + +struct __db_key_range_reply { + int status; + double less; + double equal; + double greater; +}; +typedef struct __db_key_range_reply __db_key_range_reply; + +struct __db_lorder_msg { + u_int dbpcl_id; + u_int lorder; +}; +typedef struct __db_lorder_msg __db_lorder_msg; + +struct __db_lorder_reply { + int status; +}; +typedef struct __db_lorder_reply __db_lorder_reply; + +struct __db_open_msg { + u_int dbpcl_id; + char *name; + char *subdb; + u_int type; + u_int flags; + u_int mode; +}; +typedef struct __db_open_msg __db_open_msg; + +struct __db_open_reply { + int status; + u_int type; + u_int dbflags; + u_int lorder; +}; +typedef struct __db_open_reply __db_open_reply; + +struct __db_pagesize_msg { + u_int dbpcl_id; + u_int pagesize; +}; +typedef struct __db_pagesize_msg __db_pagesize_msg; + +struct __db_pagesize_reply { + int status; +}; +typedef struct __db_pagesize_reply __db_pagesize_reply; + +struct __db_pget_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int skeydlen; + u_int skeydoff; + u_int skeyflags; + struct { + u_int skeydata_len; + char *skeydata_val; + } skeydata; + u_int pkeydlen; + u_int pkeydoff; + u_int pkeyflags; + struct { + u_int pkeydata_len; + char *pkeydata_val; + } pkeydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __db_pget_msg __db_pget_msg; + +struct __db_pget_reply { + int status; + struct { + u_int skeydata_len; + char *skeydata_val; + } skeydata; + struct { + u_int pkeydata_len; + char *pkeydata_val; + } pkeydata; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; +}; +typedef struct __db_pget_reply __db_pget_reply; + +struct __db_put_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __db_put_msg __db_put_msg; + +struct __db_put_reply { + int status; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; +}; +typedef struct __db_put_reply __db_put_reply; + +struct __db_re_delim_msg { + u_int dbpcl_id; + u_int delim; +}; +typedef struct __db_re_delim_msg __db_re_delim_msg; + +struct __db_re_delim_reply { + int status; +}; +typedef struct __db_re_delim_reply __db_re_delim_reply; + +struct __db_re_len_msg { + u_int dbpcl_id; + u_int len; +}; +typedef struct __db_re_len_msg __db_re_len_msg; + +struct __db_re_len_reply { + int status; +}; +typedef struct __db_re_len_reply __db_re_len_reply; + +struct __db_re_pad_msg { + u_int dbpcl_id; + u_int pad; +}; +typedef struct __db_re_pad_msg __db_re_pad_msg; + +struct __db_re_pad_reply { + int status; +}; +typedef struct __db_re_pad_reply __db_re_pad_reply; + +struct __db_remove_msg { + u_int dbpcl_id; + char *name; + char *subdb; + u_int flags; +}; +typedef struct __db_remove_msg __db_remove_msg; + +struct __db_remove_reply { + int status; +}; +typedef struct __db_remove_reply __db_remove_reply; + +struct __db_rename_msg { + u_int dbpcl_id; + char *name; + char *subdb; + char *newname; + u_int flags; +}; +typedef struct __db_rename_msg __db_rename_msg; + +struct __db_rename_reply { + int status; +}; +typedef struct __db_rename_reply __db_rename_reply; + +struct __db_stat_msg { + u_int dbpcl_id; + u_int flags; +}; +typedef struct __db_stat_msg __db_stat_msg; + +struct __db_stat_reply { + int status; + struct { + u_int stats_len; + u_int *stats_val; + } stats; +}; +typedef struct __db_stat_reply __db_stat_reply; + +struct __db_sync_msg { + u_int dbpcl_id; + u_int flags; +}; +typedef struct __db_sync_msg __db_sync_msg; + +struct __db_sync_reply { + int status; +}; +typedef struct __db_sync_reply __db_sync_reply; + +struct __db_truncate_msg { + u_int dbpcl_id; + char *name; + char *subdb; + u_int flags; +}; +typedef struct __db_truncate_msg __db_truncate_msg; + +struct __db_truncate_reply { + int status; + u_int count; +}; +typedef struct __db_truncate_reply __db_truncate_reply; + +struct __db_cursor_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int flags; +}; +typedef struct __db_cursor_msg __db_cursor_msg; + +struct __db_cursor_reply { + int status; + u_int dbcidcl_id; +}; +typedef struct __db_cursor_reply __db_cursor_reply; + +struct __db_join_msg { + u_int dbpcl_id; + struct { + u_int curs_len; + u_int *curs_val; + } curs; + u_int flags; +}; +typedef struct __db_join_msg __db_join_msg; + +struct __db_join_reply { + int status; + u_int dbcidcl_id; +}; +typedef struct __db_join_reply __db_join_reply; + +struct __dbc_close_msg { + u_int dbccl_id; +}; +typedef struct __dbc_close_msg __dbc_close_msg; + +struct __dbc_close_reply { + int status; +}; +typedef struct __dbc_close_reply __dbc_close_reply; + +struct __dbc_count_msg { + u_int dbccl_id; + u_int flags; +}; +typedef struct __dbc_count_msg __dbc_count_msg; + +struct __dbc_count_reply { + int status; + u_int dupcount; +}; +typedef struct __dbc_count_reply __dbc_count_reply; + +struct __dbc_del_msg { + u_int dbccl_id; + u_int flags; +}; +typedef struct __dbc_del_msg __dbc_del_msg; + +struct __dbc_del_reply { + int status; +}; +typedef struct __dbc_del_reply __dbc_del_reply; + +struct __dbc_dup_msg { + u_int dbccl_id; + u_int flags; +}; +typedef struct __dbc_dup_msg __dbc_dup_msg; + +struct __dbc_dup_reply { + int status; + u_int dbcidcl_id; +}; +typedef struct __dbc_dup_reply __dbc_dup_reply; + +struct __dbc_get_msg { + u_int dbccl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __dbc_get_msg __dbc_get_msg; + +struct __dbc_get_reply { + int status; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; +}; +typedef struct __dbc_get_reply __dbc_get_reply; + +struct __dbc_pget_msg { + u_int dbccl_id; + u_int skeydlen; + u_int skeydoff; + u_int skeyflags; + struct { + u_int skeydata_len; + char *skeydata_val; + } skeydata; + u_int pkeydlen; + u_int pkeydoff; + u_int pkeyflags; + struct { + u_int pkeydata_len; + char *pkeydata_val; + } pkeydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __dbc_pget_msg __dbc_pget_msg; + +struct __dbc_pget_reply { + int status; + struct { + u_int skeydata_len; + char *skeydata_val; + } skeydata; + struct { + u_int pkeydata_len; + char *pkeydata_val; + } pkeydata; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; +}; +typedef struct __dbc_pget_reply __dbc_pget_reply; + +struct __dbc_put_msg { + u_int dbccl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __dbc_put_msg __dbc_put_msg; + +struct __dbc_put_reply { + int status; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; +}; +typedef struct __dbc_put_reply __dbc_put_reply; + +#define __DB_env_cachesize ((unsigned long)(1)) +extern __env_cachesize_reply * __db_env_cachesize_3003(); +#define __DB_env_close ((unsigned long)(2)) +extern __env_close_reply * __db_env_close_3003(); +#define __DB_env_create ((unsigned long)(3)) +extern __env_create_reply * __db_env_create_3003(); +#define __DB_env_flags ((unsigned long)(4)) +extern __env_flags_reply * __db_env_flags_3003(); +#define __DB_env_open ((unsigned long)(5)) +extern __env_open_reply * __db_env_open_3003(); +#define __DB_env_remove ((unsigned long)(6)) +extern __env_remove_reply * __db_env_remove_3003(); +#define __DB_txn_abort ((unsigned long)(7)) +extern __txn_abort_reply * __db_txn_abort_3003(); +#define __DB_txn_begin ((unsigned long)(8)) +extern __txn_begin_reply * __db_txn_begin_3003(); +#define __DB_txn_commit ((unsigned long)(9)) +extern __txn_commit_reply * __db_txn_commit_3003(); +#define __DB_txn_prepare ((unsigned long)(10)) +extern __txn_prepare_reply * __db_txn_prepare_3003(); +#define __DB_txn_recover ((unsigned long)(11)) +extern __txn_recover_reply * __db_txn_recover_3003(); +#define __DB_db_associate ((unsigned long)(12)) +extern __db_associate_reply * __db_db_associate_3003(); +#define __DB_db_bt_maxkey ((unsigned long)(13)) +extern __db_bt_maxkey_reply * __db_db_bt_maxkey_3003(); +#define __DB_db_bt_minkey ((unsigned long)(14)) +extern __db_bt_minkey_reply * __db_db_bt_minkey_3003(); +#define __DB_db_close ((unsigned long)(15)) +extern __db_close_reply * __db_db_close_3003(); +#define __DB_db_create ((unsigned long)(16)) +extern __db_create_reply * __db_db_create_3003(); +#define __DB_db_del ((unsigned long)(17)) +extern __db_del_reply * __db_db_del_3003(); +#define __DB_db_extentsize ((unsigned long)(18)) +extern __db_extentsize_reply * __db_db_extentsize_3003(); +#define __DB_db_flags ((unsigned long)(19)) +extern __db_flags_reply * __db_db_flags_3003(); +#define __DB_db_get ((unsigned long)(20)) +extern __db_get_reply * __db_db_get_3003(); +#define __DB_db_h_ffactor ((unsigned long)(21)) +extern __db_h_ffactor_reply * __db_db_h_ffactor_3003(); +#define __DB_db_h_nelem ((unsigned long)(22)) +extern __db_h_nelem_reply * __db_db_h_nelem_3003(); +#define __DB_db_key_range ((unsigned long)(23)) +extern __db_key_range_reply * __db_db_key_range_3003(); +#define __DB_db_lorder ((unsigned long)(24)) +extern __db_lorder_reply * __db_db_lorder_3003(); +#define __DB_db_open ((unsigned long)(25)) +extern __db_open_reply * __db_db_open_3003(); +#define __DB_db_pagesize ((unsigned long)(26)) +extern __db_pagesize_reply * __db_db_pagesize_3003(); +#define __DB_db_pget ((unsigned long)(27)) +extern __db_pget_reply * __db_db_pget_3003(); +#define __DB_db_put ((unsigned long)(28)) +extern __db_put_reply * __db_db_put_3003(); +#define __DB_db_re_delim ((unsigned long)(29)) +extern __db_re_delim_reply * __db_db_re_delim_3003(); +#define __DB_db_re_len ((unsigned long)(30)) +extern __db_re_len_reply * __db_db_re_len_3003(); +#define __DB_db_re_pad ((unsigned long)(31)) +extern __db_re_pad_reply * __db_db_re_pad_3003(); +#define __DB_db_remove ((unsigned long)(32)) +extern __db_remove_reply * __db_db_remove_3003(); +#define __DB_db_rename ((unsigned long)(33)) +extern __db_rename_reply * __db_db_rename_3003(); +#define __DB_db_stat ((unsigned long)(34)) +extern __db_stat_reply * __db_db_stat_3003(); +#define __DB_db_sync ((unsigned long)(35)) +extern __db_sync_reply * __db_db_sync_3003(); +#define __DB_db_truncate ((unsigned long)(36)) +extern __db_truncate_reply * __db_db_truncate_3003(); +#define __DB_db_cursor ((unsigned long)(37)) +extern __db_cursor_reply * __db_db_cursor_3003(); +#define __DB_db_join ((unsigned long)(38)) +extern __db_join_reply * __db_db_join_3003(); +#define __DB_dbc_close ((unsigned long)(39)) +extern __dbc_close_reply * __db_dbc_close_3003(); +#define __DB_dbc_count ((unsigned long)(40)) +extern __dbc_count_reply * __db_dbc_count_3003(); +#define __DB_dbc_del ((unsigned long)(41)) +extern __dbc_del_reply * __db_dbc_del_3003(); +#define __DB_dbc_dup ((unsigned long)(42)) +extern __dbc_dup_reply * __db_dbc_dup_3003(); +#define __DB_dbc_get ((unsigned long)(43)) +extern __dbc_get_reply * __db_dbc_get_3003(); +#define __DB_dbc_pget ((unsigned long)(44)) +extern __dbc_pget_reply * __db_dbc_pget_3003(); +#define __DB_dbc_put ((unsigned long)(45)) +extern __dbc_put_reply * __db_dbc_put_3003(); +extern int db_rpc_serverprog_3003_freeresult(); + +/* the xdr functions */ +extern bool_t xdr___env_cachesize_msg(); +extern bool_t xdr___env_cachesize_reply(); +extern bool_t xdr___env_close_msg(); +extern bool_t xdr___env_close_reply(); +extern bool_t xdr___env_create_msg(); +extern bool_t xdr___env_create_reply(); +extern bool_t xdr___env_flags_msg(); +extern bool_t xdr___env_flags_reply(); +extern bool_t xdr___env_open_msg(); +extern bool_t xdr___env_open_reply(); +extern bool_t xdr___env_remove_msg(); +extern bool_t xdr___env_remove_reply(); +extern bool_t xdr___txn_abort_msg(); +extern bool_t xdr___txn_abort_reply(); +extern bool_t xdr___txn_begin_msg(); +extern bool_t xdr___txn_begin_reply(); +extern bool_t xdr___txn_commit_msg(); +extern bool_t xdr___txn_commit_reply(); +extern bool_t xdr___txn_prepare_msg(); +extern bool_t xdr___txn_prepare_reply(); +extern bool_t xdr___txn_recover_msg(); +extern bool_t xdr___txn_recover_reply(); +extern bool_t xdr___db_associate_msg(); +extern bool_t xdr___db_associate_reply(); +extern bool_t xdr___db_bt_maxkey_msg(); +extern bool_t xdr___db_bt_maxkey_reply(); +extern bool_t xdr___db_bt_minkey_msg(); +extern bool_t xdr___db_bt_minkey_reply(); +extern bool_t xdr___db_close_msg(); +extern bool_t xdr___db_close_reply(); +extern bool_t xdr___db_create_msg(); +extern bool_t xdr___db_create_reply(); +extern bool_t xdr___db_del_msg(); +extern bool_t xdr___db_del_reply(); +extern bool_t xdr___db_extentsize_msg(); +extern bool_t xdr___db_extentsize_reply(); +extern bool_t xdr___db_flags_msg(); +extern bool_t xdr___db_flags_reply(); +extern bool_t xdr___db_get_msg(); +extern bool_t xdr___db_get_reply(); +extern bool_t xdr___db_h_ffactor_msg(); +extern bool_t xdr___db_h_ffactor_reply(); +extern bool_t xdr___db_h_nelem_msg(); +extern bool_t xdr___db_h_nelem_reply(); +extern bool_t xdr___db_key_range_msg(); +extern bool_t xdr___db_key_range_reply(); +extern bool_t xdr___db_lorder_msg(); +extern bool_t xdr___db_lorder_reply(); +extern bool_t xdr___db_open_msg(); +extern bool_t xdr___db_open_reply(); +extern bool_t xdr___db_pagesize_msg(); +extern bool_t xdr___db_pagesize_reply(); +extern bool_t xdr___db_pget_msg(); +extern bool_t xdr___db_pget_reply(); +extern bool_t xdr___db_put_msg(); +extern bool_t xdr___db_put_reply(); +extern bool_t xdr___db_re_delim_msg(); +extern bool_t xdr___db_re_delim_reply(); +extern bool_t xdr___db_re_len_msg(); +extern bool_t xdr___db_re_len_reply(); +extern bool_t xdr___db_re_pad_msg(); +extern bool_t xdr___db_re_pad_reply(); +extern bool_t xdr___db_remove_msg(); +extern bool_t xdr___db_remove_reply(); +extern bool_t xdr___db_rename_msg(); +extern bool_t xdr___db_rename_reply(); +extern bool_t xdr___db_stat_msg(); +extern bool_t xdr___db_stat_reply(); +extern bool_t xdr___db_sync_msg(); +extern bool_t xdr___db_sync_reply(); +extern bool_t xdr___db_truncate_msg(); +extern bool_t xdr___db_truncate_reply(); +extern bool_t xdr___db_cursor_msg(); +extern bool_t xdr___db_cursor_reply(); +extern bool_t xdr___db_join_msg(); +extern bool_t xdr___db_join_reply(); +extern bool_t xdr___dbc_close_msg(); +extern bool_t xdr___dbc_close_reply(); +extern bool_t xdr___dbc_count_msg(); +extern bool_t xdr___dbc_count_reply(); +extern bool_t xdr___dbc_del_msg(); +extern bool_t xdr___dbc_del_reply(); +extern bool_t xdr___dbc_dup_msg(); +extern bool_t xdr___dbc_dup_reply(); +extern bool_t xdr___dbc_get_msg(); +extern bool_t xdr___dbc_get_reply(); +extern bool_t xdr___dbc_pget_msg(); +extern bool_t xdr___dbc_pget_reply(); +extern bool_t xdr___dbc_put_msg(); +extern bool_t xdr___dbc_put_reply(); + +#endif /* !_DB_SERVER_H_RPCGEN */ diff --git a/db/include_auto/db_server.in b/db/include_auto/db_server.in new file mode 100644 index 000000000..c17f39401 --- /dev/null +++ b/db/include_auto/db_server.in @@ -0,0 +1,994 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#ifndef _DB_SERVER_H_RPCGEN +#define _DB_SERVER_H_RPCGEN + +#include <rpc/rpc.h> + +struct __env_cachesize_msg { + u_int dbenvcl_id; + u_int gbytes; + u_int bytes; + u_int ncache; +}; +typedef struct __env_cachesize_msg __env_cachesize_msg; + +struct __env_cachesize_reply { + int status; +}; +typedef struct __env_cachesize_reply __env_cachesize_reply; + +struct __env_close_msg { + u_int dbenvcl_id; + u_int flags; +}; +typedef struct __env_close_msg __env_close_msg; + +struct __env_close_reply { + int status; +}; +typedef struct __env_close_reply __env_close_reply; + +struct __env_create_msg { + u_int timeout; +}; +typedef struct __env_create_msg __env_create_msg; + +struct __env_create_reply { + int status; + u_int envcl_id; +}; +typedef struct __env_create_reply __env_create_reply; + +struct __env_flags_msg { + u_int dbenvcl_id; + u_int flags; + u_int onoff; +}; +typedef struct __env_flags_msg __env_flags_msg; + +struct __env_flags_reply { + int status; +}; +typedef struct __env_flags_reply __env_flags_reply; + +struct __env_open_msg { + u_int dbenvcl_id; + char *home; + u_int flags; + u_int mode; +}; +typedef struct __env_open_msg __env_open_msg; + +struct __env_open_reply { + int status; +}; +typedef struct __env_open_reply __env_open_reply; + +struct __env_remove_msg { + u_int dbenvcl_id; + char *home; + u_int flags; +}; +typedef struct __env_remove_msg __env_remove_msg; + +struct __env_remove_reply { + int status; +}; +typedef struct __env_remove_reply __env_remove_reply; + +struct __txn_abort_msg { + u_int txnpcl_id; +}; +typedef struct __txn_abort_msg __txn_abort_msg; + +struct __txn_abort_reply { + int status; +}; +typedef struct __txn_abort_reply __txn_abort_reply; + +struct __txn_begin_msg { + u_int dbenvcl_id; + u_int parentcl_id; + u_int flags; +}; +typedef struct __txn_begin_msg __txn_begin_msg; + +struct __txn_begin_reply { + int status; + u_int txnidcl_id; +}; +typedef struct __txn_begin_reply __txn_begin_reply; + +struct __txn_commit_msg { + u_int txnpcl_id; + u_int flags; +}; +typedef struct __txn_commit_msg __txn_commit_msg; + +struct __txn_commit_reply { + int status; +}; +typedef struct __txn_commit_reply __txn_commit_reply; + +struct __txn_prepare_msg { + u_int txnpcl_id; + char gid[128]; +}; +typedef struct __txn_prepare_msg __txn_prepare_msg; + +struct __txn_prepare_reply { + int status; +}; +typedef struct __txn_prepare_reply __txn_prepare_reply; + +struct __txn_recover_msg { + u_int dbenvcl_id; + u_int count; + u_int flags; +}; +typedef struct __txn_recover_msg __txn_recover_msg; + +struct __txn_recover_reply { + int status; + struct { + u_int txn_len; + u_int *txn_val; + } txn; + struct { + u_int gid_len; + char *gid_val; + } gid; + u_int retcount; +}; +typedef struct __txn_recover_reply __txn_recover_reply; + +struct __db_associate_msg { + u_int dbpcl_id; + u_int sdbpcl_id; + u_int flags; +}; +typedef struct __db_associate_msg __db_associate_msg; + +struct __db_associate_reply { + int status; +}; +typedef struct __db_associate_reply __db_associate_reply; + +struct __db_bt_maxkey_msg { + u_int dbpcl_id; + u_int maxkey; +}; +typedef struct __db_bt_maxkey_msg __db_bt_maxkey_msg; + +struct __db_bt_maxkey_reply { + int status; +}; +typedef struct __db_bt_maxkey_reply __db_bt_maxkey_reply; + +struct __db_bt_minkey_msg { + u_int dbpcl_id; + u_int minkey; +}; +typedef struct __db_bt_minkey_msg __db_bt_minkey_msg; + +struct __db_bt_minkey_reply { + int status; +}; +typedef struct __db_bt_minkey_reply __db_bt_minkey_reply; + +struct __db_close_msg { + u_int dbpcl_id; + u_int flags; +}; +typedef struct __db_close_msg __db_close_msg; + +struct __db_close_reply { + int status; +}; +typedef struct __db_close_reply __db_close_reply; + +struct __db_create_msg { + u_int dbenvcl_id; + u_int flags; +}; +typedef struct __db_create_msg __db_create_msg; + +struct __db_create_reply { + int status; + u_int dbcl_id; +}; +typedef struct __db_create_reply __db_create_reply; + +struct __db_del_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int flags; +}; +typedef struct __db_del_msg __db_del_msg; + +struct __db_del_reply { + int status; +}; +typedef struct __db_del_reply __db_del_reply; + +struct __db_extentsize_msg { + u_int dbpcl_id; + u_int extentsize; +}; +typedef struct __db_extentsize_msg __db_extentsize_msg; + +struct __db_extentsize_reply { + int status; +}; +typedef struct __db_extentsize_reply __db_extentsize_reply; + +struct __db_flags_msg { + u_int dbpcl_id; + u_int flags; +}; +typedef struct __db_flags_msg __db_flags_msg; + +struct __db_flags_reply { + int status; +}; +typedef struct __db_flags_reply __db_flags_reply; + +struct __db_get_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __db_get_msg __db_get_msg; + +struct __db_get_reply { + int status; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; +}; +typedef struct __db_get_reply __db_get_reply; + +struct __db_h_ffactor_msg { + u_int dbpcl_id; + u_int ffactor; +}; +typedef struct __db_h_ffactor_msg __db_h_ffactor_msg; + +struct __db_h_ffactor_reply { + int status; +}; +typedef struct __db_h_ffactor_reply __db_h_ffactor_reply; + +struct __db_h_nelem_msg { + u_int dbpcl_id; + u_int nelem; +}; +typedef struct __db_h_nelem_msg __db_h_nelem_msg; + +struct __db_h_nelem_reply { + int status; +}; +typedef struct __db_h_nelem_reply __db_h_nelem_reply; + +struct __db_key_range_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int flags; +}; +typedef struct __db_key_range_msg __db_key_range_msg; + +struct __db_key_range_reply { + int status; + double less; + double equal; + double greater; +}; +typedef struct __db_key_range_reply __db_key_range_reply; + +struct __db_lorder_msg { + u_int dbpcl_id; + u_int lorder; +}; +typedef struct __db_lorder_msg __db_lorder_msg; + +struct __db_lorder_reply { + int status; +}; +typedef struct __db_lorder_reply __db_lorder_reply; + +struct __db_open_msg { + u_int dbpcl_id; + char *name; + char *subdb; + u_int type; + u_int flags; + u_int mode; +}; +typedef struct __db_open_msg __db_open_msg; + +struct __db_open_reply { + int status; + u_int type; + u_int dbflags; + u_int lorder; +}; +typedef struct __db_open_reply __db_open_reply; + +struct __db_pagesize_msg { + u_int dbpcl_id; + u_int pagesize; +}; +typedef struct __db_pagesize_msg __db_pagesize_msg; + +struct __db_pagesize_reply { + int status; +}; +typedef struct __db_pagesize_reply __db_pagesize_reply; + +struct __db_pget_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int skeydlen; + u_int skeydoff; + u_int skeyflags; + struct { + u_int skeydata_len; + char *skeydata_val; + } skeydata; + u_int pkeydlen; + u_int pkeydoff; + u_int pkeyflags; + struct { + u_int pkeydata_len; + char *pkeydata_val; + } pkeydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __db_pget_msg __db_pget_msg; + +struct __db_pget_reply { + int status; + struct { + u_int skeydata_len; + char *skeydata_val; + } skeydata; + struct { + u_int pkeydata_len; + char *pkeydata_val; + } pkeydata; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; +}; +typedef struct __db_pget_reply __db_pget_reply; + +struct __db_put_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __db_put_msg __db_put_msg; + +struct __db_put_reply { + int status; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; +}; +typedef struct __db_put_reply __db_put_reply; + +struct __db_re_delim_msg { + u_int dbpcl_id; + u_int delim; +}; +typedef struct __db_re_delim_msg __db_re_delim_msg; + +struct __db_re_delim_reply { + int status; +}; +typedef struct __db_re_delim_reply __db_re_delim_reply; + +struct __db_re_len_msg { + u_int dbpcl_id; + u_int len; +}; +typedef struct __db_re_len_msg __db_re_len_msg; + +struct __db_re_len_reply { + int status; +}; +typedef struct __db_re_len_reply __db_re_len_reply; + +struct __db_re_pad_msg { + u_int dbpcl_id; + u_int pad; +}; +typedef struct __db_re_pad_msg __db_re_pad_msg; + +struct __db_re_pad_reply { + int status; +}; +typedef struct __db_re_pad_reply __db_re_pad_reply; + +struct __db_remove_msg { + u_int dbpcl_id; + char *name; + char *subdb; + u_int flags; +}; +typedef struct __db_remove_msg __db_remove_msg; + +struct __db_remove_reply { + int status; +}; +typedef struct __db_remove_reply __db_remove_reply; + +struct __db_rename_msg { + u_int dbpcl_id; + char *name; + char *subdb; + char *newname; + u_int flags; +}; +typedef struct __db_rename_msg __db_rename_msg; + +struct __db_rename_reply { + int status; +}; +typedef struct __db_rename_reply __db_rename_reply; + +struct __db_stat_msg { + u_int dbpcl_id; + u_int flags; +}; +typedef struct __db_stat_msg __db_stat_msg; + +struct __db_stat_reply { + int status; + struct { + u_int stats_len; + u_int *stats_val; + } stats; +}; +typedef struct __db_stat_reply __db_stat_reply; + +struct __db_sync_msg { + u_int dbpcl_id; + u_int flags; +}; +typedef struct __db_sync_msg __db_sync_msg; + +struct __db_sync_reply { + int status; +}; +typedef struct __db_sync_reply __db_sync_reply; + +struct __db_truncate_msg { + u_int dbpcl_id; + char *name; + char *subdb; + u_int flags; +}; +typedef struct __db_truncate_msg __db_truncate_msg; + +struct __db_truncate_reply { + int status; + u_int count; +}; +typedef struct __db_truncate_reply __db_truncate_reply; + +struct __db_cursor_msg { + u_int dbpcl_id; + u_int txnpcl_id; + u_int flags; +}; +typedef struct __db_cursor_msg __db_cursor_msg; + +struct __db_cursor_reply { + int status; + u_int dbcidcl_id; +}; +typedef struct __db_cursor_reply __db_cursor_reply; + +struct __db_join_msg { + u_int dbpcl_id; + struct { + u_int curs_len; + u_int *curs_val; + } curs; + u_int flags; +}; +typedef struct __db_join_msg __db_join_msg; + +struct __db_join_reply { + int status; + u_int dbcidcl_id; +}; +typedef struct __db_join_reply __db_join_reply; + +struct __dbc_close_msg { + u_int dbccl_id; +}; +typedef struct __dbc_close_msg __dbc_close_msg; + +struct __dbc_close_reply { + int status; +}; +typedef struct __dbc_close_reply __dbc_close_reply; + +struct __dbc_count_msg { + u_int dbccl_id; + u_int flags; +}; +typedef struct __dbc_count_msg __dbc_count_msg; + +struct __dbc_count_reply { + int status; + u_int dupcount; +}; +typedef struct __dbc_count_reply __dbc_count_reply; + +struct __dbc_del_msg { + u_int dbccl_id; + u_int flags; +}; +typedef struct __dbc_del_msg __dbc_del_msg; + +struct __dbc_del_reply { + int status; +}; +typedef struct __dbc_del_reply __dbc_del_reply; + +struct __dbc_dup_msg { + u_int dbccl_id; + u_int flags; +}; +typedef struct __dbc_dup_msg __dbc_dup_msg; + +struct __dbc_dup_reply { + int status; + u_int dbcidcl_id; +}; +typedef struct __dbc_dup_reply __dbc_dup_reply; + +struct __dbc_get_msg { + u_int dbccl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __dbc_get_msg __dbc_get_msg; + +struct __dbc_get_reply { + int status; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; +}; +typedef struct __dbc_get_reply __dbc_get_reply; + +struct __dbc_pget_msg { + u_int dbccl_id; + u_int skeydlen; + u_int skeydoff; + u_int skeyflags; + struct { + u_int skeydata_len; + char *skeydata_val; + } skeydata; + u_int pkeydlen; + u_int pkeydoff; + u_int pkeyflags; + struct { + u_int pkeydata_len; + char *pkeydata_val; + } pkeydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __dbc_pget_msg __dbc_pget_msg; + +struct __dbc_pget_reply { + int status; + struct { + u_int skeydata_len; + char *skeydata_val; + } skeydata; + struct { + u_int pkeydata_len; + char *pkeydata_val; + } pkeydata; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; +}; +typedef struct __dbc_pget_reply __dbc_pget_reply; + +struct __dbc_put_msg { + u_int dbccl_id; + u_int keydlen; + u_int keydoff; + u_int keyflags; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; + u_int datadlen; + u_int datadoff; + u_int dataflags; + struct { + u_int datadata_len; + char *datadata_val; + } datadata; + u_int flags; +}; +typedef struct __dbc_put_msg __dbc_put_msg; + +struct __dbc_put_reply { + int status; + struct { + u_int keydata_len; + char *keydata_val; + } keydata; +}; +typedef struct __dbc_put_reply __dbc_put_reply; + +#define __DB_env_cachesize ((unsigned long)(1)) +extern __env_cachesize_reply * __db_env_cachesize_3003(); +#define __DB_env_close ((unsigned long)(2)) +extern __env_close_reply * __db_env_close_3003(); +#define __DB_env_create ((unsigned long)(3)) +extern __env_create_reply * __db_env_create_3003(); +#define __DB_env_flags ((unsigned long)(4)) +extern __env_flags_reply * __db_env_flags_3003(); +#define __DB_env_open ((unsigned long)(5)) +extern __env_open_reply * __db_env_open_3003(); +#define __DB_env_remove ((unsigned long)(6)) +extern __env_remove_reply * __db_env_remove_3003(); +#define __DB_txn_abort ((unsigned long)(7)) +extern __txn_abort_reply * __db_txn_abort_3003(); +#define __DB_txn_begin ((unsigned long)(8)) +extern __txn_begin_reply * __db_txn_begin_3003(); +#define __DB_txn_commit ((unsigned long)(9)) +extern __txn_commit_reply * __db_txn_commit_3003(); +#define __DB_txn_prepare ((unsigned long)(10)) +extern __txn_prepare_reply * __db_txn_prepare_3003(); +#define __DB_txn_recover ((unsigned long)(11)) +extern __txn_recover_reply * __db_txn_recover_3003(); +#define __DB_db_associate ((unsigned long)(12)) +extern __db_associate_reply * __db_db_associate_3003(); +#define __DB_db_bt_maxkey ((unsigned long)(13)) +extern __db_bt_maxkey_reply * __db_db_bt_maxkey_3003(); +#define __DB_db_bt_minkey ((unsigned long)(14)) +extern __db_bt_minkey_reply * __db_db_bt_minkey_3003(); +#define __DB_db_close ((unsigned long)(15)) +extern __db_close_reply * __db_db_close_3003(); +#define __DB_db_create ((unsigned long)(16)) +extern __db_create_reply * __db_db_create_3003(); +#define __DB_db_del ((unsigned long)(17)) +extern __db_del_reply * __db_db_del_3003(); +#define __DB_db_extentsize ((unsigned long)(18)) +extern __db_extentsize_reply * __db_db_extentsize_3003(); +#define __DB_db_flags ((unsigned long)(19)) +extern __db_flags_reply * __db_db_flags_3003(); +#define __DB_db_get ((unsigned long)(20)) +extern __db_get_reply * __db_db_get_3003(); +#define __DB_db_h_ffactor ((unsigned long)(21)) +extern __db_h_ffactor_reply * __db_db_h_ffactor_3003(); +#define __DB_db_h_nelem ((unsigned long)(22)) +extern __db_h_nelem_reply * __db_db_h_nelem_3003(); +#define __DB_db_key_range ((unsigned long)(23)) +extern __db_key_range_reply * __db_db_key_range_3003(); +#define __DB_db_lorder ((unsigned long)(24)) +extern __db_lorder_reply * __db_db_lorder_3003(); +#define __DB_db_open ((unsigned long)(25)) +extern __db_open_reply * __db_db_open_3003(); +#define __DB_db_pagesize ((unsigned long)(26)) +extern __db_pagesize_reply * __db_db_pagesize_3003(); +#define __DB_db_pget ((unsigned long)(27)) +extern __db_pget_reply * __db_db_pget_3003(); +#define __DB_db_put ((unsigned long)(28)) +extern __db_put_reply * __db_db_put_3003(); +#define __DB_db_re_delim ((unsigned long)(29)) +extern __db_re_delim_reply * __db_db_re_delim_3003(); +#define __DB_db_re_len ((unsigned long)(30)) +extern __db_re_len_reply * __db_db_re_len_3003(); +#define __DB_db_re_pad ((unsigned long)(31)) +extern __db_re_pad_reply * __db_db_re_pad_3003(); +#define __DB_db_remove ((unsigned long)(32)) +extern __db_remove_reply * __db_db_remove_3003(); +#define __DB_db_rename ((unsigned long)(33)) +extern __db_rename_reply * __db_db_rename_3003(); +#define __DB_db_stat ((unsigned long)(34)) +extern __db_stat_reply * __db_db_stat_3003(); +#define __DB_db_sync ((unsigned long)(35)) +extern __db_sync_reply * __db_db_sync_3003(); +#define __DB_db_truncate ((unsigned long)(36)) +extern __db_truncate_reply * __db_db_truncate_3003(); +#define __DB_db_cursor ((unsigned long)(37)) +extern __db_cursor_reply * __db_db_cursor_3003(); +#define __DB_db_join ((unsigned long)(38)) +extern __db_join_reply * __db_db_join_3003(); +#define __DB_dbc_close ((unsigned long)(39)) +extern __dbc_close_reply * __db_dbc_close_3003(); +#define __DB_dbc_count ((unsigned long)(40)) +extern __dbc_count_reply * __db_dbc_count_3003(); +#define __DB_dbc_del ((unsigned long)(41)) +extern __dbc_del_reply * __db_dbc_del_3003(); +#define __DB_dbc_dup ((unsigned long)(42)) +extern __dbc_dup_reply * __db_dbc_dup_3003(); +#define __DB_dbc_get ((unsigned long)(43)) +extern __dbc_get_reply * __db_dbc_get_3003(); +#define __DB_dbc_pget ((unsigned long)(44)) +extern __dbc_pget_reply * __db_dbc_pget_3003(); +#define __DB_dbc_put ((unsigned long)(45)) +extern __dbc_put_reply * __db_dbc_put_3003(); +extern int db_rpc_serverprog_3003_freeresult(); + +/* the xdr functions */ +#define xdr___env_cachesize_msg xdr___env_cachesize_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_cachesize_msg(); +#define xdr___env_cachesize_reply xdr___env_cachesize_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_cachesize_reply(); +#define xdr___env_close_msg xdr___env_close_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_close_msg(); +#define xdr___env_close_reply xdr___env_close_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_close_reply(); +#define xdr___env_create_msg xdr___env_create_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_create_msg(); +#define xdr___env_create_reply xdr___env_create_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_create_reply(); +#define xdr___env_flags_msg xdr___env_flags_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_flags_msg(); +#define xdr___env_flags_reply xdr___env_flags_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_flags_reply(); +#define xdr___env_open_msg xdr___env_open_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_open_msg(); +#define xdr___env_open_reply xdr___env_open_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_open_reply(); +#define xdr___env_remove_msg xdr___env_remove_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_remove_msg(); +#define xdr___env_remove_reply xdr___env_remove_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___env_remove_reply(); +#define xdr___txn_abort_msg xdr___txn_abort_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_abort_msg(); +#define xdr___txn_abort_reply xdr___txn_abort_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_abort_reply(); +#define xdr___txn_begin_msg xdr___txn_begin_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_begin_msg(); +#define xdr___txn_begin_reply xdr___txn_begin_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_begin_reply(); +#define xdr___txn_commit_msg xdr___txn_commit_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_commit_msg(); +#define xdr___txn_commit_reply xdr___txn_commit_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_commit_reply(); +#define xdr___txn_prepare_msg xdr___txn_prepare_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_prepare_msg(); +#define xdr___txn_prepare_reply xdr___txn_prepare_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_prepare_reply(); +#define xdr___txn_recover_msg xdr___txn_recover_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_recover_msg(); +#define xdr___txn_recover_reply xdr___txn_recover_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___txn_recover_reply(); +#define xdr___db_associate_msg xdr___db_associate_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_associate_msg(); +#define xdr___db_associate_reply xdr___db_associate_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_associate_reply(); +#define xdr___db_bt_maxkey_msg xdr___db_bt_maxkey_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_bt_maxkey_msg(); +#define xdr___db_bt_maxkey_reply xdr___db_bt_maxkey_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_bt_maxkey_reply(); +#define xdr___db_bt_minkey_msg xdr___db_bt_minkey_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_bt_minkey_msg(); +#define xdr___db_bt_minkey_reply xdr___db_bt_minkey_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_bt_minkey_reply(); +#define xdr___db_close_msg xdr___db_close_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_close_msg(); +#define xdr___db_close_reply xdr___db_close_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_close_reply(); +#define xdr___db_create_msg xdr___db_create_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_create_msg(); +#define xdr___db_create_reply xdr___db_create_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_create_reply(); +#define xdr___db_del_msg xdr___db_del_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_del_msg(); +#define xdr___db_del_reply xdr___db_del_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_del_reply(); +#define xdr___db_extentsize_msg xdr___db_extentsize_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_extentsize_msg(); +#define xdr___db_extentsize_reply xdr___db_extentsize_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_extentsize_reply(); +#define xdr___db_flags_msg xdr___db_flags_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_flags_msg(); +#define xdr___db_flags_reply xdr___db_flags_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_flags_reply(); +#define xdr___db_get_msg xdr___db_get_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_get_msg(); +#define xdr___db_get_reply xdr___db_get_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_get_reply(); +#define xdr___db_h_ffactor_msg xdr___db_h_ffactor_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_h_ffactor_msg(); +#define xdr___db_h_ffactor_reply xdr___db_h_ffactor_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_h_ffactor_reply(); +#define xdr___db_h_nelem_msg xdr___db_h_nelem_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_h_nelem_msg(); +#define xdr___db_h_nelem_reply xdr___db_h_nelem_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_h_nelem_reply(); +#define xdr___db_key_range_msg xdr___db_key_range_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_key_range_msg(); +#define xdr___db_key_range_reply xdr___db_key_range_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_key_range_reply(); +#define xdr___db_lorder_msg xdr___db_lorder_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_lorder_msg(); +#define xdr___db_lorder_reply xdr___db_lorder_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_lorder_reply(); +#define xdr___db_open_msg xdr___db_open_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_open_msg(); +#define xdr___db_open_reply xdr___db_open_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_open_reply(); +#define xdr___db_pagesize_msg xdr___db_pagesize_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_pagesize_msg(); +#define xdr___db_pagesize_reply xdr___db_pagesize_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_pagesize_reply(); +#define xdr___db_pget_msg xdr___db_pget_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_pget_msg(); +#define xdr___db_pget_reply xdr___db_pget_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_pget_reply(); +#define xdr___db_put_msg xdr___db_put_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_put_msg(); +#define xdr___db_put_reply xdr___db_put_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_put_reply(); +#define xdr___db_re_delim_msg xdr___db_re_delim_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_re_delim_msg(); +#define xdr___db_re_delim_reply xdr___db_re_delim_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_re_delim_reply(); +#define xdr___db_re_len_msg xdr___db_re_len_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_re_len_msg(); +#define xdr___db_re_len_reply xdr___db_re_len_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_re_len_reply(); +#define xdr___db_re_pad_msg xdr___db_re_pad_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_re_pad_msg(); +#define xdr___db_re_pad_reply xdr___db_re_pad_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_re_pad_reply(); +#define xdr___db_remove_msg xdr___db_remove_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_remove_msg(); +#define xdr___db_remove_reply xdr___db_remove_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_remove_reply(); +#define xdr___db_rename_msg xdr___db_rename_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_rename_msg(); +#define xdr___db_rename_reply xdr___db_rename_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_rename_reply(); +#define xdr___db_stat_msg xdr___db_stat_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_stat_msg(); +#define xdr___db_stat_reply xdr___db_stat_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_stat_reply(); +#define xdr___db_sync_msg xdr___db_sync_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_sync_msg(); +#define xdr___db_sync_reply xdr___db_sync_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_sync_reply(); +#define xdr___db_truncate_msg xdr___db_truncate_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_truncate_msg(); +#define xdr___db_truncate_reply xdr___db_truncate_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_truncate_reply(); +#define xdr___db_cursor_msg xdr___db_cursor_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_cursor_msg(); +#define xdr___db_cursor_reply xdr___db_cursor_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_cursor_reply(); +#define xdr___db_join_msg xdr___db_join_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_join_msg(); +#define xdr___db_join_reply xdr___db_join_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___db_join_reply(); +#define xdr___dbc_close_msg xdr___dbc_close_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_close_msg(); +#define xdr___dbc_close_reply xdr___dbc_close_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_close_reply(); +#define xdr___dbc_count_msg xdr___dbc_count_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_count_msg(); +#define xdr___dbc_count_reply xdr___dbc_count_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_count_reply(); +#define xdr___dbc_del_msg xdr___dbc_del_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_del_msg(); +#define xdr___dbc_del_reply xdr___dbc_del_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_del_reply(); +#define xdr___dbc_dup_msg xdr___dbc_dup_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_dup_msg(); +#define xdr___dbc_dup_reply xdr___dbc_dup_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_dup_reply(); +#define xdr___dbc_get_msg xdr___dbc_get_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_get_msg(); +#define xdr___dbc_get_reply xdr___dbc_get_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_get_reply(); +#define xdr___dbc_pget_msg xdr___dbc_pget_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_pget_msg(); +#define xdr___dbc_pget_reply xdr___dbc_pget_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_pget_reply(); +#define xdr___dbc_put_msg xdr___dbc_put_msg@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_put_msg(); +#define xdr___dbc_put_reply xdr___dbc_put_reply@DB_VERSION_UNIQUE_NAME@ +extern bool_t xdr___dbc_put_reply(); + +#endif /* !_DB_SERVER_H_RPCGEN */ diff --git a/db/include_auto/env_ext.h b/db/include_auto/env_ext.h new file mode 100644 index 000000000..fd95c1504 --- /dev/null +++ b/db/include_auto/env_ext.h @@ -0,0 +1,34 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _env_ext_h_ +#define _env_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +void __db_shalloc_init __P((void *, size_t)); +int __db_shalloc_size __P((size_t, size_t)); +int __db_shalloc __P((void *, size_t, size_t, void *)); +void __db_shalloc_free __P((void *, void *)); +size_t __db_shsizeof __P((void *)); +void __db_shalloc_dump __P((void *, FILE *)); +int __db_tablesize __P((u_int32_t)); +void __db_hashinit __P((void *, u_int32_t)); +int __db_mi_env __P((DB_ENV *, const char *)); +int __db_mi_open __P((DB_ENV *, const char *, int)); +int __db_env_config __P((DB_ENV *, char *, u_int32_t)); +int __dbenv_open __P((DB_ENV *, const char *, u_int32_t, int)); +int __dbenv_remove __P((DB_ENV *, const char *, u_int32_t)); +int __dbenv_close __P((DB_ENV *, u_int32_t)); +int __db_appname __P((DB_ENV *, APPNAME, const char *, const char *, u_int32_t, DB_FH *, char **)); +int __db_home __P((DB_ENV *, const char *, u_int32_t)); +int __db_apprec __P((DB_ENV *, u_int32_t)); +int __env_openfiles __P((DB_ENV *, void *, DBT *, DB_LSN *, DB_LSN *, double, int)); +int __db_e_attach __P((DB_ENV *, u_int32_t *)); +int __db_e_detach __P((DB_ENV *, int)); +int __db_e_remove __P((DB_ENV *, int)); +int __db_e_stat __P((DB_ENV *, REGENV *, REGION *, int *)); +int __db_r_attach __P((DB_ENV *, REGINFO *, size_t)); +int __db_r_detach __P((DB_ENV *, REGINFO *, int)); +#if defined(__cplusplus) +} +#endif +#endif /* _env_ext_h_ */ diff --git a/db/include_auto/env_ext.in b/db/include_auto/env_ext.in new file mode 100644 index 000000000..8b7307827 --- /dev/null +++ b/db/include_auto/env_ext.in @@ -0,0 +1,58 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _env_ext_h_ +#define _env_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __db_shalloc_init __db_shalloc_init@DB_VERSION_UNIQUE_NAME@ +void __db_shalloc_init __P((void *, size_t)); +#define __db_shalloc_size __db_shalloc_size@DB_VERSION_UNIQUE_NAME@ +int __db_shalloc_size __P((size_t, size_t)); +#define __db_shalloc __db_shalloc@DB_VERSION_UNIQUE_NAME@ +int __db_shalloc __P((void *, size_t, size_t, void *)); +#define __db_shalloc_free __db_shalloc_free@DB_VERSION_UNIQUE_NAME@ +void __db_shalloc_free __P((void *, void *)); +#define __db_shsizeof __db_shsizeof@DB_VERSION_UNIQUE_NAME@ +size_t __db_shsizeof __P((void *)); +#define __db_shalloc_dump __db_shalloc_dump@DB_VERSION_UNIQUE_NAME@ +void __db_shalloc_dump __P((void *, FILE *)); +#define __db_tablesize __db_tablesize@DB_VERSION_UNIQUE_NAME@ +int __db_tablesize __P((u_int32_t)); +#define __db_hashinit __db_hashinit@DB_VERSION_UNIQUE_NAME@ +void __db_hashinit __P((void *, u_int32_t)); +#define __db_mi_env __db_mi_env@DB_VERSION_UNIQUE_NAME@ +int __db_mi_env __P((DB_ENV *, const char *)); +#define __db_mi_open __db_mi_open@DB_VERSION_UNIQUE_NAME@ +int __db_mi_open __P((DB_ENV *, const char *, int)); +#define __db_env_config __db_env_config@DB_VERSION_UNIQUE_NAME@ +int __db_env_config __P((DB_ENV *, char *, u_int32_t)); +#define __dbenv_open __dbenv_open@DB_VERSION_UNIQUE_NAME@ +int __dbenv_open __P((DB_ENV *, const char *, u_int32_t, int)); +#define __dbenv_remove __dbenv_remove@DB_VERSION_UNIQUE_NAME@ +int __dbenv_remove __P((DB_ENV *, const char *, u_int32_t)); +#define __dbenv_close __dbenv_close@DB_VERSION_UNIQUE_NAME@ +int __dbenv_close __P((DB_ENV *, u_int32_t)); +#define __db_appname __db_appname@DB_VERSION_UNIQUE_NAME@ +int __db_appname __P((DB_ENV *, APPNAME, const char *, const char *, u_int32_t, DB_FH *, char **)); +#define __db_home __db_home@DB_VERSION_UNIQUE_NAME@ +int __db_home __P((DB_ENV *, const char *, u_int32_t)); +#define __db_apprec __db_apprec@DB_VERSION_UNIQUE_NAME@ +int __db_apprec __P((DB_ENV *, u_int32_t)); +#define __env_openfiles __env_openfiles@DB_VERSION_UNIQUE_NAME@ +int __env_openfiles __P((DB_ENV *, void *, DBT *, DB_LSN *, DB_LSN *, double, int)); +#define __db_e_attach __db_e_attach@DB_VERSION_UNIQUE_NAME@ +int __db_e_attach __P((DB_ENV *, u_int32_t *)); +#define __db_e_detach __db_e_detach@DB_VERSION_UNIQUE_NAME@ +int __db_e_detach __P((DB_ENV *, int)); +#define __db_e_remove __db_e_remove@DB_VERSION_UNIQUE_NAME@ +int __db_e_remove __P((DB_ENV *, int)); +#define __db_e_stat __db_e_stat@DB_VERSION_UNIQUE_NAME@ +int __db_e_stat __P((DB_ENV *, REGENV *, REGION *, int *)); +#define __db_r_attach __db_r_attach@DB_VERSION_UNIQUE_NAME@ +int __db_r_attach __P((DB_ENV *, REGINFO *, size_t)); +#define __db_r_detach __db_r_detach@DB_VERSION_UNIQUE_NAME@ +int __db_r_detach __P((DB_ENV *, REGINFO *, int)); +#if defined(__cplusplus) +} +#endif +#endif /* _env_ext_h_ */ diff --git a/db/include_auto/global_ext.in b/db/include_auto/global_ext.in new file mode 100644 index 000000000..edb1029f5 --- /dev/null +++ b/db/include_auto/global_ext.in @@ -0,0 +1,124 @@ + +/* DO NOT EDIT: automatically built by dist/s_include. */ +#if defined(__cplusplus) +extern "C" { +#endif +int db_create __P((DB **, DB_ENV *, u_int32_t)); +char *db_strerror __P((int)); +int db_env_create __P((DB_ENV **, u_int32_t)); +char *db_version __P((int *, int *, int *)); +int lock_id __P((DB_ENV *, u_int32_t *)); +int lock_vec __P((DB_ENV *, u_int32_t, u_int32_t, DB_LOCKREQ *, int, DB_LOCKREQ **)); +int lock_get __P((DB_ENV *, u_int32_t, u_int32_t, const DBT *, db_lockmode_t, DB_LOCK *)); +int lock_put __P((DB_ENV *, DB_LOCK *)); +int lock_detect __P((DB_ENV *, u_int32_t, u_int32_t, int *)); +int lock_stat __P((DB_ENV *, DB_LOCK_STAT **)); +int log_stat __P((DB_ENV *, DB_LOG_STAT **)); +int log_archive __P((DB_ENV *, char **[], u_int32_t)); +int log_compare __P((const DB_LSN *, const DB_LSN *)); +int log_get __P((DB_ENV *, DB_LSN *, DBT *, u_int32_t)); +int log_put __P((DB_ENV *, DB_LSN *, const DBT *, u_int32_t)); +int log_flush __P((DB_ENV *, const DB_LSN *)); +int log_file __P((DB_ENV *, const DB_LSN *, char *, size_t)); +int log_register __P((DB_ENV *, DB *, const char *)); +int log_unregister __P((DB_ENV *, DB *)); +int memp_fget __P((DB_MPOOLFILE *, db_pgno_t *, u_int32_t, void *)); +int memp_fopen __P((DB_ENV *, const char *, u_int32_t, int, size_t, DB_MPOOL_FINFO *, DB_MPOOLFILE **)); +int memp_fclose __P((DB_MPOOLFILE *)); +int memp_fput __P((DB_MPOOLFILE *, void *, u_int32_t)); +int memp_fset __P((DB_MPOOLFILE *, void *, u_int32_t)); +int memp_register __P((DB_ENV *, int, int (*)(DB_ENV *, db_pgno_t, void *, DBT *), int (*)(DB_ENV *, db_pgno_t, void *, DBT *))); +int memp_stat __P((DB_ENV *, DB_MPOOL_STAT **, DB_MPOOL_FSTAT ***)); +int memp_sync __P((DB_ENV *, DB_LSN *)); +int memp_fsync __P((DB_MPOOLFILE *)); +int memp_trickle __P((DB_ENV *, int, int *)); +int db_env_set_func_close __P((int (*)(int))); +int db_env_set_func_dirfree __P((void (*)(char **, int))); +int db_env_set_func_dirlist __P((int (*)(const char *, char ***, int *))); +int db_env_set_func_exists __P((int (*)(const char *, int *))); +int db_env_set_func_free __P((void (*)(void *))); +int db_env_set_func_fsync __P((int (*)(int))); +int db_env_set_func_ioinfo __P((int (*)(const char *, int, u_int32_t *, u_int32_t *, u_int32_t *))); +int db_env_set_func_malloc __P((void *(*)(size_t))); +int db_env_set_func_map __P((int (*)(char *, size_t, int, int, void **))); +int db_env_set_func_open __P((int (*)(const char *, int, ...))); +int db_env_set_func_read __P((ssize_t (*)(int, void *, size_t))); +int db_env_set_func_realloc __P((void *(*)(void *, size_t))); +int db_env_set_func_rename __P((int (*)(const char *, const char *))); +int db_env_set_func_seek __P((int (*)(int, size_t, db_pgno_t, u_int32_t, int, int))); +int db_env_set_func_sleep __P((int (*)(u_long, u_long))); +int db_env_set_func_unlink __P((int (*)(const char *))); +int db_env_set_func_unmap __P((int (*)(void *, size_t))); +int db_env_set_func_write __P((ssize_t (*)(int, const void *, size_t))); +int db_env_set_func_yield __P((int (*)(void))); +int db_env_set_pageyield __P((int)); +int db_env_set_panicstate __P((int)); +int db_env_set_region_init __P((int)); +int db_env_set_tas_spins __P((u_int32_t)); +int txn_begin __P((DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t)); +int txn_commit __P((DB_TXN *, u_int32_t)); +int txn_abort __P((DB_TXN *)); +int txn_discard __P((DB_TXN *, u_int32_t flags)); +int txn_prepare __P((DB_TXN *, u_int8_t *)); +u_int32_t txn_id __P((DB_TXN *)); +int txn_checkpoint __P((DB_ENV *, u_int32_t, u_int32_t, u_int32_t)); +int txn_recover __P((DB_ENV *, DB_PREPLIST *, long, long *, u_int32_t)); +int txn_stat __P((DB_ENV *, DB_TXN_STAT **)); +#if DB_DBM_HSEARCH != 0 +int __db_ndbm_clearerr __P((DBM *)); +void __db_ndbm_close __P((DBM *)); +int __db_ndbm_delete __P((DBM *, datum)); +int __db_ndbm_dirfno __P((DBM *)); +int __db_ndbm_error __P((DBM *)); +datum __db_ndbm_fetch __P((DBM *, datum)); +datum __db_ndbm_firstkey __P((DBM *)); +datum __db_ndbm_nextkey __P((DBM *)); +DBM *__db_ndbm_open __P((const char *, int, int)); +int __db_ndbm_pagfno __P((DBM *)); +int __db_ndbm_rdonly __P((DBM *)); +int __db_ndbm_store __P((DBM *, datum, datum, int)); +#define dbm_clearerr(a) __db_ndbm_clearerr(a) +#define dbm_close(a) __db_ndbm_close(a) +#define dbm_delete(a, b) __db_ndbm_delete(a, b) +#define dbm_dirfno(a) __db_ndbm_dirfno(a) +#define dbm_error(a) __db_ndbm_error(a) +#define dbm_fetch(a, b) __db_ndbm_fetch(a, b) +#define dbm_firstkey(a) __db_ndbm_firstkey(a) +#define dbm_nextkey(a) __db_ndbm_nextkey(a) +#define dbm_open(a, b, c) __db_ndbm_open(a, b, c) +#define dbm_pagfno(a) __db_ndbm_pagfno(a) +#define dbm_rdonly(a) __db_ndbm_rdonly(a) +#define dbm_store(a, b, c, d) __db_ndbm_store(a, b, c, d) +#define dbminit(a) __db_dbm_init(a) +#define dbmclose __db_dbm_close +#if !defined(__cplusplus) +#define delete(a) __db_dbm_delete(a) +#endif +#define fetch(a) __db_dbm_fetch(a) +#define firstkey __db_dbm_firstkey +#define nextkey(a) __db_dbm_nextkey(a) +#define store(a, b) __db_dbm_store(a, b) +int __db_dbm_close __P((void)); +int __db_dbm_dbrdonly __P((void)); +int __db_dbm_delete __P((datum)); +int __db_dbm_dirf __P((void)); +datum __db_dbm_fetch __P((datum)); +datum __db_dbm_firstkey __P((void)); +int __db_dbm_init __P((char *)); +datum __db_dbm_nextkey __P((datum)); +int __db_dbm_pagf __P((void)); +int __db_dbm_store __P((datum, datum)); +#endif +#if DB_DBM_HSEARCH != 0 +#define hcreate(a) __db_hcreate(a) +#define hdestroy __db_hdestroy +#define hsearch(a, b) __db_hsearch(a, b) +int __db_hcreate __P((size_t)); +ENTRY *__db_hsearch __P((ENTRY, ACTION)); +void __db_hdestroy __P((void)); +#endif +#if defined(__cplusplus) +} +#endif + +#endif /* !_DB_H_ */ diff --git a/db/include_auto/global_uext.in b/db/include_auto/global_uext.in new file mode 100644 index 000000000..10b141a9b --- /dev/null +++ b/db/include_auto/global_uext.in @@ -0,0 +1,213 @@ + +/* DO NOT EDIT: automatically built by dist/s_include. */ +#if defined(__cplusplus) +extern "C" { +#endif +#define db_create db_create@DB_VERSION_UNIQUE_NAME@ +int db_create __P((DB **, DB_ENV *, u_int32_t)); +#define db_strerror db_strerror@DB_VERSION_UNIQUE_NAME@ +char *db_strerror __P((int)); +#define db_env_create db_env_create@DB_VERSION_UNIQUE_NAME@ +int db_env_create __P((DB_ENV **, u_int32_t)); +#define db_version db_version@DB_VERSION_UNIQUE_NAME@ +char *db_version __P((int *, int *, int *)); +#define lock_id lock_id@DB_VERSION_UNIQUE_NAME@ +int lock_id __P((DB_ENV *, u_int32_t *)); +#define lock_vec lock_vec@DB_VERSION_UNIQUE_NAME@ +int lock_vec __P((DB_ENV *, u_int32_t, u_int32_t, DB_LOCKREQ *, int, DB_LOCKREQ **)); +#define lock_get lock_get@DB_VERSION_UNIQUE_NAME@ +int lock_get __P((DB_ENV *, u_int32_t, u_int32_t, const DBT *, db_lockmode_t, DB_LOCK *)); +#define lock_put lock_put@DB_VERSION_UNIQUE_NAME@ +int lock_put __P((DB_ENV *, DB_LOCK *)); +#define lock_detect lock_detect@DB_VERSION_UNIQUE_NAME@ +int lock_detect __P((DB_ENV *, u_int32_t, u_int32_t, int *)); +#define lock_stat lock_stat@DB_VERSION_UNIQUE_NAME@ +int lock_stat __P((DB_ENV *, DB_LOCK_STAT **)); +#define log_stat log_stat@DB_VERSION_UNIQUE_NAME@ +int log_stat __P((DB_ENV *, DB_LOG_STAT **)); +#define log_archive log_archive@DB_VERSION_UNIQUE_NAME@ +int log_archive __P((DB_ENV *, char **[], u_int32_t)); +#define log_compare log_compare@DB_VERSION_UNIQUE_NAME@ +int log_compare __P((const DB_LSN *, const DB_LSN *)); +#define log_get log_get@DB_VERSION_UNIQUE_NAME@ +int log_get __P((DB_ENV *, DB_LSN *, DBT *, u_int32_t)); +#define log_put log_put@DB_VERSION_UNIQUE_NAME@ +int log_put __P((DB_ENV *, DB_LSN *, const DBT *, u_int32_t)); +#define log_flush log_flush@DB_VERSION_UNIQUE_NAME@ +int log_flush __P((DB_ENV *, const DB_LSN *)); +#define log_file log_file@DB_VERSION_UNIQUE_NAME@ +int log_file __P((DB_ENV *, const DB_LSN *, char *, size_t)); +#define log_register log_register@DB_VERSION_UNIQUE_NAME@ +int log_register __P((DB_ENV *, DB *, const char *)); +#define log_unregister log_unregister@DB_VERSION_UNIQUE_NAME@ +int log_unregister __P((DB_ENV *, DB *)); +#define memp_fget memp_fget@DB_VERSION_UNIQUE_NAME@ +int memp_fget __P((DB_MPOOLFILE *, db_pgno_t *, u_int32_t, void *)); +#define memp_fopen memp_fopen@DB_VERSION_UNIQUE_NAME@ +int memp_fopen __P((DB_ENV *, const char *, u_int32_t, int, size_t, DB_MPOOL_FINFO *, DB_MPOOLFILE **)); +#define memp_fclose memp_fclose@DB_VERSION_UNIQUE_NAME@ +int memp_fclose __P((DB_MPOOLFILE *)); +#define memp_fput memp_fput@DB_VERSION_UNIQUE_NAME@ +int memp_fput __P((DB_MPOOLFILE *, void *, u_int32_t)); +#define memp_fset memp_fset@DB_VERSION_UNIQUE_NAME@ +int memp_fset __P((DB_MPOOLFILE *, void *, u_int32_t)); +#define memp_register memp_register@DB_VERSION_UNIQUE_NAME@ +int memp_register __P((DB_ENV *, int, int (*)(DB_ENV *, db_pgno_t, void *, DBT *), int (*)(DB_ENV *, db_pgno_t, void *, DBT *))); +#define memp_stat memp_stat@DB_VERSION_UNIQUE_NAME@ +int memp_stat __P((DB_ENV *, DB_MPOOL_STAT **, DB_MPOOL_FSTAT ***)); +#define memp_sync memp_sync@DB_VERSION_UNIQUE_NAME@ +int memp_sync __P((DB_ENV *, DB_LSN *)); +#define memp_fsync memp_fsync@DB_VERSION_UNIQUE_NAME@ +int memp_fsync __P((DB_MPOOLFILE *)); +#define memp_trickle memp_trickle@DB_VERSION_UNIQUE_NAME@ +int memp_trickle __P((DB_ENV *, int, int *)); +#define db_env_set_func_close db_env_set_func_close@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_close __P((int (*)(int))); +#define db_env_set_func_dirfree db_env_set_func_dirfree@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_dirfree __P((void (*)(char **, int))); +#define db_env_set_func_dirlist db_env_set_func_dirlist@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_dirlist __P((int (*)(const char *, char ***, int *))); +#define db_env_set_func_exists db_env_set_func_exists@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_exists __P((int (*)(const char *, int *))); +#define db_env_set_func_free db_env_set_func_free@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_free __P((void (*)(void *))); +#define db_env_set_func_fsync db_env_set_func_fsync@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_fsync __P((int (*)(int))); +#define db_env_set_func_ioinfo db_env_set_func_ioinfo@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_ioinfo __P((int (*)(const char *, int, u_int32_t *, u_int32_t *, u_int32_t *))); +#define db_env_set_func_malloc db_env_set_func_malloc@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_malloc __P((void *(*)(size_t))); +#define db_env_set_func_map db_env_set_func_map@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_map __P((int (*)(char *, size_t, int, int, void **))); +#define db_env_set_func_open db_env_set_func_open@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_open __P((int (*)(const char *, int, ...))); +#define db_env_set_func_read db_env_set_func_read@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_read __P((ssize_t (*)(int, void *, size_t))); +#define db_env_set_func_realloc db_env_set_func_realloc@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_realloc __P((void *(*)(void *, size_t))); +#define db_env_set_func_rename db_env_set_func_rename@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_rename __P((int (*)(const char *, const char *))); +#define db_env_set_func_seek db_env_set_func_seek@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_seek __P((int (*)(int, size_t, db_pgno_t, u_int32_t, int, int))); +#define db_env_set_func_sleep db_env_set_func_sleep@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_sleep __P((int (*)(u_long, u_long))); +#define db_env_set_func_unlink db_env_set_func_unlink@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_unlink __P((int (*)(const char *))); +#define db_env_set_func_unmap db_env_set_func_unmap@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_unmap __P((int (*)(void *, size_t))); +#define db_env_set_func_write db_env_set_func_write@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_write __P((ssize_t (*)(int, const void *, size_t))); +#define db_env_set_func_yield db_env_set_func_yield@DB_VERSION_UNIQUE_NAME@ +int db_env_set_func_yield __P((int (*)(void))); +#define db_env_set_pageyield db_env_set_pageyield@DB_VERSION_UNIQUE_NAME@ +int db_env_set_pageyield __P((int)); +#define db_env_set_panicstate db_env_set_panicstate@DB_VERSION_UNIQUE_NAME@ +int db_env_set_panicstate __P((int)); +#define db_env_set_region_init db_env_set_region_init@DB_VERSION_UNIQUE_NAME@ +int db_env_set_region_init __P((int)); +#define db_env_set_tas_spins db_env_set_tas_spins@DB_VERSION_UNIQUE_NAME@ +int db_env_set_tas_spins __P((u_int32_t)); +#define txn_begin txn_begin@DB_VERSION_UNIQUE_NAME@ +int txn_begin __P((DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t)); +#define txn_commit txn_commit@DB_VERSION_UNIQUE_NAME@ +int txn_commit __P((DB_TXN *, u_int32_t)); +#define txn_abort txn_abort@DB_VERSION_UNIQUE_NAME@ +int txn_abort __P((DB_TXN *)); +#define txn_discard txn_discard@DB_VERSION_UNIQUE_NAME@ +int txn_discard __P((DB_TXN *, u_int32_t flags)); +#define txn_prepare txn_prepare@DB_VERSION_UNIQUE_NAME@ +int txn_prepare __P((DB_TXN *, u_int8_t *)); +#define txn_id txn_id@DB_VERSION_UNIQUE_NAME@ +u_int32_t txn_id __P((DB_TXN *)); +#define txn_checkpoint txn_checkpoint@DB_VERSION_UNIQUE_NAME@ +int txn_checkpoint __P((DB_ENV *, u_int32_t, u_int32_t, u_int32_t)); +#define txn_recover txn_recover@DB_VERSION_UNIQUE_NAME@ +int txn_recover __P((DB_ENV *, DB_PREPLIST *, long, long *, u_int32_t)); +#define txn_stat txn_stat@DB_VERSION_UNIQUE_NAME@ +int txn_stat __P((DB_ENV *, DB_TXN_STAT **)); +#if DB_DBM_HSEARCH != 0 +#define __db_ndbm_clearerr __db_ndbm_clearerr@DB_VERSION_UNIQUE_NAME@ +int __db_ndbm_clearerr __P((DBM *)); +#define __db_ndbm_close __db_ndbm_close@DB_VERSION_UNIQUE_NAME@ +void __db_ndbm_close __P((DBM *)); +#define __db_ndbm_delete __db_ndbm_delete@DB_VERSION_UNIQUE_NAME@ +int __db_ndbm_delete __P((DBM *, datum)); +#define __db_ndbm_dirfno __db_ndbm_dirfno@DB_VERSION_UNIQUE_NAME@ +int __db_ndbm_dirfno __P((DBM *)); +#define __db_ndbm_error __db_ndbm_error@DB_VERSION_UNIQUE_NAME@ +int __db_ndbm_error __P((DBM *)); +#define __db_ndbm_fetch __db_ndbm_fetch@DB_VERSION_UNIQUE_NAME@ +datum __db_ndbm_fetch __P((DBM *, datum)); +#define __db_ndbm_firstkey __db_ndbm_firstkey@DB_VERSION_UNIQUE_NAME@ +datum __db_ndbm_firstkey __P((DBM *)); +#define __db_ndbm_nextkey __db_ndbm_nextkey@DB_VERSION_UNIQUE_NAME@ +datum __db_ndbm_nextkey __P((DBM *)); +#define __db_ndbm_open __db_ndbm_open@DB_VERSION_UNIQUE_NAME@ +DBM *__db_ndbm_open __P((const char *, int, int)); +#define __db_ndbm_pagfno __db_ndbm_pagfno@DB_VERSION_UNIQUE_NAME@ +int __db_ndbm_pagfno __P((DBM *)); +#define __db_ndbm_rdonly __db_ndbm_rdonly@DB_VERSION_UNIQUE_NAME@ +int __db_ndbm_rdonly __P((DBM *)); +#define __db_ndbm_store __db_ndbm_store@DB_VERSION_UNIQUE_NAME@ +int __db_ndbm_store __P((DBM *, datum, datum, int)); +#define dbm_clearerr(a) __db_ndbm_clearerr@DB_VERSION_UNIQUE_NAME@(a) +#define dbm_close(a) __db_ndbm_close@DB_VERSION_UNIQUE_NAME@(a) +#define dbm_delete(a, b) __db_ndbm_delete@DB_VERSION_UNIQUE_NAME@(a, b) +#define dbm_dirfno(a) __db_ndbm_dirfno@DB_VERSION_UNIQUE_NAME@(a) +#define dbm_error(a) __db_ndbm_error@DB_VERSION_UNIQUE_NAME@(a) +#define dbm_fetch(a, b) __db_ndbm_fetch@DB_VERSION_UNIQUE_NAME@(a, b) +#define dbm_firstkey(a) __db_ndbm_firstkey@DB_VERSION_UNIQUE_NAME@(a) +#define dbm_nextkey(a) __db_ndbm_nextkey@DB_VERSION_UNIQUE_NAME@(a) +#define dbm_open(a, b, c) __db_ndbm_open@DB_VERSION_UNIQUE_NAME@(a, b, c) +#define dbm_pagfno(a) __db_ndbm_pagfno@DB_VERSION_UNIQUE_NAME@(a) +#define dbm_rdonly(a) __db_ndbm_rdonly@DB_VERSION_UNIQUE_NAME@(a) +#define dbm_store(a, b, c, d) __db_ndbm_store@DB_VERSION_UNIQUE_NAME@(a, b, c, d) +#define dbminit(a) __db_dbm_init@DB_VERSION_UNIQUE_NAME@(a) +#define dbmclose __db_dbm_close@DB_VERSION_UNIQUE_NAME@ +#if !defined(__cplusplus) +#define delete(a) __db_dbm_delete@DB_VERSION_UNIQUE_NAME@(a) +#endif +#define fetch(a) __db_dbm_fetch@DB_VERSION_UNIQUE_NAME@(a) +#define firstkey __db_dbm_firstkey@DB_VERSION_UNIQUE_NAME@ +#define nextkey(a) __db_dbm_nextkey@DB_VERSION_UNIQUE_NAME@(a) +#define store(a, b) __db_dbm_store@DB_VERSION_UNIQUE_NAME@(a, b) +#define __db_dbm_close __db_dbm_close@DB_VERSION_UNIQUE_NAME@ +int __db_dbm_close __P((void)); +#define __db_dbm_dbrdonly __db_dbm_dbrdonly@DB_VERSION_UNIQUE_NAME@ +int __db_dbm_dbrdonly __P((void)); +#define __db_dbm_delete __db_dbm_delete@DB_VERSION_UNIQUE_NAME@ +int __db_dbm_delete __P((datum)); +#define __db_dbm_dirf __db_dbm_dirf@DB_VERSION_UNIQUE_NAME@ +int __db_dbm_dirf __P((void)); +#define __db_dbm_fetch __db_dbm_fetch@DB_VERSION_UNIQUE_NAME@ +datum __db_dbm_fetch __P((datum)); +#define __db_dbm_firstkey __db_dbm_firstkey@DB_VERSION_UNIQUE_NAME@ +datum __db_dbm_firstkey __P((void)); +#define __db_dbm_init __db_dbm_init@DB_VERSION_UNIQUE_NAME@ +int __db_dbm_init __P((char *)); +#define __db_dbm_nextkey __db_dbm_nextkey@DB_VERSION_UNIQUE_NAME@ +datum __db_dbm_nextkey __P((datum)); +#define __db_dbm_pagf __db_dbm_pagf@DB_VERSION_UNIQUE_NAME@ +int __db_dbm_pagf __P((void)); +#define __db_dbm_store __db_dbm_store@DB_VERSION_UNIQUE_NAME@ +int __db_dbm_store __P((datum, datum)); +#endif +#if DB_DBM_HSEARCH != 0 +#define hcreate(a) __db_hcreate@DB_VERSION_UNIQUE_NAME@(a) +#define hdestroy __db_hdestroy@DB_VERSION_UNIQUE_NAME@ +#define hsearch(a, b) __db_hsearch@DB_VERSION_UNIQUE_NAME@(a, b) +#define __db_hcreate __db_hcreate@DB_VERSION_UNIQUE_NAME@ +int __db_hcreate __P((size_t)); +#define __db_hsearch __db_hsearch@DB_VERSION_UNIQUE_NAME@ +ENTRY *__db_hsearch __P((ENTRY, ACTION)); +#define __db_hdestroy __db_hdestroy@DB_VERSION_UNIQUE_NAME@ +void __db_hdestroy __P((void)); +#endif +#define __db_global_values __db_global_values@DB_VERSION_UNIQUE_NAME@ +#define __db_jump __db_jump@DB_VERSION_UNIQUE_NAME@ +#define db_xa_switch db_xa_switch@DB_VERSION_UNIQUE_NAME@ +#if defined(__cplusplus) +} +#endif + +#endif /* !_DB_H_ */ diff --git a/db/include_auto/hash_auto.h b/db/include_auto/hash_auto.h new file mode 100644 index 000000000..ba1f83d1b --- /dev/null +++ b/db/include_auto/hash_auto.h @@ -0,0 +1,195 @@ +/* Do not edit: automatically built by gen_rec.awk. */ + +#ifndef ham_AUTO_H +#define ham_AUTO_H +#define DB_ham_insdel 21 +typedef struct _ham_insdel_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t fileid; + db_pgno_t pgno; + u_int32_t ndx; + DB_LSN pagelsn; + DBT key; + DBT data; +} __ham_insdel_args; + +#define DB_ham_newpage 22 +typedef struct _ham_newpage_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t fileid; + db_pgno_t prev_pgno; + DB_LSN prevlsn; + db_pgno_t new_pgno; + DB_LSN pagelsn; + db_pgno_t next_pgno; + DB_LSN nextlsn; +} __ham_newpage_args; + +#define DB_ham_splitmeta 23 +typedef struct _ham_splitmeta_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + u_int32_t bucket; + u_int32_t ovflpoint; + u_int32_t spares; + DB_LSN metalsn; +} __ham_splitmeta_args; + +#define DB_ham_splitdata 24 +typedef struct _ham_splitdata_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + u_int32_t opcode; + db_pgno_t pgno; + DBT pageimage; + DB_LSN pagelsn; +} __ham_splitdata_args; + +#define DB_ham_replace 25 +typedef struct _ham_replace_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + u_int32_t ndx; + DB_LSN pagelsn; + int32_t off; + DBT olditem; + DBT newitem; + u_int32_t makedup; +} __ham_replace_args; + +#define DB_ham_newpgno 26 +typedef struct _ham_newpgno_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t fileid; + db_pgno_t pgno; + db_pgno_t free_pgno; + u_int32_t old_type; + db_pgno_t old_pgno; + u_int32_t new_type; + DB_LSN pagelsn; + DB_LSN metalsn; +} __ham_newpgno_args; + +#define DB_ham_ovfl 27 +typedef struct _ham_ovfl_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t start_pgno; + u_int32_t npages; + db_pgno_t free_pgno; + u_int32_t ovflpoint; + DB_LSN metalsn; +} __ham_ovfl_args; + +#define DB_ham_copypage 28 +typedef struct _ham_copypage_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN pagelsn; + db_pgno_t next_pgno; + DB_LSN nextlsn; + db_pgno_t nnext_pgno; + DB_LSN nnextlsn; + DBT page; +} __ham_copypage_args; + +#define DB_ham_metagroup 29 +typedef struct _ham_metagroup_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + u_int32_t bucket; + db_pgno_t pgno; + DB_LSN metalsn; + DB_LSN pagelsn; +} __ham_metagroup_args; + +#define DB_ham_groupalloc1 30 +typedef struct _ham_groupalloc1_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + DB_LSN metalsn; + DB_LSN mmetalsn; + db_pgno_t start_pgno; + u_int32_t num; +} __ham_groupalloc1_args; + +#define DB_ham_groupalloc2 31 +typedef struct _ham_groupalloc2_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DB_LSN meta_lsn; + DB_LSN alloc_lsn; + db_pgno_t start_pgno; + u_int32_t num; + db_pgno_t free; +} __ham_groupalloc2_args; + +#define DB_ham_groupalloc 32 +typedef struct _ham_groupalloc_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DB_LSN meta_lsn; + db_pgno_t start_pgno; + u_int32_t num; + db_pgno_t free; +} __ham_groupalloc_args; + +#define DB_ham_curadj 33 +typedef struct _ham_curadj_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_pgno_t pgno; + u_int32_t indx; + u_int32_t len; + u_int32_t dup_off; + int add; + int is_dup; + u_int32_t order; +} __ham_curadj_args; + +#define DB_ham_chgpg 34 +typedef struct _ham_chgpg_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_ham_mode mode; + db_pgno_t old_pgno; + db_pgno_t new_pgno; + u_int32_t old_indx; + u_int32_t new_indx; +} __ham_chgpg_args; + +#endif diff --git a/db/include_auto/hash_ext.h b/db/include_auto/hash_ext.h new file mode 100644 index 000000000..7776d916e --- /dev/null +++ b/db/include_auto/hash_ext.h @@ -0,0 +1,121 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _hash_ext_h_ +#define _hash_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __ham_metachk __P((DB *, const char *, HMETA *)); +int __ham_open __P((DB *, const char *, db_pgno_t, u_int32_t)); +int __ham_quick_delete __P((DBC *)); +int __ham_c_init __P((DBC *)); +int __ham_c_count __P((DBC *, db_recno_t *)); +int __ham_c_dup __P((DBC *, DBC *)); +u_int32_t __ham_call_hash __P((DBC *, u_int8_t *, int32_t)); +int __ham_init_dbt __P((DB_ENV *, DBT *, u_int32_t, void **, u_int32_t *)); +int __ham_c_update __P((DBC *, u_int32_t, int, int)); +int __ham_get_clist __P((DB *, db_pgno_t, u_int32_t, DBC ***)); +int __ham_c_chgpg __P((DBC *, db_pgno_t, u_int32_t, db_pgno_t, u_int32_t)); +int __ham_insdel_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, u_int32_t, DB_LSN *, const DBT *, const DBT *)); +int __ham_insdel_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_insdel_read __P((DB_ENV *, void *, __ham_insdel_args **)); +int __ham_newpage_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *)); +int __ham_newpage_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_newpage_read __P((DB_ENV *, void *, __ham_newpage_args **)); +int __ham_splitmeta_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_splitmeta_read __P((DB_ENV *, void *, __ham_splitmeta_args **)); +int __ham_splitdata_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, u_int32_t, db_pgno_t, const DBT *, DB_LSN *)); +int __ham_splitdata_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_splitdata_read __P((DB_ENV *, void *, __ham_splitdata_args **)); +int __ham_replace_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, u_int32_t, DB_LSN *, int32_t, const DBT *, const DBT *, u_int32_t)); +int __ham_replace_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_replace_read __P((DB_ENV *, void *, __ham_replace_args **)); +int __ham_newpgno_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_newpgno_read __P((DB_ENV *, void *, __ham_newpgno_args **)); +int __ham_ovfl_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_ovfl_read __P((DB_ENV *, void *, __ham_ovfl_args **)); +int __ham_copypage_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, const DBT *)); +int __ham_copypage_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_copypage_read __P((DB_ENV *, void *, __ham_copypage_args **)); +int __ham_metagroup_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, u_int32_t, db_pgno_t, DB_LSN *, DB_LSN *)); +int __ham_metagroup_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_metagroup_read __P((DB_ENV *, void *, __ham_metagroup_args **)); +int __ham_groupalloc1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_groupalloc1_read __P((DB_ENV *, void *, __ham_groupalloc1_args **)); +int __ham_groupalloc2_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_groupalloc2_read __P((DB_ENV *, void *, __ham_groupalloc2_args **)); +int __ham_groupalloc_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, db_pgno_t, u_int32_t, db_pgno_t)); +int __ham_groupalloc_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_groupalloc_read __P((DB_ENV *, void *, __ham_groupalloc_args **)); +int __ham_curadj_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, u_int32_t, u_int32_t, u_int32_t, int, int, u_int32_t)); +int __ham_curadj_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_curadj_read __P((DB_ENV *, void *, __ham_curadj_args **)); +int __ham_chgpg_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_ham_mode, db_pgno_t, db_pgno_t, u_int32_t, u_int32_t)); +int __ham_chgpg_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_chgpg_read __P((DB_ENV *, void *, __ham_chgpg_args **)); +int __ham_init_print __P((DB_ENV *)); +int __ham_init_recover __P((DB_ENV *)); +int __ham_pgin __P((DB_ENV *, db_pgno_t, void *, DBT *)); +int __ham_pgout __P((DB_ENV *, db_pgno_t, void *, DBT *)); +int __ham_mswap __P((void *)); +int __ham_add_dup __P((DBC *, DBT *, u_int32_t, db_pgno_t *)); +int __ham_dup_convert __P((DBC *)); +int __ham_make_dup __P((DB_ENV *, const DBT *, DBT *d, void **, u_int32_t *)); +void __ham_dsearch __P((DBC *, DBT *, u_int32_t *, int *)); +void __ham_cprint __P((DBC *)); +u_int32_t __ham_func2 __P((DB *, const void *, u_int32_t)); +u_int32_t __ham_func3 __P((DB *, const void *, u_int32_t)); +u_int32_t __ham_func4 __P((DB *, const void *, u_int32_t)); +u_int32_t __ham_func5 __P((DB *, const void *, u_int32_t)); +u_int32_t __ham_test __P((DB *, const void *, u_int32_t)); +int __ham_get_meta __P((DBC *)); +int __ham_release_meta __P((DBC *)); +int __ham_dirty_meta __P((DBC *)); +int __ham_db_create __P((DB *)); +int __ham_db_close __P((DB *)); +int __ham_item __P((DBC *, db_lockmode_t, db_pgno_t *)); +int __ham_item_reset __P((DBC *)); +void __ham_item_init __P((DBC *)); +int __ham_item_last __P((DBC *, db_lockmode_t, db_pgno_t *)); +int __ham_item_first __P((DBC *, db_lockmode_t, db_pgno_t *)); +int __ham_item_prev __P((DBC *, db_lockmode_t, db_pgno_t *)); +int __ham_item_next __P((DBC *, db_lockmode_t, db_pgno_t *)); +void __ham_putitem __P((PAGE *p, const DBT *, int)); +void __ham_reputpair __P((PAGE *p, u_int32_t, u_int32_t, const DBT *, const DBT *)); +int __ham_del_pair __P((DBC *, int)); +int __ham_replpair __P((DBC *, DBT *, u_int32_t)); +void __ham_onpage_replace __P((PAGE *, size_t, u_int32_t, int32_t, int32_t, DBT *)); +int __ham_split_page __P((DBC *, u_int32_t, u_int32_t)); +int __ham_add_el __P((DBC *, const DBT *, const DBT *, int)); +void __ham_copy_item __P((size_t, PAGE *, u_int32_t, PAGE *)); +int __ham_add_ovflpage __P((DBC *, PAGE *, int, PAGE **)); +int __ham_get_cpage __P((DBC *, db_lockmode_t)); +int __ham_next_cpage __P((DBC *, db_pgno_t, int)); +int __ham_lock_bucket __P((DBC *, db_lockmode_t)); +void __ham_dpair __P((DB *, PAGE *, u_int32_t)); +int __ham_insdel_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_newpage_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_replace_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_splitdata_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_copypage_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_metagroup_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_groupalloc_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_curadj_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_chgpg_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __ham_reclaim __P((DB *, DB_TXN *txn)); +int __ham_truncate __P((DB *, DB_TXN *txn, u_int32_t *)); +int __ham_stat __P((DB *, void *, u_int32_t)); +int __ham_traverse __P((DBC *, db_lockmode_t, int (*)(DB *, PAGE *, void *, int *), void *, int)); +int __ham_30_hashmeta __P((DB *, char *, u_int8_t *)); +int __ham_30_sizefix __P((DB *, DB_FH *, char *, u_int8_t *)); +int __ham_31_hashmeta __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); +int __ham_31_hash __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); +int __ham_vrfy_meta __P((DB *, VRFY_DBINFO *, HMETA *, db_pgno_t, u_int32_t)); +int __ham_vrfy __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +int __ham_vrfy_structure __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t)); +int __ham_vrfy_hashing __P((DB *, u_int32_t, HMETA *, u_int32_t, db_pgno_t, u_int32_t, u_int32_t (*) __P((DB *, const void *, u_int32_t)))); +int __ham_salvage __P((DB *, VRFY_DBINFO *, db_pgno_t, PAGE *, void *, int (*)(void *, const void *), u_int32_t)); +int __ham_meta2pgset __P((DB *, VRFY_DBINFO *, HMETA *, u_int32_t, DB *)); +#if defined(__cplusplus) +} +#endif +#endif /* _hash_ext_h_ */ diff --git a/db/include_auto/hash_ext.in b/db/include_auto/hash_ext.in new file mode 100644 index 000000000..fed1a8089 --- /dev/null +++ b/db/include_auto/hash_ext.in @@ -0,0 +1,232 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _hash_ext_h_ +#define _hash_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __ham_metachk __ham_metachk@DB_VERSION_UNIQUE_NAME@ +int __ham_metachk __P((DB *, const char *, HMETA *)); +#define __ham_open __ham_open@DB_VERSION_UNIQUE_NAME@ +int __ham_open __P((DB *, const char *, db_pgno_t, u_int32_t)); +#define __ham_quick_delete __ham_quick_delete@DB_VERSION_UNIQUE_NAME@ +int __ham_quick_delete __P((DBC *)); +#define __ham_c_init __ham_c_init@DB_VERSION_UNIQUE_NAME@ +int __ham_c_init __P((DBC *)); +#define __ham_c_count __ham_c_count@DB_VERSION_UNIQUE_NAME@ +int __ham_c_count __P((DBC *, db_recno_t *)); +#define __ham_c_dup __ham_c_dup@DB_VERSION_UNIQUE_NAME@ +int __ham_c_dup __P((DBC *, DBC *)); +#define __ham_call_hash __ham_call_hash@DB_VERSION_UNIQUE_NAME@ +u_int32_t __ham_call_hash __P((DBC *, u_int8_t *, int32_t)); +#define __ham_init_dbt __ham_init_dbt@DB_VERSION_UNIQUE_NAME@ +int __ham_init_dbt __P((DB_ENV *, DBT *, u_int32_t, void **, u_int32_t *)); +#define __ham_c_update __ham_c_update@DB_VERSION_UNIQUE_NAME@ +int __ham_c_update __P((DBC *, u_int32_t, int, int)); +#define __ham_get_clist __ham_get_clist@DB_VERSION_UNIQUE_NAME@ +int __ham_get_clist __P((DB *, db_pgno_t, u_int32_t, DBC ***)); +#define __ham_c_chgpg __ham_c_chgpg@DB_VERSION_UNIQUE_NAME@ +int __ham_c_chgpg __P((DBC *, db_pgno_t, u_int32_t, db_pgno_t, u_int32_t)); +#define __ham_insdel_log __ham_insdel_log@DB_VERSION_UNIQUE_NAME@ +int __ham_insdel_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, u_int32_t, DB_LSN *, const DBT *, const DBT *)); +#define __ham_insdel_print __ham_insdel_print@DB_VERSION_UNIQUE_NAME@ +int __ham_insdel_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_insdel_read __ham_insdel_read@DB_VERSION_UNIQUE_NAME@ +int __ham_insdel_read __P((DB_ENV *, void *, __ham_insdel_args **)); +#define __ham_newpage_log __ham_newpage_log@DB_VERSION_UNIQUE_NAME@ +int __ham_newpage_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *)); +#define __ham_newpage_print __ham_newpage_print@DB_VERSION_UNIQUE_NAME@ +int __ham_newpage_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_newpage_read __ham_newpage_read@DB_VERSION_UNIQUE_NAME@ +int __ham_newpage_read __P((DB_ENV *, void *, __ham_newpage_args **)); +#define __ham_splitmeta_print __ham_splitmeta_print@DB_VERSION_UNIQUE_NAME@ +int __ham_splitmeta_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_splitmeta_read __ham_splitmeta_read@DB_VERSION_UNIQUE_NAME@ +int __ham_splitmeta_read __P((DB_ENV *, void *, __ham_splitmeta_args **)); +#define __ham_splitdata_log __ham_splitdata_log@DB_VERSION_UNIQUE_NAME@ +int __ham_splitdata_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, u_int32_t, db_pgno_t, const DBT *, DB_LSN *)); +#define __ham_splitdata_print __ham_splitdata_print@DB_VERSION_UNIQUE_NAME@ +int __ham_splitdata_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_splitdata_read __ham_splitdata_read@DB_VERSION_UNIQUE_NAME@ +int __ham_splitdata_read __P((DB_ENV *, void *, __ham_splitdata_args **)); +#define __ham_replace_log __ham_replace_log@DB_VERSION_UNIQUE_NAME@ +int __ham_replace_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, u_int32_t, DB_LSN *, int32_t, const DBT *, const DBT *, u_int32_t)); +#define __ham_replace_print __ham_replace_print@DB_VERSION_UNIQUE_NAME@ +int __ham_replace_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_replace_read __ham_replace_read@DB_VERSION_UNIQUE_NAME@ +int __ham_replace_read __P((DB_ENV *, void *, __ham_replace_args **)); +#define __ham_newpgno_print __ham_newpgno_print@DB_VERSION_UNIQUE_NAME@ +int __ham_newpgno_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_newpgno_read __ham_newpgno_read@DB_VERSION_UNIQUE_NAME@ +int __ham_newpgno_read __P((DB_ENV *, void *, __ham_newpgno_args **)); +#define __ham_ovfl_print __ham_ovfl_print@DB_VERSION_UNIQUE_NAME@ +int __ham_ovfl_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_ovfl_read __ham_ovfl_read@DB_VERSION_UNIQUE_NAME@ +int __ham_ovfl_read __P((DB_ENV *, void *, __ham_ovfl_args **)); +#define __ham_copypage_log __ham_copypage_log@DB_VERSION_UNIQUE_NAME@ +int __ham_copypage_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, db_pgno_t, DB_LSN *, const DBT *)); +#define __ham_copypage_print __ham_copypage_print@DB_VERSION_UNIQUE_NAME@ +int __ham_copypage_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_copypage_read __ham_copypage_read@DB_VERSION_UNIQUE_NAME@ +int __ham_copypage_read __P((DB_ENV *, void *, __ham_copypage_args **)); +#define __ham_metagroup_log __ham_metagroup_log@DB_VERSION_UNIQUE_NAME@ +int __ham_metagroup_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, u_int32_t, db_pgno_t, DB_LSN *, DB_LSN *)); +#define __ham_metagroup_print __ham_metagroup_print@DB_VERSION_UNIQUE_NAME@ +int __ham_metagroup_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_metagroup_read __ham_metagroup_read@DB_VERSION_UNIQUE_NAME@ +int __ham_metagroup_read __P((DB_ENV *, void *, __ham_metagroup_args **)); +#define __ham_groupalloc1_print __ham_groupalloc1_print@DB_VERSION_UNIQUE_NAME@ +int __ham_groupalloc1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_groupalloc1_read __ham_groupalloc1_read@DB_VERSION_UNIQUE_NAME@ +int __ham_groupalloc1_read __P((DB_ENV *, void *, __ham_groupalloc1_args **)); +#define __ham_groupalloc2_print __ham_groupalloc2_print@DB_VERSION_UNIQUE_NAME@ +int __ham_groupalloc2_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_groupalloc2_read __ham_groupalloc2_read@DB_VERSION_UNIQUE_NAME@ +int __ham_groupalloc2_read __P((DB_ENV *, void *, __ham_groupalloc2_args **)); +#define __ham_groupalloc_log __ham_groupalloc_log@DB_VERSION_UNIQUE_NAME@ +int __ham_groupalloc_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, db_pgno_t, u_int32_t, db_pgno_t)); +#define __ham_groupalloc_print __ham_groupalloc_print@DB_VERSION_UNIQUE_NAME@ +int __ham_groupalloc_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_groupalloc_read __ham_groupalloc_read@DB_VERSION_UNIQUE_NAME@ +int __ham_groupalloc_read __P((DB_ENV *, void *, __ham_groupalloc_args **)); +#define __ham_curadj_log __ham_curadj_log@DB_VERSION_UNIQUE_NAME@ +int __ham_curadj_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_pgno_t, u_int32_t, u_int32_t, u_int32_t, int, int, u_int32_t)); +#define __ham_curadj_print __ham_curadj_print@DB_VERSION_UNIQUE_NAME@ +int __ham_curadj_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_curadj_read __ham_curadj_read@DB_VERSION_UNIQUE_NAME@ +int __ham_curadj_read __P((DB_ENV *, void *, __ham_curadj_args **)); +#define __ham_chgpg_log __ham_chgpg_log@DB_VERSION_UNIQUE_NAME@ +int __ham_chgpg_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_ham_mode, db_pgno_t, db_pgno_t, u_int32_t, u_int32_t)); +#define __ham_chgpg_print __ham_chgpg_print@DB_VERSION_UNIQUE_NAME@ +int __ham_chgpg_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_chgpg_read __ham_chgpg_read@DB_VERSION_UNIQUE_NAME@ +int __ham_chgpg_read __P((DB_ENV *, void *, __ham_chgpg_args **)); +#define __ham_init_print __ham_init_print@DB_VERSION_UNIQUE_NAME@ +int __ham_init_print __P((DB_ENV *)); +#define __ham_init_recover __ham_init_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_init_recover __P((DB_ENV *)); +#define __ham_pgin __ham_pgin@DB_VERSION_UNIQUE_NAME@ +int __ham_pgin __P((DB_ENV *, db_pgno_t, void *, DBT *)); +#define __ham_pgout __ham_pgout@DB_VERSION_UNIQUE_NAME@ +int __ham_pgout __P((DB_ENV *, db_pgno_t, void *, DBT *)); +#define __ham_mswap __ham_mswap@DB_VERSION_UNIQUE_NAME@ +int __ham_mswap __P((void *)); +#define __ham_add_dup __ham_add_dup@DB_VERSION_UNIQUE_NAME@ +int __ham_add_dup __P((DBC *, DBT *, u_int32_t, db_pgno_t *)); +#define __ham_dup_convert __ham_dup_convert@DB_VERSION_UNIQUE_NAME@ +int __ham_dup_convert __P((DBC *)); +#define __ham_make_dup __ham_make_dup@DB_VERSION_UNIQUE_NAME@ +int __ham_make_dup __P((DB_ENV *, const DBT *, DBT *d, void **, u_int32_t *)); +#define __ham_dsearch __ham_dsearch@DB_VERSION_UNIQUE_NAME@ +void __ham_dsearch __P((DBC *, DBT *, u_int32_t *, int *)); +#define __ham_cprint __ham_cprint@DB_VERSION_UNIQUE_NAME@ +void __ham_cprint __P((DBC *)); +#define __ham_func2 __ham_func2@DB_VERSION_UNIQUE_NAME@ +u_int32_t __ham_func2 __P((DB *, const void *, u_int32_t)); +#define __ham_func3 __ham_func3@DB_VERSION_UNIQUE_NAME@ +u_int32_t __ham_func3 __P((DB *, const void *, u_int32_t)); +#define __ham_func4 __ham_func4@DB_VERSION_UNIQUE_NAME@ +u_int32_t __ham_func4 __P((DB *, const void *, u_int32_t)); +#define __ham_func5 __ham_func5@DB_VERSION_UNIQUE_NAME@ +u_int32_t __ham_func5 __P((DB *, const void *, u_int32_t)); +#define __ham_test __ham_test@DB_VERSION_UNIQUE_NAME@ +u_int32_t __ham_test __P((DB *, const void *, u_int32_t)); +#define __ham_get_meta __ham_get_meta@DB_VERSION_UNIQUE_NAME@ +int __ham_get_meta __P((DBC *)); +#define __ham_release_meta __ham_release_meta@DB_VERSION_UNIQUE_NAME@ +int __ham_release_meta __P((DBC *)); +#define __ham_dirty_meta __ham_dirty_meta@DB_VERSION_UNIQUE_NAME@ +int __ham_dirty_meta __P((DBC *)); +#define __ham_db_create __ham_db_create@DB_VERSION_UNIQUE_NAME@ +int __ham_db_create __P((DB *)); +#define __ham_db_close __ham_db_close@DB_VERSION_UNIQUE_NAME@ +int __ham_db_close __P((DB *)); +#define __ham_item __ham_item@DB_VERSION_UNIQUE_NAME@ +int __ham_item __P((DBC *, db_lockmode_t, db_pgno_t *)); +#define __ham_item_reset __ham_item_reset@DB_VERSION_UNIQUE_NAME@ +int __ham_item_reset __P((DBC *)); +#define __ham_item_init __ham_item_init@DB_VERSION_UNIQUE_NAME@ +void __ham_item_init __P((DBC *)); +#define __ham_item_last __ham_item_last@DB_VERSION_UNIQUE_NAME@ +int __ham_item_last __P((DBC *, db_lockmode_t, db_pgno_t *)); +#define __ham_item_first __ham_item_first@DB_VERSION_UNIQUE_NAME@ +int __ham_item_first __P((DBC *, db_lockmode_t, db_pgno_t *)); +#define __ham_item_prev __ham_item_prev@DB_VERSION_UNIQUE_NAME@ +int __ham_item_prev __P((DBC *, db_lockmode_t, db_pgno_t *)); +#define __ham_item_next __ham_item_next@DB_VERSION_UNIQUE_NAME@ +int __ham_item_next __P((DBC *, db_lockmode_t, db_pgno_t *)); +#define __ham_putitem __ham_putitem@DB_VERSION_UNIQUE_NAME@ +void __ham_putitem __P((PAGE *p, const DBT *, int)); +#define __ham_reputpair __ham_reputpair@DB_VERSION_UNIQUE_NAME@ +void __ham_reputpair __P((PAGE *p, u_int32_t, u_int32_t, const DBT *, const DBT *)); +#define __ham_del_pair __ham_del_pair@DB_VERSION_UNIQUE_NAME@ +int __ham_del_pair __P((DBC *, int)); +#define __ham_replpair __ham_replpair@DB_VERSION_UNIQUE_NAME@ +int __ham_replpair __P((DBC *, DBT *, u_int32_t)); +#define __ham_onpage_replace __ham_onpage_replace@DB_VERSION_UNIQUE_NAME@ +void __ham_onpage_replace __P((PAGE *, size_t, u_int32_t, int32_t, int32_t, DBT *)); +#define __ham_split_page __ham_split_page@DB_VERSION_UNIQUE_NAME@ +int __ham_split_page __P((DBC *, u_int32_t, u_int32_t)); +#define __ham_add_el __ham_add_el@DB_VERSION_UNIQUE_NAME@ +int __ham_add_el __P((DBC *, const DBT *, const DBT *, int)); +#define __ham_copy_item __ham_copy_item@DB_VERSION_UNIQUE_NAME@ +void __ham_copy_item __P((size_t, PAGE *, u_int32_t, PAGE *)); +#define __ham_add_ovflpage __ham_add_ovflpage@DB_VERSION_UNIQUE_NAME@ +int __ham_add_ovflpage __P((DBC *, PAGE *, int, PAGE **)); +#define __ham_get_cpage __ham_get_cpage@DB_VERSION_UNIQUE_NAME@ +int __ham_get_cpage __P((DBC *, db_lockmode_t)); +#define __ham_next_cpage __ham_next_cpage@DB_VERSION_UNIQUE_NAME@ +int __ham_next_cpage __P((DBC *, db_pgno_t, int)); +#define __ham_lock_bucket __ham_lock_bucket@DB_VERSION_UNIQUE_NAME@ +int __ham_lock_bucket __P((DBC *, db_lockmode_t)); +#define __ham_dpair __ham_dpair@DB_VERSION_UNIQUE_NAME@ +void __ham_dpair __P((DB *, PAGE *, u_int32_t)); +#define __ham_insdel_recover __ham_insdel_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_insdel_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_newpage_recover __ham_newpage_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_newpage_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_replace_recover __ham_replace_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_replace_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_splitdata_recover __ham_splitdata_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_splitdata_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_copypage_recover __ham_copypage_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_copypage_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_metagroup_recover __ham_metagroup_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_metagroup_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_groupalloc_recover __ham_groupalloc_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_groupalloc_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_curadj_recover __ham_curadj_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_curadj_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_chgpg_recover __ham_chgpg_recover@DB_VERSION_UNIQUE_NAME@ +int __ham_chgpg_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __ham_reclaim __ham_reclaim@DB_VERSION_UNIQUE_NAME@ +int __ham_reclaim __P((DB *, DB_TXN *txn)); +#define __ham_truncate __ham_truncate@DB_VERSION_UNIQUE_NAME@ +int __ham_truncate __P((DB *, DB_TXN *txn, u_int32_t *)); +#define __ham_stat __ham_stat@DB_VERSION_UNIQUE_NAME@ +int __ham_stat __P((DB *, void *, u_int32_t)); +#define __ham_traverse __ham_traverse@DB_VERSION_UNIQUE_NAME@ +int __ham_traverse __P((DBC *, db_lockmode_t, int (*)(DB *, PAGE *, void *, int *), void *, int)); +#define __ham_30_hashmeta __ham_30_hashmeta@DB_VERSION_UNIQUE_NAME@ +int __ham_30_hashmeta __P((DB *, char *, u_int8_t *)); +#define __ham_30_sizefix __ham_30_sizefix@DB_VERSION_UNIQUE_NAME@ +int __ham_30_sizefix __P((DB *, DB_FH *, char *, u_int8_t *)); +#define __ham_31_hashmeta __ham_31_hashmeta@DB_VERSION_UNIQUE_NAME@ +int __ham_31_hashmeta __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); +#define __ham_31_hash __ham_31_hash@DB_VERSION_UNIQUE_NAME@ +int __ham_31_hash __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); +#define __ham_vrfy_meta __ham_vrfy_meta@DB_VERSION_UNIQUE_NAME@ +int __ham_vrfy_meta __P((DB *, VRFY_DBINFO *, HMETA *, db_pgno_t, u_int32_t)); +#define __ham_vrfy __ham_vrfy@DB_VERSION_UNIQUE_NAME@ +int __ham_vrfy __P((DB *, VRFY_DBINFO *, PAGE *, db_pgno_t, u_int32_t)); +#define __ham_vrfy_structure __ham_vrfy_structure@DB_VERSION_UNIQUE_NAME@ +int __ham_vrfy_structure __P((DB *, VRFY_DBINFO *, db_pgno_t, u_int32_t)); +#define __ham_vrfy_hashing __ham_vrfy_hashing@DB_VERSION_UNIQUE_NAME@ +int __ham_vrfy_hashing __P((DB *, u_int32_t, HMETA *, u_int32_t, db_pgno_t, u_int32_t, u_int32_t (*) __P((DB *, const void *, u_int32_t)))); +#define __ham_salvage __ham_salvage@DB_VERSION_UNIQUE_NAME@ +int __ham_salvage __P((DB *, VRFY_DBINFO *, db_pgno_t, PAGE *, void *, int (*)(void *, const void *), u_int32_t)); +#define __ham_meta2pgset __ham_meta2pgset@DB_VERSION_UNIQUE_NAME@ +int __ham_meta2pgset __P((DB *, VRFY_DBINFO *, HMETA *, u_int32_t, DB *)); +#if defined(__cplusplus) +} +#endif +#endif /* _hash_ext_h_ */ diff --git a/db/include_auto/lock_ext.h b/db/include_auto/lock_ext.h new file mode 100644 index 000000000..e53329bc0 --- /dev/null +++ b/db/include_auto/lock_ext.h @@ -0,0 +1,34 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _lock_ext_h_ +#define _lock_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __lock_downgrade __P((DB_ENV *, DB_LOCK *, db_lockmode_t, u_int32_t)); +int __lock_addfamilylocker __P((DB_ENV *, u_int32_t, u_int32_t)); +int __lock_freefamilylocker __P((DB_LOCKTAB *, u_int32_t)); +void __lock_freelocker __P((DB_LOCKTAB *, DB_LOCKREGION *, DB_LOCKER *, u_int32_t)); +int __lock_getlocker __P((DB_LOCKTAB *, u_int32_t, u_int32_t, int, DB_LOCKER **)); +int __lock_promote __P((DB_LOCKTAB *, DB_LOCKOBJ *, int)); +void __lock_printlock __P((DB_LOCKTAB *, struct __db_lock *, int)); +int __lock_set_lk_conflicts __P((DB_ENV *, u_int8_t *, int)); +int __lock_set_lk_detect __P((DB_ENV *, u_int32_t)); +int __lock_set_lk_max __P((DB_ENV *, u_int32_t)); +int __lock_set_lk_max_locks __P((DB_ENV *, u_int32_t)); +int __lock_set_lk_max_lockers __P((DB_ENV *, u_int32_t)); +int __lock_set_lk_max_objects __P((DB_ENV *, u_int32_t)); +void __lock_dbenv_create __P((DB_ENV *)); +void __lock_dbenv_close __P((DB_ENV *)); +int __lock_open __P((DB_ENV *)); +int __lock_close __P((DB_ENV *)); +void __lock_region_destroy __P((DB_ENV *, REGINFO *)); +int __lock_dump_region __P((DB_ENV *, char *, FILE *)); +int __lock_cmp __P((const DBT *, DB_LOCKOBJ *)); +int __lock_locker_cmp __P((u_int32_t, DB_LOCKER *)); +u_int32_t __lock_ohash __P((const DBT *)); +u_int32_t __lock_lhash __P((DB_LOCKOBJ *)); +u_int32_t __lock_locker_hash __P((u_int32_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _lock_ext_h_ */ diff --git a/db/include_auto/lock_ext.in b/db/include_auto/lock_ext.in new file mode 100644 index 000000000..718270d29 --- /dev/null +++ b/db/include_auto/lock_ext.in @@ -0,0 +1,58 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _lock_ext_h_ +#define _lock_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __lock_downgrade __lock_downgrade@DB_VERSION_UNIQUE_NAME@ +int __lock_downgrade __P((DB_ENV *, DB_LOCK *, db_lockmode_t, u_int32_t)); +#define __lock_addfamilylocker __lock_addfamilylocker@DB_VERSION_UNIQUE_NAME@ +int __lock_addfamilylocker __P((DB_ENV *, u_int32_t, u_int32_t)); +#define __lock_freefamilylocker __lock_freefamilylocker@DB_VERSION_UNIQUE_NAME@ +int __lock_freefamilylocker __P((DB_LOCKTAB *, u_int32_t)); +#define __lock_freelocker __lock_freelocker@DB_VERSION_UNIQUE_NAME@ +void __lock_freelocker __P((DB_LOCKTAB *, DB_LOCKREGION *, DB_LOCKER *, u_int32_t)); +#define __lock_getlocker __lock_getlocker@DB_VERSION_UNIQUE_NAME@ +int __lock_getlocker __P((DB_LOCKTAB *, u_int32_t, u_int32_t, int, DB_LOCKER **)); +#define __lock_promote __lock_promote@DB_VERSION_UNIQUE_NAME@ +int __lock_promote __P((DB_LOCKTAB *, DB_LOCKOBJ *, int)); +#define __lock_printlock __lock_printlock@DB_VERSION_UNIQUE_NAME@ +void __lock_printlock __P((DB_LOCKTAB *, struct __db_lock *, int)); +#define __lock_set_lk_conflicts __lock_set_lk_conflicts@DB_VERSION_UNIQUE_NAME@ +int __lock_set_lk_conflicts __P((DB_ENV *, u_int8_t *, int)); +#define __lock_set_lk_detect __lock_set_lk_detect@DB_VERSION_UNIQUE_NAME@ +int __lock_set_lk_detect __P((DB_ENV *, u_int32_t)); +#define __lock_set_lk_max __lock_set_lk_max@DB_VERSION_UNIQUE_NAME@ +int __lock_set_lk_max __P((DB_ENV *, u_int32_t)); +#define __lock_set_lk_max_locks __lock_set_lk_max_locks@DB_VERSION_UNIQUE_NAME@ +int __lock_set_lk_max_locks __P((DB_ENV *, u_int32_t)); +#define __lock_set_lk_max_lockers __lock_set_lk_max_lockers@DB_VERSION_UNIQUE_NAME@ +int __lock_set_lk_max_lockers __P((DB_ENV *, u_int32_t)); +#define __lock_set_lk_max_objects __lock_set_lk_max_objects@DB_VERSION_UNIQUE_NAME@ +int __lock_set_lk_max_objects __P((DB_ENV *, u_int32_t)); +#define __lock_dbenv_create __lock_dbenv_create@DB_VERSION_UNIQUE_NAME@ +void __lock_dbenv_create __P((DB_ENV *)); +#define __lock_dbenv_close __lock_dbenv_close@DB_VERSION_UNIQUE_NAME@ +void __lock_dbenv_close __P((DB_ENV *)); +#define __lock_open __lock_open@DB_VERSION_UNIQUE_NAME@ +int __lock_open __P((DB_ENV *)); +#define __lock_close __lock_close@DB_VERSION_UNIQUE_NAME@ +int __lock_close __P((DB_ENV *)); +#define __lock_region_destroy __lock_region_destroy@DB_VERSION_UNIQUE_NAME@ +void __lock_region_destroy __P((DB_ENV *, REGINFO *)); +#define __lock_dump_region __lock_dump_region@DB_VERSION_UNIQUE_NAME@ +int __lock_dump_region __P((DB_ENV *, char *, FILE *)); +#define __lock_cmp __lock_cmp@DB_VERSION_UNIQUE_NAME@ +int __lock_cmp __P((const DBT *, DB_LOCKOBJ *)); +#define __lock_locker_cmp __lock_locker_cmp@DB_VERSION_UNIQUE_NAME@ +int __lock_locker_cmp __P((u_int32_t, DB_LOCKER *)); +#define __lock_ohash __lock_ohash@DB_VERSION_UNIQUE_NAME@ +u_int32_t __lock_ohash __P((const DBT *)); +#define __lock_lhash __lock_lhash@DB_VERSION_UNIQUE_NAME@ +u_int32_t __lock_lhash __P((DB_LOCKOBJ *)); +#define __lock_locker_hash __lock_locker_hash@DB_VERSION_UNIQUE_NAME@ +u_int32_t __lock_locker_hash __P((u_int32_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _lock_ext_h_ */ diff --git a/db/include_auto/log_auto.h b/db/include_auto/log_auto.h new file mode 100644 index 000000000..fd7b2278a --- /dev/null +++ b/db/include_auto/log_auto.h @@ -0,0 +1,30 @@ +/* Do not edit: automatically built by gen_rec.awk. */ + +#ifndef log_AUTO_H +#define log_AUTO_H +#define DB_log_register1 1 +typedef struct _log_register1_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + DBT name; + DBT uid; + int32_t fileid; + DBTYPE ftype; +} __log_register1_args; + +#define DB_log_register 2 +typedef struct _log_register_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + DBT name; + DBT uid; + int32_t fileid; + DBTYPE ftype; + db_pgno_t meta_pgno; +} __log_register_args; + +#endif diff --git a/db/include_auto/log_ext.h b/db/include_auto/log_ext.h new file mode 100644 index 000000000..e391fd2a5 --- /dev/null +++ b/db/include_auto/log_ext.h @@ -0,0 +1,37 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _log_ext_h_ +#define _log_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __log_open __P((DB_ENV *)); +int __log_find __P((DB_LOG *, int, int *, logfile_validity *)); +int __log_valid __P((DB_LOG *, u_int32_t, int, logfile_validity *)); +int __log_close __P((DB_ENV *)); +int __log_lastckp __P((DB_ENV *, DB_LSN *)); +void __log_region_destroy __P((DB_ENV *, REGINFO *)); +int __log_register1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __log_register1_read __P((DB_ENV *, void *, __log_register1_args **)); +int __log_register_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, const DBT *, const DBT *, int32_t, DBTYPE, db_pgno_t)); +int __log_register_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __log_register_read __P((DB_ENV *, void *, __log_register_args **)); +int __log_init_print __P((DB_ENV *)); +int __log_init_recover __P((DB_ENV *)); +int __log_findckp __P((DB_ENV *, DB_LSN *)); +int __log_get __P((DB_LOG *, DB_LSN *, DBT *, u_int32_t, int)); +void __log_dbenv_create __P((DB_ENV *)); +int __log_put __P((DB_ENV *, DB_LSN *, const DBT *, u_int32_t)); +int __log_name __P((DB_LOG *, u_int32_t, char **, DB_FH *, u_int32_t)); +int __log_register_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __log_reopen_file __P((DB_ENV *, char *, int32_t, u_int8_t *, db_pgno_t)); +int __log_add_logid __P((DB_ENV *, DB_LOG *, DB *, int32_t)); +int __db_fileid_to_db __P((DB_ENV *, DB **, int32_t, int)); +void __log_close_files __P((DB_ENV *)); +void __log_rem_logid __P((DB_LOG *, DB *, int32_t)); +int __log_lid_to_fname __P((DB_LOG *, int32_t, FNAME **)); +int __log_filelist_update __P((DB_ENV *, DB *, int32_t, const char *, int *)); +int __log_file_lock __P((DB *)); +#if defined(__cplusplus) +} +#endif +#endif /* _log_ext_h_ */ diff --git a/db/include_auto/log_ext.in b/db/include_auto/log_ext.in new file mode 100644 index 000000000..f04f94f12 --- /dev/null +++ b/db/include_auto/log_ext.in @@ -0,0 +1,64 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _log_ext_h_ +#define _log_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __log_open __log_open@DB_VERSION_UNIQUE_NAME@ +int __log_open __P((DB_ENV *)); +#define __log_find __log_find@DB_VERSION_UNIQUE_NAME@ +int __log_find __P((DB_LOG *, int, int *, logfile_validity *)); +#define __log_valid __log_valid@DB_VERSION_UNIQUE_NAME@ +int __log_valid __P((DB_LOG *, u_int32_t, int, logfile_validity *)); +#define __log_close __log_close@DB_VERSION_UNIQUE_NAME@ +int __log_close __P((DB_ENV *)); +#define __log_lastckp __log_lastckp@DB_VERSION_UNIQUE_NAME@ +int __log_lastckp __P((DB_ENV *, DB_LSN *)); +#define __log_region_destroy __log_region_destroy@DB_VERSION_UNIQUE_NAME@ +void __log_region_destroy __P((DB_ENV *, REGINFO *)); +#define __log_register1_print __log_register1_print@DB_VERSION_UNIQUE_NAME@ +int __log_register1_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __log_register1_read __log_register1_read@DB_VERSION_UNIQUE_NAME@ +int __log_register1_read __P((DB_ENV *, void *, __log_register1_args **)); +#define __log_register_log __log_register_log@DB_VERSION_UNIQUE_NAME@ +int __log_register_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, const DBT *, const DBT *, int32_t, DBTYPE, db_pgno_t)); +#define __log_register_print __log_register_print@DB_VERSION_UNIQUE_NAME@ +int __log_register_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __log_register_read __log_register_read@DB_VERSION_UNIQUE_NAME@ +int __log_register_read __P((DB_ENV *, void *, __log_register_args **)); +#define __log_init_print __log_init_print@DB_VERSION_UNIQUE_NAME@ +int __log_init_print __P((DB_ENV *)); +#define __log_init_recover __log_init_recover@DB_VERSION_UNIQUE_NAME@ +int __log_init_recover __P((DB_ENV *)); +#define __log_findckp __log_findckp@DB_VERSION_UNIQUE_NAME@ +int __log_findckp __P((DB_ENV *, DB_LSN *)); +#define __log_get __log_get@DB_VERSION_UNIQUE_NAME@ +int __log_get __P((DB_LOG *, DB_LSN *, DBT *, u_int32_t, int)); +#define __log_dbenv_create __log_dbenv_create@DB_VERSION_UNIQUE_NAME@ +void __log_dbenv_create __P((DB_ENV *)); +#define __log_put __log_put@DB_VERSION_UNIQUE_NAME@ +int __log_put __P((DB_ENV *, DB_LSN *, const DBT *, u_int32_t)); +#define __log_name __log_name@DB_VERSION_UNIQUE_NAME@ +int __log_name __P((DB_LOG *, u_int32_t, char **, DB_FH *, u_int32_t)); +#define __log_register_recover __log_register_recover@DB_VERSION_UNIQUE_NAME@ +int __log_register_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __log_reopen_file __log_reopen_file@DB_VERSION_UNIQUE_NAME@ +int __log_reopen_file __P((DB_ENV *, char *, int32_t, u_int8_t *, db_pgno_t)); +#define __log_add_logid __log_add_logid@DB_VERSION_UNIQUE_NAME@ +int __log_add_logid __P((DB_ENV *, DB_LOG *, DB *, int32_t)); +#define __db_fileid_to_db __db_fileid_to_db@DB_VERSION_UNIQUE_NAME@ +int __db_fileid_to_db __P((DB_ENV *, DB **, int32_t, int)); +#define __log_close_files __log_close_files@DB_VERSION_UNIQUE_NAME@ +void __log_close_files __P((DB_ENV *)); +#define __log_rem_logid __log_rem_logid@DB_VERSION_UNIQUE_NAME@ +void __log_rem_logid __P((DB_LOG *, DB *, int32_t)); +#define __log_lid_to_fname __log_lid_to_fname@DB_VERSION_UNIQUE_NAME@ +int __log_lid_to_fname __P((DB_LOG *, int32_t, FNAME **)); +#define __log_filelist_update __log_filelist_update@DB_VERSION_UNIQUE_NAME@ +int __log_filelist_update __P((DB_ENV *, DB *, int32_t, const char *, int *)); +#define __log_file_lock __log_file_lock@DB_VERSION_UNIQUE_NAME@ +int __log_file_lock __P((DB *)); +#if defined(__cplusplus) +} +#endif +#endif /* _log_ext_h_ */ diff --git a/db/include_auto/mp_ext.h b/db/include_auto/mp_ext.h new file mode 100644 index 000000000..04ede50a8 --- /dev/null +++ b/db/include_auto/mp_ext.h @@ -0,0 +1,32 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _mp_ext_h_ +#define _mp_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __memp_alloc __P((DB_MPOOL *, REGINFO *, MPOOLFILE *, size_t, roff_t *, void *)); +int __memp_bhwrite __P((DB_MPOOL *, MPOOLFILE *, BH *, int, int *, int *)); +int __memp_pgread __P((DB_MPOOLFILE *, BH *, int)); +int __memp_pgwrite __P((DB_MPOOL *, DB_MPOOLFILE *, BH *, int *, int *)); +int __memp_pg __P((DB_MPOOLFILE *, BH *, int)); +void __memp_bhfree __P((DB_MPOOL *, BH *, int)); +void __memp_set_unlink __P((DB_MPOOLFILE *)); +void __memp_clear_unlink __P((DB_MPOOLFILE *)); +void __memp_refcount __P((DB_MPOOLFILE *, db_pgno_t *)); +int __memp_fopen __P((DB_MPOOL *, MPOOLFILE *, const char *, u_int32_t, int, size_t, int, DB_MPOOL_FINFO *, DB_MPOOLFILE **)); +int __memp_fclose __P((DB_MPOOLFILE *, int)); +void __memp_mf_discard __P((DB_MPOOL *, MPOOLFILE *)); +int __memp_fremove __P((DB_MPOOLFILE *)); +char * __memp_fn __P((DB_MPOOLFILE *)); +char * __memp_fns __P((DB_MPOOL *, MPOOLFILE *)); +void __memp_dbenv_create __P((DB_ENV *)); +int __memp_open __P((DB_ENV *)); +int __memp_close __P((DB_ENV *)); +void __mpool_region_destroy __P((DB_ENV *, REGINFO *)); +int __memp_dump_region __P((DB_ENV *, char *, FILE *)); +int __mp_xxx_fh __P((DB_MPOOLFILE *, DB_FH **)); +int __memp_close_flush_files __P((DB_MPOOL *)); +#if defined(__cplusplus) +} +#endif +#endif /* _mp_ext_h_ */ diff --git a/db/include_auto/mp_ext.in b/db/include_auto/mp_ext.in new file mode 100644 index 000000000..9ceaabbdf --- /dev/null +++ b/db/include_auto/mp_ext.in @@ -0,0 +1,54 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _mp_ext_h_ +#define _mp_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __memp_alloc __memp_alloc@DB_VERSION_UNIQUE_NAME@ +int __memp_alloc __P((DB_MPOOL *, REGINFO *, MPOOLFILE *, size_t, roff_t *, void *)); +#define __memp_bhwrite __memp_bhwrite@DB_VERSION_UNIQUE_NAME@ +int __memp_bhwrite __P((DB_MPOOL *, MPOOLFILE *, BH *, int, int *, int *)); +#define __memp_pgread __memp_pgread@DB_VERSION_UNIQUE_NAME@ +int __memp_pgread __P((DB_MPOOLFILE *, BH *, int)); +#define __memp_pgwrite __memp_pgwrite@DB_VERSION_UNIQUE_NAME@ +int __memp_pgwrite __P((DB_MPOOL *, DB_MPOOLFILE *, BH *, int *, int *)); +#define __memp_pg __memp_pg@DB_VERSION_UNIQUE_NAME@ +int __memp_pg __P((DB_MPOOLFILE *, BH *, int)); +#define __memp_bhfree __memp_bhfree@DB_VERSION_UNIQUE_NAME@ +void __memp_bhfree __P((DB_MPOOL *, BH *, int)); +#define __memp_set_unlink __memp_set_unlink@DB_VERSION_UNIQUE_NAME@ +void __memp_set_unlink __P((DB_MPOOLFILE *)); +#define __memp_clear_unlink __memp_clear_unlink@DB_VERSION_UNIQUE_NAME@ +void __memp_clear_unlink __P((DB_MPOOLFILE *)); +#define __memp_refcount __memp_refcount@DB_VERSION_UNIQUE_NAME@ +void __memp_refcount __P((DB_MPOOLFILE *, db_pgno_t *)); +#define __memp_fopen __memp_fopen@DB_VERSION_UNIQUE_NAME@ +int __memp_fopen __P((DB_MPOOL *, MPOOLFILE *, const char *, u_int32_t, int, size_t, int, DB_MPOOL_FINFO *, DB_MPOOLFILE **)); +#define __memp_fclose __memp_fclose@DB_VERSION_UNIQUE_NAME@ +int __memp_fclose __P((DB_MPOOLFILE *, int)); +#define __memp_mf_discard __memp_mf_discard@DB_VERSION_UNIQUE_NAME@ +void __memp_mf_discard __P((DB_MPOOL *, MPOOLFILE *)); +#define __memp_fremove __memp_fremove@DB_VERSION_UNIQUE_NAME@ +int __memp_fremove __P((DB_MPOOLFILE *)); +#define __memp_fn __memp_fn@DB_VERSION_UNIQUE_NAME@ +char * __memp_fn __P((DB_MPOOLFILE *)); +#define __memp_fns __memp_fns@DB_VERSION_UNIQUE_NAME@ +char * __memp_fns __P((DB_MPOOL *, MPOOLFILE *)); +#define __memp_dbenv_create __memp_dbenv_create@DB_VERSION_UNIQUE_NAME@ +void __memp_dbenv_create __P((DB_ENV *)); +#define __memp_open __memp_open@DB_VERSION_UNIQUE_NAME@ +int __memp_open __P((DB_ENV *)); +#define __memp_close __memp_close@DB_VERSION_UNIQUE_NAME@ +int __memp_close __P((DB_ENV *)); +#define __mpool_region_destroy __mpool_region_destroy@DB_VERSION_UNIQUE_NAME@ +void __mpool_region_destroy __P((DB_ENV *, REGINFO *)); +#define __memp_dump_region __memp_dump_region@DB_VERSION_UNIQUE_NAME@ +int __memp_dump_region __P((DB_ENV *, char *, FILE *)); +#define __mp_xxx_fh __mp_xxx_fh@DB_VERSION_UNIQUE_NAME@ +int __mp_xxx_fh __P((DB_MPOOLFILE *, DB_FH **)); +#define __memp_close_flush_files __memp_close_flush_files@DB_VERSION_UNIQUE_NAME@ +int __memp_close_flush_files __P((DB_MPOOL *)); +#if defined(__cplusplus) +} +#endif +#endif /* _mp_ext_h_ */ diff --git a/db/include_auto/mutex_ext.h b/db/include_auto/mutex_ext.h new file mode 100644 index 000000000..7b6b5a22c --- /dev/null +++ b/db/include_auto/mutex_ext.h @@ -0,0 +1,28 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _mutex_ext_h_ +#define _mutex_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __db_fcntl_mutex_init __P((DB_ENV *, MUTEX *, u_int32_t)); +int __db_fcntl_mutex_lock __P((DB_ENV *, MUTEX *, DB_FH *)); +int __db_fcntl_mutex_unlock __P((DB_ENV *, MUTEX *)); +int __db_fcntl_mutex_destroy __P((MUTEX *)); +int __db_pthread_mutex_init __P((DB_ENV *, MUTEX *, u_int32_t)); +int __db_pthread_mutex_lock __P((DB_ENV *, MUTEX *)); +int __db_pthread_mutex_unlock __P((DB_ENV *, MUTEX *)); +int __db_pthread_mutex_destroy __P((MUTEX *)); +int __db_tas_mutex_init __P((DB_ENV *, MUTEX *, u_int32_t)); +int __db_tas_mutex_lock __P((DB_ENV *, MUTEX *)); +int __db_tas_mutex_unlock __P((DB_ENV *, MUTEX *)); +int __db_tas_mutex_destroy __P((MUTEX *)); +int __db_mutex_alloc __P((DB_ENV *, REGINFO *, int, MUTEX **)); +void __db_mutex_free __P((DB_ENV *, REGINFO *, MUTEX *)); +void __db_shreg_locks_clear __P((MUTEX *, REGINFO *, REGMAINT *)); +void __db_shreg_locks_destroy __P((REGINFO *, REGMAINT *)); +int __db_shreg_mutex_init __P((DB_ENV *, MUTEX *, u_int32_t, u_int32_t, REGINFO *, REGMAINT *)); +void __db_shreg_maintinit __P((REGINFO *, void *addr, size_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _mutex_ext_h_ */ diff --git a/db/include_auto/mutex_ext.in b/db/include_auto/mutex_ext.in new file mode 100644 index 000000000..ac01d5726 --- /dev/null +++ b/db/include_auto/mutex_ext.in @@ -0,0 +1,46 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _mutex_ext_h_ +#define _mutex_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __db_fcntl_mutex_init __db_fcntl_mutex_init@DB_VERSION_UNIQUE_NAME@ +int __db_fcntl_mutex_init __P((DB_ENV *, MUTEX *, u_int32_t)); +#define __db_fcntl_mutex_lock __db_fcntl_mutex_lock@DB_VERSION_UNIQUE_NAME@ +int __db_fcntl_mutex_lock __P((DB_ENV *, MUTEX *, DB_FH *)); +#define __db_fcntl_mutex_unlock __db_fcntl_mutex_unlock@DB_VERSION_UNIQUE_NAME@ +int __db_fcntl_mutex_unlock __P((DB_ENV *, MUTEX *)); +#define __db_fcntl_mutex_destroy __db_fcntl_mutex_destroy@DB_VERSION_UNIQUE_NAME@ +int __db_fcntl_mutex_destroy __P((MUTEX *)); +#define __db_pthread_mutex_init __db_pthread_mutex_init@DB_VERSION_UNIQUE_NAME@ +int __db_pthread_mutex_init __P((DB_ENV *, MUTEX *, u_int32_t)); +#define __db_pthread_mutex_lock __db_pthread_mutex_lock@DB_VERSION_UNIQUE_NAME@ +int __db_pthread_mutex_lock __P((DB_ENV *, MUTEX *)); +#define __db_pthread_mutex_unlock __db_pthread_mutex_unlock@DB_VERSION_UNIQUE_NAME@ +int __db_pthread_mutex_unlock __P((DB_ENV *, MUTEX *)); +#define __db_pthread_mutex_destroy __db_pthread_mutex_destroy@DB_VERSION_UNIQUE_NAME@ +int __db_pthread_mutex_destroy __P((MUTEX *)); +#define __db_tas_mutex_init __db_tas_mutex_init@DB_VERSION_UNIQUE_NAME@ +int __db_tas_mutex_init __P((DB_ENV *, MUTEX *, u_int32_t)); +#define __db_tas_mutex_lock __db_tas_mutex_lock@DB_VERSION_UNIQUE_NAME@ +int __db_tas_mutex_lock __P((DB_ENV *, MUTEX *)); +#define __db_tas_mutex_unlock __db_tas_mutex_unlock@DB_VERSION_UNIQUE_NAME@ +int __db_tas_mutex_unlock __P((DB_ENV *, MUTEX *)); +#define __db_tas_mutex_destroy __db_tas_mutex_destroy@DB_VERSION_UNIQUE_NAME@ +int __db_tas_mutex_destroy __P((MUTEX *)); +#define __db_mutex_alloc __db_mutex_alloc@DB_VERSION_UNIQUE_NAME@ +int __db_mutex_alloc __P((DB_ENV *, REGINFO *, int, MUTEX **)); +#define __db_mutex_free __db_mutex_free@DB_VERSION_UNIQUE_NAME@ +void __db_mutex_free __P((DB_ENV *, REGINFO *, MUTEX *)); +#define __db_shreg_locks_clear __db_shreg_locks_clear@DB_VERSION_UNIQUE_NAME@ +void __db_shreg_locks_clear __P((MUTEX *, REGINFO *, REGMAINT *)); +#define __db_shreg_locks_destroy __db_shreg_locks_destroy@DB_VERSION_UNIQUE_NAME@ +void __db_shreg_locks_destroy __P((REGINFO *, REGMAINT *)); +#define __db_shreg_mutex_init __db_shreg_mutex_init@DB_VERSION_UNIQUE_NAME@ +int __db_shreg_mutex_init __P((DB_ENV *, MUTEX *, u_int32_t, u_int32_t, REGINFO *, REGMAINT *)); +#define __db_shreg_maintinit __db_shreg_maintinit@DB_VERSION_UNIQUE_NAME@ +void __db_shreg_maintinit __P((REGINFO *, void *addr, size_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _mutex_ext_h_ */ diff --git a/db/include_auto/os_ext.h b/db/include_auto/os_ext.h new file mode 100644 index 000000000..77992ede4 --- /dev/null +++ b/db/include_auto/os_ext.h @@ -0,0 +1,61 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _os_ext_h_ +#define _os_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __os_abspath __P((const char *)); +int __os_umalloc __P((DB_ENV *, size_t, void *)); +int __os_urealloc __P((DB_ENV *, size_t, void *)); +int __os_ufree __P((DB_ENV *, void *, size_t)); +int __os_strdup __P((DB_ENV *, const char *, void *)); +int __os_calloc __P((DB_ENV *, size_t, size_t, void *)); +int __os_malloc __P((DB_ENV *, size_t, void *)); +int __os_realloc __P((DB_ENV *, size_t, void *)); +void __os_free __P((DB_ENV *, void *, size_t)); +void __os_freestr __P((DB_ENV *, void *)); +void *__ua_memcpy __P((void *, const void *, size_t)); +int __os_dirlist __P((DB_ENV *, const char *, char ***, int *)); +void __os_dirfree __P((DB_ENV *, char **, int)); +int __os_get_errno __P((void)); +void __os_set_errno __P((int)); +int __os_fileid __P((DB_ENV *, const char *, int, u_int8_t *)); +int __os_finit __P((DB_ENV *, DB_FH *, size_t, int)); +int __os_fpinit __P((DB_ENV *, DB_FH *, db_pgno_t, int, int)); +int __os_fsync __P((DB_ENV *, DB_FH *)); +int __os_openhandle __P((DB_ENV *, const char *, int, int, DB_FH *)); +int __os_closehandle __P((DB_FH *)); +int __os_r_sysattach __P((DB_ENV *, REGINFO *, REGION *)); +int __os_r_sysdetach __P((DB_ENV *, REGINFO *, int)); +int __os_mapfile __P((DB_ENV *, char *, DB_FH *, size_t, int, void **)); +int __os_unmapfile __P((DB_ENV *, void *, size_t)); +u_int32_t __db_oflags __P((int)); +int __db_omode __P((const char *)); +int __os_open __P((DB_ENV *, const char *, u_int32_t, int, DB_FH *)); +int __os_shmname __P((DB_ENV *, const char *, char **)); +int __os_r_attach __P((DB_ENV *, REGINFO *, REGION *)); +int __os_r_detach __P((DB_ENV *, REGINFO *, int)); +int __os_rename __P((DB_ENV *, const char *, const char *)); +int __os_isroot __P((void)); +char *__db_rpath __P((const char *)); +int __os_io __P((DB_ENV *, DB_IO *, int, size_t *)); +int __os_read __P((DB_ENV *, DB_FH *, void *, size_t, size_t *)); +int __os_write __P((DB_ENV *, DB_FH *, void *, size_t, size_t *)); +int __os_seek __P((DB_ENV *, DB_FH *, size_t, db_pgno_t, u_int32_t, int, DB_OS_SEEK)); +int __os_sleep __P((DB_ENV *, u_long, u_long)); +int __os_spin __P((void)); +void __os_yield __P((DB_ENV*, u_long)); +int __os_exists __P((const char *, int *)); +int __os_ioinfo __P((DB_ENV *, const char *, DB_FH *, u_int32_t *, u_int32_t *, u_int32_t *)); +int __os_tmpdir __P((DB_ENV *, u_int32_t)); +int __os_unlink __P((DB_ENV *, const char *)); +int __os_region_unlink __P((DB_ENV *, const char *)); +#if defined(DB_WIN32) +int __os_win32_errno __P((void)); +#endif +int __os_fpinit __P((DB_ENV *, DB_FH *, db_pgno_t, int, int)); +int __os_is_winnt __P((void)); +#if defined(__cplusplus) +} +#endif +#endif /* _os_ext_h_ */ diff --git a/db/include_auto/os_ext.in b/db/include_auto/os_ext.in new file mode 100644 index 000000000..d8e29d1c0 --- /dev/null +++ b/db/include_auto/os_ext.in @@ -0,0 +1,110 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _os_ext_h_ +#define _os_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __os_abspath __os_abspath@DB_VERSION_UNIQUE_NAME@ +int __os_abspath __P((const char *)); +#define __os_umalloc __os_umalloc@DB_VERSION_UNIQUE_NAME@ +int __os_umalloc __P((DB_ENV *, size_t, void *)); +#define __os_urealloc __os_urealloc@DB_VERSION_UNIQUE_NAME@ +int __os_urealloc __P((DB_ENV *, size_t, void *)); +#define __os_ufree __os_ufree@DB_VERSION_UNIQUE_NAME@ +int __os_ufree __P((DB_ENV *, void *, size_t)); +#define __os_strdup __os_strdup@DB_VERSION_UNIQUE_NAME@ +int __os_strdup __P((DB_ENV *, const char *, void *)); +#define __os_calloc __os_calloc@DB_VERSION_UNIQUE_NAME@ +int __os_calloc __P((DB_ENV *, size_t, size_t, void *)); +#define __os_malloc __os_malloc@DB_VERSION_UNIQUE_NAME@ +int __os_malloc __P((DB_ENV *, size_t, void *)); +#define __os_realloc __os_realloc@DB_VERSION_UNIQUE_NAME@ +int __os_realloc __P((DB_ENV *, size_t, void *)); +#define __os_free __os_free@DB_VERSION_UNIQUE_NAME@ +void __os_free __P((DB_ENV *, void *, size_t)); +#define __os_freestr __os_freestr@DB_VERSION_UNIQUE_NAME@ +void __os_freestr __P((DB_ENV *, void *)); +#define __ua_memcpy __ua_memcpy@DB_VERSION_UNIQUE_NAME@ +void *__ua_memcpy __P((void *, const void *, size_t)); +#define __os_dirlist __os_dirlist@DB_VERSION_UNIQUE_NAME@ +int __os_dirlist __P((DB_ENV *, const char *, char ***, int *)); +#define __os_dirfree __os_dirfree@DB_VERSION_UNIQUE_NAME@ +void __os_dirfree __P((DB_ENV *, char **, int)); +#define __os_get_errno __os_get_errno@DB_VERSION_UNIQUE_NAME@ +int __os_get_errno __P((void)); +#define __os_set_errno __os_set_errno@DB_VERSION_UNIQUE_NAME@ +void __os_set_errno __P((int)); +#define __os_fileid __os_fileid@DB_VERSION_UNIQUE_NAME@ +int __os_fileid __P((DB_ENV *, const char *, int, u_int8_t *)); +#define __os_finit __os_finit@DB_VERSION_UNIQUE_NAME@ +int __os_finit __P((DB_ENV *, DB_FH *, size_t, int)); +#define __os_fpinit __os_fpinit@DB_VERSION_UNIQUE_NAME@ +int __os_fpinit __P((DB_ENV *, DB_FH *, db_pgno_t, int, int)); +#define __os_fsync __os_fsync@DB_VERSION_UNIQUE_NAME@ +int __os_fsync __P((DB_ENV *, DB_FH *)); +#define __os_openhandle __os_openhandle@DB_VERSION_UNIQUE_NAME@ +int __os_openhandle __P((DB_ENV *, const char *, int, int, DB_FH *)); +#define __os_closehandle __os_closehandle@DB_VERSION_UNIQUE_NAME@ +int __os_closehandle __P((DB_FH *)); +#define __os_r_sysattach __os_r_sysattach@DB_VERSION_UNIQUE_NAME@ +int __os_r_sysattach __P((DB_ENV *, REGINFO *, REGION *)); +#define __os_r_sysdetach __os_r_sysdetach@DB_VERSION_UNIQUE_NAME@ +int __os_r_sysdetach __P((DB_ENV *, REGINFO *, int)); +#define __os_mapfile __os_mapfile@DB_VERSION_UNIQUE_NAME@ +int __os_mapfile __P((DB_ENV *, char *, DB_FH *, size_t, int, void **)); +#define __os_unmapfile __os_unmapfile@DB_VERSION_UNIQUE_NAME@ +int __os_unmapfile __P((DB_ENV *, void *, size_t)); +#define __db_oflags __db_oflags@DB_VERSION_UNIQUE_NAME@ +u_int32_t __db_oflags __P((int)); +#define __db_omode __db_omode@DB_VERSION_UNIQUE_NAME@ +int __db_omode __P((const char *)); +#define __os_open __os_open@DB_VERSION_UNIQUE_NAME@ +int __os_open __P((DB_ENV *, const char *, u_int32_t, int, DB_FH *)); +#define __os_shmname __os_shmname@DB_VERSION_UNIQUE_NAME@ +int __os_shmname __P((DB_ENV *, const char *, char **)); +#define __os_r_attach __os_r_attach@DB_VERSION_UNIQUE_NAME@ +int __os_r_attach __P((DB_ENV *, REGINFO *, REGION *)); +#define __os_r_detach __os_r_detach@DB_VERSION_UNIQUE_NAME@ +int __os_r_detach __P((DB_ENV *, REGINFO *, int)); +#define __os_rename __os_rename@DB_VERSION_UNIQUE_NAME@ +int __os_rename __P((DB_ENV *, const char *, const char *)); +#define __os_isroot __os_isroot@DB_VERSION_UNIQUE_NAME@ +int __os_isroot __P((void)); +#define __db_rpath __db_rpath@DB_VERSION_UNIQUE_NAME@ +char *__db_rpath __P((const char *)); +#define __os_io __os_io@DB_VERSION_UNIQUE_NAME@ +int __os_io __P((DB_ENV *, DB_IO *, int, size_t *)); +#define __os_read __os_read@DB_VERSION_UNIQUE_NAME@ +int __os_read __P((DB_ENV *, DB_FH *, void *, size_t, size_t *)); +#define __os_write __os_write@DB_VERSION_UNIQUE_NAME@ +int __os_write __P((DB_ENV *, DB_FH *, void *, size_t, size_t *)); +#define __os_seek __os_seek@DB_VERSION_UNIQUE_NAME@ +int __os_seek __P((DB_ENV *, DB_FH *, size_t, db_pgno_t, u_int32_t, int, DB_OS_SEEK)); +#define __os_sleep __os_sleep@DB_VERSION_UNIQUE_NAME@ +int __os_sleep __P((DB_ENV *, u_long, u_long)); +#define __os_spin __os_spin@DB_VERSION_UNIQUE_NAME@ +int __os_spin __P((void)); +#define __os_yield __os_yield@DB_VERSION_UNIQUE_NAME@ +void __os_yield __P((DB_ENV*, u_long)); +#define __os_exists __os_exists@DB_VERSION_UNIQUE_NAME@ +int __os_exists __P((const char *, int *)); +#define __os_ioinfo __os_ioinfo@DB_VERSION_UNIQUE_NAME@ +int __os_ioinfo __P((DB_ENV *, const char *, DB_FH *, u_int32_t *, u_int32_t *, u_int32_t *)); +#define __os_tmpdir __os_tmpdir@DB_VERSION_UNIQUE_NAME@ +int __os_tmpdir __P((DB_ENV *, u_int32_t)); +#define __os_unlink __os_unlink@DB_VERSION_UNIQUE_NAME@ +int __os_unlink __P((DB_ENV *, const char *)); +#define __os_region_unlink __os_region_unlink@DB_VERSION_UNIQUE_NAME@ +int __os_region_unlink __P((DB_ENV *, const char *)); +#if defined(DB_WIN32) +#define __os_win32_errno __os_win32_errno@DB_VERSION_UNIQUE_NAME@ +int __os_win32_errno __P((void)); +#endif +#define __os_fpinit __os_fpinit@DB_VERSION_UNIQUE_NAME@ +int __os_fpinit __P((DB_ENV *, DB_FH *, db_pgno_t, int, int)); +#define __os_is_winnt __os_is_winnt@DB_VERSION_UNIQUE_NAME@ +int __os_is_winnt __P((void)); +#if defined(__cplusplus) +} +#endif +#endif /* _os_ext_h_ */ diff --git a/db/include_auto/qam_auto.h b/db/include_auto/qam_auto.h new file mode 100644 index 000000000..edec8ea69 --- /dev/null +++ b/db/include_auto/qam_auto.h @@ -0,0 +1,95 @@ +/* Do not edit: automatically built by gen_rec.awk. */ + +#ifndef qam_AUTO_H +#define qam_AUTO_H +#define DB_qam_inc 76 +typedef struct _qam_inc_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DB_LSN lsn; +} __qam_inc_args; + +#define DB_qam_incfirst 77 +typedef struct _qam_incfirst_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + db_recno_t recno; +} __qam_incfirst_args; + +#define DB_qam_mvptr 78 +typedef struct _qam_mvptr_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t fileid; + db_recno_t old_first; + db_recno_t new_first; + db_recno_t old_cur; + db_recno_t new_cur; + DB_LSN metalsn; +} __qam_mvptr_args; + +#define DB_qam_del 79 +typedef struct _qam_del_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DB_LSN lsn; + db_pgno_t pgno; + u_int32_t indx; + db_recno_t recno; +} __qam_del_args; + +#define DB_qam_add 80 +typedef struct _qam_add_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DB_LSN lsn; + db_pgno_t pgno; + u_int32_t indx; + db_recno_t recno; + DBT data; + u_int32_t vflag; + DBT olddata; +} __qam_add_args; + +#define DB_qam_delete 81 +typedef struct _qam_delete_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + DBT name; + DB_LSN lsn; +} __qam_delete_args; + +#define DB_qam_rename 82 +typedef struct _qam_rename_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + DBT name; + DBT newname; +} __qam_rename_args; + +#define DB_qam_delext 83 +typedef struct _qam_delext_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + int32_t fileid; + DB_LSN lsn; + db_pgno_t pgno; + u_int32_t indx; + db_recno_t recno; + DBT data; +} __qam_delext_args; + +#endif diff --git a/db/include_auto/qam_ext.h b/db/include_auto/qam_ext.h new file mode 100644 index 000000000..35c886d44 --- /dev/null +++ b/db/include_auto/qam_ext.h @@ -0,0 +1,70 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _qam_ext_h_ +#define _qam_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __qam_position __P((DBC *, db_recno_t *, qam_position_mode, int *)); +int __qam_pitem __P((DBC *, QPAGE *, u_int32_t, db_recno_t, DBT *)); +int __qam_append __P((DBC *, DBT *, DBT *)); +int __qam_c_dup __P((DBC *, DBC *)); +int __qam_c_init __P((DBC *)); +int __qam_truncate __P((DB *, DB_TXN *, u_int32_t *)); +int __qam_inc_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *)); +int __qam_inc_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_inc_read __P((DB_ENV *, void *, __qam_inc_args **)); +int __qam_incfirst_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_recno_t)); +int __qam_incfirst_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_incfirst_read __P((DB_ENV *, void *, __qam_incfirst_args **)); +int __qam_mvptr_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_recno_t, db_recno_t, db_recno_t, db_recno_t, DB_LSN *)); +int __qam_mvptr_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_mvptr_read __P((DB_ENV *, void *, __qam_mvptr_args **)); +int __qam_del_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, db_pgno_t, u_int32_t, db_recno_t)); +int __qam_del_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_del_read __P((DB_ENV *, void *, __qam_del_args **)); +int __qam_add_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, db_pgno_t, u_int32_t, db_recno_t, const DBT *, u_int32_t, const DBT *)); +int __qam_add_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_add_read __P((DB_ENV *, void *, __qam_add_args **)); +int __qam_delete_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, const DBT *, DB_LSN *)); +int __qam_delete_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_delete_read __P((DB_ENV *, void *, __qam_delete_args **)); +int __qam_rename_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, const DBT *, const DBT *)); +int __qam_rename_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_rename_read __P((DB_ENV *, void *, __qam_rename_args **)); +int __qam_delext_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, db_pgno_t, u_int32_t, db_recno_t, const DBT *)); +int __qam_delext_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_delext_read __P((DB_ENV *, void *, __qam_delext_args **)); +int __qam_init_print __P((DB_ENV *)); +int __qam_init_recover __P((DB_ENV *)); +int __qam_mswap __P((PAGE *)); +int __qam_pgin_out __P((DB_ENV *, db_pgno_t, void *, DBT *)); +int __qam_fprobe __P((DB *, db_pgno_t, void *, qam_probe_mode, int)); +int __qam_fclose __P((DB *, db_pgno_t)); +int __qam_fremove __P((DB *, db_pgno_t)); +int __qam_sync __P((DB *, u_int32_t)); +int __qam_gen_filelist __P(( DB *, QUEUE_FILELIST **)); +int __qam_db_create __P((DB *)); +int __qam_db_close __P((DB *)); +int __db_prqueue __P((DB *, u_int32_t)); +int __qam_remove __P((DB *, const char *, const char *, DB_LSN *, int (**)(DB *, void*), void **)); +int __qam_rename __P((DB *, const char *, const char *, const char *)); +int __qam_open __P((DB *, const char *, db_pgno_t, int, u_int32_t)); +int __qam_metachk __P((DB *, const char *, QMETA *)); +int __qam_inc_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_incfirst_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_mvptr_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_del_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_delext_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_add_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_delete_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_rename_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __qam_stat __P((DB *, void *, u_int32_t)); +int __qam_31_qammeta __P((DB *, char *, u_int8_t *)); +int __qam_32_qammeta __P((DB *, char *, u_int8_t *)); +int __qam_vrfy_meta __P((DB *, VRFY_DBINFO *, QMETA *, db_pgno_t, u_int32_t)); +int __qam_vrfy_data __P((DB *, VRFY_DBINFO *, QPAGE *, db_pgno_t, u_int32_t)); +int __qam_vrfy_structure __P((DB *, VRFY_DBINFO *, u_int32_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _qam_ext_h_ */ diff --git a/db/include_auto/qam_ext.in b/db/include_auto/qam_ext.in new file mode 100644 index 000000000..5e221ead9 --- /dev/null +++ b/db/include_auto/qam_ext.in @@ -0,0 +1,130 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _qam_ext_h_ +#define _qam_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __qam_position __qam_position@DB_VERSION_UNIQUE_NAME@ +int __qam_position __P((DBC *, db_recno_t *, qam_position_mode, int *)); +#define __qam_pitem __qam_pitem@DB_VERSION_UNIQUE_NAME@ +int __qam_pitem __P((DBC *, QPAGE *, u_int32_t, db_recno_t, DBT *)); +#define __qam_append __qam_append@DB_VERSION_UNIQUE_NAME@ +int __qam_append __P((DBC *, DBT *, DBT *)); +#define __qam_c_dup __qam_c_dup@DB_VERSION_UNIQUE_NAME@ +int __qam_c_dup __P((DBC *, DBC *)); +#define __qam_c_init __qam_c_init@DB_VERSION_UNIQUE_NAME@ +int __qam_c_init __P((DBC *)); +#define __qam_truncate __qam_truncate@DB_VERSION_UNIQUE_NAME@ +int __qam_truncate __P((DB *, DB_TXN *, u_int32_t *)); +#define __qam_inc_log __qam_inc_log@DB_VERSION_UNIQUE_NAME@ +int __qam_inc_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *)); +#define __qam_inc_print __qam_inc_print@DB_VERSION_UNIQUE_NAME@ +int __qam_inc_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_inc_read __qam_inc_read@DB_VERSION_UNIQUE_NAME@ +int __qam_inc_read __P((DB_ENV *, void *, __qam_inc_args **)); +#define __qam_incfirst_log __qam_incfirst_log@DB_VERSION_UNIQUE_NAME@ +int __qam_incfirst_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, db_recno_t)); +#define __qam_incfirst_print __qam_incfirst_print@DB_VERSION_UNIQUE_NAME@ +int __qam_incfirst_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_incfirst_read __qam_incfirst_read@DB_VERSION_UNIQUE_NAME@ +int __qam_incfirst_read __P((DB_ENV *, void *, __qam_incfirst_args **)); +#define __qam_mvptr_log __qam_mvptr_log@DB_VERSION_UNIQUE_NAME@ +int __qam_mvptr_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t, db_recno_t, db_recno_t, db_recno_t, db_recno_t, DB_LSN *)); +#define __qam_mvptr_print __qam_mvptr_print@DB_VERSION_UNIQUE_NAME@ +int __qam_mvptr_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_mvptr_read __qam_mvptr_read@DB_VERSION_UNIQUE_NAME@ +int __qam_mvptr_read __P((DB_ENV *, void *, __qam_mvptr_args **)); +#define __qam_del_log __qam_del_log@DB_VERSION_UNIQUE_NAME@ +int __qam_del_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, db_pgno_t, u_int32_t, db_recno_t)); +#define __qam_del_print __qam_del_print@DB_VERSION_UNIQUE_NAME@ +int __qam_del_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_del_read __qam_del_read@DB_VERSION_UNIQUE_NAME@ +int __qam_del_read __P((DB_ENV *, void *, __qam_del_args **)); +#define __qam_add_log __qam_add_log@DB_VERSION_UNIQUE_NAME@ +int __qam_add_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, db_pgno_t, u_int32_t, db_recno_t, const DBT *, u_int32_t, const DBT *)); +#define __qam_add_print __qam_add_print@DB_VERSION_UNIQUE_NAME@ +int __qam_add_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_add_read __qam_add_read@DB_VERSION_UNIQUE_NAME@ +int __qam_add_read __P((DB_ENV *, void *, __qam_add_args **)); +#define __qam_delete_log __qam_delete_log@DB_VERSION_UNIQUE_NAME@ +int __qam_delete_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, const DBT *, DB_LSN *)); +#define __qam_delete_print __qam_delete_print@DB_VERSION_UNIQUE_NAME@ +int __qam_delete_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_delete_read __qam_delete_read@DB_VERSION_UNIQUE_NAME@ +int __qam_delete_read __P((DB_ENV *, void *, __qam_delete_args **)); +#define __qam_rename_log __qam_rename_log@DB_VERSION_UNIQUE_NAME@ +int __qam_rename_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, const DBT *, const DBT *)); +#define __qam_rename_print __qam_rename_print@DB_VERSION_UNIQUE_NAME@ +int __qam_rename_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_rename_read __qam_rename_read@DB_VERSION_UNIQUE_NAME@ +int __qam_rename_read __P((DB_ENV *, void *, __qam_rename_args **)); +#define __qam_delext_log __qam_delext_log@DB_VERSION_UNIQUE_NAME@ +int __qam_delext_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, int32_t, DB_LSN *, db_pgno_t, u_int32_t, db_recno_t, const DBT *)); +#define __qam_delext_print __qam_delext_print@DB_VERSION_UNIQUE_NAME@ +int __qam_delext_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_delext_read __qam_delext_read@DB_VERSION_UNIQUE_NAME@ +int __qam_delext_read __P((DB_ENV *, void *, __qam_delext_args **)); +#define __qam_init_print __qam_init_print@DB_VERSION_UNIQUE_NAME@ +int __qam_init_print __P((DB_ENV *)); +#define __qam_init_recover __qam_init_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_init_recover __P((DB_ENV *)); +#define __qam_mswap __qam_mswap@DB_VERSION_UNIQUE_NAME@ +int __qam_mswap __P((PAGE *)); +#define __qam_pgin_out __qam_pgin_out@DB_VERSION_UNIQUE_NAME@ +int __qam_pgin_out __P((DB_ENV *, db_pgno_t, void *, DBT *)); +#define __qam_fprobe __qam_fprobe@DB_VERSION_UNIQUE_NAME@ +int __qam_fprobe __P((DB *, db_pgno_t, void *, qam_probe_mode, int)); +#define __qam_fclose __qam_fclose@DB_VERSION_UNIQUE_NAME@ +int __qam_fclose __P((DB *, db_pgno_t)); +#define __qam_fremove __qam_fremove@DB_VERSION_UNIQUE_NAME@ +int __qam_fremove __P((DB *, db_pgno_t)); +#define __qam_sync __qam_sync@DB_VERSION_UNIQUE_NAME@ +int __qam_sync __P((DB *, u_int32_t)); +#define __qam_gen_filelist __qam_gen_filelist@DB_VERSION_UNIQUE_NAME@ +int __qam_gen_filelist __P(( DB *, QUEUE_FILELIST **)); +#define __qam_db_create __qam_db_create@DB_VERSION_UNIQUE_NAME@ +int __qam_db_create __P((DB *)); +#define __qam_db_close __qam_db_close@DB_VERSION_UNIQUE_NAME@ +int __qam_db_close __P((DB *)); +#define __db_prqueue __db_prqueue@DB_VERSION_UNIQUE_NAME@ +int __db_prqueue __P((DB *, u_int32_t)); +#define __qam_remove __qam_remove@DB_VERSION_UNIQUE_NAME@ +int __qam_remove __P((DB *, const char *, const char *, DB_LSN *, int (**)(DB *, void*), void **)); +#define __qam_rename __qam_rename@DB_VERSION_UNIQUE_NAME@ +int __qam_rename __P((DB *, const char *, const char *, const char *)); +#define __qam_open __qam_open@DB_VERSION_UNIQUE_NAME@ +int __qam_open __P((DB *, const char *, db_pgno_t, int, u_int32_t)); +#define __qam_metachk __qam_metachk@DB_VERSION_UNIQUE_NAME@ +int __qam_metachk __P((DB *, const char *, QMETA *)); +#define __qam_inc_recover __qam_inc_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_inc_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_incfirst_recover __qam_incfirst_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_incfirst_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_mvptr_recover __qam_mvptr_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_mvptr_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_del_recover __qam_del_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_del_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_delext_recover __qam_delext_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_delext_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_add_recover __qam_add_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_add_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_delete_recover __qam_delete_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_delete_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_rename_recover __qam_rename_recover@DB_VERSION_UNIQUE_NAME@ +int __qam_rename_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __qam_stat __qam_stat@DB_VERSION_UNIQUE_NAME@ +int __qam_stat __P((DB *, void *, u_int32_t)); +#define __qam_31_qammeta __qam_31_qammeta@DB_VERSION_UNIQUE_NAME@ +int __qam_31_qammeta __P((DB *, char *, u_int8_t *)); +#define __qam_32_qammeta __qam_32_qammeta@DB_VERSION_UNIQUE_NAME@ +int __qam_32_qammeta __P((DB *, char *, u_int8_t *)); +#define __qam_vrfy_meta __qam_vrfy_meta@DB_VERSION_UNIQUE_NAME@ +int __qam_vrfy_meta __P((DB *, VRFY_DBINFO *, QMETA *, db_pgno_t, u_int32_t)); +#define __qam_vrfy_data __qam_vrfy_data@DB_VERSION_UNIQUE_NAME@ +int __qam_vrfy_data __P((DB *, VRFY_DBINFO *, QPAGE *, db_pgno_t, u_int32_t)); +#define __qam_vrfy_structure __qam_vrfy_structure@DB_VERSION_UNIQUE_NAME@ +int __qam_vrfy_structure __P((DB *, VRFY_DBINFO *, u_int32_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _qam_ext_h_ */ diff --git a/db/include_auto/rpc_client_ext.h b/db/include_auto/rpc_client_ext.h new file mode 100644 index 000000000..8908e5e26 --- /dev/null +++ b/db/include_auto/rpc_client_ext.h @@ -0,0 +1,153 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _rpc_client_ext_h_ +#define _rpc_client_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __dbcl_envrpcserver __P((DB_ENV *, void *, const char *, long, long, u_int32_t)); +int __dbcl_envserver __P((DB_ENV *, const char *, long, long, u_int32_t)); +int __dbcl_env_open_wrap __P((DB_ENV *, const char *, u_int32_t, int)); +int __dbcl_refresh __P((DB_ENV *)); +void __dbcl_txn_end __P((DB_TXN *)); +void __dbcl_txn_setup __P((DB_ENV *, DB_TXN *, DB_TXN *, u_int32_t)); +void __dbcl_c_refresh __P((DBC *)); +int __dbcl_c_setup __P((long, DB *, DBC **)); +int __dbcl_retcopy __P((DB_ENV *, DBT *, void *, u_int32_t)); +int __dbcl_dbclose_common __P((DB *)); +int __dbcl_env_alloc __P((DB_ENV *, void *(*)(size_t), void *(*)(void *, size_t), void (*)(void *))); +int __dbcl_env_cachesize __P((DB_ENV *, u_int32_t, u_int32_t, int)); +int __dbcl_env_close __P((DB_ENV *, u_int32_t)); +int __dbcl_env_create __P((DB_ENV *, long)); +int __dbcl_set_data_dir __P((DB_ENV *, const char *)); +int __dbcl_env_set_feedback __P((DB_ENV *, void (*)(DB_ENV *, int, int))); +int __dbcl_env_flags __P((DB_ENV *, u_int32_t, int)); +int __dbcl_set_lg_bsize __P((DB_ENV *, u_int32_t)); +int __dbcl_set_lg_dir __P((DB_ENV *, const char *)); +int __dbcl_set_lg_max __P((DB_ENV *, u_int32_t)); +int __dbcl_set_lg_regionmax __P((DB_ENV *, u_int32_t)); +int __dbcl_set_lk_conflict __P((DB_ENV *, u_int8_t *, int)); +int __dbcl_set_lk_detect __P((DB_ENV *, u_int32_t)); +int __dbcl_set_lk_max __P((DB_ENV *, u_int32_t)); +int __dbcl_set_lk_max_locks __P((DB_ENV *, u_int32_t)); +int __dbcl_set_lk_max_lockers __P((DB_ENV *, u_int32_t)); +int __dbcl_set_lk_max_objects __P((DB_ENV *, u_int32_t)); +int __dbcl_set_mp_mmapsize __P((DB_ENV *, size_t)); +int __dbcl_set_mutex_locks __P((DB_ENV *, int)); +int __dbcl_env_open __P((DB_ENV *, const char *, u_int32_t, int)); +int __dbcl_env_paniccall __P((DB_ENV *, void (*)(DB_ENV *, int))); +int __dbcl_set_recovery_init __P((DB_ENV *, int (*)(DB_ENV *))); +int __dbcl_env_remove __P((DB_ENV *, const char *, u_int32_t)); +int __dbcl_set_shm_key __P((DB_ENV *, long)); +int __dbcl_set_tmp_dir __P((DB_ENV *, const char *)); +int __dbcl_set_tx_recover __P((DB_ENV *, int (*)(DB_ENV *, DBT *, DB_LSN *, db_recops))); +int __dbcl_set_tx_max __P((DB_ENV *, u_int32_t)); +int __dbcl_set_tx_timestamp __P((DB_ENV *, time_t *)); +int __dbcl_set_verbose __P((DB_ENV *, u_int32_t, int)); +int __dbcl_txn_abort __P((DB_TXN *)); +int __dbcl_txn_begin __P((DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t)); +int __dbcl_txn_checkpoint __P((DB_ENV *, u_int32_t, u_int32_t)); +int __dbcl_txn_commit __P((DB_TXN *, u_int32_t)); +int __dbcl_txn_prepare __P((DB_TXN *, u_int8_t *)); +int __dbcl_txn_recover __P((DB_ENV *, DB_PREPLIST *, long, long *, u_int32_t)); +int __dbcl_txn_stat __P((DB_ENV *, DB_TXN_STAT **)); +int __dbcl_db_alloc __P((DB *, void *(*)(size_t), void *(*)(void *, size_t), void (*)(void *))); +int __dbcl_db_associate __P((DB *, DB *, int (*)(DB *, const DBT *, const DBT *, DBT *), u_int32_t)); +int __dbcl_db_bt_compare __P((DB *, int (*)(DB *, const DBT *, const DBT *))); +int __dbcl_db_bt_maxkey __P((DB *, u_int32_t)); +int __dbcl_db_bt_minkey __P((DB *, u_int32_t)); +int __dbcl_db_bt_prefix __P((DB *, size_t(*)(DB *, const DBT *, const DBT *))); +int __dbcl_db_set_append_recno __P((DB *, int (*)(DB *, DBT *, db_recno_t))); +int __dbcl_db_cachesize __P((DB *, u_int32_t, u_int32_t, int)); +int __dbcl_db_close __P((DB *, u_int32_t)); +int __dbcl_db_create __P((DB *, DB_ENV *, u_int32_t)); +int __dbcl_db_del __P((DB *, DB_TXN *, DBT *, u_int32_t)); +int __dbcl_db_extentsize __P((DB *, u_int32_t)); +int __dbcl_db_fd __P((DB *, int *)); +int __dbcl_db_feedback __P((DB *, void (*)(DB *, int, int))); +int __dbcl_db_flags __P((DB *, u_int32_t)); +int __dbcl_db_get __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); +int __dbcl_db_h_ffactor __P((DB *, u_int32_t)); +int __dbcl_db_h_hash __P((DB *, u_int32_t(*)(DB *, const void *, u_int32_t))); +int __dbcl_db_h_nelem __P((DB *, u_int32_t)); +int __dbcl_db_key_range __P((DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t)); +int __dbcl_db_lorder __P((DB *, int)); +int __dbcl_db_open __P((DB *, const char *, const char *, DBTYPE, u_int32_t, int)); +int __dbcl_db_pagesize __P((DB *, u_int32_t)); +int __dbcl_db_panic __P((DB *, void (*)(DB_ENV *, int))); +int __dbcl_db_pget __P((DB *, DB_TXN *, DBT *, DBT *, DBT *, u_int32_t)); +int __dbcl_db_put __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); +int __dbcl_db_re_delim __P((DB *, int)); +int __dbcl_db_re_len __P((DB *, u_int32_t)); +int __dbcl_db_re_pad __P((DB *, int)); +int __dbcl_db_re_source __P((DB *, const char *)); +int __dbcl_db_remove __P((DB *, const char *, const char *, u_int32_t)); +int __dbcl_db_rename __P((DB *, const char *, const char *, const char *, u_int32_t)); +int __dbcl_db_stat __P((DB *, void *, u_int32_t)); +int __dbcl_db_sync __P((DB *, u_int32_t)); +int __dbcl_db_truncate __P((DB *, const char *, const char *, u_int32_t *, u_int32_t)); +int __dbcl_db_upgrade __P((DB *, const char *, u_int32_t)); +int __dbcl_db_verify __P((DB *, const char *, const char *, FILE *, u_int32_t)); +int __dbcl_db_cursor __P((DB *, DB_TXN *, DBC **, u_int32_t)); +int __dbcl_db_join __P((DB *, DBC **, DBC **, u_int32_t)); +int __dbcl_dbc_close __P((DBC *)); +int __dbcl_dbc_count __P((DBC *, db_recno_t *, u_int32_t)); +int __dbcl_dbc_del __P((DBC *, u_int32_t)); +int __dbcl_dbc_dup __P((DBC *, DBC **, u_int32_t)); +int __dbcl_dbc_get __P((DBC *, DBT *, DBT *, u_int32_t)); +int __dbcl_dbc_pget __P((DBC *, DBT *, DBT *, DBT *, u_int32_t)); +int __dbcl_dbc_put __P((DBC *, DBT *, DBT *, u_int32_t)); +int __dbcl_lock_detect __P((DB_ENV *, u_int32_t, u_int32_t, int *)); +int __dbcl_lock_get __P((DB_ENV *, u_int32_t, u_int32_t, const DBT *, db_lockmode_t, DB_LOCK *)); +int __dbcl_lock_id __P((DB_ENV *, u_int32_t *)); +int __dbcl_lock_put __P((DB_ENV *, DB_LOCK *)); +int __dbcl_lock_stat __P((DB_ENV *, DB_LOCK_STAT **)); +int __dbcl_lock_vec __P((DB_ENV *, u_int32_t, u_int32_t, DB_LOCKREQ *, int, DB_LOCKREQ **)); +int __dbcl_log_archive __P((DB_ENV *, char ***, u_int32_t)); +int __dbcl_log_file __P((DB_ENV *, const DB_LSN *, char *, size_t)); +int __dbcl_log_flush __P((DB_ENV *, const DB_LSN *)); +int __dbcl_log_get __P((DB_ENV *, DB_LSN *, DBT *, u_int32_t)); +int __dbcl_log_put __P((DB_ENV *, DB_LSN *, const DBT *, u_int32_t)); +int __dbcl_log_register __P((DB_ENV *, DB *, const char *)); +int __dbcl_log_stat __P((DB_ENV *, DB_LOG_STAT **)); +int __dbcl_log_unregister __P((DB_ENV *, DB *)); +int __dbcl_memp_fclose __P((DB_MPOOLFILE *)); +int __dbcl_memp_fget __P((DB_MPOOLFILE *, db_pgno_t *, u_int32_t, void **)); +int __dbcl_memp_fopen __P((DB_ENV *, const char *, u_int32_t, int, size_t, DB_MPOOL_FINFO *, DB_MPOOLFILE **)); +int __dbcl_memp_fput __P((DB_MPOOLFILE *, void *, u_int32_t)); +int __dbcl_memp_fset __P((DB_MPOOLFILE *, void *, u_int32_t)); +int __dbcl_memp_fsync __P((DB_MPOOLFILE *)); +int __dbcl_memp_register __P((DB_ENV *, int, int (*)(DB_ENV *, db_pgno_t, void *, DBT *), int (*)(DB_ENV *, db_pgno_t, void *, DBT *))); +int __dbcl_memp_stat __P((DB_ENV *, DB_MPOOL_STAT **, DB_MPOOL_FSTAT ***)); +int __dbcl_memp_sync __P((DB_ENV *, DB_LSN *)); +int __dbcl_memp_trickle __P((DB_ENV *, int, int *)); +int __dbcl_env_close_ret __P((DB_ENV *, u_int32_t, __env_close_reply *)); +int __dbcl_env_create_ret __P((DB_ENV *, long, __env_create_reply *)); +int __dbcl_env_open_ret __P((DB_ENV *, const char *, u_int32_t, int, __env_open_reply *)); +int __dbcl_env_remove_ret __P((DB_ENV *, const char *, u_int32_t, __env_remove_reply *)); +int __dbcl_txn_abort_ret __P((DB_TXN *, __txn_abort_reply *)); +int __dbcl_txn_begin_ret __P((DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t, __txn_begin_reply *)); +int __dbcl_txn_commit_ret __P((DB_TXN *, u_int32_t, __txn_commit_reply *)); +int __dbcl_txn_recover_ret __P((DB_ENV *, DB_PREPLIST *, long, long *, u_int32_t, __txn_recover_reply *)); +int __dbcl_db_close_ret __P((DB *, u_int32_t, __db_close_reply *)); +int __dbcl_db_create_ret __P((DB *, DB_ENV *, u_int32_t, __db_create_reply *)); +int __dbcl_db_get_ret __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t, __db_get_reply *)); +int __dbcl_db_key_range_ret __P((DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t, __db_key_range_reply *)); +int __dbcl_db_open_ret __P((DB *, const char *, const char *, DBTYPE, u_int32_t, int, __db_open_reply *)); +int __dbcl_db_pget_ret __P((DB *, DB_TXN *, DBT *, DBT *, DBT *, u_int32_t, __db_pget_reply *)); +int __dbcl_db_put_ret __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t, __db_put_reply *)); +int __dbcl_db_remove_ret __P((DB *, const char *, const char *, u_int32_t, __db_remove_reply *)); +int __dbcl_db_rename_ret __P((DB *, const char *, const char *, const char *, u_int32_t, __db_rename_reply *)); +int __dbcl_db_stat_ret __P((DB *, void *, u_int32_t, __db_stat_reply *)); +int __dbcl_db_truncate_ret __P((DB *, const char *, const char *, u_int32_t *, u_int32_t, __db_truncate_reply *)); +int __dbcl_db_cursor_ret __P((DB *, DB_TXN *, DBC **, u_int32_t, __db_cursor_reply *)); +int __dbcl_db_join_ret __P((DB *, DBC **, DBC **, u_int32_t, __db_join_reply *)); +int __dbcl_dbc_close_ret __P((DBC *, __dbc_close_reply *)); +int __dbcl_dbc_count_ret __P((DBC *, db_recno_t *, u_int32_t, __dbc_count_reply *)); +int __dbcl_dbc_dup_ret __P((DBC *, DBC **, u_int32_t, __dbc_dup_reply *)); +int __dbcl_dbc_get_ret __P((DBC *, DBT *, DBT *, u_int32_t, __dbc_get_reply *)); +int __dbcl_dbc_pget_ret __P((DBC *, DBT *, DBT *, DBT *, u_int32_t, __dbc_pget_reply *)); +int __dbcl_dbc_put_ret __P((DBC *, DBT *, DBT *, u_int32_t, __dbc_put_reply *)); +#if defined(__cplusplus) +} +#endif +#endif /* _rpc_client_ext_h_ */ diff --git a/db/include_auto/rpc_client_ext.in b/db/include_auto/rpc_client_ext.in new file mode 100644 index 000000000..4e0296aae --- /dev/null +++ b/db/include_auto/rpc_client_ext.in @@ -0,0 +1,296 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _rpc_client_ext_h_ +#define _rpc_client_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __dbcl_envrpcserver __dbcl_envrpcserver@DB_VERSION_UNIQUE_NAME@ +int __dbcl_envrpcserver __P((DB_ENV *, void *, const char *, long, long, u_int32_t)); +#define __dbcl_envserver __dbcl_envserver@DB_VERSION_UNIQUE_NAME@ +int __dbcl_envserver __P((DB_ENV *, const char *, long, long, u_int32_t)); +#define __dbcl_env_open_wrap __dbcl_env_open_wrap@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_open_wrap __P((DB_ENV *, const char *, u_int32_t, int)); +#define __dbcl_refresh __dbcl_refresh@DB_VERSION_UNIQUE_NAME@ +int __dbcl_refresh __P((DB_ENV *)); +#define __dbcl_txn_end __dbcl_txn_end@DB_VERSION_UNIQUE_NAME@ +void __dbcl_txn_end __P((DB_TXN *)); +#define __dbcl_txn_setup __dbcl_txn_setup@DB_VERSION_UNIQUE_NAME@ +void __dbcl_txn_setup __P((DB_ENV *, DB_TXN *, DB_TXN *, u_int32_t)); +#define __dbcl_c_refresh __dbcl_c_refresh@DB_VERSION_UNIQUE_NAME@ +void __dbcl_c_refresh __P((DBC *)); +#define __dbcl_c_setup __dbcl_c_setup@DB_VERSION_UNIQUE_NAME@ +int __dbcl_c_setup __P((long, DB *, DBC **)); +#define __dbcl_retcopy __dbcl_retcopy@DB_VERSION_UNIQUE_NAME@ +int __dbcl_retcopy __P((DB_ENV *, DBT *, void *, u_int32_t)); +#define __dbcl_dbclose_common __dbcl_dbclose_common@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbclose_common __P((DB *)); +#define __dbcl_env_alloc __dbcl_env_alloc@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_alloc __P((DB_ENV *, void *(*)(size_t), void *(*)(void *, size_t), void (*)(void *))); +#define __dbcl_env_cachesize __dbcl_env_cachesize@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_cachesize __P((DB_ENV *, u_int32_t, u_int32_t, int)); +#define __dbcl_env_close __dbcl_env_close@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_close __P((DB_ENV *, u_int32_t)); +#define __dbcl_env_create __dbcl_env_create@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_create __P((DB_ENV *, long)); +#define __dbcl_set_data_dir __dbcl_set_data_dir@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_data_dir __P((DB_ENV *, const char *)); +#define __dbcl_env_set_feedback __dbcl_env_set_feedback@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_set_feedback __P((DB_ENV *, void (*)(DB_ENV *, int, int))); +#define __dbcl_env_flags __dbcl_env_flags@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_flags __P((DB_ENV *, u_int32_t, int)); +#define __dbcl_set_lg_bsize __dbcl_set_lg_bsize@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lg_bsize __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_lg_dir __dbcl_set_lg_dir@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lg_dir __P((DB_ENV *, const char *)); +#define __dbcl_set_lg_max __dbcl_set_lg_max@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lg_max __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_lg_regionmax __dbcl_set_lg_regionmax@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lg_regionmax __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_lk_conflict __dbcl_set_lk_conflict@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lk_conflict __P((DB_ENV *, u_int8_t *, int)); +#define __dbcl_set_lk_detect __dbcl_set_lk_detect@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lk_detect __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_lk_max __dbcl_set_lk_max@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lk_max __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_lk_max_locks __dbcl_set_lk_max_locks@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lk_max_locks __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_lk_max_lockers __dbcl_set_lk_max_lockers@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lk_max_lockers __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_lk_max_objects __dbcl_set_lk_max_objects@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_lk_max_objects __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_mp_mmapsize __dbcl_set_mp_mmapsize@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_mp_mmapsize __P((DB_ENV *, size_t)); +#define __dbcl_set_mutex_locks __dbcl_set_mutex_locks@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_mutex_locks __P((DB_ENV *, int)); +#define __dbcl_env_open __dbcl_env_open@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_open __P((DB_ENV *, const char *, u_int32_t, int)); +#define __dbcl_env_paniccall __dbcl_env_paniccall@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_paniccall __P((DB_ENV *, void (*)(DB_ENV *, int))); +#define __dbcl_set_recovery_init __dbcl_set_recovery_init@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_recovery_init __P((DB_ENV *, int (*)(DB_ENV *))); +#define __dbcl_env_remove __dbcl_env_remove@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_remove __P((DB_ENV *, const char *, u_int32_t)); +#define __dbcl_set_shm_key __dbcl_set_shm_key@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_shm_key __P((DB_ENV *, long)); +#define __dbcl_set_tmp_dir __dbcl_set_tmp_dir@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_tmp_dir __P((DB_ENV *, const char *)); +#define __dbcl_set_tx_recover __dbcl_set_tx_recover@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_tx_recover __P((DB_ENV *, int (*)(DB_ENV *, DBT *, DB_LSN *, db_recops))); +#define __dbcl_set_tx_max __dbcl_set_tx_max@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_tx_max __P((DB_ENV *, u_int32_t)); +#define __dbcl_set_tx_timestamp __dbcl_set_tx_timestamp@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_tx_timestamp __P((DB_ENV *, time_t *)); +#define __dbcl_set_verbose __dbcl_set_verbose@DB_VERSION_UNIQUE_NAME@ +int __dbcl_set_verbose __P((DB_ENV *, u_int32_t, int)); +#define __dbcl_txn_abort __dbcl_txn_abort@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_abort __P((DB_TXN *)); +#define __dbcl_txn_begin __dbcl_txn_begin@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_begin __P((DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t)); +#define __dbcl_txn_checkpoint __dbcl_txn_checkpoint@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_checkpoint __P((DB_ENV *, u_int32_t, u_int32_t)); +#define __dbcl_txn_commit __dbcl_txn_commit@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_commit __P((DB_TXN *, u_int32_t)); +#define __dbcl_txn_prepare __dbcl_txn_prepare@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_prepare __P((DB_TXN *, u_int8_t *)); +#define __dbcl_txn_recover __dbcl_txn_recover@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_recover __P((DB_ENV *, DB_PREPLIST *, long, long *, u_int32_t)); +#define __dbcl_txn_stat __dbcl_txn_stat@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_stat __P((DB_ENV *, DB_TXN_STAT **)); +#define __dbcl_db_alloc __dbcl_db_alloc@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_alloc __P((DB *, void *(*)(size_t), void *(*)(void *, size_t), void (*)(void *))); +#define __dbcl_db_associate __dbcl_db_associate@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_associate __P((DB *, DB *, int (*)(DB *, const DBT *, const DBT *, DBT *), u_int32_t)); +#define __dbcl_db_bt_compare __dbcl_db_bt_compare@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_bt_compare __P((DB *, int (*)(DB *, const DBT *, const DBT *))); +#define __dbcl_db_bt_maxkey __dbcl_db_bt_maxkey@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_bt_maxkey __P((DB *, u_int32_t)); +#define __dbcl_db_bt_minkey __dbcl_db_bt_minkey@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_bt_minkey __P((DB *, u_int32_t)); +#define __dbcl_db_bt_prefix __dbcl_db_bt_prefix@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_bt_prefix __P((DB *, size_t(*)(DB *, const DBT *, const DBT *))); +#define __dbcl_db_set_append_recno __dbcl_db_set_append_recno@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_set_append_recno __P((DB *, int (*)(DB *, DBT *, db_recno_t))); +#define __dbcl_db_cachesize __dbcl_db_cachesize@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_cachesize __P((DB *, u_int32_t, u_int32_t, int)); +#define __dbcl_db_close __dbcl_db_close@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_close __P((DB *, u_int32_t)); +#define __dbcl_db_create __dbcl_db_create@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_create __P((DB *, DB_ENV *, u_int32_t)); +#define __dbcl_db_del __dbcl_db_del@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_del __P((DB *, DB_TXN *, DBT *, u_int32_t)); +#define __dbcl_db_extentsize __dbcl_db_extentsize@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_extentsize __P((DB *, u_int32_t)); +#define __dbcl_db_fd __dbcl_db_fd@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_fd __P((DB *, int *)); +#define __dbcl_db_feedback __dbcl_db_feedback@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_feedback __P((DB *, void (*)(DB *, int, int))); +#define __dbcl_db_flags __dbcl_db_flags@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_flags __P((DB *, u_int32_t)); +#define __dbcl_db_get __dbcl_db_get@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_get __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); +#define __dbcl_db_h_ffactor __dbcl_db_h_ffactor@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_h_ffactor __P((DB *, u_int32_t)); +#define __dbcl_db_h_hash __dbcl_db_h_hash@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_h_hash __P((DB *, u_int32_t(*)(DB *, const void *, u_int32_t))); +#define __dbcl_db_h_nelem __dbcl_db_h_nelem@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_h_nelem __P((DB *, u_int32_t)); +#define __dbcl_db_key_range __dbcl_db_key_range@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_key_range __P((DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t)); +#define __dbcl_db_lorder __dbcl_db_lorder@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_lorder __P((DB *, int)); +#define __dbcl_db_open __dbcl_db_open@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_open __P((DB *, const char *, const char *, DBTYPE, u_int32_t, int)); +#define __dbcl_db_pagesize __dbcl_db_pagesize@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_pagesize __P((DB *, u_int32_t)); +#define __dbcl_db_panic __dbcl_db_panic@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_panic __P((DB *, void (*)(DB_ENV *, int))); +#define __dbcl_db_pget __dbcl_db_pget@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_pget __P((DB *, DB_TXN *, DBT *, DBT *, DBT *, u_int32_t)); +#define __dbcl_db_put __dbcl_db_put@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_put __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t)); +#define __dbcl_db_re_delim __dbcl_db_re_delim@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_re_delim __P((DB *, int)); +#define __dbcl_db_re_len __dbcl_db_re_len@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_re_len __P((DB *, u_int32_t)); +#define __dbcl_db_re_pad __dbcl_db_re_pad@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_re_pad __P((DB *, int)); +#define __dbcl_db_re_source __dbcl_db_re_source@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_re_source __P((DB *, const char *)); +#define __dbcl_db_remove __dbcl_db_remove@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_remove __P((DB *, const char *, const char *, u_int32_t)); +#define __dbcl_db_rename __dbcl_db_rename@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_rename __P((DB *, const char *, const char *, const char *, u_int32_t)); +#define __dbcl_db_stat __dbcl_db_stat@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_stat __P((DB *, void *, u_int32_t)); +#define __dbcl_db_sync __dbcl_db_sync@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_sync __P((DB *, u_int32_t)); +#define __dbcl_db_truncate __dbcl_db_truncate@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_truncate __P((DB *, const char *, const char *, u_int32_t *, u_int32_t)); +#define __dbcl_db_upgrade __dbcl_db_upgrade@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_upgrade __P((DB *, const char *, u_int32_t)); +#define __dbcl_db_verify __dbcl_db_verify@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_verify __P((DB *, const char *, const char *, FILE *, u_int32_t)); +#define __dbcl_db_cursor __dbcl_db_cursor@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_cursor __P((DB *, DB_TXN *, DBC **, u_int32_t)); +#define __dbcl_db_join __dbcl_db_join@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_join __P((DB *, DBC **, DBC **, u_int32_t)); +#define __dbcl_dbc_close __dbcl_dbc_close@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_close __P((DBC *)); +#define __dbcl_dbc_count __dbcl_dbc_count@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_count __P((DBC *, db_recno_t *, u_int32_t)); +#define __dbcl_dbc_del __dbcl_dbc_del@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_del __P((DBC *, u_int32_t)); +#define __dbcl_dbc_dup __dbcl_dbc_dup@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_dup __P((DBC *, DBC **, u_int32_t)); +#define __dbcl_dbc_get __dbcl_dbc_get@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_get __P((DBC *, DBT *, DBT *, u_int32_t)); +#define __dbcl_dbc_pget __dbcl_dbc_pget@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_pget __P((DBC *, DBT *, DBT *, DBT *, u_int32_t)); +#define __dbcl_dbc_put __dbcl_dbc_put@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_put __P((DBC *, DBT *, DBT *, u_int32_t)); +#define __dbcl_lock_detect __dbcl_lock_detect@DB_VERSION_UNIQUE_NAME@ +int __dbcl_lock_detect __P((DB_ENV *, u_int32_t, u_int32_t, int *)); +#define __dbcl_lock_get __dbcl_lock_get@DB_VERSION_UNIQUE_NAME@ +int __dbcl_lock_get __P((DB_ENV *, u_int32_t, u_int32_t, const DBT *, db_lockmode_t, DB_LOCK *)); +#define __dbcl_lock_id __dbcl_lock_id@DB_VERSION_UNIQUE_NAME@ +int __dbcl_lock_id __P((DB_ENV *, u_int32_t *)); +#define __dbcl_lock_put __dbcl_lock_put@DB_VERSION_UNIQUE_NAME@ +int __dbcl_lock_put __P((DB_ENV *, DB_LOCK *)); +#define __dbcl_lock_stat __dbcl_lock_stat@DB_VERSION_UNIQUE_NAME@ +int __dbcl_lock_stat __P((DB_ENV *, DB_LOCK_STAT **)); +#define __dbcl_lock_vec __dbcl_lock_vec@DB_VERSION_UNIQUE_NAME@ +int __dbcl_lock_vec __P((DB_ENV *, u_int32_t, u_int32_t, DB_LOCKREQ *, int, DB_LOCKREQ **)); +#define __dbcl_log_archive __dbcl_log_archive@DB_VERSION_UNIQUE_NAME@ +int __dbcl_log_archive __P((DB_ENV *, char ***, u_int32_t)); +#define __dbcl_log_file __dbcl_log_file@DB_VERSION_UNIQUE_NAME@ +int __dbcl_log_file __P((DB_ENV *, const DB_LSN *, char *, size_t)); +#define __dbcl_log_flush __dbcl_log_flush@DB_VERSION_UNIQUE_NAME@ +int __dbcl_log_flush __P((DB_ENV *, const DB_LSN *)); +#define __dbcl_log_get __dbcl_log_get@DB_VERSION_UNIQUE_NAME@ +int __dbcl_log_get __P((DB_ENV *, DB_LSN *, DBT *, u_int32_t)); +#define __dbcl_log_put __dbcl_log_put@DB_VERSION_UNIQUE_NAME@ +int __dbcl_log_put __P((DB_ENV *, DB_LSN *, const DBT *, u_int32_t)); +#define __dbcl_log_register __dbcl_log_register@DB_VERSION_UNIQUE_NAME@ +int __dbcl_log_register __P((DB_ENV *, DB *, const char *)); +#define __dbcl_log_stat __dbcl_log_stat@DB_VERSION_UNIQUE_NAME@ +int __dbcl_log_stat __P((DB_ENV *, DB_LOG_STAT **)); +#define __dbcl_log_unregister __dbcl_log_unregister@DB_VERSION_UNIQUE_NAME@ +int __dbcl_log_unregister __P((DB_ENV *, DB *)); +#define __dbcl_memp_fclose __dbcl_memp_fclose@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_fclose __P((DB_MPOOLFILE *)); +#define __dbcl_memp_fget __dbcl_memp_fget@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_fget __P((DB_MPOOLFILE *, db_pgno_t *, u_int32_t, void **)); +#define __dbcl_memp_fopen __dbcl_memp_fopen@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_fopen __P((DB_ENV *, const char *, u_int32_t, int, size_t, DB_MPOOL_FINFO *, DB_MPOOLFILE **)); +#define __dbcl_memp_fput __dbcl_memp_fput@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_fput __P((DB_MPOOLFILE *, void *, u_int32_t)); +#define __dbcl_memp_fset __dbcl_memp_fset@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_fset __P((DB_MPOOLFILE *, void *, u_int32_t)); +#define __dbcl_memp_fsync __dbcl_memp_fsync@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_fsync __P((DB_MPOOLFILE *)); +#define __dbcl_memp_register __dbcl_memp_register@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_register __P((DB_ENV *, int, int (*)(DB_ENV *, db_pgno_t, void *, DBT *), int (*)(DB_ENV *, db_pgno_t, void *, DBT *))); +#define __dbcl_memp_stat __dbcl_memp_stat@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_stat __P((DB_ENV *, DB_MPOOL_STAT **, DB_MPOOL_FSTAT ***)); +#define __dbcl_memp_sync __dbcl_memp_sync@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_sync __P((DB_ENV *, DB_LSN *)); +#define __dbcl_memp_trickle __dbcl_memp_trickle@DB_VERSION_UNIQUE_NAME@ +int __dbcl_memp_trickle __P((DB_ENV *, int, int *)); +#define __dbcl_env_close_ret __dbcl_env_close_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_close_ret __P((DB_ENV *, u_int32_t, __env_close_reply *)); +#define __dbcl_env_create_ret __dbcl_env_create_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_create_ret __P((DB_ENV *, long, __env_create_reply *)); +#define __dbcl_env_open_ret __dbcl_env_open_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_open_ret __P((DB_ENV *, const char *, u_int32_t, int, __env_open_reply *)); +#define __dbcl_env_remove_ret __dbcl_env_remove_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_env_remove_ret __P((DB_ENV *, const char *, u_int32_t, __env_remove_reply *)); +#define __dbcl_txn_abort_ret __dbcl_txn_abort_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_abort_ret __P((DB_TXN *, __txn_abort_reply *)); +#define __dbcl_txn_begin_ret __dbcl_txn_begin_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_begin_ret __P((DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t, __txn_begin_reply *)); +#define __dbcl_txn_commit_ret __dbcl_txn_commit_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_commit_ret __P((DB_TXN *, u_int32_t, __txn_commit_reply *)); +#define __dbcl_txn_recover_ret __dbcl_txn_recover_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_txn_recover_ret __P((DB_ENV *, DB_PREPLIST *, long, long *, u_int32_t, __txn_recover_reply *)); +#define __dbcl_db_close_ret __dbcl_db_close_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_close_ret __P((DB *, u_int32_t, __db_close_reply *)); +#define __dbcl_db_create_ret __dbcl_db_create_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_create_ret __P((DB *, DB_ENV *, u_int32_t, __db_create_reply *)); +#define __dbcl_db_get_ret __dbcl_db_get_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_get_ret __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t, __db_get_reply *)); +#define __dbcl_db_key_range_ret __dbcl_db_key_range_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_key_range_ret __P((DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t, __db_key_range_reply *)); +#define __dbcl_db_open_ret __dbcl_db_open_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_open_ret __P((DB *, const char *, const char *, DBTYPE, u_int32_t, int, __db_open_reply *)); +#define __dbcl_db_pget_ret __dbcl_db_pget_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_pget_ret __P((DB *, DB_TXN *, DBT *, DBT *, DBT *, u_int32_t, __db_pget_reply *)); +#define __dbcl_db_put_ret __dbcl_db_put_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_put_ret __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t, __db_put_reply *)); +#define __dbcl_db_remove_ret __dbcl_db_remove_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_remove_ret __P((DB *, const char *, const char *, u_int32_t, __db_remove_reply *)); +#define __dbcl_db_rename_ret __dbcl_db_rename_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_rename_ret __P((DB *, const char *, const char *, const char *, u_int32_t, __db_rename_reply *)); +#define __dbcl_db_stat_ret __dbcl_db_stat_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_stat_ret __P((DB *, void *, u_int32_t, __db_stat_reply *)); +#define __dbcl_db_truncate_ret __dbcl_db_truncate_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_truncate_ret __P((DB *, const char *, const char *, u_int32_t *, u_int32_t, __db_truncate_reply *)); +#define __dbcl_db_cursor_ret __dbcl_db_cursor_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_cursor_ret __P((DB *, DB_TXN *, DBC **, u_int32_t, __db_cursor_reply *)); +#define __dbcl_db_join_ret __dbcl_db_join_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_db_join_ret __P((DB *, DBC **, DBC **, u_int32_t, __db_join_reply *)); +#define __dbcl_dbc_close_ret __dbcl_dbc_close_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_close_ret __P((DBC *, __dbc_close_reply *)); +#define __dbcl_dbc_count_ret __dbcl_dbc_count_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_count_ret __P((DBC *, db_recno_t *, u_int32_t, __dbc_count_reply *)); +#define __dbcl_dbc_dup_ret __dbcl_dbc_dup_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_dup_ret __P((DBC *, DBC **, u_int32_t, __dbc_dup_reply *)); +#define __dbcl_dbc_get_ret __dbcl_dbc_get_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_get_ret __P((DBC *, DBT *, DBT *, u_int32_t, __dbc_get_reply *)); +#define __dbcl_dbc_pget_ret __dbcl_dbc_pget_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_pget_ret __P((DBC *, DBT *, DBT *, DBT *, u_int32_t, __dbc_pget_reply *)); +#define __dbcl_dbc_put_ret __dbcl_dbc_put_ret@DB_VERSION_UNIQUE_NAME@ +int __dbcl_dbc_put_ret __P((DBC *, DBT *, DBT *, u_int32_t, __dbc_put_reply *)); +#if defined(__cplusplus) +} +#endif +#endif /* _rpc_client_ext_h_ */ diff --git a/db/include_auto/rpc_defs.in b/db/include_auto/rpc_defs.in new file mode 100644 index 000000000..daf1949f2 --- /dev/null +++ b/db/include_auto/rpc_defs.in @@ -0,0 +1,4 @@ + +/* DO NOT EDIT: automatically built by dist/s_rpc. */ +#define DB_RPC_SERVERPROG ((unsigned long)(351457)) +#define DB_RPC_SERVERVERS ((unsigned long)(3003)) diff --git a/db/include_auto/rpc_server_ext.h b/db/include_auto/rpc_server_ext.h new file mode 100644 index 000000000..c26355db8 --- /dev/null +++ b/db/include_auto/rpc_server_ext.h @@ -0,0 +1,110 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _rpc_server_ext_h_ +#define _rpc_server_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +void __env_cachesize_proc __P((long, u_int32_t, u_int32_t, u_int32_t, __env_cachesize_reply *)); +void __env_close_proc __P((long, u_int32_t, __env_close_reply *)); +void __env_create_proc __P((u_int32_t, __env_create_reply *)); +void __env_flags_proc __P((long, u_int32_t, u_int32_t, __env_flags_reply *)); +void __env_open_proc __P((long, char *, u_int32_t, u_int32_t, __env_open_reply *)); +void __env_remove_proc __P((long, char *, u_int32_t, __env_remove_reply *)); +void __txn_abort_proc __P((long, __txn_abort_reply *)); +void __txn_begin_proc __P((long, long, u_int32_t, __txn_begin_reply *)); +void __txn_commit_proc __P((long, u_int32_t, __txn_commit_reply *)); +void __txn_prepare_proc __P((long, u_int8_t *, __txn_prepare_reply *)); +void __txn_recover_proc __P((long, u_int32_t, u_int32_t, __txn_recover_reply *, int *)); +void __db_bt_maxkey_proc __P((long, u_int32_t, __db_bt_maxkey_reply *)); +void __db_associate_proc __P((long, long, u_int32_t, __db_associate_reply *)); +void __db_bt_minkey_proc __P((long, u_int32_t, __db_bt_minkey_reply *)); +void __db_close_proc __P((long, u_int32_t, __db_close_reply *)); +void __db_create_proc __P((long, u_int32_t, __db_create_reply *)); +void __db_del_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_del_reply *)); +void __db_extentsize_proc __P((long, u_int32_t, __db_extentsize_reply *)); +void __db_flags_proc __P((long, u_int32_t, __db_flags_reply *)); +void __db_get_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_get_reply *, int *)); +void __db_h_ffactor_proc __P((long, u_int32_t, __db_h_ffactor_reply *)); +void __db_h_nelem_proc __P((long, u_int32_t, __db_h_nelem_reply *)); +void __db_key_range_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_key_range_reply *)); +void __db_lorder_proc __P((long, u_int32_t, __db_lorder_reply *)); +void __db_open_proc __P((long, char *, char *, u_int32_t, u_int32_t, u_int32_t, __db_open_reply *)); +void __db_pagesize_proc __P((long, u_int32_t, __db_pagesize_reply *)); +void __db_pget_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_pget_reply *, int *)); +void __db_put_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_put_reply *, int *)); +void __db_re_delim_proc __P((long, u_int32_t, __db_re_delim_reply *)); +void __db_re_len_proc __P((long, u_int32_t, __db_re_len_reply *)); +void __db_re_pad_proc __P((long, u_int32_t, __db_re_pad_reply *)); +void __db_remove_proc __P((long, char *, char *, u_int32_t, __db_remove_reply *)); +void __db_rename_proc __P((long, char *, char *, char *, u_int32_t, __db_rename_reply *)); +void __db_stat_proc __P((long, u_int32_t, __db_stat_reply *, int *)); +void __db_sync_proc __P((long, u_int32_t, __db_sync_reply *)); +void __db_truncate_proc __P((long, char *, char *, u_int32_t, __db_truncate_reply *)); +void __db_cursor_proc __P((long, long, u_int32_t, __db_cursor_reply *)); +void __db_join_proc __P((long, u_int32_t *, u_int32_t, u_int32_t, __db_join_reply *)); +void __dbc_close_proc __P((long, __dbc_close_reply *)); +void __dbc_count_proc __P((long, u_int32_t, __dbc_count_reply *)); +void __dbc_del_proc __P((long, u_int32_t, __dbc_del_reply *)); +void __dbc_dup_proc __P((long, u_int32_t, __dbc_dup_reply *)); +void __dbc_get_proc __P((long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __dbc_get_reply *, int *)); +void __dbc_pget_proc __P((long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __dbc_pget_reply *, int *)); +void __dbc_put_proc __P((long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __dbc_put_reply *, int *)); +void __dbsrv_settimeout __P((ct_entry *, u_int32_t)); +void __dbsrv_timeout __P((int)); +void __dbclear_ctp __P((ct_entry *)); +void __dbdel_ctp __P((ct_entry *)); +ct_entry *new_ct_ent __P((int *)); +ct_entry *get_tableent __P((long)); +void __dbsrv_active __P((ct_entry *)); +int __dbc_close_int __P((ct_entry *)); +int __dbenv_close_int __P((long, int)); +char *get_home __P((char *)); +__env_cachesize_reply *__db_env_cachesize_3003 __P((__env_cachesize_msg *)); +__env_close_reply *__db_env_close_3003 __P((__env_close_msg *)); +__env_create_reply *__db_env_create_3003 __P((__env_create_msg *)); +__env_flags_reply *__db_env_flags_3003 __P((__env_flags_msg *)); +__env_open_reply *__db_env_open_3003 __P((__env_open_msg *)); +__env_remove_reply *__db_env_remove_3003 __P((__env_remove_msg *)); +__txn_abort_reply *__db_txn_abort_3003 __P((__txn_abort_msg *)); +__txn_begin_reply *__db_txn_begin_3003 __P((__txn_begin_msg *)); +__txn_commit_reply *__db_txn_commit_3003 __P((__txn_commit_msg *)); +__txn_prepare_reply *__db_txn_prepare_3003 __P((__txn_prepare_msg *)); +__txn_recover_reply *__db_txn_recover_3003 __P((__txn_recover_msg *)); +__db_associate_reply *__db_db_associate_3003 __P((__db_associate_msg *)); +__db_bt_maxkey_reply *__db_db_bt_maxkey_3003 __P((__db_bt_maxkey_msg *)); +__db_bt_minkey_reply *__db_db_bt_minkey_3003 __P((__db_bt_minkey_msg *)); +__db_close_reply *__db_db_close_3003 __P((__db_close_msg *)); +__db_create_reply *__db_db_create_3003 __P((__db_create_msg *)); +__db_del_reply *__db_db_del_3003 __P((__db_del_msg *)); +__db_extentsize_reply *__db_db_extentsize_3003 __P((__db_extentsize_msg *)); +__db_flags_reply *__db_db_flags_3003 __P((__db_flags_msg *)); +__db_get_reply *__db_db_get_3003 __P((__db_get_msg *)); +__db_h_ffactor_reply *__db_db_h_ffactor_3003 __P((__db_h_ffactor_msg *)); +__db_h_nelem_reply *__db_db_h_nelem_3003 __P((__db_h_nelem_msg *)); +__db_key_range_reply *__db_db_key_range_3003 __P((__db_key_range_msg *)); +__db_lorder_reply *__db_db_lorder_3003 __P((__db_lorder_msg *)); +__db_open_reply *__db_db_open_3003 __P((__db_open_msg *)); +__db_pagesize_reply *__db_db_pagesize_3003 __P((__db_pagesize_msg *)); +__db_pget_reply *__db_db_pget_3003 __P((__db_pget_msg *)); +__db_put_reply *__db_db_put_3003 __P((__db_put_msg *)); +__db_re_delim_reply *__db_db_re_delim_3003 __P((__db_re_delim_msg *)); +__db_re_len_reply *__db_db_re_len_3003 __P((__db_re_len_msg *)); +__db_re_pad_reply *__db_db_re_pad_3003 __P((__db_re_pad_msg *)); +__db_remove_reply *__db_db_remove_3003 __P((__db_remove_msg *)); +__db_rename_reply *__db_db_rename_3003 __P((__db_rename_msg *)); +__db_stat_reply *__db_db_stat_3003 __P((__db_stat_msg *)); +__db_sync_reply *__db_db_sync_3003 __P((__db_sync_msg *)); +__db_truncate_reply *__db_db_truncate_3003 __P((__db_truncate_msg *)); +__db_cursor_reply *__db_db_cursor_3003 __P((__db_cursor_msg *)); +__db_join_reply *__db_db_join_3003 __P((__db_join_msg *)); +__dbc_close_reply *__db_dbc_close_3003 __P((__dbc_close_msg *)); +__dbc_count_reply *__db_dbc_count_3003 __P((__dbc_count_msg *)); +__dbc_del_reply *__db_dbc_del_3003 __P((__dbc_del_msg *)); +__dbc_dup_reply *__db_dbc_dup_3003 __P((__dbc_dup_msg *)); +__dbc_get_reply *__db_dbc_get_3003 __P((__dbc_get_msg *)); +__dbc_pget_reply *__db_dbc_pget_3003 __P((__dbc_pget_msg *)); +__dbc_put_reply *__db_dbc_put_3003 __P((__dbc_put_msg *)); +#if defined(__cplusplus) +} +#endif +#endif /* _rpc_server_ext_h_ */ diff --git a/db/include_auto/rpc_server_ext.in b/db/include_auto/rpc_server_ext.in new file mode 100644 index 000000000..898627ea4 --- /dev/null +++ b/db/include_auto/rpc_server_ext.in @@ -0,0 +1,165 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _rpc_server_ext_h_ +#define _rpc_server_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __env_cachesize_proc __env_cachesize_proc@DB_VERSION_UNIQUE_NAME@ +void __env_cachesize_proc __P((long, u_int32_t, u_int32_t, u_int32_t, __env_cachesize_reply *)); +#define __env_close_proc __env_close_proc@DB_VERSION_UNIQUE_NAME@ +void __env_close_proc __P((long, u_int32_t, __env_close_reply *)); +#define __env_create_proc __env_create_proc@DB_VERSION_UNIQUE_NAME@ +void __env_create_proc __P((u_int32_t, __env_create_reply *)); +#define __env_flags_proc __env_flags_proc@DB_VERSION_UNIQUE_NAME@ +void __env_flags_proc __P((long, u_int32_t, u_int32_t, __env_flags_reply *)); +#define __env_open_proc __env_open_proc@DB_VERSION_UNIQUE_NAME@ +void __env_open_proc __P((long, char *, u_int32_t, u_int32_t, __env_open_reply *)); +#define __env_remove_proc __env_remove_proc@DB_VERSION_UNIQUE_NAME@ +void __env_remove_proc __P((long, char *, u_int32_t, __env_remove_reply *)); +#define __txn_abort_proc __txn_abort_proc@DB_VERSION_UNIQUE_NAME@ +void __txn_abort_proc __P((long, __txn_abort_reply *)); +#define __txn_begin_proc __txn_begin_proc@DB_VERSION_UNIQUE_NAME@ +void __txn_begin_proc __P((long, long, u_int32_t, __txn_begin_reply *)); +#define __txn_commit_proc __txn_commit_proc@DB_VERSION_UNIQUE_NAME@ +void __txn_commit_proc __P((long, u_int32_t, __txn_commit_reply *)); +#define __txn_prepare_proc __txn_prepare_proc@DB_VERSION_UNIQUE_NAME@ +void __txn_prepare_proc __P((long, u_int8_t *, __txn_prepare_reply *)); +#define __txn_recover_proc __txn_recover_proc@DB_VERSION_UNIQUE_NAME@ +void __txn_recover_proc __P((long, u_int32_t, u_int32_t, __txn_recover_reply *, int *)); +#define __db_bt_maxkey_proc __db_bt_maxkey_proc@DB_VERSION_UNIQUE_NAME@ +void __db_bt_maxkey_proc __P((long, u_int32_t, __db_bt_maxkey_reply *)); +#define __db_associate_proc __db_associate_proc@DB_VERSION_UNIQUE_NAME@ +void __db_associate_proc __P((long, long, u_int32_t, __db_associate_reply *)); +#define __db_bt_minkey_proc __db_bt_minkey_proc@DB_VERSION_UNIQUE_NAME@ +void __db_bt_minkey_proc __P((long, u_int32_t, __db_bt_minkey_reply *)); +#define __db_close_proc __db_close_proc@DB_VERSION_UNIQUE_NAME@ +void __db_close_proc __P((long, u_int32_t, __db_close_reply *)); +#define __db_create_proc __db_create_proc@DB_VERSION_UNIQUE_NAME@ +void __db_create_proc __P((long, u_int32_t, __db_create_reply *)); +#define __db_del_proc __db_del_proc@DB_VERSION_UNIQUE_NAME@ +void __db_del_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_del_reply *)); +#define __db_extentsize_proc __db_extentsize_proc@DB_VERSION_UNIQUE_NAME@ +void __db_extentsize_proc __P((long, u_int32_t, __db_extentsize_reply *)); +#define __db_flags_proc __db_flags_proc@DB_VERSION_UNIQUE_NAME@ +void __db_flags_proc __P((long, u_int32_t, __db_flags_reply *)); +#define __db_get_proc __db_get_proc@DB_VERSION_UNIQUE_NAME@ +void __db_get_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_get_reply *, int *)); +#define __db_h_ffactor_proc __db_h_ffactor_proc@DB_VERSION_UNIQUE_NAME@ +void __db_h_ffactor_proc __P((long, u_int32_t, __db_h_ffactor_reply *)); +#define __db_h_nelem_proc __db_h_nelem_proc@DB_VERSION_UNIQUE_NAME@ +void __db_h_nelem_proc __P((long, u_int32_t, __db_h_nelem_reply *)); +#define __db_key_range_proc __db_key_range_proc@DB_VERSION_UNIQUE_NAME@ +void __db_key_range_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_key_range_reply *)); +#define __db_lorder_proc __db_lorder_proc@DB_VERSION_UNIQUE_NAME@ +void __db_lorder_proc __P((long, u_int32_t, __db_lorder_reply *)); +#define __db_open_proc __db_open_proc@DB_VERSION_UNIQUE_NAME@ +void __db_open_proc __P((long, char *, char *, u_int32_t, u_int32_t, u_int32_t, __db_open_reply *)); +#define __db_pagesize_proc __db_pagesize_proc@DB_VERSION_UNIQUE_NAME@ +void __db_pagesize_proc __P((long, u_int32_t, __db_pagesize_reply *)); +#define __db_pget_proc __db_pget_proc@DB_VERSION_UNIQUE_NAME@ +void __db_pget_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_pget_reply *, int *)); +#define __db_put_proc __db_put_proc@DB_VERSION_UNIQUE_NAME@ +void __db_put_proc __P((long, long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __db_put_reply *, int *)); +#define __db_re_delim_proc __db_re_delim_proc@DB_VERSION_UNIQUE_NAME@ +void __db_re_delim_proc __P((long, u_int32_t, __db_re_delim_reply *)); +#define __db_re_len_proc __db_re_len_proc@DB_VERSION_UNIQUE_NAME@ +void __db_re_len_proc __P((long, u_int32_t, __db_re_len_reply *)); +#define __db_re_pad_proc __db_re_pad_proc@DB_VERSION_UNIQUE_NAME@ +void __db_re_pad_proc __P((long, u_int32_t, __db_re_pad_reply *)); +#define __db_remove_proc __db_remove_proc@DB_VERSION_UNIQUE_NAME@ +void __db_remove_proc __P((long, char *, char *, u_int32_t, __db_remove_reply *)); +#define __db_rename_proc __db_rename_proc@DB_VERSION_UNIQUE_NAME@ +void __db_rename_proc __P((long, char *, char *, char *, u_int32_t, __db_rename_reply *)); +#define __db_stat_proc __db_stat_proc@DB_VERSION_UNIQUE_NAME@ +void __db_stat_proc __P((long, u_int32_t, __db_stat_reply *, int *)); +#define __db_sync_proc __db_sync_proc@DB_VERSION_UNIQUE_NAME@ +void __db_sync_proc __P((long, u_int32_t, __db_sync_reply *)); +#define __db_truncate_proc __db_truncate_proc@DB_VERSION_UNIQUE_NAME@ +void __db_truncate_proc __P((long, char *, char *, u_int32_t, __db_truncate_reply *)); +#define __db_cursor_proc __db_cursor_proc@DB_VERSION_UNIQUE_NAME@ +void __db_cursor_proc __P((long, long, u_int32_t, __db_cursor_reply *)); +#define __db_join_proc __db_join_proc@DB_VERSION_UNIQUE_NAME@ +void __db_join_proc __P((long, u_int32_t *, u_int32_t, u_int32_t, __db_join_reply *)); +#define __dbc_close_proc __dbc_close_proc@DB_VERSION_UNIQUE_NAME@ +void __dbc_close_proc __P((long, __dbc_close_reply *)); +#define __dbc_count_proc __dbc_count_proc@DB_VERSION_UNIQUE_NAME@ +void __dbc_count_proc __P((long, u_int32_t, __dbc_count_reply *)); +#define __dbc_del_proc __dbc_del_proc@DB_VERSION_UNIQUE_NAME@ +void __dbc_del_proc __P((long, u_int32_t, __dbc_del_reply *)); +#define __dbc_dup_proc __dbc_dup_proc@DB_VERSION_UNIQUE_NAME@ +void __dbc_dup_proc __P((long, u_int32_t, __dbc_dup_reply *)); +#define __dbc_get_proc __dbc_get_proc@DB_VERSION_UNIQUE_NAME@ +void __dbc_get_proc __P((long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __dbc_get_reply *, int *)); +#define __dbc_pget_proc __dbc_pget_proc@DB_VERSION_UNIQUE_NAME@ +void __dbc_pget_proc __P((long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __dbc_pget_reply *, int *)); +#define __dbc_put_proc __dbc_put_proc@DB_VERSION_UNIQUE_NAME@ +void __dbc_put_proc __P((long, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, void *, u_int32_t, u_int32_t, __dbc_put_reply *, int *)); +#define __dbsrv_settimeout __dbsrv_settimeout@DB_VERSION_UNIQUE_NAME@ +void __dbsrv_settimeout __P((ct_entry *, u_int32_t)); +#define __dbsrv_timeout __dbsrv_timeout@DB_VERSION_UNIQUE_NAME@ +void __dbsrv_timeout __P((int)); +#define __dbclear_ctp __dbclear_ctp@DB_VERSION_UNIQUE_NAME@ +void __dbclear_ctp __P((ct_entry *)); +#define __dbdel_ctp __dbdel_ctp@DB_VERSION_UNIQUE_NAME@ +void __dbdel_ctp __P((ct_entry *)); +#define new_ct_ent new_ct_ent@DB_VERSION_UNIQUE_NAME@ +ct_entry *new_ct_ent __P((int *)); +#define get_tableent get_tableent@DB_VERSION_UNIQUE_NAME@ +ct_entry *get_tableent __P((long)); +#define __dbsrv_active __dbsrv_active@DB_VERSION_UNIQUE_NAME@ +void __dbsrv_active __P((ct_entry *)); +#define __dbc_close_int __dbc_close_int@DB_VERSION_UNIQUE_NAME@ +int __dbc_close_int __P((ct_entry *)); +#define __dbenv_close_int __dbenv_close_int@DB_VERSION_UNIQUE_NAME@ +int __dbenv_close_int __P((long, int)); +#define get_home get_home@DB_VERSION_UNIQUE_NAME@ +char *get_home __P((char *)); +__env_cachesize_reply *__db_env_cachesize_3003 __P((__env_cachesize_msg *)); +__env_close_reply *__db_env_close_3003 __P((__env_close_msg *)); +__env_create_reply *__db_env_create_3003 __P((__env_create_msg *)); +__env_flags_reply *__db_env_flags_3003 __P((__env_flags_msg *)); +__env_open_reply *__db_env_open_3003 __P((__env_open_msg *)); +__env_remove_reply *__db_env_remove_3003 __P((__env_remove_msg *)); +__txn_abort_reply *__db_txn_abort_3003 __P((__txn_abort_msg *)); +__txn_begin_reply *__db_txn_begin_3003 __P((__txn_begin_msg *)); +__txn_commit_reply *__db_txn_commit_3003 __P((__txn_commit_msg *)); +__txn_prepare_reply *__db_txn_prepare_3003 __P((__txn_prepare_msg *)); +__txn_recover_reply *__db_txn_recover_3003 __P((__txn_recover_msg *)); +__db_associate_reply *__db_db_associate_3003 __P((__db_associate_msg *)); +__db_bt_maxkey_reply *__db_db_bt_maxkey_3003 __P((__db_bt_maxkey_msg *)); +__db_bt_minkey_reply *__db_db_bt_minkey_3003 __P((__db_bt_minkey_msg *)); +__db_close_reply *__db_db_close_3003 __P((__db_close_msg *)); +__db_create_reply *__db_db_create_3003 __P((__db_create_msg *)); +__db_del_reply *__db_db_del_3003 __P((__db_del_msg *)); +__db_extentsize_reply *__db_db_extentsize_3003 __P((__db_extentsize_msg *)); +__db_flags_reply *__db_db_flags_3003 __P((__db_flags_msg *)); +__db_get_reply *__db_db_get_3003 __P((__db_get_msg *)); +__db_h_ffactor_reply *__db_db_h_ffactor_3003 __P((__db_h_ffactor_msg *)); +__db_h_nelem_reply *__db_db_h_nelem_3003 __P((__db_h_nelem_msg *)); +__db_key_range_reply *__db_db_key_range_3003 __P((__db_key_range_msg *)); +__db_lorder_reply *__db_db_lorder_3003 __P((__db_lorder_msg *)); +__db_open_reply *__db_db_open_3003 __P((__db_open_msg *)); +__db_pagesize_reply *__db_db_pagesize_3003 __P((__db_pagesize_msg *)); +__db_pget_reply *__db_db_pget_3003 __P((__db_pget_msg *)); +__db_put_reply *__db_db_put_3003 __P((__db_put_msg *)); +__db_re_delim_reply *__db_db_re_delim_3003 __P((__db_re_delim_msg *)); +__db_re_len_reply *__db_db_re_len_3003 __P((__db_re_len_msg *)); +__db_re_pad_reply *__db_db_re_pad_3003 __P((__db_re_pad_msg *)); +__db_remove_reply *__db_db_remove_3003 __P((__db_remove_msg *)); +__db_rename_reply *__db_db_rename_3003 __P((__db_rename_msg *)); +__db_stat_reply *__db_db_stat_3003 __P((__db_stat_msg *)); +__db_sync_reply *__db_db_sync_3003 __P((__db_sync_msg *)); +__db_truncate_reply *__db_db_truncate_3003 __P((__db_truncate_msg *)); +__db_cursor_reply *__db_db_cursor_3003 __P((__db_cursor_msg *)); +__db_join_reply *__db_db_join_3003 __P((__db_join_msg *)); +__dbc_close_reply *__db_dbc_close_3003 __P((__dbc_close_msg *)); +__dbc_count_reply *__db_dbc_count_3003 __P((__dbc_count_msg *)); +__dbc_del_reply *__db_dbc_del_3003 __P((__dbc_del_msg *)); +__dbc_dup_reply *__db_dbc_dup_3003 __P((__dbc_dup_msg *)); +__dbc_get_reply *__db_dbc_get_3003 __P((__dbc_get_msg *)); +__dbc_pget_reply *__db_dbc_pget_3003 __P((__dbc_pget_msg *)); +__dbc_put_reply *__db_dbc_put_3003 __P((__dbc_put_msg *)); +#if defined(__cplusplus) +} +#endif +#endif /* _rpc_server_ext_h_ */ diff --git a/db/include_auto/tcl_ext.h b/db/include_auto/tcl_ext.h new file mode 100644 index 000000000..228ecadd0 --- /dev/null +++ b/db/include_auto/tcl_ext.h @@ -0,0 +1,66 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _tcl_ext_h_ +#define _tcl_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int bdb_HCommand __P((Tcl_Interp *, int, Tcl_Obj * CONST*)); +#if DB_DBM_HSEARCH != 0 +int bdb_NdbmOpen __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DBM **)); +#endif +#if DB_DBM_HSEARCH != 0 +int bdb_DbmCommand __P((Tcl_Interp *, int, Tcl_Obj * CONST*, int, DBM *)); +#endif +int ndbm_Cmd __P((ClientData, Tcl_Interp *, int, Tcl_Obj * CONST*)); +int bdb_RandCommand __P((Tcl_Interp *, int, Tcl_Obj * CONST*)); +int tcl_Mutex __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +int db_Cmd __P((ClientData, Tcl_Interp *, int, Tcl_Obj * CONST*)); +int dbc_Cmd __P((ClientData, Tcl_Interp *, int, Tcl_Obj * CONST*)); +int env_Cmd __P((ClientData, Tcl_Interp *, int, Tcl_Obj * CONST*)); +int tcl_EnvRemove __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +int tcl_EnvVerbose __P((Tcl_Interp *, DB_ENV *, Tcl_Obj *, Tcl_Obj *)); +int tcl_EnvTest __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +DBTCL_INFO *_NewInfo __P((Tcl_Interp *, void *, char *, enum INFOTYPE)); +void *_NameToPtr __P((CONST char *)); +DBTCL_INFO *_PtrToInfo __P((CONST void *)); +DBTCL_INFO *_NameToInfo __P((CONST char *)); +void _SetInfoData __P((DBTCL_INFO *, void *)); +void _DeleteInfo __P((DBTCL_INFO *)); +int _SetListElem __P((Tcl_Interp *, Tcl_Obj *, void *, int, void *, int)); +int _SetListElemInt __P((Tcl_Interp *, Tcl_Obj *, void *, int)); +int _SetListRecnoElem __P((Tcl_Interp *, Tcl_Obj *, db_recno_t, u_char *, int)); +int _Set3DBTList __P((Tcl_Interp *, Tcl_Obj *, DBT *, int, DBT *, int, DBT *)); +int _SetMultiList __P((Tcl_Interp *, Tcl_Obj *, DBT *, DBT*, int, int)); +int _GetGlobPrefix __P((char *, char **)); +int _ReturnSetup __P((Tcl_Interp *, int, char *)); +int _ErrorSetup __P((Tcl_Interp *, int, char *)); +void _ErrorFunc __P((CONST char *, char *)); +int _GetLsn __P((Tcl_Interp *, Tcl_Obj *, DB_LSN *)); +void _debug_check __P((void)); +int tcl_LockDetect __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LockGet __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LockStat __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LockVec __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LogArchive __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LogCompare __P((Tcl_Interp *, int, Tcl_Obj * CONST*)); +int tcl_LogFile __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LogFlush __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LogGet __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LogPut __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LogRegister __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LogStat __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_LogUnregister __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +void _MpInfoDelete __P((Tcl_Interp *, DBTCL_INFO *)); +int tcl_MpSync __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_MpTrickle __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_Mp __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +int tcl_MpStat __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +void _TxnInfoDelete __P((Tcl_Interp *, DBTCL_INFO *)); +int tcl_TxnCheckpoint __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_Txn __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +int tcl_TxnStat __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +int tcl_TxnRecover __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +#if defined(__cplusplus) +} +#endif +#endif /* _tcl_ext_h_ */ diff --git a/db/include_auto/tcl_ext.in b/db/include_auto/tcl_ext.in new file mode 100644 index 000000000..d3fdfe976 --- /dev/null +++ b/db/include_auto/tcl_ext.in @@ -0,0 +1,118 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _tcl_ext_h_ +#define _tcl_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define bdb_HCommand bdb_HCommand@DB_VERSION_UNIQUE_NAME@ +int bdb_HCommand __P((Tcl_Interp *, int, Tcl_Obj * CONST*)); +#if DB_DBM_HSEARCH != 0 +#define bdb_NdbmOpen bdb_NdbmOpen@DB_VERSION_UNIQUE_NAME@ +int bdb_NdbmOpen __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DBM **)); +#endif +#if DB_DBM_HSEARCH != 0 +#define bdb_DbmCommand bdb_DbmCommand@DB_VERSION_UNIQUE_NAME@ +int bdb_DbmCommand __P((Tcl_Interp *, int, Tcl_Obj * CONST*, int, DBM *)); +#endif +#define ndbm_Cmd ndbm_Cmd@DB_VERSION_UNIQUE_NAME@ +int ndbm_Cmd __P((ClientData, Tcl_Interp *, int, Tcl_Obj * CONST*)); +#define bdb_RandCommand bdb_RandCommand@DB_VERSION_UNIQUE_NAME@ +int bdb_RandCommand __P((Tcl_Interp *, int, Tcl_Obj * CONST*)); +#define tcl_Mutex tcl_Mutex@DB_VERSION_UNIQUE_NAME@ +int tcl_Mutex __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +#define db_Cmd db_Cmd@DB_VERSION_UNIQUE_NAME@ +int db_Cmd __P((ClientData, Tcl_Interp *, int, Tcl_Obj * CONST*)); +#define dbc_Cmd dbc_Cmd@DB_VERSION_UNIQUE_NAME@ +int dbc_Cmd __P((ClientData, Tcl_Interp *, int, Tcl_Obj * CONST*)); +#define env_Cmd env_Cmd@DB_VERSION_UNIQUE_NAME@ +int env_Cmd __P((ClientData, Tcl_Interp *, int, Tcl_Obj * CONST*)); +#define tcl_EnvRemove tcl_EnvRemove@DB_VERSION_UNIQUE_NAME@ +int tcl_EnvRemove __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +#define tcl_EnvVerbose tcl_EnvVerbose@DB_VERSION_UNIQUE_NAME@ +int tcl_EnvVerbose __P((Tcl_Interp *, DB_ENV *, Tcl_Obj *, Tcl_Obj *)); +#define tcl_EnvTest tcl_EnvTest@DB_VERSION_UNIQUE_NAME@ +int tcl_EnvTest __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define _NewInfo _NewInfo@DB_VERSION_UNIQUE_NAME@ +DBTCL_INFO *_NewInfo __P((Tcl_Interp *, void *, char *, enum INFOTYPE)); +#define _NameToPtr _NameToPtr@DB_VERSION_UNIQUE_NAME@ +void *_NameToPtr __P((CONST char *)); +#define _PtrToInfo _PtrToInfo@DB_VERSION_UNIQUE_NAME@ +DBTCL_INFO *_PtrToInfo __P((CONST void *)); +#define _NameToInfo _NameToInfo@DB_VERSION_UNIQUE_NAME@ +DBTCL_INFO *_NameToInfo __P((CONST char *)); +#define _SetInfoData _SetInfoData@DB_VERSION_UNIQUE_NAME@ +void _SetInfoData __P((DBTCL_INFO *, void *)); +#define _DeleteInfo _DeleteInfo@DB_VERSION_UNIQUE_NAME@ +void _DeleteInfo __P((DBTCL_INFO *)); +#define _SetListElem _SetListElem@DB_VERSION_UNIQUE_NAME@ +int _SetListElem __P((Tcl_Interp *, Tcl_Obj *, void *, int, void *, int)); +#define _SetListElemInt _SetListElemInt@DB_VERSION_UNIQUE_NAME@ +int _SetListElemInt __P((Tcl_Interp *, Tcl_Obj *, void *, int)); +#define _SetListRecnoElem _SetListRecnoElem@DB_VERSION_UNIQUE_NAME@ +int _SetListRecnoElem __P((Tcl_Interp *, Tcl_Obj *, db_recno_t, u_char *, int)); +#define _Set3DBTList _Set3DBTList@DB_VERSION_UNIQUE_NAME@ +int _Set3DBTList __P((Tcl_Interp *, Tcl_Obj *, DBT *, int, DBT *, int, DBT *)); +#define _SetMultiList _SetMultiList@DB_VERSION_UNIQUE_NAME@ +int _SetMultiList __P((Tcl_Interp *, Tcl_Obj *, DBT *, DBT*, int, int)); +#define _GetGlobPrefix _GetGlobPrefix@DB_VERSION_UNIQUE_NAME@ +int _GetGlobPrefix __P((char *, char **)); +#define _ReturnSetup _ReturnSetup@DB_VERSION_UNIQUE_NAME@ +int _ReturnSetup __P((Tcl_Interp *, int, char *)); +#define _ErrorSetup _ErrorSetup@DB_VERSION_UNIQUE_NAME@ +int _ErrorSetup __P((Tcl_Interp *, int, char *)); +#define _ErrorFunc _ErrorFunc@DB_VERSION_UNIQUE_NAME@ +void _ErrorFunc __P((CONST char *, char *)); +#define _GetLsn _GetLsn@DB_VERSION_UNIQUE_NAME@ +int _GetLsn __P((Tcl_Interp *, Tcl_Obj *, DB_LSN *)); +#define _debug_check _debug_check@DB_VERSION_UNIQUE_NAME@ +void _debug_check __P((void)); +#define tcl_LockDetect tcl_LockDetect@DB_VERSION_UNIQUE_NAME@ +int tcl_LockDetect __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LockGet tcl_LockGet@DB_VERSION_UNIQUE_NAME@ +int tcl_LockGet __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LockStat tcl_LockStat@DB_VERSION_UNIQUE_NAME@ +int tcl_LockStat __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LockVec tcl_LockVec@DB_VERSION_UNIQUE_NAME@ +int tcl_LockVec __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LogArchive tcl_LogArchive@DB_VERSION_UNIQUE_NAME@ +int tcl_LogArchive __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LogCompare tcl_LogCompare@DB_VERSION_UNIQUE_NAME@ +int tcl_LogCompare __P((Tcl_Interp *, int, Tcl_Obj * CONST*)); +#define tcl_LogFile tcl_LogFile@DB_VERSION_UNIQUE_NAME@ +int tcl_LogFile __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LogFlush tcl_LogFlush@DB_VERSION_UNIQUE_NAME@ +int tcl_LogFlush __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LogGet tcl_LogGet@DB_VERSION_UNIQUE_NAME@ +int tcl_LogGet __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LogPut tcl_LogPut@DB_VERSION_UNIQUE_NAME@ +int tcl_LogPut __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LogRegister tcl_LogRegister@DB_VERSION_UNIQUE_NAME@ +int tcl_LogRegister __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LogStat tcl_LogStat@DB_VERSION_UNIQUE_NAME@ +int tcl_LogStat __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_LogUnregister tcl_LogUnregister@DB_VERSION_UNIQUE_NAME@ +int tcl_LogUnregister __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define _MpInfoDelete _MpInfoDelete@DB_VERSION_UNIQUE_NAME@ +void _MpInfoDelete __P((Tcl_Interp *, DBTCL_INFO *)); +#define tcl_MpSync tcl_MpSync@DB_VERSION_UNIQUE_NAME@ +int tcl_MpSync __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_MpTrickle tcl_MpTrickle@DB_VERSION_UNIQUE_NAME@ +int tcl_MpTrickle __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_Mp tcl_Mp@DB_VERSION_UNIQUE_NAME@ +int tcl_Mp __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +#define tcl_MpStat tcl_MpStat@DB_VERSION_UNIQUE_NAME@ +int tcl_MpStat __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define _TxnInfoDelete _TxnInfoDelete@DB_VERSION_UNIQUE_NAME@ +void _TxnInfoDelete __P((Tcl_Interp *, DBTCL_INFO *)); +#define tcl_TxnCheckpoint tcl_TxnCheckpoint@DB_VERSION_UNIQUE_NAME@ +int tcl_TxnCheckpoint __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_Txn tcl_Txn@DB_VERSION_UNIQUE_NAME@ +int tcl_Txn __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +#define tcl_TxnStat tcl_TxnStat@DB_VERSION_UNIQUE_NAME@ +int tcl_TxnStat __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *)); +#define tcl_TxnRecover tcl_TxnRecover@DB_VERSION_UNIQUE_NAME@ +int tcl_TxnRecover __P((Tcl_Interp *, int, Tcl_Obj * CONST*, DB_ENV *, DBTCL_INFO *)); +#if defined(__cplusplus) +} +#endif +#endif /* _tcl_ext_h_ */ diff --git a/db/include_auto/txn_auto.h b/db/include_auto/txn_auto.h new file mode 100644 index 000000000..9c13fa505 --- /dev/null +++ b/db/include_auto/txn_auto.h @@ -0,0 +1,84 @@ +/* Do not edit: automatically built by gen_rec.awk. */ + +#ifndef txn_AUTO_H +#define txn_AUTO_H +#define DB_txn_old_regop 6 +typedef struct _txn_old_regop_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; +} __txn_old_regop_args; + +#define DB_txn_regop 10 +typedef struct _txn_regop_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + int32_t timestamp; +} __txn_regop_args; + +#define DB_txn_old_ckp 7 +typedef struct _txn_old_ckp_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + DB_LSN ckp_lsn; + DB_LSN last_ckp; +} __txn_old_ckp_args; + +#define DB_txn_ckp 11 +typedef struct _txn_ckp_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + DB_LSN ckp_lsn; + DB_LSN last_ckp; + int32_t timestamp; +} __txn_ckp_args; + +#define DB_txn_xa_regop_old 8 +typedef struct _txn_xa_regop_old_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + DBT xid; + int32_t formatID; + u_int32_t gtrid; + u_int32_t bqual; +} __txn_xa_regop_old_args; + +#define DB_txn_xa_regop 13 +typedef struct _txn_xa_regop_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + DBT xid; + int32_t formatID; + u_int32_t gtrid; + u_int32_t bqual; + DB_LSN begin_lsn; +} __txn_xa_regop_args; + +#define DB_txn_child_old 9 +typedef struct _txn_child_old_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t opcode; + u_int32_t parent; +} __txn_child_old_args; + +#define DB_txn_child 12 +typedef struct _txn_child_args { + u_int32_t type; + DB_TXN *txnid; + DB_LSN prev_lsn; + u_int32_t child; + DB_LSN c_lsn; +} __txn_child_args; + +#endif diff --git a/db/include_auto/txn_ext.h b/db/include_auto/txn_ext.h new file mode 100644 index 000000000..7ddee10fd --- /dev/null +++ b/db/include_auto/txn_ext.h @@ -0,0 +1,47 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _txn_ext_h_ +#define _txn_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __txn_xa_begin __P((DB_ENV *, DB_TXN *)); +int __txn_compensate_begin __P((DB_ENV *, DB_TXN **txnp)); +int __txn_activekids __P((DB_ENV *, u_int32_t, DB_TXN *)); +void __txn_force_abort __P((u_int8_t *)); +int __txn_old_regop_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_old_regop_read __P((DB_ENV *, void *, __txn_old_regop_args **)); +int __txn_regop_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t)); +int __txn_regop_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_regop_read __P((DB_ENV *, void *, __txn_regop_args **)); +int __txn_old_ckp_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_old_ckp_read __P((DB_ENV *, void *, __txn_old_ckp_args **)); +int __txn_ckp_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, DB_LSN *, DB_LSN *, int32_t)); +int __txn_ckp_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_ckp_read __P((DB_ENV *, void *, __txn_ckp_args **)); +int __txn_xa_regop_old_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_xa_regop_old_read __P((DB_ENV *, void *, __txn_xa_regop_old_args **)); +int __txn_xa_regop_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, const DBT *, int32_t, u_int32_t, u_int32_t, DB_LSN *)); +int __txn_xa_regop_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_xa_regop_read __P((DB_ENV *, void *, __txn_xa_regop_args **)); +int __txn_child_old_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_child_old_read __P((DB_ENV *, void *, __txn_child_old_args **)); +int __txn_child_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, DB_LSN *)); +int __txn_child_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_child_read __P((DB_ENV *, void *, __txn_child_args **)); +int __txn_init_print __P((DB_ENV *)); +int __txn_init_recover __P((DB_ENV *)); +int __txn_regop_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_xa_regop_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_ckp_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +int __txn_child_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +void __txn_continue __P((DB_ENV *, DB_TXN *, TXN_DETAIL *, size_t)); +int __txn_map_gid __P((DB_ENV *, u_int8_t *, TXN_DETAIL **, size_t *)); +int __txn_get_prepared __P((DB_ENV *, XID *, DB_PREPLIST *, long, long *, u_int32_t)); +void __txn_dbenv_create __P((DB_ENV *)); +int __txn_open __P((DB_ENV *)); +int __txn_close __P((DB_ENV *)); +void __txn_region_destroy __P((DB_ENV *, REGINFO *)); +#if defined(__cplusplus) +} +#endif +#endif /* _txn_ext_h_ */ diff --git a/db/include_auto/txn_ext.in b/db/include_auto/txn_ext.in new file mode 100644 index 000000000..ed3cf80b8 --- /dev/null +++ b/db/include_auto/txn_ext.in @@ -0,0 +1,84 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _txn_ext_h_ +#define _txn_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __txn_xa_begin __txn_xa_begin@DB_VERSION_UNIQUE_NAME@ +int __txn_xa_begin __P((DB_ENV *, DB_TXN *)); +#define __txn_compensate_begin __txn_compensate_begin@DB_VERSION_UNIQUE_NAME@ +int __txn_compensate_begin __P((DB_ENV *, DB_TXN **txnp)); +#define __txn_activekids __txn_activekids@DB_VERSION_UNIQUE_NAME@ +int __txn_activekids __P((DB_ENV *, u_int32_t, DB_TXN *)); +#define __txn_force_abort __txn_force_abort@DB_VERSION_UNIQUE_NAME@ +void __txn_force_abort __P((u_int8_t *)); +#define __txn_old_regop_print __txn_old_regop_print@DB_VERSION_UNIQUE_NAME@ +int __txn_old_regop_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_old_regop_read __txn_old_regop_read@DB_VERSION_UNIQUE_NAME@ +int __txn_old_regop_read __P((DB_ENV *, void *, __txn_old_regop_args **)); +#define __txn_regop_log __txn_regop_log@DB_VERSION_UNIQUE_NAME@ +int __txn_regop_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, int32_t)); +#define __txn_regop_print __txn_regop_print@DB_VERSION_UNIQUE_NAME@ +int __txn_regop_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_regop_read __txn_regop_read@DB_VERSION_UNIQUE_NAME@ +int __txn_regop_read __P((DB_ENV *, void *, __txn_regop_args **)); +#define __txn_old_ckp_print __txn_old_ckp_print@DB_VERSION_UNIQUE_NAME@ +int __txn_old_ckp_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_old_ckp_read __txn_old_ckp_read@DB_VERSION_UNIQUE_NAME@ +int __txn_old_ckp_read __P((DB_ENV *, void *, __txn_old_ckp_args **)); +#define __txn_ckp_log __txn_ckp_log@DB_VERSION_UNIQUE_NAME@ +int __txn_ckp_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, DB_LSN *, DB_LSN *, int32_t)); +#define __txn_ckp_print __txn_ckp_print@DB_VERSION_UNIQUE_NAME@ +int __txn_ckp_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_ckp_read __txn_ckp_read@DB_VERSION_UNIQUE_NAME@ +int __txn_ckp_read __P((DB_ENV *, void *, __txn_ckp_args **)); +#define __txn_xa_regop_old_print __txn_xa_regop_old_print@DB_VERSION_UNIQUE_NAME@ +int __txn_xa_regop_old_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_xa_regop_old_read __txn_xa_regop_old_read@DB_VERSION_UNIQUE_NAME@ +int __txn_xa_regop_old_read __P((DB_ENV *, void *, __txn_xa_regop_old_args **)); +#define __txn_xa_regop_log __txn_xa_regop_log@DB_VERSION_UNIQUE_NAME@ +int __txn_xa_regop_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, const DBT *, int32_t, u_int32_t, u_int32_t, DB_LSN *)); +#define __txn_xa_regop_print __txn_xa_regop_print@DB_VERSION_UNIQUE_NAME@ +int __txn_xa_regop_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_xa_regop_read __txn_xa_regop_read@DB_VERSION_UNIQUE_NAME@ +int __txn_xa_regop_read __P((DB_ENV *, void *, __txn_xa_regop_args **)); +#define __txn_child_old_print __txn_child_old_print@DB_VERSION_UNIQUE_NAME@ +int __txn_child_old_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_child_old_read __txn_child_old_read@DB_VERSION_UNIQUE_NAME@ +int __txn_child_old_read __P((DB_ENV *, void *, __txn_child_old_args **)); +#define __txn_child_log __txn_child_log@DB_VERSION_UNIQUE_NAME@ +int __txn_child_log __P((DB_ENV *, DB_TXN *, DB_LSN *, u_int32_t, u_int32_t, DB_LSN *)); +#define __txn_child_print __txn_child_print@DB_VERSION_UNIQUE_NAME@ +int __txn_child_print __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_child_read __txn_child_read@DB_VERSION_UNIQUE_NAME@ +int __txn_child_read __P((DB_ENV *, void *, __txn_child_args **)); +#define __txn_init_print __txn_init_print@DB_VERSION_UNIQUE_NAME@ +int __txn_init_print __P((DB_ENV *)); +#define __txn_init_recover __txn_init_recover@DB_VERSION_UNIQUE_NAME@ +int __txn_init_recover __P((DB_ENV *)); +#define __txn_regop_recover __txn_regop_recover@DB_VERSION_UNIQUE_NAME@ +int __txn_regop_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_xa_regop_recover __txn_xa_regop_recover@DB_VERSION_UNIQUE_NAME@ +int __txn_xa_regop_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_ckp_recover __txn_ckp_recover@DB_VERSION_UNIQUE_NAME@ +int __txn_ckp_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_child_recover __txn_child_recover@DB_VERSION_UNIQUE_NAME@ +int __txn_child_recover __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); +#define __txn_continue __txn_continue@DB_VERSION_UNIQUE_NAME@ +void __txn_continue __P((DB_ENV *, DB_TXN *, TXN_DETAIL *, size_t)); +#define __txn_map_gid __txn_map_gid@DB_VERSION_UNIQUE_NAME@ +int __txn_map_gid __P((DB_ENV *, u_int8_t *, TXN_DETAIL **, size_t *)); +#define __txn_get_prepared __txn_get_prepared@DB_VERSION_UNIQUE_NAME@ +int __txn_get_prepared __P((DB_ENV *, XID *, DB_PREPLIST *, long, long *, u_int32_t)); +#define __txn_dbenv_create __txn_dbenv_create@DB_VERSION_UNIQUE_NAME@ +void __txn_dbenv_create __P((DB_ENV *)); +#define __txn_open __txn_open@DB_VERSION_UNIQUE_NAME@ +int __txn_open __P((DB_ENV *)); +#define __txn_close __txn_close@DB_VERSION_UNIQUE_NAME@ +int __txn_close __P((DB_ENV *)); +#define __txn_region_destroy __txn_region_destroy@DB_VERSION_UNIQUE_NAME@ +void __txn_region_destroy __P((DB_ENV *, REGINFO *)); +#if defined(__cplusplus) +} +#endif +#endif /* _txn_ext_h_ */ diff --git a/db/include_auto/xa_ext.h b/db/include_auto/xa_ext.h new file mode 100644 index 000000000..cc16ba183 --- /dev/null +++ b/db/include_auto/xa_ext.h @@ -0,0 +1,17 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _xa_ext_h_ +#define _xa_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +int __db_xa_create __P((DB *)); +int __db_rmid_to_env __P((int rmid, DB_ENV **envp)); +int __db_xid_to_txn __P((DB_ENV *, XID *, size_t *)); +int __db_map_rmid __P((int, DB_ENV *)); +int __db_unmap_rmid __P((int)); +int __db_map_xid __P((DB_ENV *, XID *, size_t)); +void __db_unmap_xid __P((DB_ENV *, XID *, size_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _xa_ext_h_ */ diff --git a/db/include_auto/xa_ext.in b/db/include_auto/xa_ext.in new file mode 100644 index 000000000..873046dcb --- /dev/null +++ b/db/include_auto/xa_ext.in @@ -0,0 +1,24 @@ +/* DO NOT EDIT: automatically built by dist/s_include. */ +#ifndef _xa_ext_h_ +#define _xa_ext_h_ +#if defined(__cplusplus) +extern "C" { +#endif +#define __db_xa_create __db_xa_create@DB_VERSION_UNIQUE_NAME@ +int __db_xa_create __P((DB *)); +#define __db_rmid_to_env __db_rmid_to_env@DB_VERSION_UNIQUE_NAME@ +int __db_rmid_to_env __P((int rmid, DB_ENV **envp)); +#define __db_xid_to_txn __db_xid_to_txn@DB_VERSION_UNIQUE_NAME@ +int __db_xid_to_txn __P((DB_ENV *, XID *, size_t *)); +#define __db_map_rmid __db_map_rmid@DB_VERSION_UNIQUE_NAME@ +int __db_map_rmid __P((int, DB_ENV *)); +#define __db_unmap_rmid __db_unmap_rmid@DB_VERSION_UNIQUE_NAME@ +int __db_unmap_rmid __P((int)); +#define __db_map_xid __db_map_xid@DB_VERSION_UNIQUE_NAME@ +int __db_map_xid __P((DB_ENV *, XID *, size_t)); +#define __db_unmap_xid __db_unmap_xid@DB_VERSION_UNIQUE_NAME@ +void __db_unmap_xid __P((DB_ENV *, XID *, size_t)); +#if defined(__cplusplus) +} +#endif +#endif /* _xa_ext_h_ */ diff --git a/db/java/src/com/sleepycat/db/DbClient.java b/db/java/src/com/sleepycat/db/DbClient.java new file mode 100644 index 000000000..36b3f1552 --- /dev/null +++ b/db/java/src/com/sleepycat/db/DbClient.java @@ -0,0 +1,21 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2000-2001 + * Sleepycat Software. All rights reserved. + * + * Id: DbClient.java,v 11.1 2001/05/01 02:35:52 dda Exp + */ + +package com.sleepycat.db; + +/* + * This interface is used by DbEnv.set_rpc_server(). + * It is a placeholder for a future capability. + * + */ +public interface DbClient +{ +} + +// end of DbClient.java diff --git a/db/java/src/com/sleepycat/db/DbMultipleDataIterator.java b/db/java/src/com/sleepycat/db/DbMultipleDataIterator.java new file mode 100644 index 000000000..d77ce382b --- /dev/null +++ b/db/java/src/com/sleepycat/db/DbMultipleDataIterator.java @@ -0,0 +1,47 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2001 + * Sleepycat Software. All rights reserved. + * + * Id: DbMultipleDataIterator.java,v 1.2 2001/05/01 01:44:52 krinsky Exp + */ + +package com.sleepycat.db; + +/** + * + * @author David M. Krinsky + */ +public class DbMultipleDataIterator extends DbMultipleIterator +{ + // public methods + public DbMultipleDataIterator(Dbt data) + { + super(data); + } + + public boolean next(Dbt data) + { + int dataoff = DbUtil.array2int(buf, pos); + + // crack out the data offset and length. + if (dataoff < 0) { + return (false); + } + + pos -= int32sz; + int datasz = DbUtil.array2int(buf, pos); + + pos -= int32sz; + + data.set_data(buf); + data.set_size(datasz); + data.set_offset(dataoff); + + return (true); + } +} + + +// end of DbMultipleDataIterator.java diff --git a/db/java/src/com/sleepycat/db/DbMultipleIterator.java b/db/java/src/com/sleepycat/db/DbMultipleIterator.java new file mode 100644 index 000000000..177440a0c --- /dev/null +++ b/db/java/src/com/sleepycat/db/DbMultipleIterator.java @@ -0,0 +1,52 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2001 + * Sleepycat Software. All rights reserved. + * + * Id: DbMultipleIterator.java,v 1.2 2001/05/01 01:44:53 krinsky Exp + */ + +package com.sleepycat.db; + +/** + * + * @author David M. Krinsky + */ +// DbMultipleIterator is a shared package-private base class for the three +// types of bulk-return Iterator; it should never be instantiated directly, +// but it handles the functionality shared by its subclasses. +class DbMultipleIterator +{ + // Package-private methods and members: used by our subclasses. + + // Called implicitly by the subclass + DbMultipleIterator(Dbt data) + { + buf = data.get_data(); + size = data.get_ulen(); + // The offset will always be zero from the front of the buffer + // DB returns, and the buffer is opaque, so don't bother + // handling an offset. + + // The initial position is pointing at the last u_int32_t + // in the buffer. + pos = size - int32sz; + } + + // The C macros use sizeof(u_int32_t). Fortunately, java ints + // are always four bytes. Make this a constant just for form's sake. + static final int int32sz = 4; + + // Current position within the buffer; equivalent to "pointer" + // in the DB_MULTIPLE macros. + int pos; + + // A reference to the encoded buffer returned from the original + // Db/Dbc.get call on the data Dbt, and its size. + byte[] buf; + int size; +} + + +// end of DbMultipleIterator.java diff --git a/db/java/src/com/sleepycat/db/DbMultipleKeyDataIterator.java b/db/java/src/com/sleepycat/db/DbMultipleKeyDataIterator.java new file mode 100644 index 000000000..2ebc9fa79 --- /dev/null +++ b/db/java/src/com/sleepycat/db/DbMultipleKeyDataIterator.java @@ -0,0 +1,57 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2001 + * Sleepycat Software. All rights reserved. + * + * Id: DbMultipleKeyDataIterator.java,v 1.2 2001/05/01 01:44:53 krinsky Exp + */ + +package com.sleepycat.db; + +/** + * + * @author David M. Krinsky + */ +public class DbMultipleKeyDataIterator extends DbMultipleIterator +{ + // public methods + public DbMultipleKeyDataIterator(Dbt data) + { + super(data); + } + + public boolean next(Dbt key, Dbt data) + { + int keyoff = DbUtil.array2int(buf, pos); + + // crack out the key and data offsets and lengths. + if (keyoff < 0) { + return (false); + } + + pos -= int32sz; + int keysz = DbUtil.array2int(buf, pos); + + pos -= int32sz; + int dataoff = DbUtil.array2int(buf, pos); + + pos -= int32sz; + int datasz = DbUtil.array2int(buf, pos); + + pos -= int32sz; + + key.set_data(buf); + key.set_size(keysz); + key.set_offset(keyoff); + + data.set_data(buf); + data.set_size(datasz); + data.set_offset(dataoff); + + return (true); + } +} + + +// end of DbMultipleKeyDataIterator.java diff --git a/db/java/src/com/sleepycat/db/DbMultipleRecnoDataIterator.java b/db/java/src/com/sleepycat/db/DbMultipleRecnoDataIterator.java new file mode 100644 index 000000000..4ee2bfa36 --- /dev/null +++ b/db/java/src/com/sleepycat/db/DbMultipleRecnoDataIterator.java @@ -0,0 +1,52 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2001 + * Sleepycat Software. All rights reserved. + * + * Id: DbMultipleRecnoDataIterator.java,v 1.2 2001/05/01 01:44:53 krinsky Exp + */ + +package com.sleepycat.db; + +/** + * + * @author David M. Krinsky + */ +public class DbMultipleRecnoDataIterator extends DbMultipleIterator +{ + // public methods + public DbMultipleRecnoDataIterator(Dbt data) + { + super(data); + } + + public boolean next(Dbt key, Dbt data) + { + int keyoff = DbUtil.array2int(buf, pos); + + // crack out the key offset and the data offset and length. + if (keyoff < 0) { + return (false); + } + + pos -= int32sz; + int dataoff = DbUtil.array2int(buf, pos); + + pos -= int32sz; + int datasz = DbUtil.array2int(buf, pos); + + pos -= int32sz; + + key.set_recno_key_from_buffer(buf, keyoff); + + data.set_data(buf); + data.set_size(datasz); + data.set_offset(dataoff); + + return (true); + } +} + + +// end of DbMultipleRecnoDataIterator.java diff --git a/db/java/src/com/sleepycat/db/DbPreplist.java b/db/java/src/com/sleepycat/db/DbPreplist.java new file mode 100644 index 000000000..63b3f53ef --- /dev/null +++ b/db/java/src/com/sleepycat/db/DbPreplist.java @@ -0,0 +1,22 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1999-2001 + * Sleepycat Software. All rights reserved. + * + * Id: DbPreplist.java,v 11.1 2001/04/15 15:36:30 dda Exp + */ + +package com.sleepycat.db; + +/* + * This is filled in and returned by the + * DbEnv.txn_recover() method. + */ +public class DbPreplist +{ + public DbTxn txn; + public byte gid[]; +} + +// end of DbPreplist.java diff --git a/db/java/src/com/sleepycat/db/DbSecondaryKeyCreate.java b/db/java/src/com/sleepycat/db/DbSecondaryKeyCreate.java new file mode 100644 index 000000000..bfc8ecf44 --- /dev/null +++ b/db/java/src/com/sleepycat/db/DbSecondaryKeyCreate.java @@ -0,0 +1,22 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1999-2001 + * Sleepycat Software. All rights reserved. + * + * Id: DbSecondaryKeyCreate.java,v 11.1 2001/04/25 14:51:11 dda Exp + */ + +package com.sleepycat.db; + +/* + * This is used as a callback by Db.associate. + */ +public interface DbSecondaryKeyCreate +{ + public int secondary_key_create(Db secondary, Dbt key, + Dbt data, Dbt result) + throws DbException; +} + +// end of DbSecondaryKeyCreate.java diff --git a/db/java/src/com/sleepycat/db/DbUtil.java b/db/java/src/com/sleepycat/db/DbUtil.java new file mode 100644 index 000000000..98ed016af --- /dev/null +++ b/db/java/src/com/sleepycat/db/DbUtil.java @@ -0,0 +1,98 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2001 + * Sleepycat Software. All rights reserved. + * + * Id: DbUtil.java,v 11.1 2001/05/01 01:44:53 krinsky Exp + */ + +package com.sleepycat.db; + +/** + * + * @author David M. Krinsky + */ + +// DbUtil is a simple, package-private wrapper class that holds a few +// static utility functions other parts of the package share and that don't +// have a good home elsewhere. (For now, that's limited to byte-array-to-int +// conversion and back.) + +class DbUtil +{ + // Get the u_int32_t stored beginning at offset "offset" into + // array "arr". We have to do the conversion manually since it's + // a C-native int, and we're not really supposed to make this kind of + // cast in Java. + static int array2int(byte[] arr, int offset) + { + int b1, b2, b3, b4; + int pos = offset; + + // Get the component bytes; b4 is most significant, b1 least. + if (big_endian) { + b4 = arr[pos++]; + b3 = arr[pos++]; + b2 = arr[pos++]; + b1 = arr[pos]; + } else { + b1 = arr[pos++]; + b2 = arr[pos++]; + b3 = arr[pos++]; + b4 = arr[pos]; + } + + // Bytes are signed. Convert [-128, -1] to [128, 255]. + if (b1 < 0) { b1 += 256; } + if (b2 < 0) { b2 += 256; } + if (b3 < 0) { b3 += 256; } + if (b4 < 0) { b4 += 256; } + + // Put the bytes in their proper places in an int. + b2 <<= 8; + b3 <<= 16; + b4 <<= 24; + + // Return their sum. + return (b1 + b2 + b3 + b4); + } + + // Store the specified u_int32_t, with endianness appropriate + // to the platform we're running on, into four consecutive bytes of + // the specified byte array, starting from the specified offset. + static void int2array(int n, byte[] arr, int offset) + { + int b1, b2, b3, b4; + int pos = offset; + + b1 = n & 0xff; + b2 = (n >> 8) & 0xff; + b3 = (n >> 16) & 0xff; + b4 = (n >> 24) & 0xff; + + // Bytes are signed. Convert [128, 255] to [-128, -1]. + if (b1 >= 128) { b1 -= 256; } + if (b2 >= 128) { b2 -= 256; } + if (b3 >= 128) { b3 -= 256; } + if (b4 >= 128) { b4 -= 256; } + + // Put the bytes in the appropriate place in the array. + if (big_endian) { + arr[pos++] = (byte)b4; + arr[pos++] = (byte)b3; + arr[pos++] = (byte)b2; + arr[pos] = (byte)b1; + } else { + arr[pos++] = (byte)b1; + arr[pos++] = (byte)b2; + arr[pos++] = (byte)b3; + arr[pos] = (byte)b4; + } + } + + private static final boolean big_endian = am_big_endian(); + private static native boolean am_big_endian(); +} + +// end of DbUtil.java diff --git a/db/java/src/com/sleepycat/examples/BulkAccessExample.java b/db/java/src/com/sleepycat/examples/BulkAccessExample.java new file mode 100644 index 000000000..5986c5856 --- /dev/null +++ b/db/java/src/com/sleepycat/examples/BulkAccessExample.java @@ -0,0 +1,205 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1997-2001 + * Sleepycat Software. All rights reserved. + * + * Id: BulkAccessExample.java,v 1.1 2001/04/30 18:06:15 krinsky Exp + */ + +package com.sleepycat.examples; + +import com.sleepycat.db.*; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.InputStreamReader; +import java.io.IOException; +import java.io.PrintStream; + +class BulkAccessExample +{ + private static final String FileName = "access.db"; + + public BulkAccessExample() + { + } + + private static void usage() + { + System.err.println("usage: BulkAccessExample\n"); + System.exit(1); + } + + public static void main(String argv[]) + { + try + { + BulkAccessExample app = new BulkAccessExample(); + app.run(); + } + catch (DbException dbe) + { + System.err.println("BulkAccessExample: " + dbe.toString()); + System.exit(1); + } + catch (FileNotFoundException fnfe) + { + System.err.println("BulkAccessExample: " + fnfe.toString()); + System.exit(1); + } + System.exit(0); + } + + // Prompts for a line, and keeps prompting until a non blank + // line is returned. Returns null on error. + // + static public String askForLine(InputStreamReader reader, + PrintStream out, String prompt) + { + String result = ""; + while (result != null && result.length() == 0) { + out.print(prompt); + out.flush(); + result = getLine(reader); + } + return result; + } + + // Not terribly efficient, but does the job. + // Works for reading a line from stdin or a file. + // Returns null on EOF. If EOF appears in the middle + // of a line, returns that line, then null on next call. + // + static public String getLine(InputStreamReader reader) + { + StringBuffer b = new StringBuffer(); + int c; + try { + while ((c = reader.read()) != -1 && c != '\n') { + if (c != '\r') + b.append((char)c); + } + } + catch (IOException ioe) { + c = -1; + } + + if (c == -1 && b.length() == 0) + return null; + else + return b.toString(); + } + + public void run() + throws DbException, FileNotFoundException + { + // Remove the previous database. + new File(FileName).delete(); + + // Create the database object. + // There is no environment for this simple example. + Db table = new Db(null, 0); + table.set_error_stream(System.err); + table.set_errpfx("BulkAccessExample"); + table.open(FileName, null, Db.DB_BTREE, Db.DB_CREATE, 0644); + + // + // Insert records into the database, where the key is the user + // input and the data is the user input in reverse order. + // + InputStreamReader reader = new InputStreamReader(System.in); + + for (;;) { + String line = askForLine(reader, System.out, "input> "); + if (line == null) + break; + + String reversed = (new StringBuffer(line)).reverse().toString(); + + // See definition of StringDbt below + // + StringDbt key = new StringDbt(line); + StringDbt data = new StringDbt(reversed); + + try + { + int err; + if ((err = table.put(null, + key, data, Db.DB_NOOVERWRITE)) == Db.DB_KEYEXIST) { + System.out.println("Key " + line + " already exists."); + } + } + catch (DbException dbe) + { + System.out.println(dbe.toString()); + } + System.out.println(""); + } + + // Acquire a cursor for the table and two Dbts. + Dbc dbc = table.cursor(null, 0); + Dbt foo = new Dbt(); + foo.set_flags(Db.DB_DBT_MALLOC); + + Dbt bulk_data = new Dbt(); + + // Set Db.DB_DBT_USERMEM on the data Dbt; Db.DB_MULTIPLE_KEY requires + // it. Then allocate a byte array of a reasonable size; we'll + // go through the database in chunks this big. + bulk_data.set_flags(Db.DB_DBT_USERMEM); + bulk_data.set_data(new byte[1000000]); + bulk_data.set_ulen(1000000); + + + // Walk through the table, printing the key/data pairs. + // + while (dbc.get(foo, bulk_data, Db.DB_NEXT | Db.DB_MULTIPLE_KEY) == 0) + { + + DbMultipleKeyDataIterator iterator; + iterator = new DbMultipleKeyDataIterator(bulk_data); + + StringDbt key, data; + key = new StringDbt(); + data = new StringDbt(); + + while (iterator.next(key, data)) { + System.out.println(key.getString() + " : " + data.getString()); + } + } + dbc.close(); + table.close(0); + } + + // Here's an example of how you can extend a Dbt in a straightforward + // way to allow easy storage/retrieval of strings, or whatever + // kind of data you wish. We've declared it as a static inner + // class, but it need not be. + // + static /*inner*/ + class StringDbt extends Dbt + { + StringDbt() + { + set_flags(Db.DB_DBT_MALLOC); // tell Db to allocate on retrieval + } + + StringDbt(String value) + { + setString(value); + set_flags(Db.DB_DBT_MALLOC); // tell Db to allocate on retrieval + } + + void setString(String value) + { + set_data(value.getBytes()); + set_offset(0); + set_size(value.length()); + } + + String getString() + { + return new String(get_data(), get_offset(), get_size()); + } + } +} diff --git a/db/libdb_java/com_sleepycat_db_DbUtil.h b/db/libdb_java/com_sleepycat_db_DbUtil.h new file mode 100644 index 000000000..645b6f925 --- /dev/null +++ b/db/libdb_java/com_sleepycat_db_DbUtil.h @@ -0,0 +1,22 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> +/* Header for class com_sleepycat_db_DbUtil */ + +#ifndef _Included_com_sleepycat_db_DbUtil +#define _Included_com_sleepycat_db_DbUtil +#ifdef __cplusplus +extern "C" { +#endif +/* Inaccessible static: big_endian */ +/* + * Class: com_sleepycat_db_DbUtil + * Method: am_big_endian + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL Java_com_sleepycat_db_DbUtil_am_1big_1endian + (JNIEnv *, jclass); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/db/libdb_java/java_DbUtil.c b/db/libdb_java/java_DbUtil.c new file mode 100644 index 000000000..95e6f2e04 --- /dev/null +++ b/db/libdb_java/java_DbUtil.c @@ -0,0 +1,31 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2001 + * Sleepycat Software. All rights reserved. + */ +#include "db_config.h" + +#ifndef lint +static const char revid[] = "Id: java_DbUtil.c,v 1.3 2001/05/08 19:00:31 bostic Exp "; +#endif /* not lint */ + +#include <jni.h> + +#include "db_int.h" +#include "java_util.h" +#include "com_sleepycat_db_DbUtil.h" + +JNIEXPORT jboolean JNICALL +Java_com_sleepycat_db_DbUtil_am_1big_1endian (JNIEnv *jnienv, + jclass jthis_class) +{ + COMPQUIET(jnienv, NULL); + COMPQUIET(jthis_class, NULL); + +#if defined(WORDS_BIGENDIAN) + return (JNI_TRUE); +#else + return (JNI_FALSE); +#endif +} diff --git a/db/mutex/tm.c b/db/mutex/tm.c new file mode 100644 index 000000000..e866981ec --- /dev/null +++ b/db/mutex/tm.c @@ -0,0 +1,340 @@ +/* + * Standalone mutex tester for Berkeley DB mutexes. + */ +#include "db_config.h" + +#include <sys/types.h> +#include <sys/mman.h> +#include <sys/stat.h> +#include <sys/wait.h> + +#include <errno.h> +#include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#include "db_int.h" + +void exec_one(); +void file_init(); +void map_file(); +void mutex_destroy(); +void mutex_init(); +void mutex_stats(); +void run_one(); +void unmap_file(); + +int align; /* Mutex alignment in file. */ +DB_ENV dbenv; /* Fake out DB. */ +char *file = "mutex.file"; /* Backing file. */ +size_t len; /* Backing file size. */ +int maxlocks = 20; /* -l: Backing locks. */ +int nlocks = 10000; /* -n: Locks per processes. */ +int nprocs = 20; /* -p: Processes. */ +int child; /* -s: Slave. */ +int verbose; /* -v: Verbosity. */ + +int +main(argc, argv) + int argc; + char *argv[]; +{ + extern int optind; + extern char *optarg; + pid_t pid; + int ch, i, status; + + while ((ch = getopt(argc, argv, "l:n:p:sv")) != EOF) + switch(ch) { + case 'l': + maxlocks = atoi(optarg); + break; + case 'n': + nlocks = atoi(optarg); + break; + case 'p': + nprocs = atoi(optarg); + break; + case 's': + child = 1; + break; + case 'v': + verbose = 1; + break; + case '?': + default: + (void)fprintf(stderr, + "usage: %s [-l maxlocks] [-n locks] [-p procs]\n", + argv[0]); + exit(1); + } + argc -= optind; + argv += optind; + + /* + * Needed to figure out the file layout. + */ + align = ALIGN(sizeof(MUTEX) * 2, MUTEX_ALIGN); + len = align * maxlocks + sizeof(u_int32_t) * maxlocks; + + /* + * Hack DBENV to work. + */ + dbenv.db_mutexlocks = 1; + + if (child) { + run_one(); + exit(0); + } + + file_init(); + mutex_init(); + + printf("Run: %d processes (%d requests from %d locks):", + nprocs, nlocks, maxlocks); + for (i = 0; i < nprocs; ++i) + switch (pid = fork()) { + case -1: + perror("fork"); + exit(1); + case 0: + exec_one(); + break; + default: + printf(" %lu", (u_long)pid); + break; + } + printf("\n"); + + while ((pid = wait(&status)) != (pid_t)-1) + printf("%d: exited %d\n", pid, WEXITSTATUS(status)); + fflush(stdout); + + printf("Statistics...\n"); + mutex_stats(); + + mutex_destroy(); + + exit(0); +} + +void +exec_one() +{ + char *argv[10], **ap, b_l[10], b_n[10]; + + ap = &argv[0]; + *ap++ = "tm"; + sprintf(b_l, "-l%d", maxlocks); + *ap++ = b_l; + sprintf(b_n, "-n%d", nlocks); + *ap++ = b_n; + *ap++ = "-s"; + if (verbose) + *ap++ = "-v"; + *ap = NULL; + execv("./tm", argv); + + fprintf(stderr, "./tm: %s\n", strerror(errno)); + exit(1); +} + +void +run_one() +{ + MUTEX *maddr, *mp; + pid_t pid, *pidlist; + int fd, i, lock, remap; + char buf[128]; + + __os_sleep(&dbenv, 3, 0); /* Let everyone catch up. */ + + pid = getpid(); + srand((u_int)time(NULL) / pid); + + for (maddr = NULL;;) { + if (maddr == NULL) { + map_file(&maddr, &fd); + pidlist = + (pid_t *)((u_int8_t *)maddr + align * maxlocks); + remap = (rand() % 100) + 35; + + if (verbose) + printf("%lu: map @ %lx\n", + (u_long)pid, (u_long)maddr); + } + + lock = rand() % maxlocks; + if (verbose) { + (void)sprintf(buf, + "%lu %lu:\n", (u_long)pid, (u_long)lock); + write(1, buf, strlen(buf)); + } + mp = (MUTEX *)((u_int8_t *)maddr + lock * align); + if (__db_mutex_lock(&dbenv, mp, fd)) { + fprintf(stderr, "%lu: never got lock\n", (u_long)pid); + exit(1); + } + if (pidlist[lock] != 0) { + fprintf(stderr, + "RACE! (%lu granted lock %d held by %lu)\n", + (u_long)pid, lock, (u_long)pidlist[lock]); + exit(1); + } + pidlist[lock] = pid; + for (i = 0; i < 3; ++i) { + __os_sleep(&dbenv, 0, rand() % 50); + if (pidlist[lock] != pid) { + fprintf(stderr, + "RACE! (%lu stole lock %d from %lu)\n", + (u_long)pidlist[lock], lock, (u_long)pid); + exit(1); + } + } + pidlist[lock] = 0; + if (__db_mutex_unlock(&dbenv, mp)) { + fprintf(stderr, "%d: wakeup failed\n", pid); + exit(1); + } + + if (--remap == 0 || --nlocks == 0) { + unmap_file(maddr, fd); + maddr = NULL; + if (verbose) + printf("%lu: unmap\n", (u_long)pid); + + __os_sleep(&dbenv, rand() % 3, 0); + + if (nlocks == 0) + break; + } + + if (nlocks % 100 == 0) + write(1, ".", 1); + } + + exit(0); +} + +void +file_init() +{ + int fd; + + printf("Initialize the backing file...\n"); + + /* + * Initialize the backing file. + * + * Find out how much space we need to correctly align maxlocks locks + * plus maxlocks check words and create the file. + */ + (void)unlink(file); + if ((fd = open(file, O_CREAT | O_RDWR | O_TRUNC, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)) == -1) { + (void)fprintf(stderr, "%s: %s\n", file, strerror(errno)); + exit(1); + } + if (lseek(fd, (off_t)len, SEEK_SET) != len || write(fd, &fd, 1) != 1) { + (void)fprintf(stderr, + "%s: seek/write: %s\n", file, strerror(errno)); + exit(1); + } + (void)close(fd); +} + +void +mutex_init() +{ + MUTEX *maddr, *mp; + int fd, i; + + printf("Initialize the mutexes...\n"); + map_file(&maddr, &fd); + for (i = 0, mp = maddr; + i < maxlocks; ++i, mp = (MUTEX *)((u_int8_t *)mp + align)) + if (__db_mutex_init(&dbenv, mp, 0, 0)) { + fprintf(stderr, "__db_mutex_init (%d): %s\n", + i + 1, strerror(errno)); + exit(1); + } + unmap_file(maddr, fd); +} + +void +mutex_destroy() +{ + MUTEX *maddr, *mp; + int fd, i; + + map_file(&maddr, &fd); + for (i = 0, mp = maddr; + i < maxlocks; ++i, mp = (MUTEX *)((u_int8_t *)mp + align)) + if (__db_mutex_destroy(mp)) { + fprintf(stderr, "__db_mutex_destroy (%d): %s\n", + i + 1, strerror(errno)); + exit(1); + } + unmap_file(maddr, fd); +} + +void +mutex_stats() +{ + MUTEX *maddr, *mp; + int fd, i; + + map_file(&maddr, &fd); + for (i = 0, mp = maddr; + i < maxlocks; ++i, mp = (MUTEX *)((u_int8_t *)mp + align)) + printf("mutex %2d: wait: %2lu; no wait %2lu\n", i, + (u_long)mp->mutex_set_wait, (u_long)mp->mutex_set_nowait); + unmap_file(maddr, fd); +} + +void +map_file(maddrp, fdp) + MUTEX **maddrp; + int *fdp; +{ + MUTEX *maddr; + int fd; + +#ifndef MAP_FAILED +#define MAP_FAILED (MUTEX *)-1 +#endif +#ifndef MAP_FILE +#define MAP_FILE 0 +#endif + if ((fd = open(file, O_RDWR, 0)) == -1) { + fprintf(stderr, "%s: open %s\n", file, strerror(errno)); + exit(1); + } + + maddr = (MUTEX *)mmap(NULL, len, + PROT_READ | PROT_WRITE, MAP_FILE | MAP_SHARED, fd, (off_t)0); + if (maddr == MAP_FAILED) { + fprintf(stderr, "%s: mmap: %s\n", file, strerror(errno)); + exit(1); + } + + *maddrp = maddr; + *fdp = fd; +} + +void +unmap_file(maddr, fd) + MUTEX *maddr; + int fd; +{ + if (munmap(maddr, len) != 0) { + fprintf(stderr, "munmap: %s\n", strerror(errno)); + exit(1); + } + if (close(fd) != 0) { + fprintf(stderr, "close: %s\n", strerror(errno)); + exit(1); + } +} diff --git a/db/test/bigfile.tcl b/db/test/bigfile.tcl new file mode 100644 index 000000000..0ffddd21e --- /dev/null +++ b/db/test/bigfile.tcl @@ -0,0 +1,84 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 2001 +# Sleepycat Software. All rights reserved. +# +# Id: bigfile.tcl,v 11.1 2001/05/03 17:26:19 krinsky Exp +# +# Big file test. +# Create a database greater than 4 GB in size. Close, verify. Grow +# the database somewhat. Close, reverify. Lather, rinse, repeat. +# Since it will not work on all systems, this test is not run by default. +proc bigfile { method \ + { itemsize 4096 } { nitems 1048576 } { growby 5000 } { growtms 2 } args } { + source ./include.tcl + + set args [convert_args $method $args] + set omethod [convert_method $method] + + puts "Bigfile: $method ($args) $nitems * $itemsize bytes of data" + + env_cleanup $testdir + + # Create the database. Use 64K pages; we want a good fill + # factor, and page size doesn't matter much. Use a 50MB + # cache; that should be manageable, and will help + # performance. + set dbname TESTDIR/big.db + + set db [eval {berkdb_open -create} {-pagesize 65536 \ + -cachesize {0 50000000 0}} $omethod $args $dbname] + error_check_good db_open [is_valid_db $db] TRUE + + puts -nonewline "\tBigfile.a: Creating database...0%..." + flush stdout + + set data [string repeat z $itemsize] + + set more_than_ten_already 0 + for { set i 0 } { $i < $nitems } { incr i } { + set key key[format %08u $i] + + error_check_good db_put($i) [$db put $key $data] 0 + + if { $i % 5000 == 0 } { + set pct [expr 100 * $i / $nitems] + puts -nonewline "\b\b\b\b\b" + if { $pct >= 10 } { + if { $more_than_ten_already } { + puts -nonewline "\b" + } else { + set more_than_ten_already 1 + } + } + + puts -nonewline "$pct%..." + flush stdout + } + } + puts "\b\b\b\b\b\b100%..." + error_check_good db_close [$db close] 0 + + puts "\tBigfile.b: Verifying database..." + error_check_good verify \ + [verify_dir $testdir "\t\t" 0 0 1 50000000] 0 + + puts "\tBigfile.c: Grow database $growtms times by $growby items" + + for { set j 0 } { $j < $growtms } { incr j } { + set db [eval {berkdb_open} {-cachesize {0 50000000 0}} $dbname] + error_check_good db_open [is_valid_db $db] TRUE + puts -nonewline "\t\tBigfile.c.1: Adding $growby items..." + flush stdout + for { set i 0 } { $i < $growby } { incr i } { + set key key[format %08u $i].$j + error_check_good db_put($j.$i) [$db put $key $data] 0 + } + error_check_good db_close [$db close] 0 + puts "done." + + puts "\t\tBigfile.c.2: Verifying database..." + error_check_good verify($j) \ + [verify_dir $testdir "\t\t\t" 0 0 1 50000000] 0 + } +} diff --git a/db/test/ddoyscript.tcl b/db/test/ddoyscript.tcl new file mode 100644 index 000000000..4c2ad35d9 --- /dev/null +++ b/db/test/ddoyscript.tcl @@ -0,0 +1,165 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1996, 1997, 1998, 1999, 2000 +# Sleepycat Software. All rights reserved. +# +# Id: ddoyscript.tcl,v 11.1 2001/03/29 15:51:05 margo Exp +# +# Deadlock detector script tester. +# Usage: ddoyscript dir lockerid numprocs +# dir: DBHOME directory +# lockerid: Lock id for this locker +# numprocs: Total number of processes running + +source ./include.tcl +source $test_path/test.tcl +source $test_path/testutils.tcl + +set usage "ddoyscript dir lockerid numprocs oldoryoung" + +# Verify usage +if { $argc != 4 } { + puts stderr "FAIL:[timestamp] Usage: $usage" + exit +} + +# Initialize arguments +set dir [lindex $argv 0] +set lockerid [ lindex $argv 1 ] +set numprocs [ lindex $argv 2 ] +set old_or_young [lindex $argv 3] + +set myenv [berkdb env -lock -home $dir -create -mode 0644] +error_check_bad lock_open $myenv NULL +error_check_good lock_open [is_substr $myenv "env"] 1 + +# There are two cases here -- oldest/youngest or a ring locker. + +if { $lockerid == 0 || $lockerid == [expr $numprocs - 1] } { + set waitobj NULL + set ret 0 + + if { $lockerid == 0 } { + set objid 2 + if { $old_or_young == "o" } { + set waitobj [expr $numprocs - 1] + } + } else { + if { $old_or_young == "y" } { + set waitobj 0 + } + set objid 4 + } + + # Acquire own read lock + if {[catch {$myenv lock_get read $lockerid $lockerid} selflock] != 0} { + puts $errorInfo + } else { + error_check_good selfget:$objid [is_substr $selflock $myenv] 1 + } + + # Acquire read lock + if {[catch {$myenv lock_get read $lockerid $objid} lock1] != 0} { + puts $errorInfo + } else { + error_check_good lockget:$objid [is_substr $lock1 $myenv] 1 + } + + tclsleep 10 + + if { $waitobj == "NULL" } { + # Sleep for a good long while + tclsleep 90 + } else { + # Acquire write lock + if {[catch {$myenv lock_get write $lockerid $waitobj} lock2] + != 0} { + puts $errorInfo + set ret ERROR + } else { + error_check_good lockget:$waitobj \ + [is_substr $lock2 $myenv] 1 + + # Now release it + if {[catch {$lock2 put} err] != 0} { + puts $errorInfo + set ret ERROR + } else { + error_check_good lockput:oy:$objid $err 0 + } + } + + } + + # Release self lock + if {[catch {$selflock put} err] != 0} { + puts $errorInfo + if { $ret == 0 } { + set ret ERROR + } + } else { + error_check_good selfput:oy:$lockerid $err 0 + if { $ret == 0 } { + set ret 1 + } + } + + # Release first lock + if {[catch {$lock1 put} err] != 0} { + puts $errorInfo + if { $ret == 0 } { + set ret ERROR + } + } else { + error_check_good lockput:oy:$objid $err 0 + if { $ret == 0 } { + set ret 1 + } + } + +} else { + # Make sure that we succeed if we're locking the same object as + # oldest or youngest. + if { [expr $lockerid % 2] == 0 } { + set mode read + } else { + set mode write + } + # Obtain first lock (should always succeed). + if {[catch {$myenv lock_get $mode $lockerid $lockerid} lock1] != 0} { + puts $errorInfo + } else { + error_check_good lockget:$lockerid [is_substr $lock1 $myenv] 1 + } + + tclsleep 30 + + set nextobj [expr $lockerid + 1] + if { $nextobj == [expr $numprocs - 1] } { + set nextobj 1 + } + + set ret 1 + if {[catch {$myenv lock_get write $lockerid $nextobj} lock2] != 0} { + if {[string match "*DEADLOCK*" $lock2] == 1} { + set ret DEADLOCK + } else { + set ret ERROR + } + } else { + error_check_good lockget:$nextobj [is_substr $lock2 $myenv] 1 + } + + # Now release the first lock + error_check_good lockput:$lock1 [$lock1 put] 0 + + if {$ret == 1} { + error_check_bad lockget:$nextobj $lock2 NULL + error_check_good lockget:$nextobj [is_substr $lock2 $myenv] 1 + error_check_good lockput:$lock2 [$lock2 put] 0 + } +} + +puts $ret +error_check_good envclose [$myenv close] 0 +exit diff --git a/db/test/dead004.tcl b/db/test/dead004.tcl new file mode 100644 index 000000000..f6b00e8c0 --- /dev/null +++ b/db/test/dead004.tcl @@ -0,0 +1,105 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1996, 1997, 1998, 1999, 2000 +# Sleepycat Software. All rights reserved. +# +# Id: dead004.tcl,v 11.1 2001/03/29 15:51:05 margo Exp +# +# Deadlock Test 4. +# This test is designed to make sure that we handle youngest and oldest +# deadlock detection even when the youngest and oldest transactions in the +# system are not involved in the deadlock (that is, we want to abort the +# youngest/oldest which is actually involved in the deadlock, not simply +# the youngest/oldest in the system). +# Since this is used for transaction systems, the locker ID is what we +# use to identify age (smaller number is older). +# +# The set up is that we have a total of 6 processes. The oldest (locker 0) +# and the youngest (locker 5) simply acquire a lock, hold it for a long time +# and then release it. The rest form a ring, obtaining lock N and requesting +# a lock on (N+1) mod 4. The deadlock detector ought to pick locker 1 or 4 +# to abort and not 0 or 5. + +proc dead004 { } { + source ./include.tcl + + + foreach a { o y } { + puts "Dead004: Deadlock detector test -a $a" + env_cleanup $testdir + + # Create the environment. + puts "\tDead004.a: creating environment" + set env [berkdb env -create -mode 0644 -lock -home $testdir] + error_check_good lock_env:open [is_valid_env $env] TRUE + error_check_good lock_env:close [$env close] 0 + + + set dpid [exec $util_path/db_deadlock -v -t 5 -a $a \ + -h $testdir >& $testdir/dd.out &] + + set pidlist "" + set procs 6 + + foreach n $procs { + + sentinel_init + + # Fire off the tests + puts "\tDead004: $n procs" + for { set i 0 } { $i < $n } { incr i } { + puts "$tclsh_path $test_path/wrap.tcl \ + $testdir/dead004.log.$i \ + ddoyscript.tcl $testdir $i $n $a" + set p [exec $tclsh_path \ + $test_path/wrap.tcl \ + ddoyscript.tcl $testdir/dead004.log.$i \ + $testdir $i $n $a &] + lappend pidlist $p + } + watch_procs 5 + + } + # Now check output + set dead 0 + set clean 0 + set other 0 + for { set i 0 } { $i < $n } { incr i } { + set did [open $testdir/dead004.log.$i] + while { [gets $did val] != -1 } { + switch $val { + DEADLOCK { incr dead } + 1 { incr clean } + default { incr other } + } + } + close $did + } + puts "dead check..." + dead_check oldyoung $n $dead $clean $other + + # Now verify that neither the oldest nor the + # youngest were the deadlock. + set did [open $testdir/dead004.log.0] + error_check_bad file:young [gets $did val] -1 + error_check_good read:young $val 1 + close $did + + set did [open $testdir/dead004.log.[expr $procs - 1]] + error_check_bad file:old [gets $did val] -1 + error_check_good read:old $val 1 + close $did + + exec $KILL $dpid + + # Windows needs files closed before deleting files, + # so pause a little + tclsleep 2 + fileremove -f $testdir/dd.out + + # Remove log files + for { set i 0 } { $i < $n } { incr i } { + fileremove -f $testdir/dead004.log.$i + } + } +} diff --git a/db/test/dead005.tcl b/db/test/dead005.tcl new file mode 100644 index 000000000..a5cab91d8 --- /dev/null +++ b/db/test/dead005.tcl @@ -0,0 +1,91 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1996-2001 +# Sleepycat Software. All rights reserved. +# +# Id: dead005.tcl,v 11.1 2001/03/30 21:39:04 margo Exp +# +# Deadlock Test 5. +# Test out the minlocks, maxlocks, and minwrites options +# to the deadlock detector. +proc dead005 { { procs "4 6 10" } {tests "maxlocks minwrites minlocks" } } { + source ./include.tcl + + puts "Dead005: minlocks, maxlocks, and minwrites deadlock detection tests" + foreach t $tests { + puts "Dead005.$t: creating environment" + env_cleanup $testdir + + # Create the environment. + set env [berkdb env -create -mode 0644 -lock -home $testdir] + error_check_good lock_env:open [is_valid_env $env] TRUE + + error_check_good lock_env:close [$env close] 0 + + case $t { + minlocks { set to n } + maxlocks { set to m } + minwrites { set to w } + } + set dpid [exec $util_path/db_deadlock -vw -h $testdir -a $to\ + >& $testdir/dd.out &] + + set pidlist "" + foreach n $procs { + + sentinel_init + + # Fire off the tests + puts "\tDead005: $t test with $n procs" + for { set i 0 } { $i < $n } { incr i } { + puts "$tclsh_path $test_path/wrap.tcl \ + $testdir/dead005.log.$i \ + ddscript.tcl $testdir $t $i $i $n" + set p [exec $tclsh_path \ + $test_path/wrap.tcl \ + ddscript.tcl $testdir/dead005.log.$i \ + $testdir $t $i $i $n &] + lappend pidlist $p + } + watch_procs 5 + + # Now check output + set dead 0 + set clean 0 + set other 0 + for { set i 0 } { $i < $n } { incr i } { + set did [open $testdir/dead005.log.$i] + while { [gets $did val] != -1 } { + switch $val { + DEADLOCK { incr dead } + 1 { incr clean } + default { incr other } + } + } + close $did + } + puts "dead check..." + dead_check $t $n $dead $clean $other + # Now verify that the correct participant + # got deadlocked. + switch $t { + minlocks {set f 0} + minwrites {set f 1} + maxlocks {set f [expr $n - 1]} + } + set did [open $testdir/dead005.log.$f] + error_check_bad file:$t [gets $did val] -1 + error_check_good read($f):$t $val DEADLOCK + close $did + } + exec $KILL $dpid + # Windows needs files closed before deleting them, so pause + tclsleep 2 + fileremove -f $testdir/dd.out + # Remove log files + for { set i 0 } { $i < $n } { incr i } { + fileremove -f $testdir/dead001.log.$i + } + } + +} diff --git a/db/test/recd015.tcl b/db/test/recd015.tcl new file mode 100644 index 000000000..91d496a2c --- /dev/null +++ b/db/test/recd015.tcl @@ -0,0 +1,93 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1999-2001 +# Sleepycat Software. All rights reserved. +# +# Id: recd015.tcl,v 1.3 2001/05/05 14:08:14 margo Exp +# +# Recovery Test 15. +# This is a recovery test for testing lots of prepared txns. +# This test is to force the use of txn_recover to call with the +# DB_FIRST flag and then DB_NEXT. +proc recd015 { method args } { + source ./include.tcl + + set args [convert_args $method $args] + set omethod [convert_method $method] + + puts "Recd015: $method ($args) large number of prepared txns test" + + # Create the database and environment. + env_cleanup $testdir + + set numtxns 250 + set testfile recd015.db + set txnmax [expr $numtxns + 5] + + puts "\tRecd015.a: Executing child proc to prepare $numtxns txns" + set env_cmd "berkdb env -create -txn_max $txnmax -txn -home $testdir" + set env [eval $env_cmd] + error_check_good dbenv [is_valid_env $env] TRUE + set db [eval {berkdb_open -create} $omethod -env $env $args $testfile] + error_check_good dbopen [is_valid_db $db] TRUE + error_check_good dbclose [$db close] 0 + error_check_good envclose [$env close] 0 + + set gidf $testdir/gidfile + + fileremove -f $gidf + set proclist {} + set p [exec $tclsh_path $test_path/wrap.tcl recd15script.tcl \ + $testdir/recdout $env_cmd $testfile $gidf $numtxns &] + + lappend proclist $p + watch_procs 5 + set f1 [open $testdir/recdout r] + set r [read $f1] + puts $r + close $f1 + fileremove -f $testdir/recdout + + + berkdb debug_check + puts -nonewline "\tRecd15.d: Running recovery ... " + flush stdout + berkdb debug_check + set env_cmd \ + "berkdb env -recover -create -txn_max $txnmax -txn -home $testdir" + set env [eval $env_cmd] + error_check_good dbenv-recover [is_valid_env $env] TRUE + puts "complete" + + set txnlist [$env txn_recover] + set gfd [open $gidf r] + set i 0 + while { [gets $gfd gid] != -1 } { + set gids($i) $gid + incr i + } + close $gfd + # + # Make sure we have as many as we expect + error_check_good num_gids $i $numtxns + + # + # Note that this assumes the txn_recover gives them back to + # us in the order we prepared them. If that is an invalid + # assumption we can spit out the GIDs below to a new file, + # sort them both to temp files and compare that way. + set i 0 + puts "\tRecd15.e: Comparing GIDs " + foreach tpair $txnlist { + set txn [lindex $tpair 0] + set gid [lindex $tpair 1] + error_check_good gidcompare $gid $gids($i) + error_check_good txnabort [$txn abort] 0 + incr i + } + set stat [catch {exec $util_path/db_printlog -h $testdir \ + > $testdir/LOG } ret] + error_check_good db_printlog $stat 0 + fileremove $testdir/LOG +} + diff --git a/db/test/recd15script.tcl b/db/test/recd15script.tcl new file mode 100644 index 000000000..4d28d9452 --- /dev/null +++ b/db/test/recd15script.tcl @@ -0,0 +1,66 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1996-2001 +# Sleepycat Software. All rights reserved. +# +# Id: recd15script.tcl,v 1.2 2001/05/02 15:32:33 sue Exp +# +# Recd15 - lots of txns - txn prepare script +# Usage: recd15script envcmd dbcmd gidf numtxns +# envcmd: command to open env +# dbfile: name of database file +# gidf: name of global id file +# numtxns: number of txns to start + +source ./include.tcl +source $test_path/test.tcl +source $test_path/testutils.tcl + +set usage "recd15script envcmd dbfile gidfile numtxns" + +# Verify usage +if { $argc != 4 } { + puts stderr "FAIL:[timestamp] Usage: $usage" + exit +} + +# Initialize arguments +set envcmd [ lindex $argv 0 ] +set dbfile [ lindex $argv 1 ] +set gidfile [ lindex $argv 2 ] +set numtxns [ lindex $argv 3 ] + +set txnmax [expr $numtxns + 5] +set dbenv [eval $envcmd] +error_check_good envopen [is_valid_env $dbenv] TRUE + +set db [berkdb_open -env $dbenv $dbfile] +error_check_good dbopen [is_valid_db $db] TRUE + +puts "\tRecd015script.b: Begin $numtxns txns" +for {set i 0} {$i < $numtxns} {incr i} { + set t [$dbenv txn] + error_check_good txnbegin($i) [is_valid_txn $t $dbenv] TRUE + set txns($i) $t +# set dbc [$db cursor -txn $t] +# error_check_good cursor($i) [is_valid_cursor $dbc $db] TRUE +# set curs($i) $dbc +} + +puts "\tRecd015script.c: Prepare $numtxns txns" +set gfd [open $gidfile w+] +for {set i 0} {$i < $numtxns} {incr i} { +# set dbc $curs($i) +# error_check_good dbc_close [$dbc close] 0 + set t $txns($i) + set gid [make_gid recd015script:$t] + puts $gfd $gid + error_check_good txn_prepare:$t [$t prepare $gid] 0 +} +close $gfd + +# +# We do not close the db or env, but exit with the txns outstanding. +# +puts "\tRecd015script completed successfully" +flush stdout diff --git a/db/test/recdscript.tcl b/db/test/recdscript.tcl new file mode 100644 index 000000000..8747ce003 --- /dev/null +++ b/db/test/recdscript.tcl @@ -0,0 +1,37 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1996-2001 +# Sleepycat Software. All rights reserved. +# +# Id: recdscript.tcl,v 11.3 2001/05/02 20:28:55 krinsky Exp +# +# Recovery txn prepare script +# Usage: recdscript op dir envcmd dbfile cmd +# op: primary txn operation +# dir: test directory +# envcmd: command to open env +# dbfile: name of database file +# gidf: name of global id file +# cmd: db command to execute + +source ./include.tcl +source $test_path/test.tcl + +set usage "recdscript op dir envcmd dbfile gidfile cmd" + +# Verify usage +if { $argc != 6 } { + puts stderr "FAIL:[timestamp] Usage: $usage" + exit +} + +# Initialize arguments +set op [ lindex $argv 0 ] +set dir [ lindex $argv 1 ] +set envcmd [ lindex $argv 2 ] +set dbfile [ lindex $argv 3 ] +set gidfile [ lindex $argv 4 ] +set cmd [ lindex $argv 5 ] + +op_recover_prep $op $dir $envcmd $dbfile $gidfile $cmd +flush stdout diff --git a/db/test/sdb011.tcl b/db/test/sdb011.tcl new file mode 100644 index 000000000..a28019c4f --- /dev/null +++ b/db/test/sdb011.tcl @@ -0,0 +1,98 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1999-2001 +# Sleepycat Software. All rights reserved. +# +# Id: sdb011.tcl,v 11.2 2001/05/02 17:22:56 krinsky Exp +# +# SubDB Test 11 {access method} +# Create 1 db with many large subdbs. +# Test subdatabases with overflow pages. +proc subdb011 { method {ndups 13} {nsubdbs 10} args} { + global names + source ./include.tcl + + set args [convert_args $method $args] + set omethod [convert_method $method] + + if { [is_queue $method] == 1 || [is_fixed_length $method] == 1 } { + puts "Subdb011: skipping for method $method" + return + } + + puts "Subdb011: $method ($args) overflow dups with \ + filename=key filecontents=data pairs" + + # Create the database and open the dictionary + set testfile $testdir/subdb011.db + + cleanup $testdir NULL + + # Here is the loop where we put and get each key/data pair + set file_list [glob ../*/*.c ./libdb.so.3.0 ./libtool ./libtool.exe] + puts "\tSubdb011.a: Create each subdb and dups" + set slist {} + set i 0 + foreach f $file_list { + set i [expr $i % $nsubdbs] + if { [is_record_based $method] == 1 } { + set key [expr $count + 1] + set names([expr $count + 1]) $f + } else { + set key $f + } + # Should really catch errors + set fid [open $f r] + fconfigure $fid -translation binary + set filecont [read $fid] + set subdb subdb$i + lappend slist $subdb + close $fid + set db [eval {berkdb_open -create -mode 0644} \ + $args {$omethod $testfile $subdb}] + error_check_good dbopen [is_valid_db $db] TRUE + for {set dup 0} {$dup < $ndups} {incr dup} { + set data $dup:$filecont + set ret [eval {$db put} {$key \ + [chop_data $method $data]}] + error_check_good put $ret 0 + } + error_check_good dbclose [$db close] 0 + incr i + } + + puts "\tSubdb011.b: Verify overflow pages" + foreach subdb $slist { + set db [eval {berkdb_open -create -mode 0644} \ + $args {$omethod $testfile $subdb}] + error_check_good dbopen [is_valid_db $db] TRUE + set stat [$db stat] + + # What everyone else calls overflow pages, hash calls "big + # pages", so we need to special-case hash here. (Hash + # overflow pages are additional pages after the first in a + # bucket.) + if { [string compare [$db get_type] hash] == 0 } { + error_check_bad overflow \ + [is_substr $stat "{{Number of big pages} 0}"] 1 + } else { + error_check_bad overflow \ + [is_substr $stat "{{Overflow pages} 0}"] 1 + } + error_check_good dbclose [$db close] 0 + } + + puts "\tSubdb011.c: Delete subdatabases" + for {set i $nsubdbs} {$i > 0} {set i [expr $i - 1]} { + # + # Randomly delete a subdatabase + set sindex [berkdb random_int 0 [expr $i - 1]] + set subdb [lindex $slist $sindex] + # + # Delete the one we did from the list + set slist [lreplace $slist $sindex $sindex] + error_check_good file_exists_before [file exists $testfile] 1 + error_check_good db_remove [berkdb dbremove $testfile $subdb] 0 + } +} + diff --git a/db/test/si001.tcl b/db/test/si001.tcl new file mode 100644 index 000000000..f0fcafdcd --- /dev/null +++ b/db/test/si001.tcl @@ -0,0 +1,115 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 2001 +# Sleepycat Software. All rights reserved. +# +# Id: si001.tcl,v 1.1 2001/04/07 03:18:29 krinsky Exp +# +# Sindex001: Basic secondary index put/delete test. + +proc sindex001 { methods {nentries 200} {tnum 1} args } { + source ./include.tcl + global dict nsecondaries + + # Primary method/args. + set pmethod [lindex $methods 0] + set pargs [convert_args $pmethod $args] + set pomethod [convert_method $pmethod] + + # Method/args for all the secondaries. If only one method + # was specified, assume the same method and a standard N + # secondaries. + set methods [lrange $methods 1 end] + if { [llength $methods] == 0 } { + for { set i 0 } { $i < $nsecondaries } { incr i } { + lappend methods $pmethod + } + } + + set argses [convert_argses $methods $args] + set omethods [convert_methods $methods] + + puts "Sindex00$tnum ($pmethod/$methods) $nentries equal key/data pairs" + env_cleanup $testdir + + set pname "primary00$tnum.db" + set snamebase "secondary00$tnum" + + # Open an environment + # XXX if one is not supplied! + set env [berkdb env -create -home $testdir] + error_check_good env_open [is_valid_env $env] TRUE + + # Open the primary. + set pdb [eval {berkdb_open -create -env} $env $pomethod $pargs $pname] + error_check_good primary_open [is_valid_db $pdb] TRUE + + # Open and associate the secondaries + set sdbs {} + for { set i 0 } { $i < [llength $omethods] } { incr i } { + set sdb [eval {berkdb_open -create -env} $env \ + [lindex $omethods $i] [lindex $argses $i] $snamebase.$i.db] + error_check_good second_open($i) [is_valid_db $sdb] TRUE + + error_check_good db_associate($i) \ + [$pdb associate [callback_n $i] $sdb] 0 + lappend sdbs $sdb + } + + puts "\tSindex00$tnum.a: Put loop" + set did [open $dict] + for { set n 0 } { [gets $did str] != -1 && $n < $nentries } { incr n } { + if { [is_record_based $pmethod] == 1 } { + set key [expr $n + 1] + set datum $str + } else { + set key $str + gets $did datum + } + set keys($n) $key + set data($n) [pad_data $pmethod $datum] + + set ret [eval {$pdb put} {$key [chop_data $pmethod $datum]}] + error_check_good put($n) $ret 0 + } + close $did + check_secondaries $pdb $sdbs $nentries keys data "Sindex00$tnum.a" + + puts "\tSindex00$tnum.b: Put/overwrite loop" + for { set n 0 } { $n < $nentries } { incr n } { + set newd $data($n).$keys($n) + set ret [eval {$pdb put} {$keys($n) [chop_data $pmethod $newd]}] + error_check_good put_overwrite($n) $ret 0 + set data($n) [pad_data $pmethod $newd] + } + check_secondaries $pdb $sdbs $nentries keys data "Sindex00$tnum.b" + + # Delete the second half of the entries through the primary. + # We do the second half so we can just pass keys(0..n/2) + # to check_secondaries. + set half [expr $nentries / 2] + puts "\tSindex00$tnum.c: Primary delete loop: deleting $half entries" + for { set n $half } { $n < $nentries } { incr n } { + set ret [$pdb del $keys($n)] + error_check_good pdel($n) $ret 0 + } + check_secondaries $pdb $sdbs $half keys data "Sindex00$tnum.c" + + # Delete half of what's left, through the first secondary. + set quar [expr $half / 2] + puts "\tSindex00$tnum.d: Secondary delete loop: deleting $quar entries" + set sdb [lindex $sdbs 0] + set callback [callback_n 0] + for { set n $quar } { $n < $half } { incr n } { + set skey [$callback $keys($n) [pad_data $pmethod $data($n)]] + set ret [$sdb del $skey] + error_check_good sdel($n) $ret 0 + } + check_secondaries $pdb $sdbs $quar keys data "Sindex00$tnum.d" + + foreach sdb $sdbs { + error_check_good secondary_close [$sdb close] 0 + } + error_check_good primary_close [$pdb close] 0 + error_check_good env_close [$env close] 0 +} diff --git a/db/test/si002.tcl b/db/test/si002.tcl new file mode 100644 index 000000000..7a1d8b05a --- /dev/null +++ b/db/test/si002.tcl @@ -0,0 +1,167 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 2001 +# Sleepycat Software. All rights reserved. +# +# Id: si002.tcl,v 1.1 2001/04/07 03:18:30 krinsky Exp +# +# Sindex002: Basic cursor-based secondary index put/delete test. + +proc sindex002 { methods {nentries 200} {tnum 2} args } { + source ./include.tcl + global dict nsecondaries + + # Primary method/args. + set pmethod [lindex $methods 0] + set pargs [convert_args $pmethod $args] + set pomethod [convert_method $pmethod] + + # Method/args for all the secondaries. If only one method + # was specified, assume the same method and a standard N + # secondaries. + set methods [lrange $methods 1 end] + if { [llength $methods] == 0 } { + for { set i 0 } { $i < $nsecondaries } { incr i } { + lappend methods $pmethod + } + } + + set argses [convert_argses $methods $args] + set omethods [convert_methods $methods] + + puts "Sindex00$tnum ($pmethod/$methods) $nentries equal key/data pairs" + env_cleanup $testdir + + set pname "primary00$tnum.db" + set snamebase "secondary00$tnum" + + # Open an environment + # XXX if one is not supplied! + set env [berkdb env -create -home $testdir] + error_check_good env_open [is_valid_env $env] TRUE + + # Open the primary. + set pdb [eval {berkdb_open -create -env} $env $pomethod $pargs $pname] + error_check_good primary_open [is_valid_db $pdb] TRUE + + # Open and associate the secondaries + set sdbs {} + for { set i 0 } { $i < [llength $omethods] } { incr i } { + set sdb [eval {berkdb_open -create -env} $env \ + [lindex $omethods $i] [lindex $argses $i] $snamebase.$i.db] + error_check_good second_open($i) [is_valid_db $sdb] TRUE + + error_check_good db_associate($i) \ + [$pdb associate [callback_n $i] $sdb] 0 + lappend sdbs $sdb + } + + puts "\tSindex00$tnum.a: Cursor put (-keyfirst/-keylast) loop" + set did [open $dict] + set pdbc [$pdb cursor] + error_check_good pdb_cursor [is_valid_cursor $pdbc $pdb] TRUE + for { set n 0 } { [gets $did str] != -1 && $n < $nentries } { incr n } { + if { [is_record_based $pmethod] == 1 } { + set key [expr $n + 1] + set datum $str + } else { + set key $str + gets $did datum + } + set ns($key) $n + set keys($n) $key + set data($n) [pad_data $pmethod $datum] + + if { $n % 2 == 0 } { + set pflag " -keyfirst " + } else { + set pflag " -keylast " + } + + set ret [eval {$pdbc put} $pflag \ + {$key [chop_data $pmethod $datum]}] + error_check_good put($n) $ret 0 + } + close $did + error_check_good pdbc_close [$pdbc close] 0 + check_secondaries $pdb $sdbs $nentries keys data "Sindex00$tnum.a" + + puts "\tSindex00$tnum.b: Cursor put overwrite (-current) loop" + set pdbc [$pdb cursor] + error_check_good pdb_cursor [is_valid_cursor $pdbc $pdb] TRUE + for { set dbt [$pdbc get -first] } { [llength $dbt] > 0 } \ + { set dbt [$pdbc get -next] } { + set key [lindex [lindex $dbt 0] 0] + set datum [lindex [lindex $dbt 0] 1] + set newd $datum.$key + set ret [eval {$pdbc put -current} [chop_data $pmethod $newd]] + error_check_good put_overwrite($key) $ret 0 + set data($ns($key)) [pad_data $pmethod $newd] + } + error_check_good pdbc_close [$pdbc close] 0 + check_secondaries $pdb $sdbs $nentries keys data "Sindex00$tnum.b" + + puts "\tSindex00$tnum.c: Secondary c_pget/primary put overwrite loop" + # We walk the first secondary, then put-overwrite each primary key/data + # pair we find. This doubles as a DBC->c_pget test. + set sdb [lindex $sdbs 0] + set sdbc [$sdb cursor] + error_check_good sdb_cursor [is_valid_cursor $sdbc $sdb] TRUE + for { set dbt [$sdbc pget -first] } { [llength $dbt] > 0 } \ + { set dbt [$sdbc pget -next] } { + set pkey [lindex [lindex $dbt 0] 1] + set pdatum [lindex [lindex $dbt 0] 2] + + # Extended entries will be showing up underneath us, in + # unpredictable places. Keep track of which pkeys + # we've extended, and don't extend them repeatedly. + if { [info exists pkeys_done($pkey)] == 1 } { + continue + } else { + set pkeys_done($pkey) 1 + } + + set newd $pdatum.[string range $pdatum 0 2] + set ret [eval {$pdb put} $pkey [chop_data $pmethod $newd]] + error_check_good pdb_put($pkey) $ret 0 + set data($ns($pkey)) [pad_data $pmethod $newd] + } + error_check_good sdbc_close [$sdbc close] 0 + check_secondaries $pdb $sdbs $nentries keys data "Sindex00$tnum.c" + + # Delete the second half of the entries through the primary. + # We do the second half so we can just pass keys(0..n/2) + # to check_secondaries. + set half [expr $nentries / 2] + puts "\tSindex00$tnum.d:\ + Primary cursor delete loop: deleting $half entries" + set pdbc [$pdb cursor] + error_check_good pdb_cursor [is_valid_cursor $pdbc $pdb] TRUE + set dbt [$pdbc get -first] + for { set i 0 } { [llength $dbt] > 0 && $i < $half } { incr i } { + error_check_good pdbc_del [$pdbc del] 0 + set dbt [$pdbc get -next] + } + error_check_good pdbc_close [$pdbc close] 0 + cursor_check_secondaries $pdb $sdbs $half "Sindex00$tnum.d" + + # Delete half of what's left, through the first secondary. + set quar [expr $half / 2] + puts "\tSindex00$tnum.e:\ + Secondary cursor delete loop: deleting $quar entries" + set sdb [lindex $sdbs 0] + set sdbc [$sdb cursor] + set dbt [$sdbc get -first] + for { set i 0 } { [llength $dbt] > 0 && $i < $quar } { incr i } { + error_check_good sdbc_del [$sdbc del] 0 + set dbt [$sdbc get -next] + } + error_check_good sdbc_close [$sdbc close] 0 + cursor_check_secondaries $pdb $sdbs $quar "Sindex00$tnum.e" + + foreach sdb $sdbs { + error_check_good secondary_close [$sdb close] 0 + } + error_check_good primary_close [$pdb close] 0 + error_check_good env_close [$env close] 0 +} diff --git a/db/test/si003.tcl b/db/test/si003.tcl new file mode 100644 index 000000000..bf873db64 --- /dev/null +++ b/db/test/si003.tcl @@ -0,0 +1,142 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 2001 +# Sleepycat Software. All rights reserved. +# +# Id: si003.tcl,v 1.1 2001/04/07 03:18:30 krinsky Exp +# +# Sindex003: Basic secondary index put/delete test with secondaries +# created mid-test. + +proc sindex003 { methods {nentries 200} {tnum 3} args } { + source ./include.tcl + global dict nsecondaries + + # Primary method/args. + set pmethod [lindex $methods 0] + set pargs [convert_args $pmethod $args] + set pomethod [convert_method $pmethod] + + # Method/args for all the secondaries. If only one method + # was specified, assume the same method and a standard N + # secondaries. + set methods [lrange $methods 1 end] + if { [llength $methods] == 0 } { + for { set i 0 } { $i < $nsecondaries } { incr i } { + lappend methods $pmethod + } + } + + set argses [convert_argses $methods $args] + set omethods [convert_methods $methods] + + puts "Sindex00$tnum ($pmethod/$methods) $nentries equal key/data pairs" + env_cleanup $testdir + + set pname "primary00$tnum.db" + set snamebase "secondary00$tnum" + + # Open an environment + # XXX if one is not supplied! + set env [eval {berkdb env -create -home $testdir}] + error_check_good env_open [is_valid_env $env] TRUE + + # Open the primary. + set pdb [eval {berkdb_open -create -env} $env $pomethod $pargs $pname] + error_check_good primary_open [is_valid_db $pdb] TRUE + + puts -nonewline "\tSindex00$tnum.a: Put loop ... " + set did [open $dict] + for { set n 0 } { [gets $did str] != -1 && $n < $nentries } { incr n } { + if { [is_record_based $pmethod] == 1 } { + set key [expr $n + 1] + set datum $str + } else { + set key $str + gets $did datum + } + set keys($n) $key + set data($n) [pad_data $pmethod $datum] + + set ret [eval {$pdb put} {$key [chop_data $pmethod $datum]}] + error_check_good put($n) $ret 0 + } + close $did + + # Open and associate the secondaries + set sdbs {} + puts "opening secondaries." + for { set i 0 } { $i < [llength $omethods] } { incr i } { + set sdb [eval {berkdb_open -create -env} $env \ + [lindex $omethods $i] [lindex $argses $i] $snamebase.$i.db] + error_check_good second_open($i) [is_valid_db $sdb] TRUE + + error_check_good db_associate($i) \ + [$pdb associate -create [callback_n $i] $sdb] 0 + lappend sdbs $sdb + } + check_secondaries $pdb $sdbs $nentries keys data "Sindex00$tnum.a" + + puts -nonewline "\tSindex00$tnum.b: Put/overwrite loop ... " + for { set n 0 } { $n < $nentries } { incr n } { + set newd $data($n).$keys($n) + set ret [eval {$pdb put} {$keys($n) [chop_data $pmethod $newd]}] + error_check_good put_overwrite($n) $ret 0 + set data($n) [pad_data $pmethod $newd] + } + + # Close the secondaries again. + puts "closing secondaries." + for { set sdb [lindex $sdbs end] } { [string length $sdb] > 0 } \ + { set sdb [lindex $sdbs end] } { + error_check_good second_close($sdb) [$sdb close] 0 + set sdbs [lrange $sdbs 0 end-1] + check_secondaries \ + $pdb $sdbs $nentries keys data "Sindex00$tnum.b" + } + + + # Delete the second half of the entries through the primary. + # We do the second half so we can just pass keys(0..n/2) + # to check_secondaries. + set half [expr $nentries / 2] + puts -nonewline \ + "\tSindex00$tnum.c: Primary delete loop: deleting $half entries ..." + for { set n $half } { $n < $nentries } { incr n } { + set ret [$pdb del $keys($n)] + error_check_good pdel($n) $ret 0 + } + + # Open and associate the secondaries + set sdbs {} + puts "\n\t\topening secondaries." + for { set i 0 } { $i < [llength $omethods] } { incr i } { + set sdb [eval {berkdb_open -create -env} $env \ + [lindex $omethods $i] [lindex $argses $i] \ + $snamebase.r2.$i.db] + error_check_good second_open($i) [is_valid_db $sdb] TRUE + + error_check_good db_associate($i) \ + [$pdb associate -create [callback_n $i] $sdb] 0 + lappend sdbs $sdb + } + check_secondaries $pdb $sdbs $half keys data "Sindex00$tnum.c" + + # Delete half of what's left, through the first secondary. + set quar [expr $half / 2] + puts "\tSindex00$tnum.d: Secondary delete loop: deleting $quar entries" + set sdb [lindex $sdbs 0] + set callback [callback_n 0] + for { set n $quar } { $n < $half } { incr n } { + set skey [$callback $keys($n) [pad_data $pmethod $data($n)]] + set ret [$sdb del $skey] + error_check_good sdel($n) $ret 0 + } + check_secondaries $pdb $sdbs $quar keys data "Sindex00$tnum.d" + + foreach sdb $sdbs { + error_check_good secondary_close [$sdb close] 0 + } + error_check_good primary_close [$pdb close] 0 + error_check_good env_close [$env close] 0 +} diff --git a/db/test/si004.tcl b/db/test/si004.tcl new file mode 100644 index 000000000..5bea69fd1 --- /dev/null +++ b/db/test/si004.tcl @@ -0,0 +1,193 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 2001 +# Sleepycat Software. All rights reserved. +# +# Id: si004.tcl,v 1.1 2001/04/07 03:18:30 krinsky Exp +# +# Sindex004: Basic cursor-based secondary index put/delete test, with +# secondaries created mid-test. + +proc sindex004 { methods {nentries 200} {tnum 4} args } { + source ./include.tcl + global dict nsecondaries + + # Primary method/args. + set pmethod [lindex $methods 0] + set pargs [convert_args $pmethod $args] + set pomethod [convert_method $pmethod] + + # Method/args for all the secondaries. If only one method + # was specified, assume the same method and a standard N + # secondaries. + set methods [lrange $methods 1 end] + if { [llength $methods] == 0 } { + for { set i 0 } { $i < $nsecondaries } { incr i } { + lappend methods $pmethod + } + } + + set argses [convert_argses $methods $args] + set omethods [convert_methods $methods] + + puts "Sindex00$tnum ($pmethod/$methods) $nentries equal key/data pairs" + env_cleanup $testdir + + set pname "primary00$tnum.db" + set snamebase "secondary00$tnum" + + # Open an environment + # XXX if one is not supplied! + set env [berkdb env -create -home $testdir] + error_check_good env_open [is_valid_env $env] TRUE + + # Open the primary. + set pdb [eval {berkdb_open -create -env} $env $pomethod $pargs $pname] + error_check_good primary_open [is_valid_db $pdb] TRUE + + puts -nonewline \ + "\tSindex00$tnum.a: Cursor put (-keyfirst/-keylast) loop ... " + set did [open $dict] + set pdbc [$pdb cursor] + error_check_good pdb_cursor [is_valid_cursor $pdbc $pdb] TRUE + for { set n 0 } { [gets $did str] != -1 && $n < $nentries } { incr n } { + if { [is_record_based $pmethod] == 1 } { + set key [expr $n + 1] + set datum $str + } else { + set key $str + gets $did datum + } + set ns($key) $n + set keys($n) $key + set data($n) [pad_data $pmethod $datum] + + if { $n % 2 == 0 } { + set pflag " -keyfirst " + } else { + set pflag " -keylast " + } + + set ret [eval {$pdbc put} $pflag \ + {$key [chop_data $pmethod $datum]}] + error_check_good put($n) $ret 0 + } + close $did + error_check_good pdbc_close [$pdbc close] 0 + + # Open and associate the secondaries + set sdbs {} + puts "\n\t\topening secondaries." + for { set i 0 } { $i < [llength $omethods] } { incr i } { + set sdb [eval {berkdb_open -create -env} $env \ + [lindex $omethods $i] [lindex $argses $i] $snamebase.$i.db] + error_check_good second_open($i) [is_valid_db $sdb] TRUE + + error_check_good db_associate($i) \ + [$pdb associate -create [callback_n $i] $sdb] 0 + lappend sdbs $sdb + } + check_secondaries $pdb $sdbs $nentries keys data "Sindex00$tnum.a" + + puts "\tSindex00$tnum.b: Cursor put overwrite (-current) loop" + set pdbc [$pdb cursor] + error_check_good pdb_cursor [is_valid_cursor $pdbc $pdb] TRUE + for { set dbt [$pdbc get -first] } { [llength $dbt] > 0 } \ + { set dbt [$pdbc get -next] } { + set key [lindex [lindex $dbt 0] 0] + set datum [lindex [lindex $dbt 0] 1] + set newd $datum.$key + set ret [eval {$pdbc put -current} [chop_data $pmethod $newd]] + error_check_good put_overwrite($key) $ret 0 + set data($ns($key)) [pad_data $pmethod $newd] + } + error_check_good pdbc_close [$pdbc close] 0 + check_secondaries $pdb $sdbs $nentries keys data "Sindex00$tnum.b" + + puts -nonewline "\tSindex00$tnum.c:\ + Secondary c_pget/primary put overwrite loop ... " + # We walk the first secondary, then put-overwrite each primary key/data + # pair we find. This doubles as a DBC->c_pget test. + set sdb [lindex $sdbs 0] + set sdbc [$sdb cursor] + error_check_good sdb_cursor [is_valid_cursor $sdbc $sdb] TRUE + for { set dbt [$sdbc pget -first] } { [llength $dbt] > 0 } \ + { set dbt [$sdbc pget -next] } { + set pkey [lindex [lindex $dbt 0] 1] + set pdatum [lindex [lindex $dbt 0] 2] + + # Extended entries will be showing up underneath us, in + # unpredictable places. Keep track of which pkeys + # we've extended, and don't extend them repeatedly. + if { [info exists pkeys_done($pkey)] == 1 } { + continue + } else { + set pkeys_done($pkey) 1 + } + + set newd $pdatum.[string range $pdatum 0 2] + set ret [eval {$pdb put} $pkey [chop_data $pmethod $newd]] + error_check_good pdb_put($pkey) $ret 0 + set data($ns($pkey)) [pad_data $pmethod $newd] + } + error_check_good sdbc_close [$sdbc close] 0 + + # Close the secondaries again. + puts "\n\t\tclosing secondaries." + for { set sdb [lindex $sdbs end] } { [string length $sdb] > 0 } \ + { set sdb [lindex $sdbs end] } { + error_check_good second_close($sdb) [$sdb close] 0 + set sdbs [lrange $sdbs 0 end-1] + check_secondaries \ + $pdb $sdbs $nentries keys data "Sindex00$tnum.b" + } + + # Delete the second half of the entries through the primary. + # We do the second half so we can just pass keys(0..n/2) + # to check_secondaries. + set half [expr $nentries / 2] + puts -nonewline "\tSindex00$tnum.d:\ + Primary cursor delete loop: deleting $half entries ... " + set pdbc [$pdb cursor] + error_check_good pdb_cursor [is_valid_cursor $pdbc $pdb] TRUE + set dbt [$pdbc get -first] + for { set i 0 } { [llength $dbt] > 0 && $i < $half } { incr i } { + error_check_good pdbc_del [$pdbc del] 0 + set dbt [$pdbc get -next] + } + error_check_good pdbc_close [$pdbc close] 0 + + set sdbs {} + puts "\n\t\topening secondaries." + for { set i 0 } { $i < [llength $omethods] } { incr i } { + set sdb [eval {berkdb_open -create -env} $env \ + [lindex $omethods $i] [lindex $argses $i] \ + $snamebase.r2.$i.db] + error_check_good second_open($i) [is_valid_db $sdb] TRUE + + error_check_good db_associate($i) \ + [$pdb associate -create [callback_n $i] $sdb] 0 + lappend sdbs $sdb + } + cursor_check_secondaries $pdb $sdbs $half "Sindex00$tnum.d" + + # Delete half of what's left, through the first secondary. + set quar [expr $half / 2] + puts "\tSindex00$tnum.e:\ + Secondary cursor delete loop: deleting $quar entries" + set sdb [lindex $sdbs 0] + set sdbc [$sdb cursor] + set dbt [$sdbc get -first] + for { set i 0 } { [llength $dbt] > 0 && $i < $quar } { incr i } { + error_check_good sdbc_del [$sdbc del] 0 + set dbt [$sdbc get -next] + } + error_check_good sdbc_close [$sdbc close] 0 + cursor_check_secondaries $pdb $sdbs $quar "Sindex00$tnum.e" + + foreach sdb $sdbs { + error_check_good secondary_close [$sdb close] 0 + } + error_check_good primary_close [$pdb close] 0 + error_check_good env_close [$env close] 0 +} diff --git a/db/test/sindex.tcl b/db/test/sindex.tcl new file mode 100644 index 000000000..bb0effd4c --- /dev/null +++ b/db/test/sindex.tcl @@ -0,0 +1,247 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 2001 +# Sleepycat Software. All rights reserved. +# +# Id: sindex.tcl,v 1.1 2001/04/07 03:18:30 krinsky Exp +# +# Secondary index test driver and maintenance routines. +# +# Breaking from the usual convention, we put the driver function +# for the secondary index tests here, in its own file. The reason +# for this is that it's something which compartmentalizes nicely, +# has little in common with other driver functions, and +# is likely to be run on its own from time to time. +# +# The secondary index tests themselves live in si0*.tcl. + +# Standard number of secondary indices to create if a single-element +# list of methods is passed into the secondary index tests. +global nsecondaries +set nsecondaries 2 + +# Run the secondary index tests. +proc sindex { {verbose 1} args } { + global verbose_check_secondaries + set verbose_check_secondaries $verbose + + # Run basic tests with a single secondary index and a small number + # of keys, then again with a larger number of keys. (Note that + # we can't go above 5000, since we use two items from our + # 10K-word list for each key/data pair.) + foreach n { 200 5000 } { + foreach pm { btree hash recno frecno queue queueext } { + # XXX: ddhash currently does not work due to #3726 + foreach sm { dbtree dhash ddbtree btree hash } { + sindex001 [list $pm $sm $sm] $n + sindex002 [list $pm $sm $sm] $n + # Skip tests 3 & 4 for large lists; + # they're not that interesting. + if { $n < 1000 } { + sindex003 [list $pm $sm $sm] $n + sindex004 [list $pm $sm $sm] $n + } + } + } + } + + # Run test with 50 secondaries. + foreach pm { btree hash } { + set methlist [list $pm] + for { set i 0 } { $i < 50 } { incr i } { + # XXX this should incorporate hash after #3726 + if { $i % 2 == 0 } { + lappend methlist "dbtree" + } else { + lappend methlist "ddbtree" + } + } + sindex001 $methlist 500 + sindex002 $methlist 500 + sindex003 $methlist 500 + sindex004 $methlist 500 + } +} + + +# The callback function we use for each given secondary in most tests +# is a simple function of its place in the list of secondaries (0-based) +# and the access method (since recnos may need different callbacks). +# +# !!! +# Note that callbacks 0-3 return unique secondary keys if the input data +# are unique; callbacks 4 and higher may not, so don't use them with +# the normal wordlist and secondaries that don't support dups. +# The callbacks that incorporate a key don't work properly with recno +# access methods, at least not in the current test framework (the +# error_check_good lines test for e.g. 1foo, when the database has +# e.g. 0x010x000x000x00foo). +proc callback_n { n } { + switch $n { + 0 { return _s_reversedata } + 1 { return _s_noop } + 2 { return _s_concatkeydata } + 3 { return _s_concatdatakey } + 4 { return _s_reverseconcat } + 5 { return _s_truncdata } + 6 { return _s_alwayscocacola } + } + return _s_noop +} + +proc _s_reversedata { a b } { return [reverse $b] } +proc _s_truncdata { a b } { return [string range $b 1 end] } +proc _s_concatkeydata { a b } { return $a$b } +proc _s_concatdatakey { a b } { return $b$a } +proc _s_reverseconcat { a b } { return [reverse $a$b] } +proc _s_alwayscocacola { a b } { return "Coca-Cola" } +proc _s_noop { a b } { return $b } + +# Should the check_secondary routines print lots of output? +set verbose_check_secondaries 0 + +# Given a primary database handle, a list of secondary handles, a +# number of entries, and arrays of keys and data, verify that all +# databases have what they ought to. +proc check_secondaries { pdb sdbs nentries keyarr dataarr {pref "Check"} } { + upvar $keyarr keys + upvar $dataarr data + global verbose_check_secondaries + + # Make sure each key/data pair is in the primary. + if { $verbose_check_secondaries } { + puts "\t\t$pref.1: Each key/data pair is in the primary" + } + for { set i 0 } { $i < $nentries } { incr i } { + error_check_good pdb_get($i) [$pdb get $keys($i)] \ + [list [list $keys($i) $data($i)]] + } + + for { set j 0 } { $j < [llength $sdbs] } { incr j } { + # Make sure each key/data pair is in this secondary. + if { $verbose_check_secondaries } { + puts "\t\t$pref.2:\ + Each skey/key/data tuple is in secondary #$j" + } + for { set i 0 } { $i < $nentries } { incr i } { + set sdb [lindex $sdbs $j] + set skey [[callback_n $j] $keys($i) $data($i)] + error_check_good sdb($j)_pget($i) \ + [$sdb pget -get_both $skey $keys($i)] \ + [list [list $skey $keys($i) $data($i)]] + } + + # Make sure this secondary contains only $nentries + # items. + if { $verbose_check_secondaries } { + puts "\t\t$pref.3: Secondary #$j has $nentries items" + } + set dbc [$sdb cursor] + error_check_good dbc($i) \ + [is_valid_cursor $dbc $sdb] TRUE + for { set k 0 } { [llength [$dbc get -next]] > 0 } \ + { incr k } { } + error_check_good numitems($i) $k $nentries + error_check_good dbc($i)_close [$dbc close] 0 + } + + if { $verbose_check_secondaries } { + puts "\t\t$pref.4: Primary has $nentries items" + } + set dbc [$pdb cursor] + error_check_good pdbc [is_valid_cursor $dbc $pdb] TRUE + for { set k 0 } { [llength [$dbc get -next]] > 0 } { incr k } { } + error_check_good numitems $k $nentries + error_check_good pdbc_close [$dbc close] 0 +} + +# Given a primary database handle and a list of secondary handles, walk +# through the primary and make sure all the secondaries are correct, +# then walk through the secondaries and make sure the primary is correct. +# +# This is slightly less rigorous than the normal check_secondaries--we +# use it whenever we don't have up-to-date "keys" and "data" arrays. +proc cursor_check_secondaries { pdb sdbs nentries { pref "Check" } } { + global verbose_check_secondaries + + # Make sure each key/data pair in the primary is in each secondary. + set pdbc [$pdb cursor] + error_check_good ccs_pdbc [is_valid_cursor $pdbc $pdb] TRUE + set i 0 + if { $verbose_check_secondaries } { + puts "\t\t$pref.1:\ + Key/data in primary => key/data in secondaries" + } + + for { set dbt [$pdbc get -first] } { [llength $dbt] > 0 } \ + { set dbt [$pdbc get -next] } { + incr i + set pkey [lindex [lindex $dbt 0] 0] + set pdata [lindex [lindex $dbt 0] 1] + for { set j 0 } { $j < [llength $sdbs] } { incr j } { + set sdb [lindex $sdbs $j] + set sdbt [$sdb pget -get_both \ + [[callback_n $j] $pkey $pdata] $pkey] + error_check_good pkey($pkey,$j) \ + [lindex [lindex $sdbt 0] 1] $pkey + error_check_good pdata($pdata,$j) \ + [lindex [lindex $sdbt 0] 2] $pdata + } + } + error_check_good ccs_pdbc_close [$pdbc close] 0 + error_check_good primary_has_nentries $i $nentries + + for { set j 0 } { $j < [llength $sdbs] } { incr j } { + if { $verbose_check_secondaries } { + puts "\t\t$pref.2:\ + Key/data in secondary #$j => key/data in primary" + } + set sdb [lindex $sdbs $j] + set sdbc [$sdb cursor] + error_check_good ccs_sdbc($j) [is_valid_cursor $sdbc $sdb] TRUE + set i 0 + for { set dbt [$sdbc pget -first] } { [llength $dbt] > 0 } \ + { set dbt [$sdbc pget -next] } { + incr i + set pkey [lindex [lindex $dbt 0] 1] + set pdata [lindex [lindex $dbt 0] 2] + error_check_good pdb_get($pkey/$pdata,$j) \ + [$pdb get -get_both $pkey $pdata] \ + [list [list $pkey $pdata]] + } + error_check_good secondary($j)_has_nentries $i $nentries + + # To exercise pget -last/pget -prev, we do it backwards too. + set i 0 + for { set dbt [$sdbc pget -last] } { [llength $dbt] > 0 } \ + { set dbt [$sdbc pget -prev] } { + incr i + set pkey [lindex [lindex $dbt 0] 1] + set pdata [lindex [lindex $dbt 0] 2] + error_check_good pdb_get_bkwds($pkey/$pdata,$j) \ + [$pdb get -get_both $pkey $pdata] \ + [list [list $pkey $pdata]] + } + error_check_good secondary($j)_has_nentries_bkwds $i $nentries + + error_check_good ccs_sdbc_close($j) [$sdbc close] 0 + } +} + +# The secondary index tests take a list of the access methods that +# each array ought to use. Convert at one blow into a list of converted +# argses and omethods for each method in the list. +proc convert_argses { methods largs } { + set ret {} + foreach m $methods { + lappend ret [convert_args $m $largs] + } + return $ret +} +proc convert_methods { methods } { + set ret {} + foreach m $methods { + lappend ret [convert_method $m] + } + return $ret +} diff --git a/db/test/test092.tcl b/db/test/test092.tcl new file mode 100644 index 000000000..5c35aaa2b --- /dev/null +++ b/db/test/test092.tcl @@ -0,0 +1,238 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1996-2001 +# Sleepycat Software. All rights reserved. +# +# Id: test092.tcl,v 11.2 2001/05/04 19:14:05 sue Exp +# +# DB Test 92 {access method} +# +# Test DB_DIRTY_READ +# We set up a database with nentries in it. We then open the database +# read-only twice. One with dirty read and one without. We open the +# database for writing and update some entries in it. Then read those +# new entries via db->get (clean and dirty), and via cursors (clean and +# dirty). +proc test092 { method {nentries 1000} args } { + source ./include.tcl + # + # If we are using an env, then skip this test. It needs its own. + set eindex [lsearch -exact $args "-env"] + if { $eindex != -1 } { + incr eindex + set env [lindex $args $eindex] + puts "Test092 skipping for env $env" + return + } + set args [convert_args $method $args] + set omethod [convert_method $method] + + puts "Test092: Dirty Read Test $method $nentries" + + # Create the database and open the dictionary + set testfile test092.db + set t1 $testdir/t1 + set t2 $testdir/t2 + set t3 $testdir/t3 + + env_cleanup $testdir + + set lmax [expr $nentries * 2] + set env [berkdb env -create -lock_max_locks $lmax -txn -home $testdir] + error_check_good dbenv [is_valid_env $env] TRUE + + set db [eval {berkdb_open -env $env -create \ + -mode 0644 $omethod} {$testfile}] + error_check_good dbopen [is_valid_db $db] TRUE + + # Here is the loop where we put each key/data pair. + # Key is entry, data is entry also. + puts "\tTest092.a: put loop" + set count 0 + set did [open $dict] + while { [gets $did str] != -1 && $count < $nentries } { + if { [is_record_based $method] == 1 } { + global kvals + + set key [expr $count + 1] + set kvals($key) [pad_data $method $str] + } else { + set key $str + } + set ret [eval {$db put} {$key [chop_data $method $str]}] + error_check_good put:$db $ret 0 + incr count + } + close $did + error_check_good close:$db [$db close] 0 + + puts "\tTest092.b: Opening all the handles" + # + # Open all of our handles. + # We need: + # 1. Our main txn (t). + # 2. A txn that can read dirty data (tdr). + # 3. A db handle for writing via txn (dbtxn). + # 4. A db handle for clean data (dbcl). + # 5. A db handle for dirty data (dbdr). + # 6. A cursor handle for dirty txn data (clean db handle using + # the dirty txn handle on the cursor call) (dbccl1). + # 7. A cursor handle for dirty data (dirty on get call) (dbcdr0). + # 8. A cursor handle for dirty data (dirty on cursor call) (dbcdr1). + set t [$env txn] + error_check_good txnbegin [is_valid_txn $t $env] TRUE + + set tdr [$env txn -dirty] + error_check_good txnbegin:dr [is_valid_txn $tdr $env] TRUE + + set dbtxn [eval {berkdb_open -env $env -dirty \ + -mode 0644 $omethod} {$testfile}] + error_check_good dbopen:dbtxn [is_valid_db $dbtxn] TRUE + + set dbcl [eval {berkdb_open -env $env \ + -rdonly -mode 0644 $omethod} {$testfile}] + error_check_good dbopen:dbcl [is_valid_db $dbcl] TRUE + + set dbdr [eval {berkdb_open -env $env -dirty \ + -rdonly -mode 0644 $omethod} {$testfile}] + error_check_good dbopen:dbdr [is_valid_db $dbdr] TRUE + + set dbccl [$dbcl cursor -txn $tdr] + error_check_good dbcurs:dbcl [is_valid_cursor $dbccl $dbcl] TRUE + + set dbcdr0 [$dbdr cursor] + error_check_good dbcurs:dbdr0 [is_valid_cursor $dbcdr0 $dbdr] TRUE + + set dbcdr1 [$dbdr cursor -dirty] + error_check_good dbcurs:dbdr1 [is_valid_cursor $dbcdr1 $dbdr] TRUE + + # + # Now that we have all of our handles, change all the data in there + # to be the key and data the same, but data is capitalized. + puts "\tTest092.c: put/get data within a txn" + set gflags "" + if { [is_record_based $method] == 1 } { + set checkfunc test092dr_recno.check + append gflags " -recno" + } else { + set checkfunc test092dr.check + } + set count 0 + set did [open $dict] + while { [gets $did str] != -1 && $count < $nentries } { + if { [is_record_based $method] == 1 } { + set key [expr $count + 1] + } else { + set key $str + } + set ustr [string toupper $str] + set clret [list [list $key [pad_data $method $str]]] + set drret [list [list $key [pad_data $method $ustr]]] + # + # Put the data in the txn. + # + set ret [eval {$dbtxn put} -txn $t \ + {$key [chop_data $method $ustr]}] + error_check_good put:$dbtxn $ret 0 + + # + # Now get the data using the different db handles and + # make sure it is dirty or clean data. + # + # Using the dirty txn should show us dirty data + set ret [eval {$dbcl get -txn $tdr} $gflags {$key}] + error_check_good dbdr2:get $ret $drret + + set ret [eval {$dbdr get -dirty} $gflags {$key}] + error_check_good dbdr1:get $ret $drret + + set ret [eval {$dbdr get -txn $tdr} $gflags {$key}] + error_check_good dbdr2:get $ret $drret + + incr count + } + close $did + + puts "\tTest092.d: Check dirty data using dirty txn and clean db/cursor" + dump_file_walk $dbccl $t1 $checkfunc "-first" "-next" + + puts "\tTest092.e: Check dirty data using -dirty cget flag" + dump_file_walk $dbcdr0 $t2 $checkfunc "-first" "-next" "-dirty" + + puts "\tTest092.f: Check dirty data using -dirty cursor" + dump_file_walk $dbcdr1 $t3 $checkfunc "-first" "-next" + + # + # We must close these before aborting the real txn + # because they all hold read locks on the pages. + # + error_check_good dbccl:close [$dbccl close] 0 + error_check_good dbcdr0:close [$dbcdr0 close] 0 + error_check_good dbcdr1:close [$dbcdr1 close] 0 + + # + # Now abort the modifying transaction and rerun the data checks. + # + puts "\tTest092.g: Aborting the write-txn" + error_check_good txnabort [$t abort] 0 + + set dbccl [$dbcl cursor -txn $tdr] + error_check_good dbcurs:dbcl [is_valid_cursor $dbccl $dbcl] TRUE + + set dbcdr0 [$dbdr cursor] + error_check_good dbcurs:dbdr0 [is_valid_cursor $dbcdr0 $dbdr] TRUE + + set dbcdr1 [$dbdr cursor -dirty] + error_check_good dbcurs:dbdr1 [is_valid_cursor $dbcdr1 $dbdr] TRUE + + if { [is_record_based $method] == 1 } { + set checkfunc test092cl_recno.check + } else { + set checkfunc test092cl.check + } + puts "\tTest092.h: Check clean data using -dirty cget flag" + dump_file_walk $dbccl $t1 $checkfunc "-first" "-next" + + puts "\tTest092.i: Check clean data using -dirty cget flag" + dump_file_walk $dbcdr0 $t2 $checkfunc "-first" "-next" "-dirty" + + puts "\tTest092.j: Check clean data using -dirty cursor" + dump_file_walk $dbcdr1 $t3 $checkfunc "-first" "-next" + + # Clean up our handles + error_check_good dbccl:close [$dbccl close] 0 + error_check_good tdrcommit [$tdr commit] 0 + error_check_good dbcdr0:close [$dbcdr0 close] 0 + error_check_good dbcdr1:close [$dbcdr1 close] 0 + error_check_good dbclose [$dbcl close] 0 + error_check_good dbclose [$dbdr close] 0 + error_check_good dbclose [$dbtxn close] 0 + error_check_good envclose [$env close] 0 +} + +# Check functions for test092; keys and data are identical +# Clean checks mean keys and data are identical. +# Dirty checks mean data are uppercase versions of keys. +proc test092cl.check { key data } { + error_check_good "key/data mismatch" $key $data +} + +proc test092cl_recno.check { key data } { + global kvals + + error_check_good key"$key"_exists [info exists kvals($key)] 1 + error_check_good "key/data mismatch, key $key" $data $kvals($key) +} + +proc test092dr.check { key data } { + error_check_good "key/data mismatch" $key [string tolower $data] +} + +proc test092dr_recno.check { key data } { + global kvals + + error_check_good key"$key"_exists [info exists kvals($key)] 1 + error_check_good "key/data mismatch, key $key" $data \ + [string touppper $kvals($key)] +} + diff --git a/db/test/test093.tcl b/db/test/test093.tcl new file mode 100644 index 000000000..2168f9977 --- /dev/null +++ b/db/test/test093.tcl @@ -0,0 +1,306 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1996-2001 +# Sleepycat Software. All rights reserved. +# +# Id: test093.tcl,v 11.6 2001/05/07 13:42:41 krinsky Exp +# +# DB Test 93 {access method} +# Test bt comparison proc. +# Use the first 10,000 entries from the dictionary. +# Insert each with self as key and data; retrieve each. +# After all are entered, retrieve all; compare output to original. +# Close file, reopen, do retrieve and re-verify. +proc test093 { method {nentries 10000} {tnum "93"} args} { + source ./include.tcl + global btvals + global btvalsck + + set dbargs [convert_args $method $args] + set omethod [convert_method $method] + + puts "Test0$tnum: $method ($args) $nentries using btcompare" + + if { [is_btree $method] != 1 } { + puts "Skipping for method $method." + return + } + + test093_run $omethod $dbargs $nentries $tnum test093_cmp1 test093_sort1 + test093_runbig $omethod $dbargs $nentries $tnum \ + test093_cmp1 test093_sort1 + test093_run $omethod $dbargs $nentries $tnum test093_cmp2 test093_sort2 + # + # Don't bother running the second, really slow, comparison + # function on test093_runbig (file contents). + + # Clean up so verification doesn't fail. (There's currently + # no way to specify a comparison function to berkdb dbverify.) + # If we are using an env, then testfile should just be the db name. + # Otherwise it is the test directory and the name. + set eindex [lsearch -exact $dbargs "-env"] + if { $eindex == -1 } { + set env NULL + } else { + set env [lindex $dbargs $eindex] + } + cleanup $testdir $env +} + +proc test093_run { method dbargs nentries tnum cmpfunc sortfunc } { + source ./include.tcl + global btvals + global btvalsck + + + # Create the database and open the dictionary + set eindex [lsearch -exact $dbargs "-env"] + # + # If we are using an env, then testfile should just be the db name. + # Otherwise it is the test directory and the name. + if { $eindex == -1 } { + set testfile $testdir/test0$tnum.db + set env NULL + } else { + set testfile test0$tnum.db + incr eindex + set env [lindex $dbargs $eindex] + } + cleanup $testdir $env + + set db [eval {berkdb_open -btcompare $cmpfunc \ + -create -truncate -mode 0644} $method $dbargs $testfile] + error_check_good dbopen [is_valid_db $db] TRUE + set did [open $dict] + + set t1 $testdir/t1 + set t2 $testdir/t2 + set t3 $testdir/t3 + set pflags "" + set gflags "" + set txn "" + set btvals {} + set btvalsck {} + set checkfunc test093_check + puts "\tTest0$tnum.a: put/get loop" + # Here is the loop where we put and get each key/data pair + set count 0 + while { [gets $did str] != -1 && $count < $nentries } { + set key $str + set str [reverse $str] + set ret [eval \ + {$db put} $txn $pflags {$key [chop_data $method $str]}] + error_check_good put $ret 0 + + lappend btvals $key + + set ret [eval {$db get} $gflags {$key}] + error_check_good \ + get $ret [list [list $key [pad_data $method $str]]] + + incr count + } + close $did + # Now we will get each key from the DB and compare the results + # to the original. + puts "\tTest0$tnum.b: dump file" + dump_file $db $txn $t1 $checkfunc + error_check_good db_close [$db close] 0 + + # Now compare the keys to see if they match the dictionary (or ints) + set q q + filehead $nentries $dict $t2 + filesort $t2 $t3 + file rename -force $t3 $t2 + filesort $t1 $t3 + + error_check_good Test0$tnum:diff($t3,$t2) \ + [filecmp $t3 $t2] 0 + + puts "\tTest0$tnum.c: dump file in order" + # Now, reopen the file and run the last test again. + # We open it here, ourselves, because all uses of the db + # need to have the correct comparison func set. Then + # call dump_file_direction directly. + set btvalsck {} + set db [eval {berkdb_open -btcompare $cmpfunc -rdonly} \ + $dbargs $method $testfile] + error_check_good dbopen [is_valid_db $db] TRUE + dump_file_direction $db $txn $t1 $checkfunc "-first" "-next" + error_check_good db_close [$db close] 0 + + # + # We need to sort btvals according to the comparison function. + # Once that is done, btvalsck and btvals should be the same. + puts "\tTest0$tnum.d: check file order" + + $sortfunc + + error_check_good btvals:len [llength $btvals] [llength $btvalsck] + for {set i 0} {$i < $nentries} {incr i} { + error_check_good vals:$i [lindex $btvals $i] \ + [lindex $btvalsck $i] + } +} + +proc test093_runbig { method dbargs nentries tnum cmpfunc sortfunc } { + source ./include.tcl + global btvals + global btvalsck + + + # Create the database and open the dictionary + set eindex [lsearch -exact $dbargs "-env"] + # + # If we are using an env, then testfile should just be the db name. + # Otherwise it is the test directory and the name. + if { $eindex == -1 } { + set testfile $testdir/test0$tnum.db + set env NULL + } else { + set testfile test0$tnum.db + incr eindex + set env [lindex $dbargs $eindex] + } + cleanup $testdir $env + + set db [eval {berkdb_open -btcompare $cmpfunc \ + -create -truncate -mode 0644} $method $dbargs $testfile] + error_check_good dbopen [is_valid_db $db] TRUE + + set t1 $testdir/t1 + set t2 $testdir/t2 + set t3 $testdir/t3 + set t4 $testdir/t4 + set pflags "" + set gflags "" + set txn "" + set btvals {} + set btvalsck {} + set checkfunc test093_checkbig + puts "\tTest0$tnum.e: big key put/get loop key=filecontents data=filename" + # Here is the loop where we put and get each key/data pair + set file_list [glob ../*/*.c ./libdb.so.3.0 ./libtool ./libtool.exe] + + set count 0 + foreach f $file_list { + set fid [open $f r] + fconfigure $fid -translation binary + set key [read $fid] + close $fid + + set ret [eval {$db put} $txn $pflags {$key \ + [chop_data $method $f]}] + error_check_good put_file $ret 0 + + lappend btvals $key + + # Should really catch errors + set fid [open $t4 w] + fconfigure $fid -translation binary + if [catch {eval {$db get} $gflags {$key}} data] { + puts -nonewline $fid $data + } else { + # Data looks like {{key data}} + set key [lindex [lindex $data 0] 0] + puts -nonewline $fid $key + } + close $fid + error_check_good \ + Test093:diff($f,$t4) [filecmp $f $t4] 0 + + incr count + } + + # Now we will get each key from the DB and compare the results + # to the original. + puts "\tTest0$tnum.f: big dump file" + dump_file $db $txn $t1 $checkfunc + error_check_good db_close [$db close] 0 + + puts "\tTest0$tnum.g: dump file in order" + # Now, reopen the file and run the last test again. + # We open it here, ourselves, because all uses of the db + # need to have the correct comparison func set. Then + # call dump_file_direction directly. + + set btvalsck {} + set db [eval {berkdb_open -btcompare $cmpfunc -rdonly} \ + $dbargs $method $testfile] + error_check_good dbopen [is_valid_db $db] TRUE + dump_file_direction $db $txn $t1 $checkfunc "-first" "-next" + error_check_good db_close [$db close] 0 + + # + # We need to sort btvals according to the comparison function. + # Once that is done, btvalsck and btvals should be the same. + puts "\tTest0$tnum.h: check file order" + + $sortfunc + error_check_good btvals:len [llength $btvals] [llength $btvalsck] + + set end [llength $btvals] + for {set i 0} {$i < $end} {incr i} { + error_check_good vals:$i [lindex $btvals $i] \ + [lindex $btvalsck $i] + } +} + +# Simple bt comparison. +proc test093_cmp1 { a b } { + return [string compare $b $a] +} + +# Simple bt sorting. +proc test093_sort1 {} { + global btvals + # + # This one is easy, just sort in reverse. + # + set btvals [lsort -decreasing $btvals] +} + +proc test093_cmp2 { a b } { + set arev [reverse $a] + set brev [reverse $b] + return [string compare $arev $brev] +} + +proc test093_sort2 {} { + global btvals + + # We have to reverse them, then sorts them. + # Then reverse them back to real words. + set rbtvals {} + foreach i $btvals { + lappend rbtvals [reverse $i] + } + set rbtvals [lsort -increasing $rbtvals] + set newbtvals {} + foreach i $rbtvals { + lappend newbtvals [reverse $i] + } + set btvals $newbtvals +} + +# Check function for test093; keys and data are identical +proc test093_check { key data } { + global btvalsck + + error_check_good "key/data mismatch" $data [reverse $key] + lappend btvalsck $key +} + +# Check function for test093 big keys; +proc test093_checkbig { key data } { + source ./include.tcl + global btvalsck + + set fid [open $data r] + fconfigure $fid -translation binary + set cont [read $fid] + close $fid + error_check_good "key/data mismatch" $key $cont + lappend btvalsck $key +} + diff --git a/db/test/test094.tcl b/db/test/test094.tcl new file mode 100644 index 000000000..a673bb182 --- /dev/null +++ b/db/test/test094.tcl @@ -0,0 +1,184 @@ +# See the file LICENSE for redistribution information. +# +# Copyright (c) 1996-2001 +# Sleepycat Software. All rights reserved. +# +# Id: test094.tcl,v 11.2 2001/05/07 13:42:41 krinsky Exp +# +# DB Test 94 {access method} +# Test bt comparison proc. +# Use the first 10,000 entries from the dictionary. +# Insert each with self as key and data; retrieve each. +# After all are entered, retrieve all; compare output to original. +# Close file, reopen, do retrieve and re-verify. +proc test094 { method {nentries 10000} {ndups 10} {tnum "94"} args} { + source ./include.tcl + + set dbargs [convert_args $method $args] + set omethod [convert_method $method] + + puts "Test0$tnum: $method ($args) $ndups dups using dupcompare" + + if { [is_btree $method] != 1 && [is_hash $method] != 1 } { + puts "Skipping for method $method." + return + } + + # Create the database and open the dictionary + set eindex [lsearch -exact $dbargs "-env"] + # + # If we are using an env, then testfile should just be the db name. + # Otherwise it is the test directory and the name. + if { $eindex == -1 } { + set testfile $testdir/test0$tnum.db + set env NULL + } else { + set testfile test0$tnum.db + incr eindex + set env [lindex $dbargs $eindex] + } + cleanup $testdir $env + + set db [eval {berkdb_open -dupcompare test094_cmp -dup -dupsort \ + -create -truncate -mode 0644} $omethod $dbargs $testfile] + error_check_good dbopen [is_valid_db $db] TRUE + + set did [open $dict] + set t1 $testdir/t1 + set pflags "" + set gflags "" + set txn "" + puts "\tTest0$tnum.a: $nentries put/get duplicates loop" + # Here is the loop where we put and get each key/data pair + set count 0 + set dlist {} + for {set i 0} {$i < $ndups} {incr i} { + set dlist [linsert $dlist 0 $i] + } + while { [gets $did str] != -1 && $count < $nentries } { + set key $str + for {set i 0} {$i < $ndups} {incr i} { + set data $i:$str + set ret [eval {$db put} \ + $txn $pflags {$key [chop_data $omethod $data]}] + error_check_good put $ret 0 + } + + set ret [eval {$db get} $gflags {$key}] + error_check_good get [llength $ret] $ndups + incr count + } + close $did + # Now we will get each key from the DB and compare the results + # to the original. + puts "\tTest0$tnum.b: traverse checking duplicates before close" + dup_check $db $txn $t1 $dlist + error_check_good db_close [$db close] 0 + + # + # Test dupcompare with data items big enough to force offpage dups. + # + puts "\tTest0$tnum.c: big key put/get dup loop key=filename data=filecontents" + set db [eval {berkdb_open -dupcompare test094_cmp -dup -dupsort \ + -create -truncate -mode 0644} $omethod $dbargs $testfile] + error_check_good dbopen [is_valid_db $db] TRUE + + # Here is the loop where we put and get each key/data pair + set file_list [glob ../*/*.c ./libdb.so.3.0 ./libtool ./libtool.exe] + + set count 0 + foreach f $file_list { + set fid [open $f r] + fconfigure $fid -translation binary + set cont [read $fid] + close $fid + + set key $f + for {set i 0} {$i < $ndups} {incr i} { + set data $i:$cont + set ret [eval {$db put} \ + $txn $pflags {$key [chop_data $omethod $data]}] + error_check_good put $ret 0 + } + + set ret [eval {$db get} $gflags {$key}] + error_check_good get [llength $ret] $ndups + incr count + } + + puts "\tTest0$tnum.d: traverse checking duplicates before close" + dup_file_check $db $txn $t1 $dlist + error_check_good db_close [$db close] 0 + + # Clean up the test directory, since there's currently + # no way to specify a dup_compare function to berkdb dbverify + # and without one it will fail. + cleanup $testdir $env +} + +# Simple dup comparison. +proc test094_cmp { a b } { + return [string compare $b $a] +} + +# Check if each key appears exactly [llength dlist] times in the file with +# the duplicate tags matching those that appear in dlist. +proc test094_dup_big { db txn tmpfile dlist {extra 0}} { + source ./include.tcl + + set outf [open $tmpfile w] + # Now we will get each key from the DB and dump to outfile + set c [eval {$db cursor} $txn] + set lastkey "" + set done 0 + while { $done != 1} { + foreach did $dlist { + set rec [$c get "-next"] + if { [string length $rec] == 0 } { + set done 1 + break + } + set key [lindex [lindex $rec 0] 0] + set fulldata [lindex [lindex $rec 0] 1] + set id [id_of $fulldata] + set d [data_of $fulldata] + if { [string compare $key $lastkey] != 0 && \ + $id != [lindex $dlist 0] } { + set e [lindex $dlist 0] + error "FAIL: \tKey \ + $key, expected dup id $e, got $id" + } + error_check_good dupget.data $d $key + error_check_good dupget.id $id $did + set lastkey $key + } + # + # Some tests add an extra dup (like overflow entries) + # Check id if it exists. + if { $extra != 0} { + set okey $key + set rec [$c get "-next"] + if { [string length $rec] != 0 } { + set key [lindex [lindex $rec 0] 0] + # + # If this key has no extras, go back for + # next iteration. + if { [string compare $key $lastkey] != 0 } { + set key $okey + set rec [$c get "-prev"] + } else { + set fulldata [lindex [lindex $rec 0] 1] + set id [id_of $fulldata] + set d [data_of $fulldata] + error_check_bad dupget.data1 $d $key + error_check_good dupget.id1 $id $extra + } + } + } + if { $done != 1 } { + puts $outf $key + } + } + close $outf + error_check_good curs_close [$c close] 0 +} diff --git a/db/txn/txn_recover.c b/db/txn/txn_recover.c new file mode 100644 index 000000000..8f02264c0 --- /dev/null +++ b/db/txn/txn_recover.c @@ -0,0 +1,283 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2001 + * Sleepycat Software. All rights reserved. + */ + +#include "db_config.h" + +#ifndef lint +static const char revid[] = "Id: txn_recover.c,v 1.12 2001/04/27 15:48:16 bostic Exp "; +#endif /* not lint */ + +#ifndef NO_SYSTEM_INCLUDES +#include <sys/types.h> + +#include <string.h> +#endif + +#ifdef HAVE_RPC +#include "db_server.h" +#endif + +#include "db_int.h" +#include "txn.h" +#include "db_page.h" +#include "log.h" +#include "db_auto.h" +#include "crdel_auto.h" +#include "db_ext.h" + +#ifdef HAVE_RPC +#include "rpc_client_ext.h" +#endif + +/* + * __txn_continue + * Fill in the fields of the local transaction structure given + * the detail transaction structure. + * XXX I'm not sure that we work correctly with nested txns. + * + * PUBLIC: void __txn_continue __P((DB_ENV *, DB_TXN *, TXN_DETAIL *, size_t)); + */ +void +__txn_continue(env, txnp, td, off) + DB_ENV *env; + DB_TXN *txnp; + TXN_DETAIL *td; + size_t off; +{ + txnp->mgrp = env->tx_handle; + txnp->parent = NULL; + txnp->last_lsn = td->last_lsn; + txnp->txnid = td->txnid; + txnp->off = off; + txnp->flags = 0; +} + +/* + * __txn_map_gid + * Return the txn that corresponds to this global ID. + * + * PUBLIC: int __txn_map_gid __P((DB_ENV *, + * PUBLIC: u_int8_t *, TXN_DETAIL **, size_t *)); + */ +int +__txn_map_gid(dbenv, gid, tdp, offp) + DB_ENV *dbenv; + u_int8_t *gid; + TXN_DETAIL **tdp; + size_t *offp; +{ + DB_TXNMGR *mgr; + DB_TXNREGION *tmr; + + mgr = dbenv->tx_handle; + tmr = mgr->reginfo.primary; + + /* + * Search the internal active transaction table to find the + * matching xid. If this is a performance hit, then we + * can create a hash table, but I doubt it's worth it. + */ + R_LOCK(dbenv, &mgr->reginfo); + for (*tdp = SH_TAILQ_FIRST(&tmr->active_txn, __txn_detail); + *tdp != NULL; + *tdp = SH_TAILQ_NEXT(*tdp, links, __txn_detail)) + if (memcmp(gid, (*tdp)->xid, sizeof((*tdp)->xid)) == 0) + break; + R_UNLOCK(dbenv, &mgr->reginfo); + + if (*tdp == NULL) + return (EINVAL); + + *offp = R_OFFSET(&mgr->reginfo, *tdp); + return (0); +} + +/* + * txn_recover -- + * Public interface to retrieve the list of prepared, but not yet + * commited transactions. See __txn_get_prepared for details. This + * function and __db_xa_recover both wrap that one. + * + * EXTERN: int txn_recover + * EXTERN: __P((DB_ENV *, DB_PREPLIST *, long, long *, u_int32_t)); + */ +int +txn_recover(dbenv, preplist, count, retp, flags) + DB_ENV *dbenv; + DB_PREPLIST *preplist; + long count, *retp; + u_int32_t flags; +{ +#ifdef HAVE_RPC + if (F_ISSET(dbenv, DB_ENV_RPCCLIENT)) + return (__dbcl_txn_recover(dbenv, + preplist, count, retp, flags)); +#endif + return (__txn_get_prepared(dbenv, NULL, preplist, count, retp, flags)); +} + +/* + * __txn_get_prepared -- + * Returns a list of prepared (and for XA, heuristically completed) + * transactions (less than or equal to the count parameter). One of + * xids or txns must be set to point to an array of the appropriate type. + * The count parameter indicates the number of entries in the xids and/or + * txns array. The retp parameter will be set to indicate the number of + * entries returned in the xids/txns array. Flags indicates the operation, + * one of DB_FIRST or DB_NEXT. + * + * PUBLIC: int __txn_get_prepared __P((DB_ENV *, + * PUBLIC: XID *, DB_PREPLIST *, long, long *, u_int32_t)); + */ +int +__txn_get_prepared(dbenv, xids, txns, count, retp, flags) + DB_ENV *dbenv; + XID *xids; + DB_PREPLIST *txns; + long count; /* This is long for XA compatibility. */ + long *retp; + u_int32_t flags; +{ + XID *xidp; + DB_PREPLIST *prepp; + TXN_DETAIL *td; + DB_TXNMGR *mgr; + DB_TXNREGION *tmr; + DB_LSN min, open_lsn; + DBT data; + __txn_ckp_args *ckp_args; + int nrestores, open_files, ret; + void *txninfo; + + ret = 0; + *retp = 0; + xidp = xids; + prepp = txns; + open_files = 1; + nrestores = 0; + MAX_LSN(min); + + /* + * If we are starting a scan, then we traverse the active transaction + * list once making sure that all transactions are marked as not having + * been collected. Then on each pass, we mark the ones we collected + * so that if we cannot collect them all at once, we can finish up + * next time with a continue. + */ + + mgr = dbenv->tx_handle; + tmr = mgr->reginfo.primary; + + /* + * During this pass we need to figure out if we are going to need + * to open files. We need to open files if we've never collected + * before (in which case, none of the COLLECTED bits will be set) + * and the ones that we are collecting are restored (if they aren't + * restored, then we never crashed; just the main server did). + */ + R_LOCK(dbenv, &mgr->reginfo); + if (flags == DB_FIRST) { + for (td = SH_TAILQ_FIRST(&tmr->active_txn, __txn_detail); + td != NULL; + td = SH_TAILQ_NEXT(td, links, __txn_detail)) { + if (F_ISSET(td, TXN_RESTORED)) + nrestores++; + if (F_ISSET(td, TXN_COLLECTED)) + open_files = 0; + F_CLR(td, TXN_COLLECTED); + } + + } else + open_files = 0; + + /* Now begin collecting active transactions. */ + for (td = SH_TAILQ_FIRST(&tmr->active_txn, __txn_detail); + td != NULL && *retp < count; + td = SH_TAILQ_NEXT(td, links, __txn_detail)) { + if (td->status != TXN_PREPARED || F_ISSET(td, TXN_COLLECTED)) + continue; + + if (xids != NULL) { + xidp->formatID = td->format; + xidp->gtrid_length = td->gtrid; + xidp->bqual_length = td->bqual; + memcpy(xidp->data, td->xid, sizeof(td->xid)); + xidp++; + } + + if (txns != NULL) { + if ((ret = __os_calloc(dbenv, + 1, sizeof(DB_TXN), &prepp->txn)) != 0) + break; + __txn_continue(dbenv, + prepp->txn, td, R_OFFSET(&mgr->reginfo, td)); + memcpy(prepp->gid, td->xid, sizeof(td->xid)); + prepp++; + } + + if (log_compare(&td->begin_lsn, &min) < 0) + min = td->begin_lsn; + + (*retp)++; + F_SET(td, TXN_COLLECTED); + } + R_UNLOCK(dbenv, &mgr->reginfo); + + if (open_files && nrestores && + ret == 0 && *retp != 0 && !IS_MAX_LSN(min)) { + /* + * Figure out the last checkpoint before the smallest + * start_lsn in the region. + */ + F_SET((DB_LOG *)dbenv->lg_handle, DBLOG_RECOVER); + memset(&data, 0, sizeof(data)); + for (ret = log_get(dbenv, &open_lsn, &data, DB_CHECKPOINT); + ret == 0 && log_compare(&min, &open_lsn) < 0; + ret = log_get(dbenv, &open_lsn, &data, DB_SET)) { + + /* Format the log record. */ + if ((ret = __txn_ckp_read(dbenv, + data.data, &ckp_args)) != 0) { + __db_err(dbenv, + "Invalid checkpoint record at [%ld][%ld]\n", + (u_long)open_lsn.file, + (u_long)open_lsn.offset); + goto out; + } + open_lsn = ckp_args->last_ckp; + __os_free(dbenv, ckp_args, sizeof(*ckp_args)); + } + + /* + * There are three ways we got here. + * We got a DB_NOTFOUND -- we need to read the first log record. + * We found a checkpoint before min. We're done. + * We found a checkpoint after min who's last_ckp is 0. We + * need to start at the beginning of the log. + */ + + if ((ret == DB_NOTFOUND || IS_ZERO_LSN(open_lsn)) && + (ret = log_get(dbenv, &open_lsn, &data, DB_FIRST)) != 0) { + __db_err(dbenv, "No log records."); + goto out; + } + + if ((ret = __db_txnlist_init(dbenv, &txninfo)) != 0) + goto out; + ret = __env_openfiles(dbenv, + txninfo, &data, &open_lsn, NULL, 0, 0); + if (txninfo != NULL) + __db_txnlist_end(dbenv, txninfo); + F_CLR((DB_LOG *)dbenv->lg_handle, DBLOG_RECOVER); + } + if (0) { +out: F_CLR((DB_LOG *)dbenv->lg_handle, DBLOG_RECOVER); + } + return (ret); + +} + diff --git a/db/txn/txn_stat.c b/db/txn/txn_stat.c new file mode 100644 index 000000000..9b6157a3b --- /dev/null +++ b/db/txn/txn_stat.c @@ -0,0 +1,110 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 1996-2001 + * Sleepycat Software. All rights reserved. + */ + +#include "db_config.h" + +#ifndef lint +static const char revid[] = "Id: txn_stat.c,v 11.7 2001/04/20 17:35:52 bostic Exp "; +#endif /* not lint */ + +#ifndef NO_SYSTEM_INCLUDES +#include <sys/types.h> + +#include <string.h> +#endif + +#ifdef HAVE_RPC +#include "db_server.h" +#endif + +#include "db_int.h" +#include "txn.h" + +#ifdef HAVE_RPC +#include "rpc_client_ext.h" +#endif + +/* + * txn_stat -- + * + * EXTERN: int txn_stat __P((DB_ENV *, DB_TXN_STAT **)); + */ +int +txn_stat(dbenv, statp) + DB_ENV *dbenv; + DB_TXN_STAT **statp; +{ + DB_TXNMGR *mgr; + DB_TXNREGION *region; + DB_TXN_STAT *stats; + TXN_DETAIL *txnp; + size_t nbytes; + u_int32_t ndx; + int ret; + +#ifdef HAVE_RPC + if (F_ISSET(dbenv, DB_ENV_RPCCLIENT)) + return (__dbcl_txn_stat(dbenv, statp)); +#endif + + PANIC_CHECK(dbenv); + ENV_REQUIRES_CONFIG(dbenv, dbenv->tx_handle, "txn_stat", DB_INIT_TXN); + + *statp = NULL; + + mgr = dbenv->tx_handle; + region = mgr->reginfo.primary; + + /* + * Allocate for the maximum active transactions -- the DB_TXN_ACTIVE + * struct is small and the maximum number of active transactions is + * not going to be that large. Don't have to lock anything to look + * at the region's maximum active transactions value, it's read-only + * and never changes after the region is created. + */ + nbytes = sizeof(DB_TXN_STAT) + sizeof(DB_TXN_ACTIVE) * region->maxtxns; + if ((ret = __os_umalloc(dbenv, nbytes, &stats)) != 0) + return (ret); + + R_LOCK(dbenv, &mgr->reginfo); + stats->st_last_txnid = region->last_txnid; + stats->st_last_ckp = region->last_ckp; + stats->st_maxtxns = region->maxtxns; + stats->st_naborts = region->naborts; + stats->st_nbegins = region->nbegins; + stats->st_ncommits = region->ncommits; + stats->st_nrestores = region->nrestores; + stats->st_pending_ckp = region->pending_ckp; + stats->st_time_ckp = region->time_ckp; + stats->st_nactive = region->nactive; + stats->st_maxnactive = region->maxnactive; + stats->st_txnarray = (DB_TXN_ACTIVE *)&stats[1]; + + ndx = 0; + for (txnp = SH_TAILQ_FIRST(®ion->active_txn, __txn_detail); + txnp != NULL; + txnp = SH_TAILQ_NEXT(txnp, links, __txn_detail)) { + stats->st_txnarray[ndx].txnid = txnp->txnid; + if (txnp->parent == INVALID_ROFF) + stats->st_txnarray[ndx].parentid = TXN_INVALID_ID; + else + stats->st_txnarray[ndx].parentid = + ((TXN_DETAIL *)R_ADDR(&mgr->reginfo, + txnp->parent))->txnid; + stats->st_txnarray[ndx].lsn = txnp->begin_lsn; + ndx++; + } + + stats->st_region_wait = mgr->reginfo.rp->mutex.mutex_set_wait; + stats->st_region_nowait = mgr->reginfo.rp->mutex.mutex_set_nowait; + stats->st_regsize = mgr->reginfo.rp->size; + + R_UNLOCK(dbenv, &mgr->reginfo); + + *statp = stats; + return (0); +} |