Update from db-2.3.16.
authordrepper <drepper>
Sun, 25 Jan 1998 16:07:02 +0000 (16:07 +0000)
committerdrepper <drepper>
Sun, 25 Jan 1998 16:07:02 +0000 (16:07 +0000)
db2/db.h
db2/db_185.h
db2/db_int.h

index f976aca..6a75bcd 100644 (file)
--- a/db2/db.h
+++ b/db2/db.h
@@ -4,7 +4,7 @@
  * Copyright (c) 1996, 1997
  *     Sleepycat Software.  All rights reserved.
  *
- *     @(#)db.h.src    10.97 (Sleepycat) 11/28/97
+ *     @(#)db.h.src    10.102 (Sleepycat) 1/18/98
  */
 
 #ifndef _DB_H_
@@ -73,8 +73,8 @@
 
 #define        DB_VERSION_MAJOR        2
 #define        DB_VERSION_MINOR        3
-#define        DB_VERSION_PATCH        14
-#define        DB_VERSION_STRING       "Sleepycat Software: DB 2.3.14: (11/28/97)"
+#define        DB_VERSION_PATCH        16
+#define        DB_VERSION_STRING       "Sleepycat Software: DB 2.3.16: (1/19/98)"
 
 typedef        u_int32_t       db_pgno_t;      /* Page number type. */
 typedef        u_int16_t       db_indx_t;      /* Page offset type. */
@@ -241,7 +241,7 @@ struct __db_env {
        DB_LOCKTAB      *lk_info;       /* Return from lock_open(). */
        u_int8_t        *lk_conflicts;  /* Two dimensional conflict matrix. */
        int              lk_modes;      /* Number of lock modes in table. */
-       unsigned int     lk_max;        /* Maximum number of locks. */
+       u_int            lk_max;        /* Maximum number of locks. */
        u_int32_t        lk_detect;     /* Deadlock detect on every conflict. */
 
        /* Logging. */
@@ -461,7 +461,6 @@ struct __db {
 #define        DB_RE_PAD       0x004000        /* DB_PAD (internal). */
 #define        DB_RE_RENUMBER  0x008000        /* DB_RENUMBER (internal). */
 #define        DB_RE_SNAPSHOT  0x010000        /* DB_SNAPSHOT (internal). */
-
        u_int32_t flags;
 };
 
@@ -532,7 +531,7 @@ int   db_open __P((const char *, DBTYPE, int, int, DB_ENV *, DB_INFO *, DB **));
 int   db_value_set __P((int, int));
 char *db_version __P((int *, int *, int *));
 #if defined(__cplusplus)
-};
+}
 #endif
 
 /*******************************************************
@@ -611,7 +610,7 @@ int   lock_unlink __P((const char *, int, DB_ENV *));
 int      lock_vec __P((DB_LOCKTAB *,
            u_int32_t, int, DB_LOCKREQ *, int, DB_LOCKREQ **));
 #if defined(__cplusplus)
-};
+}
 #endif
 
 /*******************************************************
@@ -650,6 +649,8 @@ struct __db_log_stat {
        u_int32_t st_scount;            /* Total writes 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. */
 };
 
 #if defined(__cplusplus)
@@ -668,7 +669,7 @@ int  log_stat __P((DB_LOG *, DB_LOG_STAT **, void *(*)(size_t)));
 int     log_unlink __P((const char *, int, DB_ENV *));
 int     log_unregister __P((DB_LOG *, u_int32_t));
 #if defined(__cplusplus)
-};
+}
 #endif
 
 /*******************************************************
@@ -739,7 +740,7 @@ int memp_sync __P((DB_MPOOL *, DB_LSN *));
 int    memp_trickle __P((DB_MPOOL *, int, int *));
 int    memp_unlink __P((const char *, int, DB_ENV *));
 #if defined(__cplusplus)
-};
+}
 #endif
 
 /*******************************************************
@@ -790,10 +791,13 @@ int         txn_prepare __P((DB_TXN *));
 int      txn_stat __P((DB_TXNMGR *, DB_TXN_STAT **, void *(*)(size_t)));
 int      txn_unlink __P((const char *, int, DB_ENV *));
 #if defined(__cplusplus)
-};
+}
 #endif
 
-#ifdef DB_DBM_HSEARCH
+#ifndef DB_DBM_HSEARCH
+#define        DB_DBM_HSEARCH  0               /* No historic interfaces by default. */
+#endif
+#if DB_DBM_HSEARCH != 0
 /*******************************************************
  * Dbm/Ndbm historic interfaces.
  *******************************************************/
@@ -811,40 +815,74 @@ typedef struct {
        int dsize;
 } datum;
 
+/*
+ * Translate DBM calls into DB calls so that DB doesn't step on the
+ * application's name space.
+ *
+ * The global variables dbrdonly, dirf and pagf were not retained when
+ * 4BSD replaced the dbm interface with ndbm, and are not support here.
+ */
+#define        dbminit(a)      __db_dbm_init(a)
+#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)
+
+/* Prototype the DB calls. */
 #if defined(__cplusplus)
 extern "C" {
 #endif
-int     dbminit __P((char *));
-#if !defined(__cplusplus)
-int     delete __P((datum));
+int     __db_dbm_init __P((char *));
+int     __db_dbm_delete __P((datum));
+int     __db_dbm_dbrdonly __P((void));
+int     __db_dbm_dirf __P((void));
+datum   __db_dbm_fetch __P((datum));
+datum   __db_dbm_firstkey __P((void));
+datum   __db_dbm_nextkey __P((datum));
+int     __db_dbm_pagf __P((void));
+int     __db_dbm_store __P((datum, datum));
+#if defined(__cplusplus)
+}
 #endif
-datum   fetch __P((datum));
-datum   firstkey __P((void));
-datum   nextkey __P((datum));
-int     store __P((datum, datum));
 
 /*
- * !!!
- * Don't prototype:
- *
- *      dbm_clearerr(DBM *db);
- *      dbm_dirfno(DBM *db);
- *      dbm_error(DBM *db);
- *      dbm_pagfno(DBM *db);
- *      dbm_rdonly(DBM *db);
- *
- * they weren't documented and were historically implemented as #define's.
+ * Translate NDBM calls into DB calls so that DB doesn't step on the
+ * application's name space.
  */
-void    dbm_close __P((DBM *));
-int     dbm_delete __P((DBM *, datum));
-datum   dbm_fetch __P((DBM *, datum));
-datum   dbm_firstkey __P((DBM *));
-long    dbm_forder __P((DBM *, datum));
-datum   dbm_nextkey __P((DBM *));
-DBM    *dbm_open __P((const char *, int, int));
-int     dbm_store __P((DBM *, datum, datum, int));
+#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)
+
+/* Prototype the DB calls. */
 #if defined(__cplusplus)
-};
+extern "C" {
+#endif
+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));
+#if defined(__cplusplus)
+}
 #endif
 
 /*******************************************************
@@ -859,14 +897,23 @@ typedef struct entry {
        void *data;
 } ENTRY;
 
+/*
+ * Translate HSEARCH calls into DB calls so that DB doesn't step on the
+ * application's name space.
+ */
+#define        hcreate(a)      __db_hcreate(a)
+#define        hdestroy        __db_hdestroy
+#define        hsearch(a, b)   __db_hsearch(a, b)
+
+/* Prototype the DB calls. */
 #if defined(__cplusplus)
 extern "C" {
 #endif
-int     hcreate __P((unsigned int));
-void    hdestroy __P((void));
-ENTRY  *hsearch __P((ENTRY, ACTION));
+int     __db_hcreate __P((unsigned int));
+void    __db_hdestroy __P((void));
+ENTRY  *__db_hsearch __P((ENTRY, ACTION));
 #if defined(__cplusplus)
-};
+}
 #endif
 #endif /* DB_DBM_HSEARCH */
 
