VSF Documented
vsf_elfloader.c File Reference

Data Structures

struct  vsf_elfloader_info_t
 
struct  __vsf_elfloader_get_section_t
 
struct  __vsf_elfloader_vaddr2off_t
 

Macros

#define __VSF_ELFLOADER_CLASS_IMPLEMENT
 
#define __VSF_LOADER_CLASS_INHERIT__
 
#define VSF_ELFLOADER_CFG_MAX_SYM_LEN   (32 + 1)
 
#define vsf_elfloader_debug(...)
 
#define vsf_elfloader_debug_buffer(...)
 

Typedefs

typedef struct vsf_elfloader_info_t vsf_elfloader_info_t
 
typedef struct __vsf_elfloader_get_section_t __vsf_elfloader_get_section_t
 
typedef struct __vsf_elfloader_vaddr2off_t __vsf_elfloader_vaddr2off_t
 

Functions

int vsf_elfloader_arch_relocate_sym (vsf_elfloader_t *elfloader, Elf_Addr tgtaddr, int type, Elf_Addr tgtvalue)
 
int vsf_elfloader_arch_init_plt (vsf_elfloader_t *elfloader, int num)
 
void vsf_elfloader_arch_fini_plt (vsf_elfloader_t *elfloader)
 
int vsf_elfloader_link (vsf_elfloader_t *elfloader, char *symname, Elf_Addr *target)
 
int vsf_elfloader_arch_link (vsf_elfloader_t *elfloader, char *symname, Elf_Addr *target)
 
void vsf_elfloader_cleanup (vsf_elfloader_t *elfloader)
 
int vsf_elfloader_foreach_section (vsf_elfloader_t *elfloader, vsf_loader_target_t *target, void *param, int(*callback)(vsf_elfloader_t *, vsf_loader_target_t *, Elf_Shdr *header, char *name, int index, void *param))
 
int vsf_elfloader_foreach_program_header (vsf_elfloader_t *elfloader, vsf_loader_target_t *target, void *param, int(*callback)(vsf_elfloader_t *, vsf_loader_target_t *, Elf_Phdr *pheader, int index, void *param))
 
int vsf_elfloader_call_init_array (vsf_elfloader_t *elfloader)
 
void vsf_elfloader_call_fini_array (vsf_elfloader_t *elfloader)
 
void * vsf_elfloader_remap (vsf_elfloader_t *elfloader, void *vaddr)
 
int vsf_elfloader_load (vsf_elfloader_t *elfloader, vsf_loader_target_t *target)
 
uint32_t vsf_elfloader_get_section (vsf_elfloader_t *elfloader, vsf_loader_target_t *target, const char *name, Elf_Shdr *header)
 

Variables

const struct vsf_loader_op_t vsf_elfloader_op
 

Macro Definition Documentation

◆ __VSF_ELFLOADER_CLASS_IMPLEMENT

#define __VSF_ELFLOADER_CLASS_IMPLEMENT

◆ __VSF_LOADER_CLASS_INHERIT__

#define __VSF_LOADER_CLASS_INHERIT__

◆ VSF_ELFLOADER_CFG_MAX_SYM_LEN

#define VSF_ELFLOADER_CFG_MAX_SYM_LEN   (32 + 1)

◆ vsf_elfloader_debug

#define vsf_elfloader_debug ( ...)
Value:
vsf_trace_debug(__VA_ARGS__)
#define vsf_trace_debug(...)
Definition vsf_trace.h:92

◆ vsf_elfloader_debug_buffer

#define vsf_elfloader_debug_buffer ( ...)
Value:
@ VSF_TRACE_DEBUG
Definition vsf_trace.h:141
#define vsf_trace_buffer(__level, __buffer, __len,...)
Definition vsf_trace.h:177

Typedef Documentation

◆ vsf_elfloader_info_t

typedef struct vsf_elfloader_info_t vsf_elfloader_info_t

◆ __vsf_elfloader_get_section_t

