Lines Matching defs:pagep

88 __big_insert(hashp, pagep, key, val)
90 PAGE16 *pagep;
102 NUM_ENT(pagep) = NUM_ENT(pagep) + 1;
106 pagep =
107 __add_bigpage(hashp, pagep, NUM_ENT(pagep) - 1, base_page);
108 if (!pagep)
112 NUM_ENT(pagep) = 1;
115 key_move_bytes = MIN(FREESPACE(pagep), key_size);
117 BIGKEYLEN(pagep) = key_move_bytes;
119 MIN(FREESPACE(pagep) - key_move_bytes, val_size);
120 BIGDATALEN(pagep) = val_move_bytes;
124 memmove(BIGKEY(pagep), key_data, key_move_bytes);
126 memmove(BIGDATA(pagep), val_data, val_move_bytes);
135 __put_page(hashp, pagep, A_RAW, 1);
148 __big_delete(HTAB *hashp, PAGE16 *pagep, indx_t ndx)
150 __big_delete(hashp, pagep, ndx)
152 PAGE16 *pagep;
159 pagep = __get_page(hashp, OADDR_TO_PAGE(DATA_OFF(pagep, ndx)), A_RAW);
160 if (!pagep)
167 while (NEXT_PGNO(pagep) != INVALID_PGNO) {
168 last_pagep = pagep;
169 pagep = __get_page(hashp, NEXT_PGNO(pagep), A_RAW);
170 if (!pagep)
176 __delete_page(hashp, pagep, A_OVFL);
196 PAGE16 *pagep, *hold_pagep;
208 if (cursorp->pagep)
209 pagep = hold_pagep = cursorp->pagep;
211 pagep = __get_page(hashp, cursorp->pgno, A_RAW);
212 if (!pagep)
223 next_pgno = OADDR_TO_PAGE(DATA_OFF(pagep, (cursorp->pgndx - 1)));
225 __put_page(hashp, pagep, A_RAW, 0);
226 pagep = __get_page(hashp, next_pgno, A_RAW);
227 if (!pagep)
231 while ((ksize > 0) && (BIGKEYLEN(pagep))) {
232 if (ksize < KEY_OFF(pagep, 0) ||
233 memcmp(BIGKEY(pagep), kkey, BIGKEYLEN(pagep))) {
234 __put_page(hashp, pagep, A_RAW, 0);
237 kkey += BIGKEYLEN(pagep);
238 ksize -= BIGKEYLEN(pagep);
239 if (NEXT_PGNO(pagep) != INVALID_PGNO) {
240 next_pgno = NEXT_PGNO(pagep);
241 __put_page(hashp, pagep, A_RAW, 0);
242 pagep = __get_page(hashp, next_pgno, A_RAW);
243 if (!pagep)
247 __put_page(hashp, pagep, A_RAW, 0);
264 __big_keydata(hashp, pagep, key, val, ndx)
266 PAGE16 *pagep;
275 __get_page(hashp, OADDR_TO_PAGE(DATA_OFF(pagep, ndx)), A_RAW);
295 __get_bigkey(HTAB *hashp, PAGE16 *pagep, indx_t ndx, DBT *key)
297 __get_bigkey(hashp, pagep, ndx, key)
299 PAGE16 *pagep;
307 __get_page(hashp, OADDR_TO_PAGE(DATA_OFF(pagep, ndx)), A_RAW);
308 if (!pagep)
328 PAGE16 *pagep;
333 pagep = __get_page(hashp,
335 if (!pagep)
338 pagep = __get_page(hashp, item_info->pgno, A_RAW);
339 if (!pagep)
344 while (!BIGDATALEN(pagep)) {
345 next_pgno = NEXT_PGNO(pagep);
346 __put_page(hashp, pagep, A_RAW, 0);
347 pagep = __get_page(hashp, next_pgno, A_RAW);
348 if (!pagep)
352 val->size = collect_data(hashp, pagep, 0);
357 __put_page(hashp, pagep, A_RAW, 0);
373 collect_key(hashp, pagep, len, last_page)
375 PAGE16 *pagep;
387 if (BIGDATALEN(pagep)) {
388 totlen = len + BIGKEYLEN(pagep);
395 BIGKEY(pagep), BIGKEYLEN(pagep));
397 *last_page = ADDR(pagep);
402 if (BIGKEYLEN(pagep) == 0) {
408 totlen = len + BIGKEYLEN(pagep);
410 /* Set pagep to the next page in the chain. */
412 *last_page = ADDR(pagep);
413 next_pgno = NEXT_PGNO(pagep);
418 save_addr = ADDR(pagep);
423 assert(save_addr == ADDR(pagep));
425 memcpy(hashp->bigkey_buf + len, BIGKEY(pagep), BIGKEYLEN(pagep));
441 collect_data(hashp, pagep, len)
443 PAGE16 *pagep;
454 if (NEXT_PGNO(pagep) == INVALID_PGNO) {
457 totlen = len + BIGDATALEN(pagep);
461 memcpy(hashp->bigdata_buf + totlen - BIGDATALEN(pagep),
462 BIGDATA(pagep), BIGDATALEN(pagep));
465 totlen = len + BIGDATALEN(pagep);
467 /* Set pagep to the next page in the chain. */
468 next_pgno = NEXT_PGNO(pagep);
474 save_addr = ADDR(pagep);
478 assert(save_addr == ADDR(pagep));
480 memcpy(hashp->bigdata_buf + totlen - BIGDATALEN(pagep),
481 BIGDATA(pagep), BIGDATALEN(pagep));