Muteki
EABI code execution on Besta® RTOS devices.
Loading...
Searching...
No Matches
loader_impl_s Struct Reference

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 .

Detailed Description

Loader implementation function table.

Field Documentation

◆ exec

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.

◆ get_module

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.


The documentation for this struct was generated from the following file: