Lines Matching defs:dbc

74 	DBC *dbc, *adbc;
83 if ((dbc = TAILQ_FIRST(&dbp->free_queue)) != NULL)
84 TAILQ_REMOVE(&dbp->free_queue, dbc, links);
88 if ((ret = __os_calloc(1, sizeof(DBC), &dbc)) != 0)
91 dbc->dbp = dbp;
92 dbc->c_close = __db_c_close;
104 dbc->lid = adbc->lid;
107 &dbc->lid)) != 0)
110 memcpy(dbc->lock.fileid, dbp->fileid, DB_FILE_ID_LEN);
112 dbc->lock_dbt.size = DB_FILE_ID_LEN;
113 dbc->lock_dbt.data = dbc->lock.fileid;
115 dbc->lock_dbt.size = sizeof(dbc->lock);
116 dbc->lock_dbt.data = &dbc->lock;
123 if ((ret = __bam_c_init(dbc)) != 0)
127 if ((ret = __ham_c_init(dbc)) != 0)
138 if ((dbc->txn = txn) == NULL)
139 dbc->locker = dbc->lid;
141 dbc->locker = txn->txnid;
143 TAILQ_INSERT_TAIL(&dbp->active_queue, dbc, links);
154 if ((ret = lock_get(dbp->dbenv->lk_info, dbc->locker, 0,
155 &dbc->lock_dbt, mode, &dbc->mylock)) != 0) {
156 (void)__db_c_close(dbc);
160 F_SET(dbc, DBC_RMW);
162 F_SET(dbc, DBC_WRITER);
165 *dbcp = dbc;
168 err: __os_free(dbc, sizeof(*dbc));
177 __db_c_close(dbc)
178 DBC *dbc;
183 dbp = dbc->dbp;
197 TAILQ_REMOVE(&dbp->active_queue, dbc, links);
201 if ((t_ret = dbc->c_am_close(dbc)) != 0 && ret == 0)
205 if (F_ISSET(dbc->dbp, DB_AM_CDB) && dbc->mylock != LOCK_INVALID) {
206 ret = lock_put(dbc->dbp->dbenv->lk_info, dbc->mylock);
207 dbc->mylock = LOCK_INVALID;
211 dbc->flags = 0;
222 if (F_ISSET(dbp, DB_AM_LOCKING) && dbc->lid == dbc->locker) {
227 dbc->locker, 0, &request, 1, NULL)) != 0 && ret == 0)
233 TAILQ_INSERT_TAIL(&dbp->free_queue, dbc, links);
255 DBC *dbc;
258 for (dbc = TAILQ_FIRST(&dbp->active_queue);
259 dbc != NULL; dbc = TAILQ_NEXT(dbc, links)) {
262 (u_int)dbc, (u_int)dbc->dbp, (u_int)dbc->txn,
263 (u_long)dbc->lid, (u_long)dbc->locker);
264 __db_prflags(dbc->flags, fn, stderr);
280 __db_c_destroy(dbc)
281 DBC *dbc;
286 dbp = dbc->dbp;
290 TAILQ_REMOVE(&dbp->free_queue, dbc, links);
294 ret = dbc->c_am_destroy == NULL ? 0 : dbc->c_am_destroy(dbc);
297 if (dbc->rkey.data != NULL)
298 __os_free(dbc->rkey.data, dbc->rkey.ulen);
299 if (dbc->rdata.data != NULL)
300 __os_free(dbc->rdata.data, dbc->rdata.ulen);
301 __os_free(dbc, sizeof(*dbc));
335 DBC *dbc;
343 if ((ret = dbp->cursor(dbp, txn, &dbc, 0)) != 0)
346 DEBUG_LREAD(dbc, txn, "__db_get", key, NULL, flags);
348 ret = dbc->c_get(dbc, key, data,
351 if ((t_ret = __db_c_close(dbc)) != 0 && ret == 0)
368 DBC *dbc;
378 if ((ret = dbp->cursor(dbp, txn, &dbc, DB_WRITELOCK)) != 0)
381 DEBUG_LWRITE(dbc, txn, "__db_put", key, data, flags);
391 if ((ret = dbc->c_get(dbc, key, &tdata, DB_SET | DB_RMW)) == 0)
397 ret = dbc->c_put(dbc, key, data, DB_KEYLAST);
399 if ((t_ret = __db_c_close(dbc)) != 0 && ret == 0)