Lines Matching defs:bp

107 	BUFHEAD *bp;
115 bp = prev_bp->ovfl;
116 if (!bp || (bp->addr != addr))
117 bp = NULL;
129 bp = PTROF(segp[segment_ndx]);
134 if (!bp) {
135 bp = newbuf(hashp, addr, prev_bp);
136 if (!bp ||
137 __get_page(hashp, bp->page, addr, !prev_bp, is_disk, 0))
141 (BUFHEAD *)((intptr_t)bp | is_disk_mask);
143 BUF_REMOVE(bp);
144 MRU_INSERT(bp);
146 return (bp);
158 BUFHEAD *bp; /* The buffer we're going to use */
166 bp = LRU;
169 if (bp == hashp->cpage) {
170 BUF_REMOVE(bp);
171 MRU_INSERT(bp);
172 bp = LRU;
175 /* If prev_bp is part of bp overflow, create a new buffer. */
176 if (hashp->nbufs == 0 && prev_bp && bp->ovfl) {
179 for (ovfl = bp->ovfl; ovfl ; ovfl = ovfl->ovfl) {
191 if (hashp->nbufs || (bp->flags & BUF_PIN) || bp == hashp->cpage) {
193 if ((bp = (BUFHEAD *)calloc(1, sizeof(BUFHEAD))) == NULL)
195 if ((bp->page = (char *)calloc(1, hashp->BSIZE)) == NULL) {
196 free(bp);
203 BUF_REMOVE(bp);
208 if ((bp->addr != 0) || (bp->flags & BUF_BUCKET)) {
213 shortp = (u_int16_t *)bp->page;
216 if ((bp->flags & BUF_MOD) && __put_page(hashp, bp->page,
217 bp->addr, (int)IS_BUCKET(bp->flags), 0))
227 if (IS_BUCKET(bp->flags)) {
228 segment_ndx = bp->addr & (hashp->SGSIZE - 1);
229 segp = hashp->dir[bp->addr >> hashp->SSHIFT];
235 ((bp->flags & BUF_MOD) ||
246 for (xbp = bp; xbp->ovfl;) {
272 bp->addr = addr;
275 bp->addr, (bp->ovfl ? bp->ovfl->addr : 0), 0);
277 bp->ovfl = NULL;
286 (bp ? bp->addr : 0));
288 prev_bp->ovfl = bp;
289 bp->flags = 0;
291 bp->flags = BUF_BUCKET;
292 MRU_INSERT(bp);
293 return (bp);
322 BUFHEAD *bp;
327 for (bp = LRU; bp != &hashp->bufhead;) {
329 if (bp->addr || IS_BUCKET(bp->flags)) {
330 if (to_disk && (bp->flags & BUF_MOD) &&
331 __put_page(hashp, bp->page,
332 bp->addr, IS_BUCKET(bp->flags), 0))
337 if (bp->page) {
338 (void)memset(bp->page, 0, hashp->BSIZE);
339 free(bp->page);
341 BUF_REMOVE(bp);
342 free(bp);
343 bp = LRU;
345 bp = bp->prev;
351 __reclaim_buf(HTAB *hashp, BUFHEAD *bp)
353 bp->ovfl = NULL;
354 bp->addr = 0;
355 bp->flags = 0;
356 BUF_REMOVE(bp);
357 LRU_INSERT(bp);