summaryrefslogtreecommitdiff
path: root/nuttx/syscall
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-08-28 12:09:49 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-08-28 12:09:49 -0600
commit397298da8d61a5887b15fc9c53206e11821a92d8 (patch)
tree90d6802a2b459c69323a95f3e4a392d5b1b90562 /nuttx/syscall
parentd6c088a4acc3cb6fddc40740c2da8c5b27adc244 (diff)
downloadnuttx-397298da8d61a5887b15fc9c53206e11821a92d8.tar.gz
nuttx-397298da8d61a5887b15fc9c53206e11821a92d8.tar.bz2
nuttx-397298da8d61a5887b15fc9c53206e11821a92d8.zip
The system call library can now be built with CONFIG_NUTTX_KERNEL. New select: CONFIG_LIB_SYSCALL
Diffstat (limited to 'nuttx/syscall')
-rw-r--r--nuttx/syscall/Kconfig28
1 files changed, 25 insertions, 3 deletions
diff --git a/nuttx/syscall/Kconfig b/nuttx/syscall/Kconfig
index 0c5b74ab1..f1138611a 100644
--- a/nuttx/syscall/Kconfig
+++ b/nuttx/syscall/Kconfig
@@ -3,9 +3,31 @@
# see misc/tools/kconfig-language.txt.
#
-if NUTTX_KERNEL
+menuconfig LIB_SYSCALL
+ bool "System call support"
+ default n
+ ---help---
+ Build in support for "system calls". System calls are used to
+ implement a call gate mechanism that can be be used to call from
+ user code into the kernel. This is only useful for user code that
+ likes outside of the kernel such as when the NUTTX_KERNEL build is
+ selected.
+
+ This permits calls from user-mode code into kernel mode; the call
+ gate will change the mode of operation from user to supervisor mode,
+ then call into the OS code on behalf of the user-mode application.
+
+ If if there are no privilege issues preventing the call, system
+ calls may also be of value because it can eliminate the need for
+ symbol tables when linking external modules to the NuttX base code.
+ The selection will build libsyscall. External modules can then link
+ with libsyscall when they are built and they can call into the OS
+ with no knowledge of the actual address in the OS. In this case,
+ they call into a proxy that is link with the external code; that
+ proxy then marshals the call parameter and invokes the system call
+ to accomplish the interface.
-comment "System call configuration"
+if LIB_SYSCALL
config SYS_RESERVED
int "Number of reserved system calls"
@@ -34,4 +56,4 @@ config SYS_NNEST
space memory. So it is expected that the maximum nesting level will
be only 2.
-endif
+endif # LIB_SYSCALL