2N/A * Copyright (c) 1990, 1993, 1994 2N/A * The Regents of the University of California. All rights reserved. 2N/A * This code is derived from software contributed to Berkeley by 2N/A * Redistribution and use in source and binary forms, with or without 2N/A * modification, are permitted provided that the following conditions 2N/A * 1. Redistributions of source code must retain the above copyright 2N/A * notice, this list of conditions and the following disclaimer. 2N/A * 2. Redistributions in binary form must reproduce the above copyright 2N/A * notice, this list of conditions and the following disclaimer in the 2N/A * documentation and/or other materials provided with the distribution. 2N/A * 3. All advertising materials mentioning features or use of this software 2N/A * must display the following acknowledgement: 2N/A * This product includes software developed by the University of 2N/A * California, Berkeley and its contributors. 2N/A * 4. Neither the name of the University nor the names of its contributors 2N/A * may be used to endorse or promote products derived from this software 2N/A * without specific prior written permission. 2N/A * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2N/A * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2N/A * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2N/A * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2N/A * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2N/A * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2N/A * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2N/A * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2N/A * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2N/A * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2N/A#
endif /* LIBC_SCCS and not lint */ 2N/A * You need to do an insert and the key/data pair is greater than 2N/A * MINFILL * the bucket size 2N/A /* There's just going to be one entry on this page. */ 2N/A /* Move the key's data. */ 2N/A /* Mark the page as to how much key & data is on this page. */ 2N/A /* Note big pages build beginning --> end, not vice versa. */ 2N/A * Called when we need to delete a big pair. 2N/A * Traverse through the pages, freeing the previous one (except 2N/A * the first) at each new page. 2N/A /* Free the last page in the chain. */ 2N/A * Given a key, indicates whether the big key at cursorp matches the 2N/A /* Chances are, hashp->cpage is the base page. */ 2N/A * Now, get the first page with the big stuff on it. 2N/A * KLUDGE: we know that cursor is looking at the _next_ item, so 2N/A * we have to look at pgndx - 1. 2N/A /* While there are both keys to compare. */ 2N/A * Fill in the key and data for this big pair. 2N/A /* Create an item_info to direct __big_return to the beginning pgno. */ 2N/A * Return the big key on page, ndx. 2N/A /* Solaris Kerberos */ 2N/A /* Solaris Kerberos */ 2N/A * Return the big key and data indicated in item_info. 2N/A /* Get first page with big pair on it. */ 2N/A /* Traverse through the bigkey pages until a page with data is found. */ 2N/A * Given a page with a big key on it, traverse through the pages counting data 2N/A * length, and collect all of the data on the way up. Store the key in 2N/A * hashp->bigkey_buf. last_page indicates to the calling function what the 2N/A * last page with key on it is; this will help if you later want to retrieve 2N/A * Does the work for __get_bigkey. 2N/A * Return total length of data; -1 if error. 2N/A /* If this is the last page with key. */ 2N/A /* Key filled up all of last key page, so we've gone 1 too far. */ 2N/A /* Set pagep to the next page in the chain. */ 2N/A * Given a page with big data on it, recur through the pages counting data 2N/A * length, and collect all of the data on the way up. Store the data in 2N/A * hashp->bigdata_buf. 2N/A * Does the work for __big_return. 2N/A * Return total length of data; -1 if error. 2N/A /* If there is no next page. */ 2N/A /* Set pagep to the next page in the chain. */