index b6a4d0a..f3b02c7 100644 (file)
@@ -36,7 +36,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *     @(#)db_185.h.src        8.4 (Sleepycat) 9/16/97
+ *     @(#)db_185.h.src        8.5 (Sleepycat) 1/15/98
  */
 
 #ifndef _DB_185_H_
@@ -76,8 +76,8 @@
  * XXX
  * SGI/IRIX already has a pgno_t.
  */
-#ifdef sgi
-#define        pgno_t  db_pgno_t
+#ifdef sgi
+#define        pgno_t  db_pgno_t
 #endif
 
 #define        MAX_PAGE_NUMBER 0xffffffff      /* >= # of pages in a file */
@@ -174,6 +174,6 @@ DB *__dbopen __P((const char *, int, int, DBTYPE, const void *));
 DB *dbopen __P((const char *, int, int, DBTYPE, const void *));
 
 #if defined(__cplusplus)
-};
+}
 #endif
 #endif /* !_DB_185_H_ */
index 2146072..eacd3f9 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright (c) 1996, 1997
  *     Sleepycat Software.  All rights reserved.
  *
- *     @(#)db_int.h.src        10.37 (Sleepycat) 11/25/97
+ *     @(#)db_int.h.src        10.41 (Sleepycat) 1/8/98
  */
 
 #ifndef _DB_INTERNAL_H_
 /*******************************************************
  * General purpose constants and macros.
  *******************************************************/
-#define        UINT32_T_MAX    0xffffffff      /* Maximum 32 bit unsigned. */
 #define        UINT16_T_MAX        0xffff      /* Maximum 16 bit unsigned. */
+#define        UINT32_T_MAX    0xffffffff      /* Maximum 32 bit unsigned. */
 
 #define        DB_MIN_PGSIZE   0x000200        /* Minimum page size. */
 #define        DB_MAX_PGSIZE   0x010000        /* Maximum page size. */
 
 #define        DB_MINCACHE     10              /* Minimum cached pages */
 
+#define        MEGABYTE        1048576
+
+/*
+ * If we are unable to determine the underlying filesystem block size, use
+ * 8K on the grounds that most OS's use less than 8K as their VM page size.
+ */
+#define        DB_DEF_IOSIZE   (8 * 1024)
+
 /*
  * Aligning items to particular sizes or in pages or memory.  ALIGNP is a
  * separate macro, as we've had to cast the pointer to different integral
@@ -109,6 +117,9 @@ typedef struct __fn {
 #undef DB_LINE
 #define        DB_LINE "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
 
+/* Unused, or not-used-yet variable.  "Shut that bloody compiler up!" */
+#define        COMPQUIET(n, v) (n) = (v)
+
 /*******************************************************
  * Files.
  *******************************************************/
@@ -155,18 +166,22 @@ typedef unsigned char tsl_t;
 
 /*
  * The offset of a mutex in memory.
+ *
+ * !!!
+ * Not an off_t, so backing file offsets MUST be less than 4Gb.  See the
+ * off field of the db_mutex_t as well.
  */
-#define        MUTEX_LOCK_OFFSET(a, b) ((off_t)((u_int8_t *)b - (u_int8_t *)a))
+#define        MUTEX_LOCK_OFFSET(a, b) ((u_int32_t)((u_int8_t *)b - (u_int8_t *)a))
 
 typedef struct _db_mutex_t {
 #ifdef HAVE_SPINLOCKS
-       tsl_t   tsl_resource;           /* Resource test and set. */
+       tsl_t     tsl_resource;         /* Resource test and set. */
 #ifdef DEBUG
-       u_long  pid;                    /* Lock holder: 0 or process pid. */
+       u_long    pid;                  /* Lock holder: 0 or process pid. */
 #endif
 #else
-       off_t   off;                    /* Backing file offset. */
-       u_long  pid;                    /* Lock holder: 0 or process pid. */
+       u_int32_t off;                  /* Backing file offset. */
+       u_long    pid;                  /* Lock holder: 0 or process pid. */
 #endif
        u_int32_t spins;                /* Spins before block. */
        u_int32_t mutex_set_wait;       /* Granted after wait. */