Lines Matching refs:seg

105 static int segmf_fault_gref_range(struct seg *seg, caddr_t addr, size_t len);
108 segmf_data_zalloc(struct seg *seg) in segmf_data_zalloc() argument
113 seg->s_ops = &segmf_ops; in segmf_data_zalloc()
114 seg->s_data = data; in segmf_data_zalloc()
119 segmf_create(struct seg **segpp, void *args) in segmf_create()
121 struct seg *seg = *segpp; in segmf_create() local
124 struct as *as = seg->s_as; in segmf_create()
125 pgcnt_t i, npages = seg_pages(seg); in segmf_create()
128 hat_map(as->a_hat, seg->s_base, seg->s_size, HAT_MAP); in segmf_create()
130 data = segmf_data_zalloc(seg); in segmf_create()
140 error = VOP_ADDMAP(VTOCVP(data->vp), 0, as, seg->s_base, seg->s_size, in segmf_create()
145 seg->s_base, seg->s_size, HAT_UNLOAD_UNMAP); in segmf_create()
153 segmf_dup(struct seg *seg, struct seg *newseg) in segmf_dup() argument
155 struct segmf_data *data = seg->s_data; in segmf_dup()
182 segmf_unmap(struct seg *seg, caddr_t addr, size_t len) in segmf_unmap() argument
184 struct segmf_data *data = seg->s_data; in segmf_unmap()
187 if (addr < seg->s_base || addr + len > seg->s_base + seg->s_size || in segmf_unmap()
191 if (addr != seg->s_base || len != seg->s_size) in segmf_unmap()
194 hat_unload(seg->s_as->a_hat, addr, len, in segmf_unmap()
197 off = (offset_t)seg_page(seg, addr); in segmf_unmap()
201 (void) VOP_DELMAP(VTOCVP(data->vp), off, seg->s_as, addr, len, in segmf_unmap()
204 seg_free(seg); in segmf_unmap()
209 segmf_free(struct seg *seg) in segmf_free() argument
211 struct segmf_data *data = seg->s_data; in segmf_free()
212 pgcnt_t npages = seg_pages(seg); in segmf_free()
223 segmf_faultpage(struct hat *hat, struct seg *seg, caddr_t addr, in segmf_faultpage() argument
226 struct segmf_data *data = seg->s_data; in segmf_faultpage()
234 idx = seg_page(seg, addr); in segmf_faultpage()
302 segmf_softunlock(struct hat *hat, struct seg *seg, caddr_t addr, size_t len) in segmf_softunlock() argument
304 struct segmf_data *data = seg->s_data; in segmf_softunlock()
314 struct as *as = seg->s_as; in segmf_softunlock()
328 segmf_fault_range(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, in segmf_fault_range() argument
331 struct segmf_data *data = seg->s_data; in segmf_fault_range()
341 error = segmf_faultpage(hat, seg, a, type, data->prot); in segmf_fault_range()
353 segmf_softunlock(hat, seg, addr, done); in segmf_fault_range()
364 segmf_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, in segmf_fault() argument
372 segmf_faulta(struct seg *seg, caddr_t addr) in segmf_faulta() argument
379 segmf_setprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot) in segmf_setprot() argument
386 segmf_checkprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot) in segmf_checkprot() argument
393 segmf_kluster(struct seg *seg, caddr_t addr, ssize_t delta) in segmf_kluster() argument
400 segmf_sync(struct seg *seg, caddr_t addr, size_t len, int attr, uint_t flags) in segmf_sync() argument
411 segmf_incore(struct seg *seg, caddr_t addr, size_t len, char *vec) in segmf_incore() argument
423 segmf_lockop(struct seg *seg, caddr_t addr, in segmf_lockop() argument
430 segmf_getprot(struct seg *seg, caddr_t addr, size_t len, uint_t *protv) in segmf_getprot() argument
432 struct segmf_data *data = seg->s_data; in segmf_getprot()
433 pgcnt_t pgno = seg_page(seg, addr + len) - seg_page(seg, addr) + 1; in segmf_getprot()
445 segmf_getoffset(struct seg *seg, caddr_t addr) in segmf_getoffset() argument
447 return (addr - seg->s_base); in segmf_getoffset()
452 segmf_gettype(struct seg *seg, caddr_t addr) in segmf_gettype() argument
459 segmf_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp) in segmf_getvp() argument
461 struct segmf_data *data = seg->s_data; in segmf_getvp()
469 segmf_advise(struct seg *seg, caddr_t addr, size_t len, uint_t behav) in segmf_advise() argument
476 segmf_dump(struct seg *seg) in segmf_dump() argument
481 segmf_pagelock(struct seg *seg, caddr_t addr, size_t len, in segmf_pagelock() argument
489 segmf_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc) in segmf_setpagesize() argument
495 segmf_getmemid(struct seg *seg, caddr_t addr, memid_t *memid) in segmf_getmemid() argument
497 struct segmf_data *data = seg->s_data; in segmf_getmemid()
500 memid->val[1] = (uintptr_t)seg_page(seg, addr); in segmf_getmemid()
506 segmf_getpolicy(struct seg *seg, caddr_t addr) in segmf_getpolicy() argument
513 segmf_capable(struct seg *seg, segcapability_t capability) in segmf_capable() argument
526 segmf_add_mfns(struct seg *seg, caddr_t addr, mfn_t mfn, in segmf_add_mfns() argument
529 struct segmf_data *data = seg->s_data; in segmf_add_mfns()
535 if (seg->s_ops != &segmf_ops) in segmf_add_mfns()
559 base = seg_page(seg, addr); in segmf_add_mfns()
566 fc = segmf_fault_range(seg->s_as->a_hat, seg, addr, in segmf_add_mfns()
582 segmf_add_grefs(struct seg *seg, caddr_t addr, uint_t flags, in segmf_add_grefs() argument
592 if (seg->s_ops != &segmf_ops) in segmf_add_grefs()
606 data = seg->s_data; in segmf_add_grefs()
607 idx = seg_page(seg, addr); in segmf_add_grefs()
631 fc = segmf_fault_gref_range(seg, addr, cnt); in segmf_add_grefs()
645 segmf_release_grefs(struct seg *seg, caddr_t addr, uint_t cnt) in segmf_release_grefs() argument
660 idx = seg_page(seg, addr); in segmf_release_grefs()
661 data = seg->s_data; in segmf_release_grefs()
698 segmf_add_gref_pte(struct seg *seg, caddr_t addr, uint64_t pte_ma) in segmf_add_gref_pte() argument
703 idx = seg_page(seg, addr); in segmf_add_gref_pte()
704 data = seg->s_data; in segmf_add_gref_pte()
711 segmf_fault_gref_range(struct seg *seg, caddr_t addr, size_t cnt) in segmf_fault_gref_range() argument
725 data = seg->s_data; in segmf_fault_gref_range()
726 idx = seg_page(seg, addr); in segmf_fault_gref_range()
771 (size_t (*)(struct seg *))NULL, /* swapout */