diff options
author | marcel <marcel@FreeBSD.org> | 2003-09-27 22:28:14 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2003-09-27 22:28:14 +0000 |
commit | d75cf983076733a922bb61d7b8d2683e3200de71 (patch) | |
tree | ca87952e7714e85716c318c18850085a80633493 /sys/vm/vm_map.h | |
parent | 9d6689c4a78aa15eeea04d8fc8d55500ebf7b56c (diff) | |
download | FreeBSD-src-d75cf983076733a922bb61d7b8d2683e3200de71.zip FreeBSD-src-d75cf983076733a922bb61d7b8d2683e3200de71.tar.gz |
Part 2 of implementing rstacks: add the ability to create rstacks and
use the ability on ia64 to map the register stack. The orientation of
the stack (i.e. its grow direction) is passed to vm_map_stack() in the
overloaded cow argument. Since the grow direction is represented by
bits, it is possible and allowed to create bi-directional stacks.
This is not an advertised feature, more of a side-effect.
Fix a bug in vm_map_growstack() that's specific to rstacks and which
we could only find by having the ability to create rstacks: when
the mapped stack ends at the faulting address, we have not actually
mapped the faulting address. we need to include or cover the faulting
address.
Note that at this time mmap(2) has not been extended to allow the
creation of rstacks by processes. If such a need arises, this can
be done.
Tested on: alpha, i386, ia64, sparc64
Diffstat (limited to 'sys/vm/vm_map.h')
-rw-r--r-- | sys/vm/vm_map.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h index a720298..d1aff1f 100644 --- a/sys/vm/vm_map.h +++ b/sys/vm/vm_map.h @@ -302,6 +302,8 @@ long vmspace_resident_count(struct vmspace *vmspace); #define MAP_DISABLE_SYNCER 0x0020 #define MAP_DISABLE_COREDUMP 0x0100 #define MAP_PREFAULT_MADVISE 0x0200 /* from (user) madvise request */ +#define MAP_STACK_GROWS_DOWN 0x1000 +#define MAP_STACK_GROWS_UP 0x2000 /* * vm_fault option flags |