typedef struct __vsf_elfloader_get_section_t __vsf_elfloader_get_section_t

◆ __vsf_elfloader_vaddr2off_t

typedef struct __vsf_elfloader_vaddr2off_t __vsf_elfloader_vaddr2off_t

Function Documentation

◆ vsf_elfloader_arch_relocate_sym()

int vsf_elfloader_arch_relocate_sym ( vsf_elfloader_t * elfloader,
Elf_Addr tgtaddr,
int type,
Elf_Addr tgtvalue )

◆ vsf_elfloader_arch_init_plt()

int vsf_elfloader_arch_init_plt ( vsf_elfloader_t * elfloader,
int num )

◆ vsf_elfloader_arch_fini_plt()

void vsf_elfloader_arch_fini_plt ( vsf_elfloader_t * elfloader)

◆ vsf_elfloader_link()

int vsf_elfloader_link ( vsf_elfloader_t * elfloader,
char * symname,
Elf_Addr * target )

◆ vsf_elfloader_arch_link()

int vsf_elfloader_arch_link ( vsf_elfloader_t * elfloader,
char * symname,
Elf_Addr * target )

◆ vsf_elfloader_cleanup()

void vsf_elfloader_cleanup ( vsf_elfloader_t * elfloader)

◆ vsf_elfloader_foreach_section()

int vsf_elfloader_foreach_section ( vsf_elfloader_t * elfloader,
vsf_loader_target_t * target,
void * param,
int(* callback )(vsf_elfloader_t *, vsf_loader_target_t *, Elf_Shdr *header, char *name, int index, void *param) )

◆ vsf_elfloader_foreach_program_header()

int vsf_elfloader_foreach_program_header ( vsf_elfloader_t * elfloader,
vsf_loader_target_t * target,
void * param,
int(* callback )(vsf_elfloader_t *, vsf_loader_target_t *, Elf_Phdr *pheader, int index, void *param) )

◆ vsf_elfloader_call_init_array()

int vsf_elfloader_call_init_array ( vsf_elfloader_t * elfloader)

◆ vsf_elfloader_call_fini_array()

void vsf_elfloader_call_fini_array ( vsf_elfloader_t * elfloader)

◆ vsf_elfloader_remap()

void * vsf_elfloader_remap ( vsf_elfloader_t * elfloader,
void * vaddr )

◆ vsf_elfloader_load()

int vsf_elfloader_load ( vsf_elfloader_t * elfloader,
vsf_loader_target_t * target )

◆ vsf_elfloader_get_section()

uint32_t vsf_elfloader_get_section ( vsf_elfloader_t * elfloader,
vsf_loader_target_t * target,
const char * name,
Elf_Shdr * header )

Variable Documentation

◆ vsf_elfloader_op

const struct vsf_loader_op_t vsf_elfloader_op
Initial value:
= {
.fn_cleanup = (void (*)(vsf_loader_t *))vsf_elfloader_cleanup,
.fn_call_init_array = (int (*)(vsf_loader_t *))vsf_elfloader_call_init_array,
.fn_call_fini_array = (void (*)(vsf_loader_t *))vsf_elfloader_call_fini_array,
.fn_remap = (void * (*)(vsf_loader_t *, void *))vsf_elfloader_remap,
}
Definition vsf_loader.h:176
Definition vsf_loader.h:132
void * vsf_elfloader_remap(vsf_elfloader_t *elfloader, void *vaddr)
Definition vsf_elfloader.c:283
void vsf_elfloader_call_fini_array(vsf_elfloader_t *elfloader)
Definition vsf_elfloader.c:267
int vsf_elfloader_call_init_array(vsf_elfloader_t *elfloader)
Definition vsf_elfloader.c:254
int vsf_elfloader_load(vsf_elfloader_t *elfloader, vsf_loader_target_t *target)
Definition vsf_elfloader.c:458
void vsf_elfloader_cleanup(vsf_elfloader_t *elfloader)
Definition vsf_elfloader.c:150
Generated from commit: vsfteam/vsf@ceb53fd