|
Muteki
EABI code execution on Besta® RTOS devices.
|
Loader implementation function table. More...
#include <loader.h>
Data Fields | |
| void *(*) | load (loader_file_descriptor_t *ldrfd) |
Load a module from ldrfd . | |
| void *(*) | load_into (loader_file_descriptor_t *ldrfd, void *load_address) |
Load a module from ldrfd into load_address . | |
| void(*) | unload (void *module) |
| Unload a module. | |
| int(*) | exec (void *module, int subroutine, void *arg1, void *arg2) |
| Execute a registered subroutine in the module. | |
| int(*) | probe (loader_file_descriptor_t *ldrfd) |
Probe a ldrfd for the. | |
| void *(*) | dlopen (char *pathname) |
| Open a shared module/DLL dynamically. | |
| void(*) | dlclose (void *module) |
| Close a previously opened shared module/DLL. | |
| void *(*) | dlsym (void *module, loader_symbol_id_t symbol_or_ordinal) |
| Find the address of a symbol or ordinal. | |
| size_t(*) | get_module_filename (void *module, char *out_filename, size_t size) |
| Get the filename of a loaded module. | |
| void *(*) | get_module (const char *pathname) |
| Retrieve an already loaded module from the global module table. | |
| loader_resource_descriptor_t *(*) | open_resource_descriptor (loader_file_descriptor_t *ldrfd) |
| Open the resource section of a module (optional). | |
| void(*) | close_resource_descriptor (loader_resource_descriptor_t *res) |
| Close the resource descriptor of a module (optional). | |
| int(*) | get_resource (loader_resource_descriptor_t *res, const UTF16 *res_type, const UTF16 *res_name, loader_resource_subfile_request_t *out_subfile) |
| Find resource entry (optional). | |
| int(*) | collect_image_info (loader_file_descriptor_t *ldrfd, loader_image_info_t *info) |
Collect information from a module file opened as ldrfd . | |
Loader implementation function table.
| int(*) loader_impl_s::exec(void *module, int subroutine, void *arg1, void *arg2) |
Execute a registered subroutine in the module.
This usually calls the applet entrypoint with the subroutine number and the optional arguments.
| void *(*) loader_impl_s::get_module(const char *pathname) |
Retrieve an already loaded module from the global module table.
This will not attempt to open any module and instead will set the errno to BXC_ERRNO( ::BXC_ERRNO_NS_EXEC, ::BXC_ERR_EXEC_MODULE_NOT_LOADED) and return NULL if the module is not already loaded.