Lines Matching defs:anon

55 typedef	unsigned long anoff_t;		/* anon offsets */
58 * Each anonymous page, either in memory or in swap, has an anon structure.
69 * an_hash is a hash list of anon slots. The list is hashed by
72 * associated anon slot.
77 * initialized to 1 when the anon slot is created in anon_alloc().
78 * If a client obtains an anon slot and allows multiple threads to
82 * destroy the anon slot. E.g., the seg_vn segment type protects
86 struct anon {
87 struct vnode *an_vp; /* vnode of anon page */
89 anoff_t an_off; /* offset of anon page */
91 struct anon *an_hash; /* hash table of anon slots */
96 #define AN_CACHE_ALIGN (1U << AN_CACHE_ALIGN_LOG2) /* anon address aligned */
110 * anon hash lists
111 * anon slot fields
113 * Fields in the anon slot which are read-only for the life of the slot
131 extern struct anon **anon_hash;
226 * has PAGESIZE/sizeof(u_long *) of anon pointers.
227 * There are two levels of arrays for anon array pointers larger
228 * than a chunk. The first level points to anon array chunks.
229 * The second level consists of chunks of anon pointers.
231 * If anon array is smaller than a chunk then the whole anon array
232 * is created (memory is allocated for whole anon array).
233 * If anon array is larger than a chunk only first level array is
235 * they are initialized with anon pointers.
239 pgcnt_t size; /* number of pointers to (anon) pages */
240 void **array_chunk; /* pointers to anon pointers or chunks of */
241 /* anon pointers */
243 /* whole anon array */
263 #define ANON_ALLOC_FORCE 0x2 /* force single level anon array */
264 #define ANON_GROWDOWN 0x4 /* anon array should grow downward */
269 * The anon_map structure is used by various clients of the anon layer to
276 * anon array. When mappings are private (or shared with
278 * a range of anon slots in the array given by the anon_map
280 * we have to store the size of the anon array in the anon_map
284 * A new rangelock scheme is introduced to make the anon layer scale.
288 * the reference to the anon array pointers or when references to
291 * anon array. A global set of condition variables, anon_array_cv,
303 krwlock_t a_rwlock; /* protect anon_map and anon array */
304 size_t size; /* size in bytes mapped by the anon array */
305 struct anon_hdr *ahp; /* anon array header pointer, containing */
306 /* anon pointer array(s) */
384 extern struct anon *anon_alloc(struct vnode *, anoff_t);
396 extern int anon_getpage(struct anon **, uint_t *, struct page **,
409 extern struct page *anon_private(struct anon **, struct seg *,
413 struct anon **, struct cred *);
427 extern void anon_swap_free(struct anon *, struct page *);
428 extern void anon_decref(struct anon *);
435 extern struct anon *anon_get_ptr(struct anon_hdr *, ulong_t);
437 extern struct anon *anon_get_next_ptr(struct anon_hdr *, ulong_t *);
438 extern int anon_set_ptr(struct anon_hdr *, ulong_t, struct anon *, int);
454 * Macros are provided as anon reservation is usually charged to the zone of
455 * the current process. In some cases (such as anon reserved by tmpfs), a