devname and getbsize move in from ps and df
[unix-history] / usr / src / include / db.h
index 05b7031..38d223f 100644 (file)
@@ -4,12 +4,13 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)db.h        5.16 (Berkeley) %G%
+ *     @(#)db.h        5.26 (Berkeley) %G%
  */
 
 #ifndef _DB_H_
 #define        _DB_H_
 
  */
 
 #ifndef _DB_H_
 #define        _DB_H_
 
+#include <sys/types.h>
 #include <sys/cdefs.h>
 
 #define        RET_ERROR       -1              /* Return values. */
 #include <sys/cdefs.h>
 
 #define        RET_ERROR       -1              /* Return values. */
 #define        RET_SPECIAL      1
 
 #define        MAX_PAGE_NUMBER ULONG_MAX       /* >= # of pages in a file */
 #define        RET_SPECIAL      1
 
 #define        MAX_PAGE_NUMBER ULONG_MAX       /* >= # of pages in a file */
-typedef unsigned long  pgno_t;
+typedef u_long pgno_t;
 #define        MAX_PAGE_OFFSET USHRT_MAX       /* >= # of bytes in a page */
 #define        MAX_PAGE_OFFSET USHRT_MAX       /* >= # of bytes in a page */
-typedef unsigned short index_t;
+typedef u_short        indx_t;
 #define        MAX_REC_NUMBER  ULONG_MAX       /* >= # of records in a tree */
 #define        MAX_REC_NUMBER  ULONG_MAX       /* >= # of records in a tree */
-typedef unsigned long  recno_t;
+typedef u_long recno_t;
 
 /* Key/data structure -- a Data-Base Thang. */
 typedef struct {
 
 /* Key/data structure -- a Data-Base Thang. */
 typedef struct {
@@ -30,8 +31,8 @@ typedef struct {
 } DBT;
 
 /* Routine flags. */
 } DBT;
 
 /* Routine flags. */
-#define        R_APPEND        1               /* put (RECNO) */
-#define        R_CURSOR        2               /* del, put, seq */
+#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_FIRST         3               /* seq */
 #define        R_IAFTER        4               /* put (RECNO) */
 #define        R_IBEFORE       5               /* put (RECNO) */
@@ -39,20 +40,24 @@ typedef struct {
 #define        R_NEXT          7               /* seq */
 #define        R_NOOVERWRITE   8               /* put */
 #define        R_PREV          9               /* 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;
 
 
 typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE;
 
+#define        __USE_OPEN_FLAGS \
+       (O_CREAT|O_EXCL|O_EXLOCK|O_RDONLY|O_RDWR|O_SHLOCK|O_TRUNC)
+
 /* Access method description structure. */
 typedef struct __db {
        DBTYPE type;                    /* underlying db type */
        int (*close)    __P((struct __db *));
 /* 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 *, unsigned int));
-       int (*get)      __P((const struct __db *, const DBT *, DBT *,
-                           unsigned int));
-       int (*put)      __P((const struct __db *, const DBT *, const DBT *,
-                           unsigned int));
-       int (*seq)      __P((const struct __db *, DBT *, DBT *, unsigned int));
-       int (*sync)     __P((const struct __db *));
+       int (*del)      __P((const struct __db *, const DBT *, u_int));
+       int (*fd)       __P((const struct __db *));
+       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 */
 } DB;
 
        void *internal;                 /* access method private */
 } DB;
 
@@ -62,15 +67,15 @@ typedef struct __db {
 /* Structure used to pass parameters to the btree routines. */
 typedef struct {
 #define        R_DUP           0x01    /* duplicate keys */
 /* Structure used to pass parameters to the btree routines. */
 typedef struct {
 #define        R_DUP           0x01    /* duplicate keys */
-       unsigned long flags;
-       int cachesize;          /* bytes to cache */
-       int maxkeypage;         /* maximum keys per page */
-       int minkeypage;         /* minimum keys per page */
-       int psize;              /* page size */
+       u_long   flags;
+       int      cachesize;     /* bytes to cache */
+       int      maxkeypage;    /* maximum keys per page */
+       int      minkeypage;    /* minimum keys per page */
+       int      psize;         /* page size */
                                /* comparison, prefix functions */
                                /* comparison, prefix functions */
-       int (*compare)  __P((const DBT *, const DBT *));
-       int (*prefix)   __P((const DBT *, const DBT *));
-       int lorder;             /* byte order */
+       int      (*compare)     __P((const DBT *, const DBT *));
+       int      (*prefix)      __P((const DBT *, const DBT *));
+       int      lorder;        /* byte order */
 } BTREEINFO;
 
 #define        HASHMAGIC       0x061561
 } BTREEINFO;
 
 #define        HASHMAGIC       0x061561
@@ -78,12 +83,13 @@ typedef struct {
 
 /* Structure used to pass parameters to the hashing routines. */
 typedef struct {
 
 /* Structure used to pass parameters to the hashing routines. */
 typedef struct {
-       int bsize;              /* bucket size */
-       int ffactor;            /* fill factor */
-       int nelem;              /* number of elements */
-       int cachesize;          /* bytes to cache */
-       int (*hash)();          /* hash function */
-       int lorder;             /* byte order */
+       int      bsize;         /* bucket size */
+       int      ffactor;       /* fill factor */
+       int      nelem;         /* number of elements */
+       int      cachesize;     /* bytes to cache */
+                               /* hash function */
+       int      (*hash) __P((const void *, size_t));
+       int      lorder;        /* byte order */
 } HASHINFO;
 
 /* Structure used to pass parameters to the record routines. */
 } HASHINFO;
 
 /* Structure used to pass parameters to the record routines. */
@@ -91,24 +97,15 @@ typedef struct {
 #define        R_FIXEDLEN      0x01    /* fixed-length records */
 #define        R_NOKEY         0x02    /* key not required */
 #define        R_SNAPSHOT      0x04    /* snapshot the input */
 #define        R_FIXEDLEN      0x01    /* fixed-length records */
 #define        R_NOKEY         0x02    /* key not required */
 #define        R_SNAPSHOT      0x04    /* snapshot the input */
-       unsigned long flags;
-       int cachesize;          /* bytes to cache */
-       int lorder;             /* byte order */
-       size_t reclen;          /* record length (fixed-length records) */
-       unsigned char bval;     /* delimiting byte (variable-length records */
+       u_long   flags;
+       int      cachesize;     /* bytes to cache */
+       int      psize;         /* page size */
+       int      lorder;        /* byte order */
+       size_t   reclen;        /* record length (fixed-length records) */
+       u_char   bval;          /* delimiting byte (variable-length records */
+       char    *bfname;        /* btree file name */ 
 } RECNOINFO;
 
 } RECNOINFO;
 
-/* Key structure for the record routines. */
-typedef struct {
-       unsigned long number;
-       unsigned long offset;
-       unsigned long length;
-#define        R_LENGTH        0x01    /* length is valid */
-#define        R_NUMBER        0x02    /* record number is valid */
-#define        R_OFFSET        0x04    /* offset is valid */
-       unsigned char valid;
-} RECNOKEY;
-
 /*
  * Little endian <==> big endian long swap macros.
  *     BLSWAP          swap a memory location
 /*
  * Little endian <==> big endian long swap macros.
  *     BLSWAP          swap a memory location
@@ -116,14 +113,14 @@ typedef struct {
  *     BLSWAP_COPY     swap from one location to another
  */
 #define BLSWAP(a) { \
  *     BLSWAP_COPY     swap from one location to another
  */
 #define BLSWAP(a) { \
-       unsigned long _tmp = a; \
+       u_long _tmp = a; \
        ((char *)&a)[0] = ((char *)&_tmp)[3]; \
        ((char *)&a)[1] = ((char *)&_tmp)[2]; \
        ((char *)&a)[2] = ((char *)&_tmp)[1]; \
        ((char *)&a)[3] = ((char *)&_tmp)[0]; \
 }
 #define        BLPSWAP(a) { \
        ((char *)&a)[0] = ((char *)&_tmp)[3]; \
        ((char *)&a)[1] = ((char *)&_tmp)[2]; \
        ((char *)&a)[2] = ((char *)&_tmp)[1]; \
        ((char *)&a)[3] = ((char *)&_tmp)[0]; \
 }
 #define        BLPSWAP(a) { \
-       unsigned long _tmp = *(unsigned long *)a; \
+       u_long _tmp = *(u_long *)a; \
        ((char *)a)[0] = ((char *)&_tmp)[3]; \
        ((char *)a)[1] = ((char *)&_tmp)[2]; \
        ((char *)a)[2] = ((char *)&_tmp)[1]; \
        ((char *)a)[0] = ((char *)&_tmp)[3]; \
        ((char *)a)[1] = ((char *)&_tmp)[2]; \
        ((char *)a)[2] = ((char *)&_tmp)[1]; \
@@ -143,12 +140,12 @@ typedef struct {
  *     BSSWAP_COPY     swap from one location to another
  */
 #define BSSWAP(a) { \
  *     BSSWAP_COPY     swap from one location to another
  */
 #define BSSWAP(a) { \
-       unsigned short _tmp = a; \
+       u_short _tmp = a; \
        ((char *)&a)[0] = ((char *)&_tmp)[1]; \
        ((char *)&a)[1] = ((char *)&_tmp)[0]; \
 }
 #define BSPSWAP(a) { \
        ((char *)&a)[0] = ((char *)&_tmp)[1]; \
        ((char *)&a)[1] = ((char *)&_tmp)[0]; \
 }
 #define BSPSWAP(a) { \
-       unsigned short _tmp = *(unsigned short *)a; \
+       u_short _tmp = *(u_short *)a; \
        ((char *)a)[0] = ((char *)&_tmp)[1]; \
        ((char *)a)[1] = ((char *)&_tmp)[0]; \
 }
        ((char *)a)[0] = ((char *)&_tmp)[1]; \
        ((char *)a)[1] = ((char *)&_tmp)[0]; \
 }