VSF Documented
Data Structures
vsf loader

Data Structures

class  vsf_peloader_t
 
struct  vsf_loader_heap_op_t
 
struct  vsf_loader_target_t
 
struct  vsf_loader_op_t
 
class  vsf_loader_t
 
enum  vsf_loader_mem_attr_t {
  VSF_LOADER_MEM_R = 1 << 0 ,
  VSF_LOADER_MEM_W = 1 << 1 ,
  VSF_LOADER_MEM_X = 1 << 2 ,
  VSF_LOADER_MEM_RW = VSF_LOADER_MEM_R | VSF_LOADER_MEM_W ,
  VSF_LOADER_MEM_RWX = VSF_LOADER_MEM_X | VSF_LOADER_MEM_RW
}
 
typedef enum vsf_loader_mem_attr_t vsf_loader_mem_attr_t
 
typedef struct vsf_loader_heap_op_t vsf_loader_heap_op_t
 
typedef struct vsf_loader_target_t vsf_loader_target_t
 
typedef struct vsf_loader_op_t vsf_loader_op_t
 
const vsf_loader_heap_op_t vsf_loader_default_heap_op
 
uint32_t vsf_loader_xip_read (vsf_loader_target_t *target, uint32_t offset, void *buffer, uint32_t size)
 
uint32_t vsf_loader_stdio_read (vsf_loader_target_t *target, uint32_t offset, void *buffer, uint32_t size)
 
int vsf_loader_load (vsf_loader_t *loader, vsf_loader_target_t *target)
 
void vsf_loader_cleanup (vsf_loader_t *loader)
 
int vsf_loader_call_init_array (vsf_loader_t *loader)
 
void vsf_loader_call_fini_array (vsf_loader_t *loader)
 
void * vsf_loader_remap (vsf_loader_t *loader, void *vaddr)
 
#define PUBLIC_CONST   const
 
#define vsf_loader_read(__target, __offset, __ptr, __size)    (__target)->fn_read((__target), (__offset), (__ptr), (__size))
 
#define vsf_loader_malloc(__loader, __attr, __size, __align)    (__loader)->heap_op->fn_malloc((vsf_loader_t *)(__loader), (__attr), (__size), (__align))
 
#define vsf_loader_free(__loader, __attr, __ptr)    (__loader)->heap_op->fn_free((vsf_loader_t *)(__loader), (__attr), (__ptr))
 

Detailed Description

Macro Definition Documentation

◆ PUBLIC_CONST

#define PUBLIC_CONST   const

◆ vsf_loader_read

#define vsf_loader_read (   __target,
  __offset,
  __ptr,
  __size 
)     (__target)->fn_read((__target), (__offset), (__ptr), (__size))

◆ vsf_loader_malloc

#define vsf_loader_malloc (   __loader,
  __attr,
  __size,
  __align 
)     (__loader)->heap_op->fn_malloc((vsf_loader_t *)(__loader), (__attr), (__size), (__align))

◆ vsf_loader_free

#define vsf_loader_free (   __loader,
  __attr,
  __ptr 
)     (__loader)->heap_op->fn_free((vsf_loader_t *)(__loader), (__attr), (__ptr))

Typedef Documentation

◆ vsf_loader_mem_attr_t

vsf loader memory attributes

Note
TODO

◆ vsf_loader_heap_op_t

vsf loader heap functions

Note
TODO

◆ vsf_loader_target_t

◆ vsf_loader_op_t

Enumeration Type Documentation

◆ vsf_loader_mem_attr_t

vsf loader memory attributes

Note
TODO
Enumerator
VSF_LOADER_MEM_R 
VSF_LOADER_MEM_W 
VSF_LOADER_MEM_X 
VSF_LOADER_MEM_RW 
VSF_LOADER_MEM_RWX 

Function Documentation

◆ vsf_loader_xip_read()

uint32_t vsf_loader_xip_read ( vsf_loader_target_t target,
uint32_t  offset,
void *  buffer,
uint32_t  size 
)
extern

read function for xip target, set to fn_read member of vsf_loader_target_t.

Parameters
targetloader target, object of target MUST be the address of image.
offsetoffset in image.
bufferbuffer to hold the data read.
sizesize to read.
Returns
the actual data size read.

◆ vsf_loader_stdio_read()

uint32_t vsf_loader_stdio_read ( vsf_loader_target_t target,
uint32_t  offset,
void *  buffer,
uint32_t  size 
)
extern

read function for xip target, set to fn_read member of vsf_loader_target_t.

Parameters
targetloader target, object of target MUST be the file opened with FILE * type.
offsetoffset in image.
bufferbuffer to hold the data read.
sizesize to read.
Returns
the actual data size read.

◆ vsf_loader_load()

int vsf_loader_load ( vsf_loader_t loader,
vsf_loader_target_t target 
)
extern

◆ vsf_loader_cleanup()

void vsf_loader_cleanup ( vsf_loader_t loader)
extern

◆ vsf_loader_call_init_array()

int vsf_loader_call_init_array ( vsf_loader_t loader)
extern

◆ vsf_loader_call_fini_array()

void vsf_loader_call_fini_array ( vsf_loader_t loader)
extern

◆ vsf_loader_remap()

void * vsf_loader_remap ( vsf_loader_t loader,
void *  vaddr 
)
extern

Variable Documentation

◆ vsf_loader_default_heap_op

const vsf_loader_heap_op_t vsf_loader_default_heap_op
extern

default heap op.

Note
alignment is not supported.