Lines Matching refs:dbp

75 #define	DBINFO_FCHK(dbp, fn, meta_flags, m_name, dbp_name) {		\  argument
77 F_SET(dbp, dbp_name); \
79 if (F_ISSET(dbp, dbp_name)) { \
102 DB *dbp; local
147 if ((ret = __os_calloc(1, sizeof(DB), &dbp)) != 0)
149 dbp->dbenv = dbenv;
152 dbp->saved_open_fd = fd = -1;
157 TAILQ_INIT(&dbp->free_queue);
158 TAILQ_INIT(&dbp->active_queue);
159 if ((ret = __db_init_wrapper(dbp)) != 0)
164 F_SET(dbp, DB_AM_RDONLY);
166 F_SET(dbp, DB_AM_THREAD);
176 F_SET(dbp, DB_RE_DELIMITER);
178 F_SET(dbp, DB_AM_DUP);
180 F_SET(dbp, DB_RE_FIXEDLEN);
182 F_SET(dbp, DB_RE_PAD);
184 F_SET(dbp, DB_BT_RECNUM);
186 F_SET(dbp, DB_RE_RENUMBER);
188 F_SET(dbp, DB_RE_SNAPSHOT);
198 F_SET(dbp, DB_AM_CDB);
200 F_SET(dbp, DB_AM_LOCKING);
202 F_SET(dbp, DB_AM_LOGGING);
207 dbp->pgsize = 0;
208 dbp->db_malloc = NULL;
209 dbp->dup_compare = NULL;
215 if ((dbp->pgsize = dbinfo->db_pagesize) != 0 &&
216 (u_int32_t)1 << __db_log2(dbp->pgsize) != dbp->pgsize) {
220 dbp->pgsize = dbinfo->db_pagesize;
221 dbp->db_malloc = dbinfo->db_malloc;
224 dbp->dup_compare = dbinfo->dup_compare == NULL ?
244 F_SET(dbp, DB_AM_SWAP);
249 dbp->byteswapped = F_ISSET(dbp, DB_AM_SWAP) ? 1 : 0;
302 if (dbp->pgsize == 0) {
321 dbp->pgsize = iopsize;
322 F_SET(dbp, DB_AM_PGDEF);
334 dbp->saved_open_fd = fd;
379 F_CLR(dbp, DB_AM_SWAP);
398 dbp->pgsize = btm->pagesize;
399 F_CLR(dbp, DB_AM_PGDEF);
404 DBINFO_FCHK(dbp, "DB_DUP",
407 DBINFO_FCHK(dbp, "DB_FIXEDLEN",
409 DBINFO_FCHK(dbp, "DB_RENUMBER",
413 DBINFO_FCHK(dbp, "DB_RECNUM",
420 memcpy(dbp->fileid, btm->uid, DB_FILE_ID_LEN);
437 dbp->pgsize = hashm->pagesize;
438 F_CLR(dbp, DB_AM_PGDEF);
443 DBINFO_FCHK(dbp, "DB_DUP",
449 memcpy(dbp->fileid, hashm->uid, DB_FILE_ID_LEN);
457 F_SET(dbp, DB_AM_SWAP);
470 F_SET(dbp, DB_AM_INMEM);
477 dbp->type = type;
487 if (dbp->pgsize == 0) {
488 F_SET(dbp, DB_AM_PGDEF);
489 dbp->pgsize = 8 * 1024;
491 if (dbp->pgsize < DB_MIN_PGSIZE ||
492 dbp->pgsize > DB_MAX_PGSIZE ||
493 dbp->pgsize & (sizeof(db_indx_t) - 1)) {
510 F_SET(dbp, DB_AM_MLOCAL);
514 sizeof(DB_ENV), &dbp->mp_dbenv)) != 0)
517 envp = dbp->mp_dbenv;
531 cachesize = dbp->pgsize * DB_MINCACHE;
534 if (cachesize & (dbp->pgsize - 1))
536 (~cachesize & (dbp->pgsize - 1)) + 1;
537 if (cachesize < dbp->pgsize * DB_MINCACHE)
538 cachesize = dbp->pgsize * DB_MINCACHE;
545 (F_ISSET(dbp, DB_AM_THREAD) ? DB_THREAD : 0),
546 __db_omode("rw----"), envp, &dbp->mp)) != 0)
551 dbp->mp = dbenv->mp_info;
554 if ((ret = memp_register(dbp->mp,
557 if ((ret = memp_register(dbp->mp,
576 memset(dbp->fileid, 0, DB_FILE_ID_LEN);
577 if (F_ISSET(dbp, DB_AM_LOCKING) &&
579 (u_int32_t *)dbp->fileid)) != 0)
583 real_name, 1, dbp->fileid)) != 0)
604 ftype = F_ISSET(dbp, DB_AM_SWAP) ? DB_FTYPE_BTREE : 0;
605 pginfo.db_pagesize = dbp->pgsize;
606 pginfo.needswap = F_ISSET(dbp, DB_AM_SWAP);
616 finfo.fileid = dbp->fileid;
619 if ((ret = memp_fopen(dbp->mp, fname,
620 F_ISSET(dbp, DB_AM_RDONLY) ? DB_RDONLY : 0,
621 0, dbp->pgsize, &finfo, &dbp->mpf)) != 0)
631 if (F_ISSET(dbp, DB_AM_THREAD)) {
632 if ((ret = __memp_reg_alloc(dbp->mp,
633 sizeof(db_mutex_t), NULL, &dbp->mutexp)) != 0)
639 (void)__db_mutex_init(dbp->mutexp, 0);
643 if (F_ISSET(dbp, DB_AM_LOGGING) &&
645 dbp, fname, type, &dbp->log_fileid)) != 0)
657 if ((ret = __bam_open(dbp, dbinfo)) != 0)
664 if ((ret = __ham_open(dbp, dbinfo)) != 0)
673 if ((ret = __ram_open(dbp, dbinfo)) != 0)
680 *dbpp = dbp;
689 if (dbp->log_fileid != 0)
690 (void)log_unregister(dbenv->lg_info, dbp->log_fileid);
693 if (dbp->mpf != NULL)
694 (void)memp_fclose(dbp->mpf);
697 if (F_ISSET(dbp, DB_AM_MLOCAL) && dbp->mp != NULL)
698 (void)memp_close(dbp->mp);
701 if (dbp->mp_dbenv != NULL)
702 __os_free(dbp->mp_dbenv, sizeof(DB_ENV));
706 if (dbp != NULL)
707 __os_free(dbp, sizeof(DB));
719 __db_close(dbp, flags) in __db_close() argument
720 DB *dbp; in __db_close()
726 DB_PANIC_CHECK(dbp);
729 if ((ret = __db_closechk(dbp, flags)) != 0)
734 (t_ret = dbp->sync(dbp, 0)) != 0 && ret == 0)
743 while ((dbc = TAILQ_FIRST(&dbp->active_queue)) != NULL)
746 while ((dbc = TAILQ_FIRST(&dbp->free_queue)) != NULL)
751 if ((t_ret = dbp->am_close(dbp)) != 0 && ret == 0)
755 if (flags != DB_NOSYNC && (t_ret = memp_fsync(dbp->mpf)) != 0 &&
760 if ((t_ret = memp_fclose(dbp->mpf)) != 0 && ret == 0)
764 if (F_ISSET(dbp, DB_AM_MLOCAL) &&
765 (t_ret = memp_close(dbp->mp)) != 0 && ret == 0)
768 if (dbp->saved_open_fd != -1) {
769 (void)__os_close(dbp->saved_open_fd);
770 dbp->saved_open_fd = -1;
774 if (F_ISSET(dbp, DB_AM_LOGGING))
775 (void)log_unregister(dbp->dbenv->lg_info, dbp->log_fileid);
778 if (dbp->mp_dbenv != NULL)
779 __os_free(dbp->mp_dbenv, sizeof(DB_ENV));
782 __os_free(dbp, sizeof(*dbp));