Lines Matching defs:seg
52 #include <vm/seg.h>
104 static int segmf_fault_gref_range(struct seg *seg, caddr_t addr, size_t len);
107 segmf_data_zalloc(struct seg *seg)
112 seg->s_ops = &segmf_ops;
113 seg->s_data = data;
118 segmf_create(struct seg *seg, void *args)
122 struct as *as = seg->s_as;
123 pgcnt_t i, npages = seg_pages(seg);
126 hat_map(as->a_hat, seg->s_base, seg->s_size, HAT_MAP);
128 data = segmf_data_zalloc(seg);
138 error = VOP_ADDMAP(VTOCVP(data->vp), 0, as, seg->s_base, seg->s_size,
143 seg->s_base, seg->s_size, HAT_UNLOAD_UNMAP);
148 * Duplicate a seg and return new segment in newseg.
151 segmf_dup(struct seg *seg, struct seg *newseg)
153 struct segmf_data *data = seg->s_data;
180 segmf_unmap(struct seg *seg, caddr_t addr, size_t len)
182 struct segmf_data *data = seg->s_data;
185 if (addr < seg->s_base || addr + len > seg->s_base + seg->s_size ||
189 if (addr != seg->s_base || len != seg->s_size)
192 hat_unload(seg->s_as->a_hat, addr, len,
195 off = (offset_t)seg_page(seg, addr);
199 (void) VOP_DELMAP(VTOCVP(data->vp), off, seg->s_as, addr, len,
202 seg_free(seg);
207 segmf_free(struct seg *seg)
209 struct segmf_data *data = seg->s_data;
210 pgcnt_t npages = seg_pages(seg);
221 segmf_faultpage(struct hat *hat, struct seg *seg, caddr_t addr,
224 struct segmf_data *data = seg->s_data;
232 idx = seg_page(seg, addr);
300 segmf_softunlock(struct hat *hat, struct seg *seg, caddr_t addr, size_t len)
302 struct segmf_data *data = seg->s_data;
312 struct as *as = seg->s_as;
326 segmf_fault_range(struct hat *hat, struct seg *seg, caddr_t addr, size_t len,
329 struct segmf_data *data = seg->s_data;
339 error = segmf_faultpage(hat, seg, a, type, data->prot);
351 segmf_softunlock(hat, seg, addr, done);
362 segmf_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len,
370 segmf_faulta(struct seg *seg, caddr_t addr)
377 segmf_setprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot)
384 segmf_checkprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot)
391 segmf_kluster(struct seg *seg, caddr_t addr, ssize_t delta)
398 segmf_sync(struct seg *seg, caddr_t addr, size_t len, int attr, uint_t flags)
409 segmf_incore(struct seg *seg, caddr_t addr, size_t len, char *vec)
421 segmf_lockop(struct seg *seg, caddr_t addr,
428 segmf_getprot(struct seg *seg, caddr_t addr, size_t len, uint_t *protv)
430 struct segmf_data *data = seg->s_data;
431 pgcnt_t pgno = seg_page(seg, addr + len) - seg_page(seg, addr) + 1;
443 segmf_getoffset(struct seg *seg, caddr_t addr)
445 return (addr - seg->s_base);
450 segmf_gettype(struct seg *seg, caddr_t addr)
457 segmf_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp)
459 struct segmf_data *data = seg->s_data;
467 segmf_advise(struct seg *seg, caddr_t addr, size_t len, uint_t behav)
474 segmf_dump(struct seg *seg)
479 segmf_pagelock(struct seg *seg, caddr_t addr, size_t len,
487 segmf_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc)
493 segmf_getmemid(struct seg *seg, caddr_t addr, memid_t *memid)
495 struct segmf_data *data = seg->s_data;
498 memid->val[1] = (uintptr_t)seg_page(seg, addr);
504 segmf_getpolicy(struct seg *seg, caddr_t addr)
511 segmf_capable(struct seg *seg, segcapability_t capability)
524 segmf_add_mfns(struct seg *seg, caddr_t addr, mfn_t mfn,
527 struct segmf_data *data = seg->s_data;
533 if (seg->s_ops != &segmf_ops)
557 base = seg_page(seg, addr);
564 fc = segmf_fault_range(seg->s_as->a_hat, seg, addr,
580 segmf_add_grefs(struct seg *seg, caddr_t addr, uint_t flags,
590 if (seg->s_ops != &segmf_ops)
604 data = seg->s_data;
605 idx = seg_page(seg, addr);
629 fc = segmf_fault_gref_range(seg, addr, cnt);
643 segmf_release_grefs(struct seg *seg, caddr_t addr, uint_t cnt)
658 idx = seg_page(seg, addr);
659 data = seg->s_data;
696 segmf_add_gref_pte(struct seg *seg, caddr_t addr, uint64_t pte_ma)
701 idx = seg_page(seg, addr);
702 data = seg->s_data;
709 segmf_fault_gref_range(struct seg *seg, caddr_t addr, size_t cnt)
723 data = seg->s_data;
724 idx = seg_page(seg, addr);
769 (size_t (*)(struct seg *))NULL, /* swapout */