/Zephyr-latest/include/zephyr/llext/ |
D | llext.h | 77 struct llext { struct 122 struct llext *dependency[LLEXT_MAX_DEPENDENCIES]; argument 131 static inline const elf_shdr_t *llext_section_headers(const struct llext *ext) in llext_section_headers() argument 136 static inline unsigned int llext_section_count(const struct llext *ext) in llext_section_count() 174 struct llext *llext_by_name(const char *name); 187 int llext_iterate(int (*fn)(struct llext *ext, void *arg), void *arg); 204 int llext_load(struct llext_loader *loader, const char *name, struct llext **ext, 212 int llext_unload(struct llext **ext); 228 int llext_bringup(struct llext *ext); 242 int llext_teardown(struct llext *ext); [all …]
|
D | llext_internal.h | 22 struct llext; 24 const void *llext_loaded_sect_ptr(struct llext_loader *ldr, struct llext *ext, unsigned int sh_ndx);
|
/Zephyr-latest/subsys/llext/ |
D | llext_priv.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, 25 void llext_free_regions(struct llext *ext); 26 void llext_adjust_mmu_permissions(struct llext *ext); 53 int do_llext_load(struct llext_loader *ldr, struct llext *ext, 56 static inline const char *llext_string(struct llext_loader *ldr, struct llext *ext, in llext_string() 66 int llext_link(struct llext_loader *ldr, struct llext *ext, 68 void llext_dependency_remove_all(struct llext *ext);
|
D | llext.c | 16 LOG_MODULE_REGISTER(llext, CONFIG_LLEXT_LOG_LEVEL); 26 int llext_get_section_header(struct llext_loader *ldr, struct llext *ext, const char *search_name, in llext_get_section_header() 85 struct llext *llext_by_name(const char *name) in llext_by_name() 92 struct llext *ext = CONTAINER_OF(node, struct llext, _llext_list); in llext_by_name() 104 int llext_iterate(int (*fn)(struct llext *ext, void *arg), void *arg) in llext_iterate() 114 struct llext *ext = CONTAINER_OF(node, struct llext, _llext_list); in llext_iterate() 163 int llext_load(struct llext_loader *ldr, const char *name, struct llext **ext, in llext_load() 178 *ext = llext_alloc(sizeof(struct llext)); in llext_load() 252 int llext_unload(struct llext **ext) in llext_unload() 255 struct llext *tmp = *ext; in llext_unload() [all …]
|
D | Kconfig | 15 prompt "Binary object type for llext" 20 Object type for llext 27 llext subsystem. A single compiler invocation is used to 34 binary object type for the llext subsystem. These object files 42 the llext subsystem. The usual linking process is used to 48 int "llext heap memory size in kilobytes" 51 Heap size in kilobytes available to llext for dynamic allocation 64 bool "llext shell commands" 67 Manage llext with shell commands for loading, unloading, and introspection 70 int "Maximum size of llext in bytes" [all …]
|
D | CMakeLists.txt | 2 zephyr_syscall_header(${ZEPHYR_BASE}/include/zephyr/llext/llext.h) 10 llext.c
|
D | shell.c | 46 struct llext *m = llext_by_name(argv[1]); in cmd_llext_list_symbols() 66 struct llext *ext; 69 static int llext_shell_name_cb(struct llext *ext, void *arg) in llext_shell_name_cb() 111 static int llext_shell_list_cb(struct llext *ext, void *arg) in llext_shell_list_cb() 152 struct llext *ext; in cmd_llext_load_hex() 166 struct llext *ext = llext_by_name(argv[1]); in cmd_llext_unload() 181 struct llext *ext = llext_by_name(argv[1]); in cmd_llext_call_fn() 213 struct llext *ext; in cmd_llext_load_fs() 242 SHELL_CMD_REGISTER(llext, &sub_llext, "Loadable extension commands", NULL);
|
D | llext_handlers.c | 14 LOG_MODULE_DECLARE(llext, CONFIG_LLEXT_LOG_LEVEL); 18 ssize_t z_impl_llext_get_fn_table(struct llext *ext, bool is_init, void *buf, size_t buf_size) in z_impl_llext_get_fn_table() 76 static int ext_is_valid(struct llext *ext, void *arg) in ext_is_valid() 81 static inline ssize_t z_vrfy_llext_get_fn_table(struct llext *ext, bool is_init, in z_vrfy_llext_get_fn_table()
|
D | llext_mem.c | 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() 146 int llext_copy_strings(struct llext_loader *ldr, struct llext *ext) in llext_copy_strings() 157 int llext_copy_regions(struct llext_loader *ldr, struct llext *ext, in llext_copy_regions() 176 void llext_adjust_mmu_permissions(struct llext *ext) in llext_adjust_mmu_permissions() 210 void llext_free_regions(struct llext *ext) in llext_free_regions() 229 int llext_add_domain(struct llext *ext, struct k_mem_domain *domain) in llext_add_domain()
|
D | llext_link.c | 17 LOG_MODULE_DECLARE(llext, CONFIG_LLEXT_LOG_LEVEL); 35 __weak void arch_elf_relocate_local(struct llext_loader *ldr, struct llext *ext, in arch_elf_relocate_local() 41 __weak void arch_elf_relocate_global(struct llext_loader *ldr, struct llext *ext, in arch_elf_relocate_global() 78 static int llext_dependency_add(struct llext *ext, struct llext *dependency) in llext_dependency_add() 98 void llext_dependency_remove_all(struct llext *ext) in llext_dependency_remove_all() 114 struct llext *ext; 119 static int llext_find_extension_sym_iterate(struct llext *ext, void *arg) in llext_find_extension_sym_iterate() 133 static const void *llext_find_extension_sym(const char *sym_name, struct llext **ext) in llext_find_extension_sym() 145 static void llext_link_plt(struct llext_loader *ldr, struct llext *ext, elf_shdr_t *shdr, in llext_link_plt() 246 struct llext *dep; in llext_link_plt() [all …]
|
/Zephyr-latest/samples/subsys/llext/modules/ |
D | README.rst | 1 .. zephyr:code-sample:: llext-modules 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 43 :zephyr-app: samples/subsys/llext/modules [all …]
|
D | CMakeLists.txt | 10 # Build the llext ... 14 set(ext_bin ${ZEPHYR_BINARY_DIR}/${ext_name}.llext)
|
/Zephyr-latest/tests/subsys/llext/src/ |
D | test_llext.c | 62 void (*test_setup)(struct llext *ext, struct k_thread *llext_thread); 65 void (*test_cleanup)(struct llext *ext); 108 static void threads_objects_test_setup(struct llext *, struct k_thread *llext_thread) in threads_objects_test_setup() argument 128 struct llext *ext = NULL; in load_call_unload() 244 ZTEST(llext, test_load_unload_##_name) \ 274 static void init_fini_test_cleanup(struct llext *ext) in init_fini_test_cleanup() 335 ZTEST(llext, test_inter_ext) in ZTEST() argument 346 struct llext *ext_dependency = NULL, *ext_dependent = NULL; in ZTEST() 370 ZTEST(llext, test_pre_located) in ZTEST() argument 376 struct llext *ext = NULL; in ZTEST() [all …]
|
/Zephyr-latest/samples/subsys/llext/edk/ext2/ |
D | CMakeLists.txt | 22 ${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-latest/samples/subsys/llext/edk/ext1/ |
D | CMakeLists.txt | 26 ${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-latest/samples/subsys/llext/edk/ext3/ |
D | CMakeLists.txt | 26 ${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-latest/samples/subsys/llext/edk/k-ext1/ |
D | CMakeLists.txt | 26 ${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-latest/tests/misc/llext-edk/extension/ |
D | CMakeLists.txt | 22 ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext 25 -o ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext 30 --file ${PROJECT_NAME}.llext 34 add_custom_target(extension ALL DEPENDS ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.llext)
|
/Zephyr-latest/samples/subsys/llext/shell_loader/ |
D | README.rst | 1 .. zephyr:code-sample:: llext-shell-loader 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 56 Then using additional tools converted to a hex string usable by the llext [all …]
|
/Zephyr-latest/samples/subsys/llext/ |
D | llext.rst | 1 .. zephyr:code-sample-category:: llext 5 Samples that demonstrate the :ref:`llext` subsystem.
|
/Zephyr-latest/samples/subsys/llext/edk/ |
D | README.rst | 1 .. zephyr:code-sample:: llext-edk 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 70 export LLEXT_EDK_INSTALL_DIR=/tmp/edk/llext-edk 97 cmake -B build -DLLEXT_EDK_INSTALL_DIR=/tmp/edk/llext-edk 106 :zephyr-app: samples/subsys/llext/edk/app
|
/Zephyr-latest/cmake/compiler/gcc/ |
D | target_xtensa.cmake | 3 # Flags not supported by llext linker 13 # Flags to be added to llext code compilation
|
/Zephyr-latest/cmake/compiler/xt-clang/ |
D | target.cmake | 5 # Flags not supported by llext linker 15 # Flags to be added to llext code compilation
|
/Zephyr-latest/arch/xtensa/core/ |
D | elf.c | 13 LOG_MODULE_DECLARE(llext, CONFIG_LLEXT_LOG_LEVEL); 35 static void xtensa_elf_relocate(struct llext_loader *ldr, struct llext *ext, in xtensa_elf_relocate() 131 void arch_elf_relocate_local(struct llext_loader *ldr, struct llext *ext, const elf_rela_t *rel, in arch_elf_relocate_local() 155 void arch_elf_relocate_global(struct llext_loader *ldr, struct llext *ext, const elf_rela_t *rel, in arch_elf_relocate_global()
|
/Zephyr-latest/samples/subsys/llext/edk/app/src/ |
D | main.c | 66 struct llext *ext; 70 static const void * const load(const char *name, struct llext **ext, void *buf, in load() 86 static void unload(struct llext **ext) in unload() 126 struct llext **ext = &extension_threads[max_extension_thread_idx].ext; in run_extension_on_thread()
|