Update from db-2.3.12.
[kopensolaris-gnu/glibc.git] / db2 / db / db.src
1 /*-
2  * See the file LICENSE for redistribution information.
3  *
4  * Copyright (c) 1996, 1997
5  *      Sleepycat Software.  All rights reserved.
6  *      @(#)db.src      10.4 (Sleepycat) 11/2/97
7  */
8 #include "config.h"
9
10 PREFIX  db
11
12 /*
13  * addrem -- Add or remove an entry from a duplicate page.
14  *
15  * opcode:      identifies if this is an add or delete.
16  * fileid:      file identifier of the file being modified.
17  * pgno:        duplicate page number.
18  * indx:        location at which to insert or delete.
19  * nbytes:      number of bytes added/removed to/from the page.
20  * hdr:         header for the data item.
21  * dbt:         data that is deleted or is to be added.
22  * pagelsn:     former lsn of the page.
23  *
24  * If the hdr was NULL then, the dbt is a regular B_KEYDATA.
25  * If the dbt was NULL then the hdr is a complete item to be
26  * pasted on the page.
27  */
28 BEGIN addrem
29 ARG     opcode          u_int32_t       lu
30 ARG     fileid          u_int32_t       lu
31 ARG     pgno            db_pgno_t       lu
32 ARG     indx            u_int32_t       lu
33 ARG     nbytes          size_t          lu
34 DBT     hdr             DBT             s
35 DBT     dbt             DBT             s
36 POINTER pagelsn         DB_LSN *        lu
37 END
38
39 /*
40  * split -- Handles the split of a duplicate page.
41  *
42  * opcode:      defines whether we are splitting from or splitting onto
43  * fileid:      file identifier of the file being modified.
44  * pgno:        page number being split.
45  * pageimage:   entire page contents.
46  * pagelsn:     former lsn of the page.
47  */
48 BEGIN split
49 ARG     opcode          u_int32_t       lu
50 ARG     fileid          u_int32_t       lu
51 ARG     pgno            db_pgno_t       lu
52 DBT     pageimage       DBT             s
53 POINTER pagelsn         DB_LSN *        lu
54 END
55
56 /*
57  * big -- Handles addition and deletion of big key/data items.
58  *
59  * opcode:      identifies get/put.
60  * fileid:      file identifier of the file being modified.
61  * pgno:        page onto which data is being added/removed.
62  * prev_pgno:   the page before the one we are logging.
63  * next_pgno:   the page after the one we are logging.
64  * dbt:         data being written onto the page.
65  * pagelsn:     former lsn of the orig_page.
66  * prevlsn:     former lsn of the prev_pgno.
67  * nextlsn:     former lsn of the next_pgno. This is not currently used, but
68  *              may be used later if we actually do overwrites of big key/
69  *              data items in place.
70  */
71 BEGIN big
72 ARG     opcode          u_int32_t       lu
73 ARG     fileid          u_int32_t       lu
74 ARG     pgno            db_pgno_t       lu
75 ARG     prev_pgno       db_pgno_t       lu
76 ARG     next_pgno       db_pgno_t       lu
77 DBT     dbt             DBT             s
78 POINTER pagelsn         DB_LSN *        lu
79 POINTER prevlsn         DB_LSN *        lu
80 POINTER nextlsn         DB_LSN *        lu
81 END
82
83 /*
84  * ovref -- Handles increment/decrement of overflow page reference count.
85  *
86  * fileid:      identifies the file being modified.
87  * pgno:        page number whose ref count is being incremented/decremented.
88  * adjust:      the adjustment being made.
89  * lsn:         the page's original lsn.
90  */
91 BEGIN ovref
92 ARG     fileid          u_int32_t       lu
93 ARG     pgno            db_pgno_t       lu
94 ARG     adjust          int32_t         ld
95 POINTER lsn             DB_LSN *        lu
96 END
97
98 /*
99  * relink -- Handles relinking around a page.
100  *
101  * pgno:        the page being changed.
102  * lsn          the page's original lsn.
103  * prev:        the previous page.
104  * lsn_prev:    the previous page's original lsn.
105  * next:        the next page.
106  * lsn_next:    the previous page's original lsn.
107  */
108 BEGIN relink
109 ARG     fileid          u_int32_t       lu
110 ARG     pgno            db_pgno_t       lu
111 POINTER lsn             DB_LSN *        lu
112 ARG     prev            db_pgno_t       lu
113 POINTER lsn_prev        DB_LSN *        lu
114 ARG     next            db_pgno_t       lu
115 POINTER lsn_next        DB_LSN *        lu
116 END
117
118 /*
119  * Addpage -- Handles adding a new duplicate page onto the end of
120  * an existing duplicate page.
121  * fileid:      identifies the file being changed.
122  * pgno:        page number to which a new page is being added.
123  * lsn:         lsn of pgno
124  * nextpgno:    new page number being added.
125  * nextlsn:     lsn of nextpgno;
126  */
127 BEGIN addpage
128 ARG     fileid          u_int32_t       lu
129 ARG     pgno            db_pgno_t       lu
130 POINTER lsn             DB_LSN *        lu
131 ARG     nextpgno        db_pgno_t       lu
132 POINTER nextlsn         DB_LSN *        lu
133 END
134
135 /*
136  * Debug -- log an operation upon entering an access method.
137  * op:          Operation (cursor, c_close, c_get, c_put, c_del,
138  *              get, put, delete).
139  * fileid:      identifies the file being acted upon.
140  * key:         key paramater
141  * data:        data parameter
142  * flags:       flags parameter
143  */
144 BEGIN debug
145 DBT     op              DBT             s
146 ARG     fileid          u_int32_t       lu
147 DBT     key             DBT             s
148 DBT     data            DBT             s
149 ARG     arg_flags       u_int32_t       lu
150 END
151
152 /*
153  * noop -- do nothing, but get an LSN.
154  */
155 BEGIN noop
156 END