summaryrefslogtreecommitdiff
path: root/nuttx/arch/Kconfig
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-09-13 12:25:32 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-09-13 12:25:32 -0600
commitdccca8a00662956a7fd4d7e106c041e977e4fe0a (patch)
tree6a5bb0d62d36310bc57dfa99cea2e77ee14fcff7 /nuttx/arch/Kconfig
parentb473253b2042c86a77fdd3a23f26e4344ff9cc3c (diff)
downloadnuttx-dccca8a00662956a7fd4d7e106c041e977e4fe0a.tar.gz
nuttx-dccca8a00662956a7fd4d7e106c041e977e4fe0a.tar.bz2
nuttx-dccca8a00662956a7fd4d7e106c041e977e4fe0a.zip
Add a configuration option for dynamic stack management
Diffstat (limited to 'nuttx/arch/Kconfig')
-rw-r--r--nuttx/arch/Kconfig31
1 files changed, 26 insertions, 5 deletions
diff --git a/nuttx/arch/Kconfig b/nuttx/arch/Kconfig
index e57d59c35..9a7aa1476 100644
--- a/nuttx/arch/Kconfig
+++ b/nuttx/arch/Kconfig
@@ -199,11 +199,6 @@ config ARCH_HEAP_VBASE
---help---
The virtual address of the beginning of the heap region.
-config ARCH_STACK_VBASE
- hex "Virtual stack base"
- ---help---
- The virtual address of the beginning the stack region
-
config ARCH_TEXT_NPAGES
int "Max .text pages"
default 1
@@ -228,6 +223,30 @@ config ARCH_HEAP_NPAGES
This, along with knowledge of the page size, determines the size of
the heap virtual address space. Default is 1.
+config ARCH_STACK_DYNAMIC
+ bool "Dynamic stack"
+ default n if !BUILD_KERNEL || !LIBC_EXECFUNCS
+ default y if BUILD_KERNEL && LIBC_EXECFUNCS
+ ---help---
+ Select this option if the user process stack resides in its own
+ address space. The naming of this selection implies that dynamic
+ stack allocation is supported. Certainly this option must be set if
+ dynamic stack allocation is supported by a platform. But the more
+ general meaning of this configuration environment is simply that the
+ stack has its own address space.
+
+ NOTE: This options is also *required* if BUILD_KERNEL and
+ LIBC_EXECFUNCS are selected. Why? Because the caller's stack must
+ be preserved in its own address space when we instantiate the
+ environment of the new process in order to initialize it.
+
+if ARCH_STACK_DYNAMIC
+
+config ARCH_STACK_VBASE
+ hex "Virtual stack base"
+ ---help---
+ The virtual address of the beginning the stack region
+
config ARCH_STACK_NPAGES
int "Max. stack pages"
default 1
@@ -236,6 +255,8 @@ config ARCH_STACK_NPAGES
This, along with knowledge of the page size, determines the size of
the stack virtual address space. Default is 1.
+endif # ARCH_STACK_DYNAMIC
+
config ARCH_PGPOOL_MAPPING
bool "Have page pool mapping"
default n