95 lines
2.8 KiB
Plaintext
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
|