Lines Matching +full:page +full:- +full:offset
1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
46 BUFHEAD *ovfl; /* Overflow page buffer header */
47 u_int32_t addr; /* Address of this page */
48 char *page; /* Actual page data */ member
65 int32_t bsize; /* Bucket/Page Size */
72 int32_t last_freed; /* Last overflow page freed */
84 u_int16_t bitmaps[NCACHED]; /* address of overflow page
99 BUFHEAD *cpage; /* Current page */
102 int error; /* Error Number -- for DBM
109 u_int32_t *mapp[NCACHED]; /* Pointers to page maps */
155 * Overflow page numbers are allocated per split point. At each doubling of
156 * the table, we can allocate extra pages. So, an overflow page number has
158 * which page at that split point is indicated (pages within split points are
169 (B) + hashp->HDRPAGES + ((B) ? hashp->SPARES[__log2((B)+1)-1] : 0)
171 BUCKET_TO_PAGE ( (1 << SPLITNUM((B))) -1 ) + OPAGENUM((B));
174 * page.h contains a detailed description of the page format.
176 * Normally, keys and data are accessed from offset tables in the top of
177 * each page which point to the beginning of the key and data. There are
178 * four flag values which may be stored in these offset tables which indicate
183 * the address of an overflow page. The format of
187 * PARTIAL_KEY This must be the first key/data pair on a page
188 * and implies that page contains only a partial key.
189 * That is, the key is too big to fit on a single page
190 * so it starts on this page and continues on the next.
191 * The format of the page is:
194 * KEY_OFF -- offset of the beginning of the key
195 * PARTIAL_KEY -- 1
196 * OVFL_PAGENO - page number of the next overflow page
197 * OVFLPAGE -- 0
199 * FULL_KEY This must be the first key/data pair on the page. It
203 * There is a complete key on the page but no data
204 * (because it wouldn't fit). The next page contains
207 * Page format it:
210 * KEY_OFF -- offset of the beginning of the key
211 * FULL_KEY -- 2
212 * OVFL_PAGENO - page number of the next overflow page
213 * OVFLPAGE -- 0
216 * This page contains no key, but part of a large
217 * data field, which is continued on the next page.
219 * Page format it:
222 * KEY_OFF -- offset of the beginning of the data on
223 * this page
224 * FULL_KEY -- 2
225 * OVFL_PAGENO - page number of the next overflow page
226 * OVFLPAGE -- 0
229 * This must be the first key/data pair on the page.
233 * This page contains a key and the beginning of the
235 * next page.
237 * Page format is:
240 * KEY_OFF -- offset of the beginning of the key
241 * FULL_KEY_DATA -- 3
242 * OVFL_PAGENO - page number of the next overflow page
243 * DATA_OFF -- offset of the beginning of the data
246 * This page contains the last page of a big data pair.
248 * on this page.
250 * Page format is:
253 * DATA_OFF -- offset of the beginning of the data on
254 * this page
255 * FULL_KEY_DATA -- 3
256 * OVFL_PAGENO - page number of the next overflow page
257 * OVFLPAGE -- 0
260 * not present if there is no next page).