Lines Matching refs:seg
31 static int seghole_dup(struct seg *, struct seg *);
32 static int seghole_unmap(struct seg *, caddr_t, size_t);
33 static void seghole_free(struct seg *);
34 static faultcode_t seghole_fault(struct hat *, struct seg *, caddr_t, size_t,
36 static faultcode_t seghole_faulta(struct seg *, caddr_t);
37 static int seghole_setprot(struct seg *, caddr_t, size_t, uint_t);
38 static int seghole_checkprot(struct seg *, caddr_t, size_t, uint_t);
39 static int seghole_sync(struct seg *, caddr_t, size_t, int, uint_t);
40 static size_t seghole_incore(struct seg *, caddr_t, size_t, char *);
41 static int seghole_lockop(struct seg *, caddr_t, size_t, int, int, ulong_t *,
43 static int seghole_getprot(struct seg *, caddr_t, size_t, uint_t *);
44 static u_offset_t seghole_getoffset(struct seg *, caddr_t);
45 static int seghole_gettype(struct seg *, caddr_t);
46 static int seghole_getvp(struct seg *, caddr_t, struct vnode **);
47 static int seghole_advise(struct seg *, caddr_t, size_t, uint_t);
48 static void seghole_dump(struct seg *);
49 static int seghole_pagelock(struct seg *, caddr_t, size_t, struct page ***,
51 static int seghole_setpagesize(struct seg *, caddr_t, size_t, uint_t);
52 static int seghole_capable(struct seg *, segcapability_t);
85 seghole_create(struct seg **segpp, void *argsp) in seghole_create()
87 struct seg *seg = *segpp; in seghole_create() local
94 seg->s_ops = &seghole_ops; in seghole_create()
95 seg->s_data = data; in seghole_create()
96 seg->s_flags = S_HOLE; in seghole_create()
102 seghole_dup(struct seg *seg, struct seg *newseg) in seghole_dup() argument
104 seghole_data_t *shd = (seghole_data_t *)seg->s_data; in seghole_dup()
107 ASSERT(seg->s_as && AS_WRITE_HELD(seg->s_as)); in seghole_dup()
112 newseg->s_ops = seg->s_ops; in seghole_dup()
120 seghole_unmap(struct seg *seg, caddr_t addr, size_t len) in seghole_unmap() argument
122 ASSERT(seg->s_as && AS_WRITE_HELD(seg->s_as)); in seghole_unmap()
125 if (addr == seg->s_base && len == seg->s_size) { in seghole_unmap()
126 seg_free(seg); in seghole_unmap()
131 if (addr == seg->s_base) { in seghole_unmap()
132 seg->s_base += len; in seghole_unmap()
133 seg->s_size -= len; in seghole_unmap()
138 if ((addr + len) == (seg->s_base + seg->s_size)) { in seghole_unmap()
139 seg->s_size -= len; in seghole_unmap()
148 seghole_free(struct seg *seg) in seghole_free() argument
150 seghole_data_t *data = (seghole_data_t *)seg->s_data; in seghole_free()
155 seg->s_data = NULL; in seghole_free()
160 seghole_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, in seghole_fault() argument
163 ASSERT(seg->s_as && AS_LOCK_HELD(seg->s_as)); in seghole_fault()
170 seghole_faulta(struct seg *seg, caddr_t addr) in seghole_faulta() argument
177 seghole_setprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot) in seghole_setprot() argument
179 ASSERT(seg->s_as && AS_LOCK_HELD(seg->s_as)); in seghole_setprot()
186 seghole_checkprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot) in seghole_checkprot() argument
188 ASSERT(seg->s_as && AS_LOCK_HELD(seg->s_as)); in seghole_checkprot()
195 seghole_sync(struct seg *seg, caddr_t addr, size_t len, int attr, uint_t flags) in seghole_sync() argument
203 seghole_incore(struct seg *seg, caddr_t addr, size_t len, char *vec) in seghole_incore() argument
205 ASSERT(seg->s_as && AS_LOCK_HELD(seg->s_as)); in seghole_incore()
212 seghole_lockop(struct seg *seg, caddr_t addr, size_t len, int attr, int op, in seghole_lockop() argument
224 seghole_getprot(struct seg *seg, caddr_t addr, size_t len, uint_t *protv) in seghole_getprot() argument
228 ASSERT(seg->s_as && AS_LOCK_HELD(seg->s_as)); in seghole_getprot()
234 pgno = seg_page(seg, addr + len) - seg_page(seg, addr) + 1; in seghole_getprot()
244 seghole_getoffset(struct seg *seg, caddr_t addr) in seghole_getoffset() argument
255 seghole_gettype(struct seg *seg, caddr_t addr) in seghole_gettype() argument
262 seghole_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp) in seghole_getvp() argument
264 ASSERT(seg->s_as && AS_LOCK_HELD(seg->s_as)); in seghole_getvp()
271 seghole_advise(struct seg *seg, caddr_t addr, size_t len, uint_t behav) in seghole_advise() argument
278 seghole_dump(struct seg *seg) in seghole_dump() argument
285 seghole_pagelock(struct seg *seg, caddr_t addr, size_t len, struct page ***ppp, in seghole_pagelock() argument
293 seghole_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc) in seghole_setpagesize() argument
300 seghole_capable(struct seg *seg, segcapability_t capability) in seghole_capable() argument