zephyr/subsys/llext/Kconfig

95 lines
2.8 KiB
Plaintext

# Copyright (c) 2023 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
menuconfig LLEXT
bool "Linkable loadable extensions"
select CACHE_MANAGEMENT if DCACHE
select KERNEL_WHOLE_ARCHIVE
help
Enable the linkable loadable extension subsystem
if LLEXT
choice LLEXT_BINARY_TYPE
prompt "Binary object type for llext"
default LLEXT_TYPE_ELF_OBJECT if ARM
default LLEXT_TYPE_ELF_SHAREDLIB if XTENSA
help
Object type for llext
config LLEXT_TYPE_ELF_OBJECT
bool "Single object ELF file"
help
Build and expect object files as binary object type for the
llext subsystem. A single compiler invocation is used to
generate the object file.
config LLEXT_TYPE_ELF_RELOCATABLE
bool "Relocatable ELF file"
help
Build and expect relocatable (partially linked )files as the
binary object type for the llext subsystem. These object files
are generated by the linker by combining multiple object files
into a single one.
config LLEXT_TYPE_ELF_SHAREDLIB
bool "Shared library ELF file"
help
Build and expect shared libraries as binary object type for
the llext subsystem. The usual linking process is used to
generate the shared library from multiple object files.
endchoice
config LLEXT_HEAP_SIZE
int "llext heap memory size in kilobytes"
default 8
help
Heap size in kilobytes available to llext for dynamic allocation
config LLEXT_SHELL
bool "llext shell commands"
depends on SHELL
help
Manage llext with shell commands for loading, unloading, and introspection
config LLEXT_SHELL_MAX_SIZE
int "Maximum size of llext in bytes"
depends on LLEXT_SHELL
default 8192
help
When loading llext with shell it is stored in a temporary buffer of this size
config LLEXT_STORAGE_WRITABLE
bool "llext storage is writable"
help
Select if LLEXT storage is writable, i.e. if extensions are stored in
RAM and can be modified in place
module = LLEXT
module-str = llext
source "subsys/logging/Kconfig.template.log_config"
endif
menu "Linkable loadable Extension Development Kit (EDK)"
config LLEXT_EDK_NAME
string "Name for llext EDK (Extension Development Kit)"
default "llext-edk"
help
Name will be used when generating the EDK file, as <name>.tar.xz.
It will also be used, normalized, as the prefix for the variable
stating EDK location, used on generated Makefile.cflags. For
instance, the default name, "llext-edk", becomes LLEXT_EDK_INSTALL_DIR.
config LLEXT_EDK_USERSPACE_ONLY
bool "Only generate the Userpace codepath on syscall stubs for the EDK"
help
Syscall stubs can contain code that verifies if running code is at user
or kernel space and route the call accordingly. If the EDK is expected
to be used by userspace only extensions, this option will make EDK stubs
not contain the routing code, and only generate the userspace one.
endmenu