|
GEL
0.99
|
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include <gel/error.h>#include <gel/gel_plugin.h>#include <gel/gel_elf.h>#include "gel_mem.h"Macros | |
| #define | ALIGN(v, p2) ((v + (1 << p2) - 1) & ~((1 << p2) - 1)) |
| #define | TRACE /*fprintf(stderr, "%s:%d\n", __FILE__, __LINE__);*/ |
| #define | CONTAINS(b, a) ((b)->exec_begin <= (a) && (a) < (b)->exec_begin + (b)->exec_size) |
| #define | MARK |
| #define | STACKSIZE_THISDEFAULT 65536 |
| #define | STACKADDR_THISDEFAULT 0xc0000000 |
Functions | |
| gel_block_t ** | plugin_image_map (gel_env_t *env, gel_file_t *f, gel_file_t **tab, u32_t *num) |
| int | plugin_image_load (gel_env_t *env, gel_block_t **tab, u32_t num, vaddr_t *stack_pointer) |
Variables | |
| int | gel_errno |
| sys_plugin_t | null_plugin_sys |
| #define ALIGN | ( | v, | |
| p2 | |||
| ) | ((v + (1 << p2) - 1) & ~((1 << p2) - 1)) |
| #define CONTAINS | ( | b, | |
| a | |||
| ) | ((b)->exec_begin <= (a) && (a) < (b)->exec_begin + (b)->exec_size) |
| #define MARK |
| #define STACKADDR_THISDEFAULT 0xc0000000 |
| #define STACKSIZE_THISDEFAULT 65536 |
| #define TRACE /*fprintf(stderr, "%s:%d\n", __FILE__, __LINE__);*/ |
| int plugin_image_load | ( | gel_env_t * | env, |
| gel_block_t ** | tab, | ||
| u32_t | num, | ||
| vaddr_t * | stack_pointer | ||
| ) |
Cette fonction charge les donnees des gel_file_t (elements de tab[]) qu'elle recoit en parametre, aux adresse virtuelles decid�es anterieurement par plugin_image_map
Pour l'allocation memoire des blocks : 2 cas se presentent
/!\ cette fonction doit �tre appelee apres l'appel de "plugin_image_map"
| env | L'environnement |
| tab | Tableau des blocs a charger (est egal au tableau retourn� par plugin_image_map) |
| num | nom�bre de blocs |
| stack_pointer | pointeur vers l'addresse virtuelle du sommet de pile (si pas de pile la valeur pointee doit etre negative |
| gel_block_t** plugin_image_map | ( | gel_env_t * | env, |
| gel_file_t * | f, | ||
| gel_file_t ** | tab, | ||
| u32_t * | num | ||
| ) |
Cette fonction charge les informations (adresses virtuelles, tailles...) des fichiers gel_file_t (f et elements de tab[]) qu'elle recoit en parametre elle decide des adresse virtuelles compatible avec le systeme d'exploitation La fonction peut aussi creer des blocs supplementaires, comme par exemple pour la pile.
| env | L'environnement |
| f | L'executable |
| tab | Tableau des librairies dont l'executable depend |
| num | Pointeur sur le nombre de blocs/futur blocs (sans compter le bloc de l'executable f). Peut etre modifie par la fonction. |
| sys_plugin_t null_plugin_sys |
Null plugin for architecture.