Interface: RLibModFile Arquivos: rlibmodfile.h Última atualização: 29/07/2002 Autor: Luiz Henrique Shigunov |
Descrição Estruturas Formato do arquivo de módulo biblioteca |
Funções | |
0x00 - Close - Fecha o arquivo de módulo 0x01 - GetFuncsInfo - Obtém informações sobre as funções 0x02 - GetImpInfo - Obtém informações sobre uma implementação 0x03 - GetInterInfo - Obtém informações sobre uma interface 0x04 - GetModuleInfo - Obtém informações sobre o módulo 0x05 - GetUsedFunc - Obtém informações sobre uma função utilizada pelo módulo |
0x06 - GetUsedFuncReloc - Obtém informações sobre uma relocação das funções utilizadas pelo módulo 0x07 - LoadCode - Carrega o código do módulo 0x08 - LoadData - Carrega os dados do módulo 0x09 - LoadROData - Carrega os dados somente leitura do módulo 0x0a - Open - Abre um arquivo de módulo |
Esta página descreve a interface RLibModFile que trata do acesso aos arquivos de módulo biblioteca.
O leitor de arquivos de módulo biblioteca obtém os dados do módulo, código, dados, dados somente leitura, informações sobre as funções, funções utilizadas, informações sobre relocação, etc.
typedef struct { unsigned int codeStart; unsigned int prop; } RLibModFile_FunctionInfo;
typedef struct { const char *name; } RLibModFile_ImpInfo;
typedef struct { const char *name; unsigned int nFunctions; } RLibModFile_InterInfo;
typedef struct { char md5[16]; const char *comment; void *start; void *shutdown; unsigned int codeSize; unsigned int roDataSize; unsigned int dataSize; unsigned int version; unsigned int prop; } RLibModFile_ModuleInfo;
typedef struct { const char *interface; const char *imp; unsigned int function; unsigned int prop; } RLibModFile_UsedFuncInfo;
typedef struct { UsedFuncInfo function; unsigned int offset; unsigned int prop; } RLibModFile_UsedFuncRelocInfo;
Os nomes não podem ser alterados, pois apontam para os nomes realmente e não para uma cópia.
int RLibModFile_Close(RLibModFile_File *file);
Esta função fecha o arquivo file.
int RLibModFile_GetFuncsInfo(RLibModFile_File *file, unsigned int interface, unsigned int imp, RLibModFile_FunctionInfo *info);
Esta função obtém as informações de todas as funções da implementação imp da interface interface do arquivo file.
info tem que ser um vetor com no mínimo a mesma quantidade de posições que o número de funções da interface interface.
Em caso de sucesso, info será preenchido com as informações.
int RLibModFile_GetImpInfo(RLibModFile_File *file, unsigned int interface, unsigned int imp, RLibModFile_ImpInfo *info);
Esta função obtém as informações da implementação imp da interface interface do arquivo file.
interface é o mesmo usado na função GetInterInfo.
Em caso de sucesso, info será preenchido com as informações.
int RLibModFile_GetInterInfo(RLibModFile_File *file, unsigned int interface, RLibModFile_InterInfo *info);
Esta função obtém as informações da interface interface do arquivo file.
interface é o mesmo número usado na função GetFuncInfo.
Em caso de sucesso, info será preenchido com as informações.
int RLibModFile_GetModuleInfo(RLibModFile_File *file, RLibModFile_ModuleInfo *info);
Esta função obtém as informações do módulo file.
Em caso de sucesso, info será preenchido com as informações.
int RLibModFile_GetUsedFunc(RLibModFile_File *file, unsigned int n, RLibModFile_UsedFuncInfo *info);
Esta função obtém a n função usada pelo módulo file.
n começa em 0.
Em caso de sucesso, info será preenchido com as informações.
int RLibModFile_GetUsedFuncReloc(RLibModFile_File *file, unsigned int n, RLibModFile_UsedFuncRelocInfo *info);
Esta função obtém a n relocação de função usada pelo módulo file.
n começa em 0.
Em caso de sucesso, info será preenchido com as informações.
int RLibModFile_LoadCode(RLibModFile_File *file, unsigned int start, unsigned int size, void *where, void *codeStart, void *roDataStart, void *dataStart);
Esta função carrega o código do módulo file.
roDataStart é um ponteiro para o início dos dados somente leitura do módulo, dataStart é um ponteiro para o início dos dados do módulo, codeStart um ponteiro para o início do código do módulo e where o ponteiro para a área de memória onde colocar o código carregado.
roDataStart, dataStart e codeStart são usados para fazer a relocação no código.
Serão carregados size bytes de código começando da posição start.
start é relativo ao início do código, sendo 0 o primeiro byte de código do módulo.
int RLibModFile_LoadData(RLibModFile_File *file, unsigned int start, unsigned int size, void *where, void *codeStart, void *roDataStart, void *dataStart);
Esta função carrega os dados do módulo file.
roDataStart é um ponteiro para o início dos dados somente leitura do módulo, dataStart é um ponteiro para o início dos dados do módulo, codeStart um ponteiro para o início do código do módulo e where o ponteiro para a área de memória onde colocar os dados carregados.
roDataStart, dataStart e codeStart são usados para fazer a relocação nos dados.
Serão carregados size bytes de dados começando da posição start.
start é relativo ao início do dados, sendo 0 o primeiro byte de dados do módulo.
Os dados não iniciados do módulo serão iniciados com zero.
int RLibModFile_LoadROData(RLibModFile_File *file, unsigned int start, unsigned int size, void *where, void *codeStart, void *roDataStart, void *dataStart);
Esta função carrega os dados somente leitura do módulo file.
roDataStart é um ponteiro para o início dos dados somente leitura do módulo, dataStart é um ponteiro para o início dos dados do módulo, codeStart um ponteiro para o início do código do módulo e where o ponteiro para a área de memória onde colocar os dados somente leitura carregados.
roDataStart, dataStart e codeStart são usados para fazer a relocação nos dados somente leitura.
Serão carregados size bytes de dados somente leitura começando da posição start.
start é relativo ao início do dados somente leitura, sendo 0 o primeiro byte de dados somente leitura do módulo.
int RLibModFile_Open(const char *pathname, RLibModFile_File **file);
Esta função abre o arquivo de módulo pathname.
Em caso de sucesso, file conterá o identificador do arquivo aberto.