00001 /*- 00002 * See the file LICENSE for redistribution information. 00003 * 00004 * Copyright (c) 1996, 1997, 1998, 1999, 2000 00005 * Sleepycat Software. All rights reserved. 00006 */ 00007 /* 00008 * Copyright (c) 1995, 1996 00009 * The President and Fellows of Harvard University. All rights reserved. 00010 * 00011 * Redistribution and use in source and binary forms, with or without 00012 * modification, are permitted provided that the following conditions 00013 * are met: 00014 * 1. Redistributions of source code must retain the above copyright 00015 * notice, this list of conditions and the following disclaimer. 00016 * 2. Redistributions in binary form must reproduce the above copyright 00017 * notice, this list of conditions and the following disclaimer in the 00018 * documentation and/or other materials provided with the distribution. 00019 * 3. Neither the name of the University nor the names of its contributors 00020 * may be used to endorse or promote products derived from this software 00021 * without specific prior written permission. 00022 * 00023 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 00024 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00025 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00026 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 00027 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00028 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 00029 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00030 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00031 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 00032 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00033 * SUCH DAMAGE. 00034 * 00035 * $Id: db__dispatch_8h-source.html,v 1.1 2008/06/08 10:17:26 sebdiaz Exp $ 00036 */ 00037 00038 #ifndef _DB_DISPATCH_H 00039 #define _DB_DISPATCH_H 00040 00041 struct __db_txnhead; typedef struct __db_txnhead DB_TXNHEAD; 00042 struct __db_txnlist; typedef struct __db_txnlist DB_TXNLIST; 00043 00044 /* 00045 * Declarations and typedefs for the list of transaction IDs used during 00046 * recovery. This is a generic list used to pass along whatever information 00047 * we need during recovery. 00048 */ 00049 struct __db_txnhead { 00050 LIST_HEAD(__db_headlink, __db_txnlist) head; 00051 u_int32_t maxid; 00052 int32_t generation; 00053 }; 00054 00055 #define TXNLIST_INVALID_ID 0xffffffff 00056 struct __db_txnlist { 00057 enum { TXNLIST_DELETE, TXNLIST_TXNID } type; 00058 LIST_ENTRY(__db_txnlist) links; 00059 union { 00060 struct { 00061 u_int32_t txnid; 00062 int32_t generation; 00063 } t; 00064 struct { 00065 #define TXNLIST_FLAG_DELETED 0x1 00066 #define TXNLIST_FLAG_CLOSED 0x2 00067 u_int32_t flags; 00068 int32_t fileid; 00069 u_int32_t count; 00070 char *fname; 00071 } d; 00072 } u; 00073 }; 00074 00075 #define DB_user_BEGIN 10000 00076 00077 #endif