📄 db.src
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 1996-2002 * Sleepycat Software. All rights reserved. * * $Id: db.src,v 11.18 2002/04/17 19:02:58 krinsky Exp $ */PREFIX __dbDBPRIVATEINCLUDE #include "db_config.h"INCLUDEINCLUDE #ifndef NO_SYSTEM_INCLUDESINCLUDE #include <sys/types.h>INCLUDEINCLUDE #include <ctype.h>INCLUDE #include <string.h>INCLUDE #endifINCLUDEINCLUDE #include "db_int.h"INCLUDE #include "dbinc/crypto.h"INCLUDE #include "dbinc/db_page.h"INCLUDE #include "dbinc/db_dispatch.h"INCLUDE #include "dbinc/db_am.h"INCLUDE #include "dbinc/log.h"INCLUDE #include "dbinc/rep.h"INCLUDE #include "dbinc/txn.h"INCLUDE/* * addrem -- Add or remove an entry from a duplicate page. * * opcode: identifies if this is an add or delete. * fileid: file identifier of the file being modified. * pgno: duplicate page number. * indx: location at which to insert or delete. * nbytes: number of bytes added/removed to/from the page. * hdr: header for the data item. * dbt: data that is deleted or is to be added. * pagelsn: former lsn of the page. * * If the hdr was NULL then, the dbt is a regular B_KEYDATA. * If the dbt was NULL then the hdr is a complete item to be * pasted on the page. */BEGIN addrem 41ARG opcode u_int32_t luDB fileid int32_t ldWRLOCK pgno db_pgno_t luARG indx u_int32_t luARG nbytes u_int32_t luPGDBT hdr DBT sDBT dbt DBT sPOINTER pagelsn DB_LSN * luEND/* * big -- Handles addition and deletion of big key/data items. * * opcode: identifies get/put. * fileid: file identifier of the file being modified. * pgno: page onto which data is being added/removed. * prev_pgno: the page before the one we are logging. * next_pgno: the page after the one we are logging. * dbt: data being written onto the page. * pagelsn: former lsn of the orig_page. * prevlsn: former lsn of the prev_pgno. * nextlsn: former lsn of the next_pgno. This is not currently used, but * may be used later if we actually do overwrites of big key/ * data items in place. */BEGIN big 43ARG opcode u_int32_t luDB fileid int32_t ldWRLOCK pgno db_pgno_t luWRLOCKNZ prev_pgno db_pgno_t luWRLOCKNZ next_pgno db_pgno_t luDBT dbt DBT sPOINTER pagelsn DB_LSN * luPOINTER prevlsn DB_LSN * luPOINTER nextlsn DB_LSN * luEND/* * ovref -- Handles increment/decrement of overflow page reference count. * * fileid: identifies the file being modified. * pgno: page number whose ref count is being incremented/decremented. * adjust: the adjustment being made. * lsn: the page's original lsn. */BEGIN ovref 44DB fileid int32_t ldWRLOCK pgno db_pgno_t luARG adjust int32_t ldPOINTER lsn DB_LSN * luEND/* * relink -- Handles relinking around a page. * * opcode: indicates if this is an addpage or delete page * pgno: the page being changed. * lsn the page's original lsn. * prev: the previous page. * lsn_prev: the previous page's original lsn. * next: the next page. * lsn_next: the previous page's original lsn. */BEGIN relink 45ARG opcode u_int32_t luDB fileid int32_t ldWRLOCK pgno db_pgno_t luPOINTER lsn DB_LSN * luWRLOCKNZ prev db_pgno_t luPOINTER lsn_prev DB_LSN * luWRLOCKNZ next db_pgno_t luPOINTER lsn_next DB_LSN * luEND/* * Debug -- log an operation upon entering an access method. * op: Operation (cursor, c_close, c_get, c_put, c_del, * get, put, delete). * fileid: identifies the file being acted upon. * key: key paramater * data: data parameter * flags: flags parameter */BEGIN debug 47DBT op DBT sARG fileid int32_t ldDBT key DBT sDBT data DBT sARG arg_flags u_int32_t luEND/* * noop -- do nothing, but get an LSN. */BEGIN noop 48DB fileid int32_t ldWRLOCK pgno db_pgno_t luPOINTER prevlsn DB_LSN * luEND/* * pg_alloc: used to record allocating a new page. * * meta_lsn: the meta-data page's original lsn. * meta_pgno the meta-data page number. * page_lsn: the allocated page's original lsn. * pgno: the page allocated. * ptype: the type of the page allocated. * next: the next page on the free list. */BEGIN pg_alloc 49DB fileid int32_t ldPOINTER meta_lsn DB_LSN * luWRLOCK meta_pgno db_pgno_t luPOINTER page_lsn DB_LSN * luWRLOCK pgno db_pgno_t luARG ptype u_int32_t luARG next db_pgno_t luEND/* * pg_free: used to record freeing a page. * * pgno: the page being freed. * meta_lsn: the meta-data page's original lsn. * meta_pgno: the meta-data page number. * header: the header from the free'd page. * next: the previous next pointer on the metadata page. */BEGIN pg_free 50DB fileid int32_t ldWRLOCK pgno db_pgno_t luPOINTER meta_lsn DB_LSN * luWRLOCK meta_pgno db_pgno_t luPGDBT header DBT sARG next db_pgno_t luEND/* * cksum -- * This log record is written when we're unable to checksum a page, * before returning DB_RUNRECOVERY. This log record causes normal * recovery to itself return DB_RUNRECOVERY, as only catastrophic * recovery can fix things. */BEGIN cksum 51END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -