GEL  0.99
gel_base.c File Reference
#include <config.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <assert.h>
#include <stdio.h>
#include "gel_private.h"
#include <gel/gel_elf.h>
#include <gel/error.h>
#include "gel_mem.h"

Macros

#define TRACE(stat)   stat
 

Functions

void gel_load_plugins (gel_platform_t *f, const char *plugpath, int quiet)
 
void gel_unload_plugins (gel_platform_t *pf)
 
char * mystrdup (char *s)
 
int gel_compare_plat (gel_platform_t *p1, gel_platform_t *p2)
 
gel_sym_tgel_find_file_symbol (gel_file_t *f, char *name)
 
gel_sym_tgel_symbyidx (gel_sect_t *symtab, u32_t idx)
 
void gel_enum_initpos (gel_enum_t *en)
 
void * gel_enum_next (gel_enum_t *en)
 
void gel_enum_free (gel_enum_t *en)
 
gel_enum_tgel_enum_file_symbol (gel_file_t *f)
 
void gel_replacesym (gel_image_t *im, char *symname, gel_sym_t *newsym)
 

Macro Definition Documentation

◆ TRACE

#define TRACE (   stat)    stat

Function Documentation

◆ gel_compare_plat()

int gel_compare_plat ( gel_platform_t p1,
gel_platform_t p2 
)

Compare deux plateformes

Parameters
p1La plateforme 1
p2La plateforme 2
Returns
0 pour egal, un autre nombre pour different.

◆ gel_enum_file_symbol()

gel_enum_t* gel_enum_file_symbol ( gel_file_t f)

Renvoie une enumeration des symboles locaux d'un fichier. A liberer avec enum_free()

Parameters
fLe fichier.
Returns
L'enumeration, ou NULL si erreur.

◆ gel_enum_free()

void gel_enum_free ( gel_enum_t en)

Libere l'enumeration (uniquement l'enumeration, ne concerne pas l'objet auquel elle est attachee

Parameters
enL'enumeration

◆ gel_enum_initpos()

void gel_enum_initpos ( gel_enum_t en)

Initialise la position ("curseur") de l'enumeration

Parameters
enL'enumeration

◆ gel_enum_next()

void* gel_enum_next ( gel_enum_t en)

Renvoie le prochain element et incremente la position

Parameters
enL'enumeration
Returns
L'element lu ou NULL si fin de liste

◆ gel_find_file_symbol()

gel_sym_t* gel_find_file_symbol ( gel_file_t f,
char *  name 
)

Trouve un symbole local d'apres son nom et le fichier qui le contient. L'utilisateur ne doit pas desallouer le symbole avec free() apres usage.

Parameters
fLe descripteur du fichier qui doit contenir le symbole.
nameLe nom du symbole.
Returns
Le descripteur du symbole.

◆ gel_load_plugins()

void gel_load_plugins ( gel_platform_t f,
const char *  plugpath,
int  quiet 
)

Load the plugins required by the current binary.

Parameters
fPlatform to fill.
plugpathPath list to find the plugins.
quietIf not 0, doesn't display any warning.

◆ gel_replacesym()

void gel_replacesym ( gel_image_t im,
char *  symname,
gel_sym_t newsym 
)

Remplace (recopie) un symbole par un autre dans la table de hashage des symboles. Les deux symboles doivent avoir le meme nom.

Parameters
imLa table de hashage
symnameLe nom du symbole a remplacer
newsymLe nouveau symbole a mettre a sa place.

◆ gel_symbyidx()

gel_sym_t* gel_symbyidx ( gel_sect_t symtab,
u32_t  idx 
)

Recupere un symbole d'apres son index et sa section Le symbole doit etre free() par l'utilisateur

Parameters
symtabLa section
idxL'index du symbole
Returns
Le symbole gel_sym_t ou NULL

◆ gel_unload_plugins()

void gel_unload_plugins ( gel_platform_t pf)

Unload the plugins.

Parameters
pfPlatform to work on.

◆ mystrdup()

char* mystrdup ( char *  s)

fonction personnalisee de copie de chaines de carracteres