Lines Matching refs:seg

76  * The seg structure contains a lock to prevent races, the base virtual
102 typedef struct seg {
111 kmutex_t s_pmtx; /* protects seg's pcache list */
112 pcache_link_t s_phead; /* head of seg's pcache list */
115 #define S_PURGE (0x01) /* seg should be purged in as_gap() */
118 int (*dup)(struct seg *, struct seg *);
119 int (*unmap)(struct seg *, caddr_t, size_t);
120 void (*free)(struct seg *);
121 faultcode_t (*fault)(struct hat *, struct seg *, caddr_t, size_t,
123 faultcode_t (*faulta)(struct seg *, caddr_t);
124 int (*setprot)(struct seg *, caddr_t, size_t, uint_t);
125 int (*checkprot)(struct seg *, caddr_t, size_t, uint_t);
126 int (*kluster)(struct seg *, caddr_t, ssize_t);
127 size_t (*swapout)(struct seg *);
128 int (*sync)(struct seg *, caddr_t, size_t, int, uint_t);
129 size_t (*incore)(struct seg *, caddr_t, size_t, char *);
130 int (*lockop)(struct seg *, caddr_t, size_t, int, int, ulong_t *,
132 int (*getprot)(struct seg *, caddr_t, size_t, uint_t *);
133 u_offset_t (*getoffset)(struct seg *, caddr_t);
134 int (*gettype)(struct seg *, caddr_t);
135 int (*getvp)(struct seg *, caddr_t, struct vnode **);
136 int (*advise)(struct seg *, caddr_t, size_t, uint_t);
137 void (*dump)(struct seg *);
138 int (*pagelock)(struct seg *, caddr_t, size_t, struct page ***,
140 int (*setpagesize)(struct seg *, caddr_t, size_t, uint_t);
141 int (*getmemid)(struct seg *, caddr_t, memid_t *);
142 struct lgrp_mem_policy_info *(*getpolicy)(struct seg *, caddr_t);
143 int (*capable)(struct seg *, segcapability_t);
144 int (*inherit)(struct seg *, caddr_t, size_t, uint_t);
153 extern struct seg *seg_alloc(struct as *as, caddr_t base, size_t size);
155 struct seg *seg);
156 extern void seg_unmap(struct seg *seg);
157 extern void seg_free(struct seg *seg);
165 extern struct page **seg_plookup(struct seg *seg, struct anon_map *amp,
167 extern void seg_pinactive(struct seg *seg, struct anon_map *amp,
171 extern void seg_ppurge(struct seg *seg, struct anon_map *amp,
175 extern int seg_pinsert_check(struct seg *seg, struct anon_map *amp,
177 extern int seg_pinsert(struct seg *seg, struct anon_map *amp,
243 #define seg_page(seg, addr) \
244 (((uintptr_t)((addr) - (seg)->s_base)) >> PAGESHIFT)
246 #define seg_pages(seg) \
247 (((uintptr_t)((seg)->s_size + PAGEOFFSET)) >> PAGESHIFT)
249 #define IE_NOMEM -1 /* internal to seg layer */
250 #define IE_RETRY -2 /* internal to seg layer */
251 #define IE_REATTACH -3 /* internal to seg layer */
256 int seg_inherit_notsup(struct seg *, caddr_t, size_t, uint_t);
273 uint_t seg_page(struct seg *, caddr_t);
274 uint_t seg_pages(struct seg *);
278 boolean_t seg_can_change_zones(struct seg *);
279 size_t seg_swresv(struct seg *);