Lines Matching full:as
68 * The segment list is represented as an AVL tree.
73 * address space structure as shown below:
107 struct as { struct
109 uchar_t a_flags; /* as attributes */ argument
114 caddr_t a_userlimit; /* highest allowable address in this as */ argument
138 #define AS_ISPGLCK(as) ((as)->a_flags & AS_PAGLCK) argument
139 #define AS_ISCLAIMGAP(as) ((as)->a_flags & AS_CLAIMGAP) argument
140 #define AS_ISUNMAPWAIT(as) ((as)->a_flags & AS_UNMAPWAIT) argument
141 #define AS_ISNOUNMAPWAIT(as) ((as)->a_flags & AS_NOUNMAPWAIT) argument
143 #define AS_SETPGLCK(as) ((as)->a_flags |= AS_PAGLCK) argument
144 #define AS_SETCLAIMGAP(as) ((as)->a_flags |= AS_CLAIMGAP) argument
145 #define AS_SETUNMAPWAIT(as) ((as)->a_flags |= AS_UNMAPWAIT) argument
146 #define AS_SETNOUNMAPWAIT(as) ((as)->a_flags |= AS_NOUNMAPWAIT) argument
148 #define AS_CLRPGLCK(as) ((as)->a_flags &= ~AS_PAGLCK) argument
149 #define AS_CLRCLAIMGAP(as) ((as)->a_flags &= ~AS_CLAIMGAP) argument
150 #define AS_CLRUNMAPWAIT(as) ((as)->a_flags &= ~AS_UNMAPWAIT) argument
151 #define AS_CLRNOUNMAPWAIT(as) ((as)->a_flags &= ~AS_NOUNMAPWAIT) argument
153 #define AS_TYPE_64BIT(as) \ argument
154 (((as)->a_userlimit > (caddr_t)UINT32_MAX) ? 1 : 0)
177 * as as_free, as_umap, and as_setprot will block indefinitely until the
184 typedef void (*callback_func_t)(struct as *, void *, uint_t);
223 extern struct as kas; /* kernel's address space */
227 * whenever we acquire the address space lock as reader to assure that it can
231 * acquiring those same locks to be called with the address space lock held as
238 #define AS_LOCK_ENTER(as, type) rw_enter(&(as)->a_lock, \ argument
240 #define AS_LOCK_EXIT(as) rw_exit(&(as)->a_lock) argument
241 #define AS_LOCK_DESTROY(as) rw_destroy(&(as)->a_lock) argument
242 #define AS_LOCK_TRYENTER(as, type) rw_tryenter(&(as)->a_lock, \ argument
248 #define AS_LOCK_HELD(as) RW_LOCK_HELD(&(as)->a_lock) argument
249 #define AS_READ_HELD(as) RW_READ_HELD(&(as)->a_lock) argument
250 #define AS_WRITE_HELD(as) RW_WRITE_HELD(&(as)->a_lock) argument
255 #define AS_SEGFIRST(as) avl_first(&(as)->a_segtree) argument
256 #define AS_SEGNEXT(as, seg) AVL_NEXT(&(as)->a_segtree, (seg)) argument
257 #define AS_SEGPREV(as, seg) AVL_PREV(&(as)->a_segtree, (seg)) argument
262 void as_avlinit(struct as *);
263 struct seg *as_segat(struct as *as, caddr_t addr);
264 void as_rangelock(struct as *as);
265 void as_rangeunlock(struct as *as);
266 struct as *as_alloc();
267 void as_free(struct as *as);
268 int as_dup(struct as *as, struct proc *forkedproc);
269 struct seg *as_findseg(struct as *as, caddr_t addr, int tail);
270 int as_addseg(struct as *as, struct seg *newseg);
271 struct seg *as_removeseg(struct as *as, struct seg *seg);
272 faultcode_t as_fault(struct hat *hat, struct as *as, caddr_t addr, size_t size,
274 faultcode_t as_faulta(struct as *as, caddr_t addr, size_t size);
275 int as_setprot(struct as *as, caddr_t addr, size_t size, uint_t prot);
276 int as_checkprot(struct as *as, caddr_t addr, size_t size, uint_t prot);
277 int as_unmap(struct as *as, caddr_t addr, size_t size);
278 int as_map(struct as *as, caddr_t addr, size_t size, segcreate_func_t crfp,
280 int as_map_locked(struct as *as, caddr_t addr, size_t size,
282 void as_purge(struct as *as);
283 int as_gap(struct as *as, size_t minlen, caddr_t *basep, size_t *lenp,
285 int as_gap_aligned(struct as *as, size_t minlen, caddr_t *basep,
289 int as_memory(struct as *as, caddr_t *basep, size_t *lenp);
290 size_t as_swapout(struct as *as);
291 int as_incore(struct as *as, caddr_t addr, size_t size, char *vec,
293 int as_ctl(struct as *as, caddr_t addr, size_t size, int func, int attr,
295 int as_pagelock(struct as *as, struct page ***ppp, caddr_t addr,
297 void as_pageunlock(struct as *as, struct page **pp, caddr_t addr,
299 int as_setpagesize(struct as *as, caddr_t addr, size_t size, uint_t szc,
301 int as_set_default_lpsize(struct as *as, caddr_t addr, size_t size);
302 void as_setwatch(struct as *as);
303 void as_clearwatch(struct as *as);
304 int as_getmemid(struct as *, caddr_t, memid_t *);
306 int as_add_callback(struct as *, void (*)(), void *, uint_t,
308 uint_t as_delete_callback(struct as *, void *);