GEL  0.99
image.c File Reference
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <gel/image.h>
#include <gel/prog.h>
#include <gel/gel_elf.h>
#include <gel/error.h>
#include "gel_private.h"
#include "gel_base_private.h"
#include "gel_mem.h"

Macros

#define MARK
 
#define TRACE(x)   /* x */
 

Functions

void gel_unload_plugins (gel_platform_t *pf)
 
gel_env_tgel_default_env (void)
 
int gel_file_load_info (gel_file_t *file, vaddr_t base_vaddr)
 
int gel_file_load_data (gel_file_t *e, gel_block_t *block, raddr_t base_raddr)
 
int gel_file_load (gel_file_t *e, vaddr_t base_vaddr, raddr_t base_raddr)
 
gel_file_t ** gel_recursive_open (gel_file_t *f, int *num, gel_env_t *env)
 
void gel_close_libs (gel_image_t *im)
 
void gel_image_close (gel_image_t *im)
 
void gel_image_close_only (gel_image_t *im)
 
void gel_kill_filetab (gel_file_t **tab, int num)
 
gel_image_tgel_image_load (gel_file_t *e, gel_env_t *env, int flags)
 
raddr_t gel_vaddr_to_raddr (vaddr_t a, gel_image_t *im)
 
vaddr_t gel_raddr_to_vaddr (raddr_t a, gel_image_t *im)
 
int gel_test_vaddr (vaddr_t a, gel_image_t *im)
 
int gel_test_raddr (raddr_t a, gel_image_t *im)
 
gel_env_tgel_image_env (gel_image_t *i)
 
int gel_image_infos (gel_image_t *i, gel_image_info_t *ii)
 
int gel_memory_image_infos (gel_memory_image_t *mi, gel_memory_image_info_t *mii)
 
int gel_memory_cluster_infos (gel_memory_cluster_t *mc, gel_memory_cluster_info_t *mci)
 

Macro Definition Documentation

◆ MARK

#define MARK

◆ TRACE

#define TRACE (   x)    /* x */

Function Documentation

◆ gel_close_libs()

void gel_close_libs ( gel_image_t im)

Close all opended libraries files in an image, keeping only the memory blocks.

Parameters
imImage to work on.

◆ gel_file_load()

int gel_file_load ( gel_file_t e,
vaddr_t  base_vaddr,
raddr_t  base_raddr 
)

Load an ELFfile into memory without library management.

Parameters
eELF file.
base_vaddrBase virtual address.
base_raddrDeprecated. Set it to null.
Returns
0 for success, -1 else.

◆ gel_file_load_data()

int gel_file_load_data ( gel_file_t e,
gel_block_t block,
raddr_t  base_raddr 
)

Load the data of a file from the ELF disk file in the actual memory. If the base_raddr is null, the memory is allocated by the function.

Parameters
eELF file.
blockBlock of the file to load.
base_raddrBase address of the block to load to.
Returns
0 for success, -1 else.

◆ gel_kill_filetab()

void gel_kill_filetab ( gel_file_t **  tab,
int  num 
)

Fonction utilitaire permettant de liberer un tableau de gel_file_t

Parameters
tabLe tableau
numLa longueur du tableau

◆ gel_recursive_open()

gel_file_t** gel_recursive_open ( gel_file_t f,
int *  num,
gel_env_t env 
)

◆ gel_test_raddr()

int gel_test_raddr ( raddr_t  a,
gel_image_t im 
)

Test if a real address is in a memory of an image.

Parameters
aReal address to test.
imImage to test with.
Returns
1 if it is contained, 0 else.

◆ gel_test_vaddr()

int gel_test_vaddr ( vaddr_t  a,
gel_image_t im 
)

Test if a virtual address really exists in an image.

Parameters
aVirtual address to test.
imCurrent image.
Returns
1 if it exists, 0 else.

◆ gel_unload_plugins()

void gel_unload_plugins ( gel_platform_t pf)

Unload the plugins.

Parameters
pfPlatform to work on.