Home
last modified time | relevance | path

Searched full:llext (Results 1 – 25 of 121) sorted by relevance

12345

/Zephyr-Core-3.7.0/subsys/llext/
DKconfig4 menuconfig LLEXT config
11 if LLEXT
14 prompt "Binary object type for llext"
18 Object type for llext
24 llext subsystem. A single compiler invocation is used to
31 binary object type for the llext subsystem. These object files
39 the llext subsystem. The usual linking process is used to
45 int "llext heap memory size in kilobytes"
48 Heap size in kilobytes available to llext for dynamic allocation
51 bool "llext shell commands"
[all …]
Dllext_priv.h11 #include <zephyr/llext/llext.h>
22 int llext_copy_strings(struct llext_loader *ldr, struct llext *ext);
23 int llext_copy_regions(struct llext_loader *ldr, struct llext *ext);
24 void llext_free_regions(struct llext *ext);
51 int do_llext_load(struct llext_loader *ldr, struct llext *ext,
54 static inline const char *llext_string(struct llext_loader *ldr, struct llext *ext, in llext_string()
60 static inline const void *llext_loaded_sect_ptr(struct llext_loader *ldr, struct llext *ext, in llext_loaded_sect_ptr()
76 int llext_link(struct llext_loader *ldr, struct llext *ext, bool do_local);
Dllext.c9 #include <zephyr/llext/elf.h>
10 #include <zephyr/llext/loader.h>
11 #include <zephyr/llext/llext.h>
16 LOG_MODULE_REGISTER(llext, CONFIG_LLEXT_LOG_LEVEL);
58 * Note, that while we protect the global llext list while searching, we release
63 struct llext *llext_by_name(const char *name) in llext_by_name()
70 struct llext *ext = CONTAINER_OF(node, struct llext, _llext_list); in llext_by_name()
82 int llext_iterate(int (*fn)(struct llext *ext, void *arg), void *arg) in llext_iterate()
93 struct llext *ext = CONTAINER_OF(node, struct llext, _llext_list); in llext_iterate()
142 int llext_load(struct llext_loader *ldr, const char *name, struct llext **ext, in llext_load()
[all …]
Dshell.c11 #include <zephyr/llext/elf.h>
12 #include <zephyr/llext/llext.h>
13 #include <zephyr/llext/buf_loader.h>
38 struct llext *m = llext_by_name(argv[1]); in cmd_llext_list_symbols()
41 shell_print(sh, "No such llext %s", argv[1]); in cmd_llext_list_symbols()
58 struct llext *ext;
61 static int llext_shell_name_cb(struct llext *ext, void *arg) in llext_shell_name_cb()
103 static int llext_shell_list_cb(struct llext *ext, void *arg) in llext_shell_list_cb()
139 LOG_DBG("hex2bin hex len %d, llext buf sz %d, read %d", in cmd_llext_load_hex()
144 struct llext *ext; in cmd_llext_load_hex()
[all …]
Dllext_mem.c9 #include <zephyr/llext/loader.h>
10 #include <zephyr/llext/llext.h>
15 LOG_MODULE_DECLARE(llext, CONFIG_LLEXT_LOG_LEVEL);
33 static void llext_init_mem_part(struct llext *ext, enum llext_mem mem_idx, in llext_init_mem_part()
61 static int llext_copy_section(struct llext_loader *ldr, struct llext *ext, in llext_copy_section()
133 int llext_copy_strings(struct llext_loader *ldr, struct llext *ext) in llext_copy_strings()
144 int llext_copy_regions(struct llext_loader *ldr, struct llext *ext) in llext_copy_regions()
162 void llext_free_regions(struct llext *ext) in llext_free_regions()
173 int llext_add_domain(struct llext *ext, struct k_mem_domain *domain) in llext_add_domain()
/Zephyr-Core-3.7.0/samples/subsys/llext/modules/
DREADME.rst1 .. zephyr:code-sample:: llext-modules
3 :relevant-api: llext
11 This sample demonstrates the use of the :ref:`llext` subsystem in Zephyr. The
12 llext subsystem allows for the loading of relocatable ELF files at runtime;
16 implemented in :zephyr_file:`samples/subsys/llext/modules/src/hello_world_ext.c`.
22 :zephyr_file:`samples/subsys/llext/modules/src/main_builtin.c`.
24 - if it is ``m``, the function is compiled as an llext and it is included in
25 the application as a binary blob. At runtime, the llext subsystem is used to
27 :zephyr_file:`samples/subsys/llext/modules/src/main_module.c`.
32 A board with a supported llext architecture and console. This can also be
[all …]
Dprj.conf6 # LLEXT is only required when loading the extension at runtime. Since in this
7 # basic example there's only one llext, leaving it in when building the
9 # could be other uses of the llext subsystem.
16 # This test consumes large amounts of stack when loading the LLEXT.
DKconfig4 mainmenu "LLEXT functionality test"
13 hello_world_ext.c, either as an llext module or as a built-in part of
16 If you select 'm', the hello_world function will be built as an llext
Dsample.yaml2 tags: llext
33 sample.llext.modules.module_build:
42 - "Hello, world, from an llext!"
43 sample.llext.modules.builtin_build:
/Zephyr-Core-3.7.0/doc/services/llext/
Dconfig.rst4 The following Kconfig options are available for the LLEXT subsystem:
11 The LLEXT subsystem needs a static heap to be allocated for extension related
16 Size of the LLEXT heap in kilobytes.
29 The LLEXT subsystem supports loading different types of extensions; the type
34 Build and expect relocatable files as binary object type for the LLEXT
41 object type for the LLEXT subsystem. These object files are generated
46 Build and expect shared libraries as binary object type for the LLEXT
59 The LLEXT subsystem loading mechanism, by default, uses a seek/read abstraction
63 LLEXT subsystem to optimize memory footprint in this case.
94 When an extension is loaded, the LLEXT subsystem must find the address of all
[all …]
Dbuild.rst4 The LLEXT subsystem allows for the creation of extensions that can be loaded
19 application. This can be done using the `LLEXT Extension Development Kit
43 OUTPUT <ext_file.llext>
50 the LLEXT binary being created;
51 - ``<ext_file.llext>`` is the name of the output file that will contain the
83 functions takes the LLEXT target name as its first argument; it is otherwise
119 After the extension code is built, but before packaging it in an ``.llext``
126 on the final llext file `pkg_output`.
133 LLEXT Extension Development Kit (EDK)
144 following command which uses the ``llext-edk`` target:
[all …]
Dindex.rst3 Linkable Loadable Extensions (LLEXT)
6 The LLEXT subsystem provides a toolbox for extending the functionality of an
23 The LLEXT subsystem requires architecture-specific support. It is currently
/Zephyr-Core-3.7.0/tests/subsys/llext/simple/
Dtestcase.yaml2 tags: llext
25 # While there is in practice no value in compiling subsys/llext/*.c
29 llext.simple.loader_build:
32 # Run the suite with all combinations of core Kconfig options for the llext
34 llext.simple.readonly:
41 llext.simple.readonly_mpu:
48 llext.simple.writable:
57 llext.simple.writable_relocatable:
70 llext.simple.writable_slid_linking:
80 llext.simple.writable_relocatable_slid_linking:
/Zephyr-Core-3.7.0/samples/subsys/llext/shell_loader/
DREADME.rst1 .. zephyr:code-sample:: llext-shell-loader
3 :relevant-api: llext
10 This example provides shell access to the :ref:`llext` system and provides the
16 A board with a supported llext architecture and shell capable console.
22 :zephyr-app: samples/subsys/llext/shell_loader
33 All the llext system related commands are available as sub-commands of llext
34 which can be seen with llext help
38 uart:~$ llext help
39 llext - Loadable extension commands
52 A hello world C file can be found in tests/subsys/llext/hello_world/hello_world.c
[all …]
/Zephyr-Core-3.7.0/include/zephyr/llext/
Dllext.h12 #include <zephyr/llext/elf.h>
13 #include <zephyr/llext/symbol.h>
37 * @brief List of memory regions stored or referenced in the LLEXT subsystem
40 * LLEXT subsystem. The names match common ELF file section names; but note
54 LLEXT_MEM_COUNT, /**< Number of regions managed by LLEXT */
59 /* Number of memory partitions used by LLEXT */
71 struct llext { struct
82 /** Name of the llext */ argument
94 /** Total llext allocation size */ argument
106 * Table of symbols exported by the llext via @ref LL_EXTENSION_SYMBOL. argument
[all …]
Dloader.h10 #include <zephyr/llext/elf.h>
19 * @brief LLEXT ELF loader context types.
22 * used by the \ref llext subsystem.
29 #include <zephyr/llext/llext.h>
39 * while an extension is being loaded by the LLEXT subsystem. Once the
/Zephyr-Core-3.7.0/tests/misc/llext-edk/pytest/
Dtest_edk.py22 "llext-edk",
32 logger.debug(f"Copying llext-edk.tar.xz to {tempdir}")
33 edk_path = Path(dut.device_config.build_dir) / "zephyr/llext-edk.tar.xz"
37 logger.debug(f"Extracting llext-edk.tar.xz to {tempdir}")
38 command = ["tar", "-xf", "llext-edk.tar.xz"]
45 ext_dir = Path(os.environ["ZEPHYR_BASE"]) / "tests/misc/llext-edk/extension"
50 edk_dir = Path(tempdir) / "llext-edk"
66 assert os.path.exists(Path(tempdir_extension) / "build/extension.llext")
/Zephyr-Core-3.7.0/samples/subsys/llext/edk/
DREADME.rst1 .. zephyr:code-sample:: llext-edk
3 :relevant-api: llext
6 LLEXT EDK (Extension Development Kit).
11 This sample demonstrates how to use the Zephyr LLEXT EDK (Extension Development
34 the Zephyr build system as well, via ``llext-edk`` target. The EDK is then
48 To build the EDK, use the ``llext-edk`` target. For example:
51 :zephyr-app: samples/subsys/llext/edk/app
53 :goals: build llext-edk
62 cp build/zephyr/llext-edk.tar.xz /tmp/edk
64 tar -xf llext-edk.tar.xz
[all …]
/Zephyr-Core-3.7.0/arch/xtensa/core/
Delf.c7 #include <zephyr/llext/elf.h>
8 #include <zephyr/llext/llext.h>
9 #include <zephyr/llext/loader.h>
12 LOG_MODULE_DECLARE(llext);
29 void arch_elf_relocate_local(struct llext_loader *ldr, struct llext *ext, in arch_elf_relocate_local()
/Zephyr-Core-3.7.0/samples/subsys/llext/edk/ext2/
DCMakeLists.txt22 ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
25 -o ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
27 COMMAND xxd -ip ${PROJECT_NAME}.llext
31 add_custom_target(ext2 ALL DEPENDS ${PROJECT_BINARY_DIR}/ext2.llext)
/Zephyr-Core-3.7.0/samples/subsys/llext/edk/ext1/
DCMakeLists.txt26 ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
29 -o ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
31 COMMAND xxd -ip ${PROJECT_NAME}.llext
35 add_custom_target(ext1 ALL DEPENDS ${PROJECT_BINARY_DIR}/ext1.llext)
/Zephyr-Core-3.7.0/samples/subsys/llext/edk/ext3/
DCMakeLists.txt26 ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
29 -o ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
31 COMMAND xxd -ip ${PROJECT_NAME}.llext
35 add_custom_target(ext3 ALL DEPENDS ${PROJECT_BINARY_DIR}/ext3.llext)
/Zephyr-Core-3.7.0/samples/subsys/llext/edk/k-ext1/
DCMakeLists.txt26 ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
29 -o ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
31 COMMAND xxd -ip ${PROJECT_NAME}.llext
35 add_custom_target(kext1 ALL DEPENDS ${PROJECT_BINARY_DIR}/kext1.llext)
/Zephyr-Core-3.7.0/samples/subsys/llext/modules/src/
Dmain_module.c11 #include <zephyr/llext/llext.h>
12 #include <zephyr/llext/buf_loader.h>
27 struct llext *ext; in main()
/Zephyr-Core-3.7.0/tests/misc/llext-edk/extension/
DCMakeLists.txt17 ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
19 -o ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext
23 add_custom_target(extension ALL DEPENDS ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext)

12345