DB_HDR
rv += msync((caddr_t)DB_HDR(hdp), HDR_LEN, MS_SYNC);
(void) munmap((caddr_t)DB_HDR(hdp), HDR_LEN);
: get_node(tnp->handle, DB_HDR(tnp->handle)->root_idx);
CACHE(hdp)->update_count = DB_HDR(hdp)->update_count;
(void) read_nodes(hdp, NULL, DB_HDR(hdp)->root_idx);
(void) read_links(hdp, NULL, DB_HDR(hdp)->dngl_idx);
nidx = dmp ? dmp->link : DB_HDR(hdp)->dngl_idx;
assert(DB_HDR(hdp)->page_sz);
sz = (sz / DB_HDR(hdp)->page_sz) + 1;
sz *= DB_HDR(hdp)->page_sz;
if (DB_HDR(hdp)->magic != DB_MAGIC || DB_HDR(hdp)->vers != DB_VERSION) {
if (DB_HDR(hdp)->page_sz == 0 || DB_HDR(hdp)->page_sz != page_sz) {
if (!VALID_INDEX(hdp, DB_NODE, DB_HDR(hdp)->root_idx)) {
if (!VALID_INDEX(hdp, DB_LINK, DB_HDR(hdp)->dngl_idx)) {
if ((pcnp == NULL) ^ (nidx == DB_HDR(hdp)->root_idx)) {
assert(strcmp(path, "/") ^ (nidx == DB_HDR(hdp)->root_idx));
((pcmp == NULL) ^ (nidx == DB_HDR(hdp)->dngl_idx))) {
DB_HDR(hdp)->update_count = CACHE(hdp)->update_count;
DB_HDR(hdp)->magic = DB_MAGIC;
DB_HDR(hdp)->vers = DB_VERSION;
DB_HDR(hdp)->root_idx = DB_NIL;
DB_HDR(hdp)->dngl_idx = DB_NIL;
DB_HDR(hdp)->page_sz = (uint32_t)page_sz;
assert(DB_HDR(hdp)->root_idx == DB_NIL);
DB_HDR(hdp)->root_idx = idx;
dlp->sib = DB_HDR(hdp)->dngl_idx;
DB_HDR(hdp)->dngl_idx = idx;
#define DB_NUM(h, t) (DB_HDR(h)->nelems[t])
#define DB_OPEN(h) (DB_HDR(h) != NULL)
#define DB_EMPTY(h) (DB_HDR(h)->root_idx == DB_NIL && \
DB_HDR(h)->dngl_idx == DB_NIL)
#define VALID_STR(h, i, s) ((i) + strlen(s) + 1 <= DB_HDR(h)->nelems[DB_STR])
#define VALID_INDEX(h, t, i) ((i) < DB_HDR(h)->nelems[t])