seL4/libsel4/Kconfig
Ramana Kumar dbe3e41a88 libsel4: Generate non inlined syscall invocations
For performing verification on libsel4 the syscall invocations need
to not be inlined. This provides a (somewhat hacky) way of doing that.
2015-12-09 15:41:25 +11:00

65 lines
2 KiB
Text

#
# Copyright 2014, NICTA
#
# This software may be distributed and modified according to the terms of
# the BSD 2-Clause license. Note that NO WARRANTY is provided.
# See "LICENSE_BSD2.txt" for details.
#
# @TAG(NICTA_BSD)
#
menu "libsel4"
config LIB_SEL4
bool "libsel4"
default y
select HAVE_LIB_SEL4
help
seL4 API library
config LIB_SEL4_INLINE_INVOCATIONS
bool "Inline generated syscall invocations"
depends on LIB_SEL4
default y
help
When set to true will mark generated functions as 'inline', allowing
them to be inlined by the callee user code. This may be undesirable
for verification, so setting to 'n' will forcively prevent the function
from being inlined
config LIB_SEL4_HAVE_REGISTER_STUBS
bool "Support syscall stubs without IPC buffer"
depends on LIB_SEL4 && !USER_OPTIMISATION_O0 && ARCH_ARM
default y
help
Generate the 'WithMRs' variants of the syscall stubs. These stubs
avoid the use of the IPC buffer where possible and attempt to
place syscall arguments directly into and out of cpu registers.
GCC's register allocation is a hint only and cannot be relied upon,
as a result these stubs are known to be broken, and are disabled,
at -O0
if LIB_SEL4_HAVE_REGISTER_STUBS || !(ARCH_ARM)
config LIB_SEL4_STUBS_USE_IPC_BUFFER_ONLY
bool "use only IPC buffer for syscalls"
depends on LIB_SEL4
default n
help
When generating syscall wrappers, only use the IPC buffer for
marshalling and unmarshalling arguments. Without this option set,
arguments will be passed in registers where possible for better
performance.
endif
if !(LIB_SEL4_HAVE_REGISTER_STUBS || !(ARCH_ARM))
menu "libsel4 hidden"
visible if false
config LIB_SEL4_STUBS_USE_IPC_BUFFER_ONLY
bool "Use only IPC buffer for syscalls"
depends on LIB_SEL4
default y
endmenu
endif
config HAVE_LIB_SEL4
bool
endmenu