Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vm_map.h
Show First 20 Lines • Show All 217 Lines • ▼ Show 20 Lines | #ifdef DIAGNOSTIC | ||||
int nupdates; | int nupdates; | ||||
#endif | #endif | ||||
}; | }; | ||||
/* | /* | ||||
* vm_flags_t values | * vm_flags_t values | ||||
*/ | */ | ||||
#define MAP_WIREFUTURE 0x01 /* wire all future pages */ | #define MAP_WIREFUTURE 0x01 /* wire all future pages */ | ||||
#define MAP_BUSY_WAKEUP 0x02 | #define MAP_BUSY_WAKEUP 0x02 /* thread(s) waiting on busy state */ | ||||
#define MAP_IS_SUB_MAP 0x04 /* has parent */ | #define MAP_IS_SUB_MAP 0x04 /* has parent */ | ||||
#define MAP_ASLR 0x08 /* enabled ASLR */ | #define MAP_ASLR 0x08 /* enabled ASLR */ | ||||
#define MAP_ASLR_IGNSTART 0x10 | #define MAP_ASLR_IGNSTART 0x10 /* ASLR ignores data segment */ | ||||
#define MAP_REPLENISH 0x20 | #define MAP_REPLENISH 0x20 /* kmapent zone needs to be refilled */ | ||||
#define MAP_WXORX 0x40 /* enforce W^X */ | #define MAP_WXORX 0x40 /* enforce W^X */ | ||||
#define MAP_ASLR_STACK 0x80 /* stack location is randomized */ | |||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
#if defined(KLD_MODULE) && !defined(KLD_TIED) | #if defined(KLD_MODULE) && !defined(KLD_TIED) | ||||
#define vm_map_max(map) vm_map_max_KBI((map)) | #define vm_map_max(map) vm_map_max_KBI((map)) | ||||
#define vm_map_min(map) vm_map_min_KBI((map)) | #define vm_map_min(map) vm_map_min_KBI((map)) | ||||
#define vm_map_pmap(map) vm_map_pmap_KBI((map)) | #define vm_map_pmap(map) vm_map_pmap_KBI((map)) | ||||
#define vm_map_range_valid(map, start, end) \ | #define vm_map_range_valid(map, start, end) \ | ||||
vm_map_range_valid_KBI((map), (start), (end)) | vm_map_range_valid_KBI((map), (start), (end)) | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | struct vmspace { | ||||
struct shmmap_state *vm_shm; /* SYS5 shared memory private data XXX */ | struct shmmap_state *vm_shm; /* SYS5 shared memory private data XXX */ | ||||
segsz_t vm_swrss; /* resident set size before last swap */ | segsz_t vm_swrss; /* resident set size before last swap */ | ||||
segsz_t vm_tsize; /* text size (pages) XXX */ | segsz_t vm_tsize; /* text size (pages) XXX */ | ||||
segsz_t vm_dsize; /* data size (pages) XXX */ | segsz_t vm_dsize; /* data size (pages) XXX */ | ||||
segsz_t vm_ssize; /* stack size (pages) */ | segsz_t vm_ssize; /* stack size (pages) */ | ||||
caddr_t vm_taddr; /* (c) user virtual address of text */ | caddr_t vm_taddr; /* (c) user virtual address of text */ | ||||
caddr_t vm_daddr; /* (c) user virtual address of data */ | caddr_t vm_daddr; /* (c) user virtual address of data */ | ||||
caddr_t vm_maxsaddr; /* user VA at max stack growth */ | caddr_t vm_maxsaddr; /* user VA at max stack growth */ | ||||
vm_size_t vm_stkgap; /* stack gap size in bytes */ | vm_offset_t vm_stacktop; /* top of the stack, may not be page-aligned */ | ||||
kib: I would note in comment that the stacktop is not page aligned. | |||||
u_int vm_refcnt; /* number of references */ | u_int vm_refcnt; /* number of references */ | ||||
/* | /* | ||||
* Keep the PMAP last, so that CPU-specific variations of that | * Keep the PMAP last, so that CPU-specific variations of that | ||||
* structure on a single architecture don't result in offset | * structure on a single architecture don't result in offset | ||||
* variations of the machine-independent fields in the vmspace. | * variations of the machine-independent fields in the vmspace. | ||||
*/ | */ | ||||
struct pmap vm_pmap; /* private physical map */ | struct pmap vm_pmap; /* private physical map */ | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 232 Lines • Show Last 20 Lines |
I would note in comment that the stacktop is not page aligned.