/*- * See the file LICENSE for redistribution information. * * Copyright (c) 1996, 1997 * Sleepycat Software. All rights reserved. */ #include "config.h" #ifndef lint static const char sccsid[] = "@(#)btree.src 10.3 (Sleepycat) 8/17/97"; #endif /* not lint */ PREFIX bam /* * BTREE-pg_alloc: used to record allocating a new page. * * meta_lsn: the meta-data page's original lsn. * page_lsn: the allocated page's original lsn. * pgno: the page allocated. * next: the next page on the free list. */ BEGIN pg_alloc ARG fileid u_int32_t lu POINTER meta_lsn DB_LSN * lu POINTER page_lsn DB_LSN * lu ARG pgno db_pgno_t lu ARG ptype u_int32_t lu ARG next db_pgno_t lu END /* * BTREE-pg_free: used to record freeing a page. * * pgno: the page being freed. * meta_lsn: the meta-data page's original lsn. * header: the header from the free'd page. * next: the previous next pointer on the metadata page. */ BEGIN pg_free ARG fileid u_int32_t lu ARG pgno db_pgno_t lu POINTER meta_lsn DB_LSN * lu DBT header DBT s ARG next db_pgno_t lu END /* * BTREE-split: used to log a page split. * * left: the page number for the low-order contents. * llsn: the left page's original LSN. * right: the page number for the high-order contents. * rlsn: the right page's original LSN. * indx: the number of entries that went to the left page. * npgno: the next page number * nlsn: the next page's original LSN (or 0 if no next page). * pg: the split page's contents before the split. */ BEGIN split ARG fileid u_int32_t lu ARG left db_pgno_t lu POINTER llsn DB_LSN * lu ARG right db_pgno_t lu POINTER rlsn DB_LSN * lu ARG indx u_int32_t lu ARG npgno db_pgno_t lu POINTER nlsn DB_LSN * lu DBT pg DBT s END /* * BTREE-rsplit: used to log a reverse-split * * pgno: the page number of the page copied over the root. * pgdbt: the page being copied on the root page. * rootent: last entry on the root page. * rootlsn: the root page's original lsn. */ BEGIN rsplit ARG fileid u_int32_t lu ARG pgno db_pgno_t lu DBT pgdbt DBT s DBT rootent DBT s POINTER rootlsn DB_LSN * lu END /* * BTREE-adj: used to log the adjustment of an index. * * pgno: the page modified. * lsn: the page's original lsn. * indx: the index adjusted. * indx_copy: the index to copy if inserting. * is_insert: 0 if a delete, 1 if an insert. */ BEGIN adj ARG fileid u_int32_t lu ARG pgno db_pgno_t lu POINTER lsn DB_LSN * lu ARG indx u_int32_t lu ARG indx_copy u_int32_t lu ARG is_insert u_int32_t lu END /* * BTREE-cadjust: used to adjust the count change in an internal page. * * pgno: the page modified. * lsn: the page's original lsn. * indx: the index to be adjusted. * adjust: the signed adjustment. * total: if the total tree entries count should be adjusted */ BEGIN cadjust ARG fileid u_int32_t lu ARG pgno db_pgno_t lu POINTER lsn DB_LSN * lu ARG indx u_int32_t lu ARG adjust int32_t ld ARG total int32_t ld END /* * BTREE-cdel: used to log the intent-to-delete of a cursor record. * * pgno: the page modified. * lsn: the page's original lsn. * indx: the index to be deleted. */ BEGIN cdel ARG fileid u_int32_t lu ARG pgno db_pgno_t lu POINTER lsn DB_LSN * lu ARG indx u_int32_t lu END