• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/BerkeleyDB-21/db/dbreg/

Lines Matching defs:fnp

96 	FNAME *fnp;
106 fnp = NULL;
111 if ((ret = __env_alloc(infop, sizeof(FNAME), &fnp)) != 0)
113 memset(fnp, 0, sizeof(FNAME));
115 fnp->fname_off = INVALID_ROFF;
120 fnp->fname_off = R_OFFSET(infop, p);
124 fnp->dname_off = INVALID_ROFF;
129 fnp->dname_off = R_OFFSET(infop, p);
138 fnp->id = fnp->old_id = DB_LOGFILEID_INVALID;
139 fnp->s_type = dbp->type;
140 memcpy(fnp->ufid, dbp->fileid, DB_FILE_ID_LEN);
141 fnp->meta_pgno = dbp->meta_pgno;
142 fnp->create_txnid = create_txnid;
143 dbp->dbenv->thread_id(dbp->dbenv, &fnp->pid, NULL);
146 F_SET(fnp, DB_FNAME_INMEM);
148 F_SET(fnp, DB_FNAME_RECOVER);
149 fnp->txn_ref = 1;
150 fnp->mutex = dbp->mutex;
152 dbp->log_filename = fnp;
200 __dbreg_teardown_int(env, fnp)
202 FNAME *fnp;
208 if (F_ISSET(fnp, DB_FNAME_NOTLOGGED))
213 DB_ASSERT(env, fnp->id == DB_LOGFILEID_INVALID);
214 ret = __mutex_free(env, &fnp->mutex);
217 if (fnp->fname_off != INVALID_ROFF)
218 __env_alloc_free(infop, R_ADDR(infop, fnp->fname_off));
219 if (fnp->dname_off != INVALID_ROFF)
220 __env_alloc_free(infop, R_ADDR(infop, fnp->dname_off));
221 __env_alloc_free(infop, fnp);
242 FNAME *fnp;
250 fnp = dbp->log_filename;
254 if (fnp->id != DB_LOGFILEID_INVALID) {
259 fnp->id = id;
268 * caller will set the fnp->id field with the id we return.
280 FNAME *fnp;
288 fnp = dbp->log_filename;
305 F_SET(fnp, DB_FNAME_DURABLE);
308 SH_TAILQ_INSERT_HEAD(&lp->fq, fnp, q, __fname);
324 fnp->create_txnid = TXN_INVALID;
326 DB_ASSERT(env, dbp->type == fnp->s_type);
327 DB_ASSERT(env, dbp->meta_pgno == fnp->meta_pgno);
359 FNAME *close_fnp, *fnp;
366 fnp = dbp->log_filename;
375 DB_ASSERT(env, fnp->id == DB_LOGFILEID_INVALID);
416 fnp->id = id;
419 F_SET(fnp, DB_FNAME_DURABLE);
420 SH_TAILQ_INSERT_HEAD(&lp->fq, fnp, q, __fname);
481 __dbreg_revoke_id_int(env, fnp, have_lock, push, force_id)
483 FNAME *fnp;
497 if (fnp == NULL)
503 * finished setting up fnp. So, if we have a force_id use it.
507 else if (fnp->id == DB_LOGFILEID_INVALID) {
508 if (fnp->old_id == DB_LOGFILEID_INVALID)
510 id = fnp->old_id;
512 id = fnp->id;
516 fnp->id = DB_LOGFILEID_INVALID;
517 fnp->old_id = DB_LOGFILEID_INVALID;
520 SH_TAILQ_REMOVE(&lp->fq, fnp, q, __fname);
528 if (!F_ISSET(fnp, DB_FNAME_CLOSED) &&
552 FNAME *fnp;
559 fnp = dbp->log_filename;
562 if (fnp == NULL)
565 if (fnp->id == DB_LOGFILEID_INVALID) {
577 DB_ASSERT(env, fnp->txn_ref > 0);
578 if (fnp->txn_ref > 1) {
580 if (fnp->txn_ref > 1) {
581 if (!F_ISSET(fnp, DB_FNAME_CLOSED) &&
583 env->lg_handle, fnp->id)) != 0 && ret == 0)
592 F_SET(fnp, DB_FNAME_CLOSED);
593 fnp->txn_ref--;
603 if ((ret = __dbreg_log_close(env, fnp, txn, op)) != 0)
622 __dbreg_close_id_int(env, fnp, op, locked)
624 FNAME *fnp;
632 DB_ASSERT(env, fnp->txn_ref == 1);
636 if (fnp->id == DB_LOGFILEID_INVALID)
638 fnp, locked, 1, DB_LOGFILEID_INVALID));
640 if (F_ISSET(fnp, DB_FNAME_RECOVER))
641 return (__dbreg_close_file(env, fnp));
648 if ((ret = __dbreg_log_close(env, fnp, NULL, op)) != 0)
651 ret = __dbreg_revoke_id_int(env, fnp, 1, 1, DB_LOGFILEID_INVALID);
656 if ((t_ret = __dbreg_teardown_int(env, fnp)) != 0 && ret == 0)
676 FNAME *fnp, *nnp;
689 for (fnp = SH_TAILQ_FIRST(&lp->fq, __fname); fnp != NULL; fnp = nnp) {
690 nnp = SH_TAILQ_NEXT(fnp, q, __fname);
691 if (dbenv->is_alive(dbenv, fnp->pid, 0, DB_MUTEX_PROCESS_ONLY))
693 MUTEX_LOCK(env, fnp->mutex);
696 dbenv->thread_id_string(dbenv, fnp->pid, 0, buf),
697 (u_long)fnp->txn_ref);
698 if (fnp->txn_ref > 1 || F_ISSET(fnp, DB_FNAME_CLOSED)) {
699 if (!F_ISSET(fnp, DB_FNAME_CLOSED)) {
700 fnp->txn_ref--;
701 F_SET(fnp, DB_FNAME_CLOSED);
703 MUTEX_UNLOCK(env, fnp->mutex);
704 fnp->mutex = MUTEX_INVALID;
705 fnp->pid = 0;
707 F_SET(fnp, DB_FNAME_CLOSED);
709 fnp, DBREG_CLOSE, 1)) && ret == 0)
730 __dbreg_log_close(env, fnp, txn, op)
732 FNAME *fnp;
744 if (fnp->fname_off == INVALID_ROFF)
748 r_name.data = R_ADDR(&dblp->reginfo, fnp->fname_off);
753 fid_dbt.data = fnp->ufid;
756 F_ISSET(fnp, DB_FNAME_DURABLE) ? 0 : DB_LOG_NOT_DURABLE,
757 op, dbtp, &fid_dbt, fnp->id,
758 fnp->s_type, fnp->meta_pgno, TXN_INVALID)) != 0) {
769 F_SET(fnp, DB_FNAME_NOTLOGGED);
770 (void)__dbreg_rem_dbentry(dblp, fnp->id);
921 FNAME *fnp;
929 fnp = dbp->log_filename;
931 /* Verify that the fnp has been initialized. */
932 if (fnp->s_type == DB_UNKNOWN) {
933 memcpy(fnp->ufid, dbp->fileid, DB_FILE_ID_LEN);
934 fnp->s_type = dbp->type;
947 if (fnp->fname_off != INVALID_ROFF) {
948 r_name.data = R_ADDR(&dblp->reginfo, fnp->fname_off);
960 fnp->s_type, fnp->meta_pgno, fnp->create_txnid);