BUFHEAD
#define PTROF(X) ((BUFHEAD *)((ptr_t)(X)&~0x3))
BUFHEAD *__add_ovflpage(HTAB *, BUFHEAD *);
int __addel(HTAB *, BUFHEAD *, const DBT *, const DBT *);
int __big_delete(HTAB *, BUFHEAD *);
int __big_insert(HTAB *, BUFHEAD *, const DBT *, const DBT *);
int __big_keydata(HTAB *, BUFHEAD *, DBT *, DBT *, int);
int __big_return(HTAB *, BUFHEAD *, int, DBT *, int);
int __big_split(HTAB *, BUFHEAD *, BUFHEAD *, BUFHEAD *,
int __delpair(HTAB *, BUFHEAD *, int);
int __find_bigpair(HTAB *, BUFHEAD *, int, char *, int);
u_int16_t __find_last_page(HTAB *, BUFHEAD **);
void __free_ovflpage(HTAB *, BUFHEAD *);
BUFHEAD *__get_buf(HTAB *, u_int32_t, BUFHEAD *, int);
void __reclaim_buf(HTAB *, BUFHEAD *);
BUFHEAD *rbufp;
BUFHEAD *bufp, *save_bufp;
BUFHEAD *bufp;
BUFHEAD bufhead; /* Header of buffer lru list */
#define PTROF(X) ((BUFHEAD *)((intptr_t)(X)&~0x3))
BUFHEAD *prev; /* LRU links */
BUFHEAD *next; /* LRU links */
BUFHEAD *ovfl; /* Overflow page buffer header */
typedef BUFHEAD **SEGMENT;
BUFHEAD *cpage; /* Current page */
__big_delete(HTAB *hashp, BUFHEAD *bufp)
BUFHEAD *last_bfp, *rbufp;
__find_bigpair(HTAB *hashp, BUFHEAD *bufp, int ndx, char *key, int size)
__find_last_page(HTAB *hashp, BUFHEAD **bpp)
BUFHEAD *bufp;
__big_return(HTAB *hashp, BUFHEAD *bufp, int ndx, DBT *val, int set_current)
BUFHEAD *save_p;
collect_data(HTAB *hashp, BUFHEAD *bufp, int len, int set)
BUFHEAD *xbp;
__big_keydata(HTAB *hashp, BUFHEAD *bufp, DBT *key, DBT *val, int set)
collect_key(HTAB *hashp, BUFHEAD *bufp, int len, DBT *val, int set)
BUFHEAD *xbp;
BUFHEAD *op, /* Pointer to where to put keys that go in old bucket */
BUFHEAD *np, /* Pointer to new bucket page */
BUFHEAD *big_keyp, /* Pointer to first page containing the big key/data */
BUFHEAD *bp, *tmpp;
static int collect_key(HTAB *, BUFHEAD *, int, DBT *, int);
static int collect_data(HTAB *, BUFHEAD *, int, int);
__big_insert(HTAB *hashp, BUFHEAD *bufp, const DBT *key, const DBT *val)
BUFHEAD *prev_bp, /* If prev_bp set, indicates a new overflow page. */
BUFHEAD *bp;
(BUFHEAD *)((intptr_t)bp | is_disk_mask);
static BUFHEAD *
newbuf(HTAB *hashp, u_int32_t addr, BUFHEAD *prev_bp)
BUFHEAD *bp; /* The buffer we're going to use */
BUFHEAD *xbp; /* Temp pointer */
BUFHEAD *next_xbp;
BUFHEAD *ovfl;
if ((bp = (BUFHEAD *)calloc(1, sizeof(BUFHEAD))) == NULL)
segp[segment_ndx] = (BUFHEAD *)BUF_DISK;
BUFHEAD *bfp;
BUFHEAD *bp;
__reclaim_buf(HTAB *hashp, BUFHEAD *bp)
static BUFHEAD *newbuf(HTAB *, u_int32_t, BUFHEAD *);
BUFHEAD *
__delpair(HTAB *hashp, BUFHEAD *bufp, int ndx)
BUFHEAD *new_bufp, *old_bufp;
BUFHEAD *old_bufp,
BUFHEAD *new_bufp,
BUFHEAD *bufp; /* Buffer header for ino */
BUFHEAD *last_bfp; /* Last buf header OVFL needing to be freed */
__addel(HTAB *hashp, BUFHEAD *bufp, const DBT *key, const DBT *val)
BUFHEAD *
__add_ovflpage(HTAB *hashp, BUFHEAD *bufp)
static int ugly_split(HTAB *, u_int32_t, BUFHEAD *, BUFHEAD *, int, int);
__free_ovflpage(HTAB *hashp, BUFHEAD *obufp)
BUFHEAD *bufp;
BUFHEAD *newp;
BUFHEAD *oldp;
BUFHEAD *nextp;