Lines Matching refs:hashp

86 #define	MRU	hashp->bufhead.next
87 #define LRU hashp->bufhead.prev
89 #define MRU_INSERT(B) BUF_INSERT((B), &hashp->bufhead)
102 __get_buf(HTAB *hashp, u_int32_t addr, in __get_buf() argument
121 segment_ndx = addr & (hashp->SGSIZE - 1); in __get_buf()
124 segp = hashp->dir[addr >> hashp->SSHIFT]; in __get_buf()
130 is_disk = is_disk_mask || !hashp->new_file; in __get_buf()
134 bp = newbuf(hashp, addr, prev_bp); in __get_buf()
136 __get_page(hashp, bp->page, addr, !prev_bp, is_disk, 0)) in __get_buf()
155 newbuf(HTAB *hashp, u_int32_t addr, BUFHEAD *prev_bp) in newbuf() argument
168 if (bp == hashp->cpage) { in newbuf()
175 if (hashp->nbufs == 0 && prev_bp && bp->ovfl) { in newbuf()
180 hashp->nbufs++; in newbuf()
190 if (hashp->nbufs || (bp->flags & BUF_PIN) || bp == hashp->cpage) { in newbuf()
194 if ((bp->page = (char *)calloc(1, hashp->BSIZE)) == NULL) { in newbuf()
198 if (hashp->nbufs) in newbuf()
199 hashp->nbufs--; in newbuf()
215 if ((bp->flags & BUF_MOD) && __put_page(hashp, bp->page, in newbuf()
227 segment_ndx = bp->addr & (hashp->SGSIZE - 1); in newbuf()
228 segp = hashp->dir[bp->addr >> hashp->SSHIFT]; in newbuf()
233 if (hashp->new_file && in newbuf()
259 if ((xbp->flags & BUF_MOD) && __put_page(hashp, in newbuf()
296 __buf_init(HTAB *hashp, int nbytes) in __buf_init() argument
301 bfp = &(hashp->bufhead); in __buf_init()
302 npages = (nbytes + hashp->BSIZE - 1) >> hashp->BSHIFT; in __buf_init()
305 hashp->nbufs = npages; in __buf_init()
319 __buf_free(HTAB *hashp, int do_free, int to_disk) in __buf_free() argument
326 for (bp = LRU; bp != &hashp->bufhead;) { in __buf_free()
330 __put_page(hashp, bp->page, in __buf_free()
337 (void)memset(bp->page, 0, hashp->BSIZE); in __buf_free()
350 __reclaim_buf(HTAB *hashp, BUFHEAD *bp) in __reclaim_buf() argument