]> sourceware.org Git - glibc.git/blame - db2/include/db_am.h
Update.
[glibc.git] / db2 / include / db_am.h
CommitLineData
92f1da4d
UD
1/*-
2 * See the file LICENSE for redistribution information.
3 *
4 * Copyright (c) 1996, 1997
5 * Sleepycat Software. All rights reserved.
6 *
cc3fa755 7 * @(#)db_am.h 10.7 (Sleepycat) 10/25/97
92f1da4d
UD
8 */
9#ifndef _DB_AM_H
10#define _DB_AM_H
11
12#define DB_ISBIG 0x01
13#define DB_ADD_DUP 0x10
14#define DB_REM_DUP 0x20
15#define DB_ADD_BIG 0x30
16#define DB_REM_BIG 0x40
17#define DB_SPLITOLD 0x50
18#define DB_SPLITNEW 0x60
19
20/*
21 * Standard initialization and shutdown macros for all recovery functions.
22 *
23 * Requires the following local variables:
24 *
25 * DB *file_dbp, *mdbp;
26 * DB_MPOOLFILE *mpf;
27 * int ret;
28 */
29#define REC_INTRO(func) { \
30 file_dbp = mdbp = NULL; \
31 if ((ret = func(dbtp->data, &argp)) != 0) \
32 goto out; \
26b4d766 33 if ((ret = __db_fileid_to_db(logp, &mdbp, argp->fileid)) != 0) {\
92f1da4d
UD
34 if (ret == DB_DELETED) \
35 ret = 0; \
36 goto out; \
37 } \
38 if (mdbp == NULL) \
39 goto out; \
40 if (F_ISSET(mdbp, DB_AM_THREAD)) { \
41 if ((ret = __db_gethandle(mdbp, \
42 mdbp->type == DB_HASH ? __ham_hdup : __bam_bdup, \
43 &file_dbp)) != 0) \
44 goto out; \
45 } else \
46 file_dbp = mdbp; \
47 F_SET(file_dbp, DB_AM_RECOVER); \
48 mpf = file_dbp->mpf; \
49}
50#define REC_CLOSE { \
51 if (argp != NULL) \
cc3fa755 52 __db_free(argp); \
92f1da4d
UD
53 if (file_dbp != NULL) { \
54 F_CLR(file_dbp, DB_AM_RECOVER); \
55 if (F_ISSET(file_dbp, DB_AM_THREAD)) \
56 __db_puthandle(file_dbp); \
57 } \
58 return (ret); \
59}
60
61/*
62 * No-op versions of the same macros.
63 */
64#define REC_NOOP_INTRO(func) { \
65 if ((ret = func(dbtp->data, &argp)) != 0) \
66 return (ret); \
67}
68#define REC_NOOP_CLOSE { \
69 if (argp != NULL) \
cc3fa755 70 __db_free(argp); \
92f1da4d
UD
71 return (ret); \
72}
73
74/*
75 * Standard debugging macro for all recovery functions.
76 */
77#ifdef DEBUG_RECOVER
78#define REC_PRINT(func) \
79 (void)func(logp, dbtp, lsnp, redo, info);
80#else
81#define REC_PRINT(func) \
82 info = info; /* XXX: Shut the compiler up. */
83#endif
84
85#include "db_auto.h"
86#include "db_ext.h"
87#endif
This page took 0.039864 seconds and 5 git commands to generate.