Dados gerais

Interface: RLibModFile
Arquivos: rlibmodfile.h
Última atualização: 29/07/2002
Autor: Luiz Henrique Shigunov
Informações

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

Descrição

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.

Estruturas

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.

0x00 - Close

Sintaxe

int RLibModFile_Close(RLibModFile_File *file);

Propriedades

Descrição

Esta função fecha o arquivo file.

Valor de retorno

0x01 - GetFuncsInfo

Sintaxe

int RLibModFile_GetFuncsInfo(RLibModFile_File *file, unsigned int interface, unsigned int imp, RLibModFile_FunctionInfo *info);

Propriedades

Descrição

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.

Valor de retorno

0x02 - GetImpInfo

Sintaxe

int RLibModFile_GetImpInfo(RLibModFile_File *file, unsigned int interface, unsigned int imp, RLibModFile_ImpInfo *info);

Propriedades

Descrição

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.

Valor de retorno

0x03 - GetInterInfo

Sintaxe

int RLibModFile_GetInterInfo(RLibModFile_File *file, unsigned int interface, RLibModFile_InterInfo *info);

Propriedades

Descrição

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.

Valor de retorno

0x04 - GetModuleInfo

Sintaxe

int RLibModFile_GetModuleInfo(RLibModFile_File *file, RLibModFile_ModuleInfo *info);

Propriedades

Descrição

Esta função obtém as informações do módulo file.

Em caso de sucesso, info será preenchido com as informações.

Valor de retorno

0x05 - GetUsedFunc

Sintaxe

int RLibModFile_GetUsedFunc(RLibModFile_File *file, unsigned int n, RLibModFile_UsedFuncInfo *info);

Propriedades

Descrição

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.

Valor de retorno

0x06 - GetUsedFuncReloc

Sintaxe

int RLibModFile_GetUsedFuncReloc(RLibModFile_File *file, unsigned int n, RLibModFile_UsedFuncRelocInfo *info);

Propriedades

Descrição

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.

Valor de retorno

0x07 - LoadCode

Sintaxe

int RLibModFile_LoadCode(RLibModFile_File *file, unsigned int start, unsigned int size, void *where, void *codeStart, void *roDataStart, void *dataStart);

Propriedades

Descrição

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.

Valor de retorno

0x08 - LoadData

Sintaxe

int RLibModFile_LoadData(RLibModFile_File *file, unsigned int start, unsigned int size, void *where, void *codeStart, void *roDataStart, void *dataStart);

Propriedades

Descrição

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.

Valor de retorno

0x09 - LoadROData

Sintaxe

int RLibModFile_LoadROData(RLibModFile_File *file, unsigned int start, unsigned int size, void *where, void *codeStart, void *roDataStart, void *dataStart);

Propriedades

Descrição

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.

Valor de retorno

0x0a - Open

Sintaxe

int RLibModFile_Open(const char *pathname, RLibModFile_File **file);

Propriedades

Descrição

Esta função abre o arquivo de módulo pathname.

Em caso de sucesso, file conterá o identificador do arquivo aberto.

Valor de retorno