Dados gerais

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

Descrição
Estruturas
Formato do arquivo de módulo do sistema
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 - Open - Abre um arquivo de módulo

Descrição

Esta página descreve a interface RSysModFile que trata do acesso aos arquivos de módulo do sistema.

O leitor de arquivos de módulos do sistema obtém as informações dos arquivos de módulos do sistema. Essas informações incluem os dados do módulo, código, dados, informações sobre as funções, funções utilizadas, informações sobre relocação, etc.

Estruturas

typedef struct {
    unsigned int codeStart;
    unsigned int prop;
} RSysModFile_FunctionInfo;

typedef struct {
    const char *name;
} RSysModFile_ImpInfo;

typedef struct {
    const char *name;
    unsigned int nFunctions;
} RSysModFile_InterInfo;

typedef struct {
    char md5[16];
    const char *comment;
    void *phase0Start;
    void *phase1Start;
    void *shutdown;
    unsigned int codeSize;
    unsigned int dataSize;
    unsigned int version;
    unsigned int prop;
} RSysModFile_ModuleInfo;

typedef struct {
    const char *interface;
    const char *imp;
    unsigned int function;
} RSysModFile_UsedFuncInfo;

typedef struct {
    const char *interface;
    const char *imp;
    unsigned int function;
    unsigned int offset;
    unsigned int prop;
} RSysModFile_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 RSysModFile_Close(RSysModFile_File *file);

Propriedades

Descrição

Esta função fecha o arquivo file.

Valor de retorno

0x01 - GetFuncsInfo

Sintaxe

int RSysModFile_GetFuncsInfo(RSysModFile_File *file, unsigned int interface, unsigned int imp, RSysModFile_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 RSysModFile_GetImpInfo(RSysModFile_File *file, unsigned int interface, unsigned int imp, RSysModFile_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 RSysModFile_GetInterInfo(RSysModFile_File *file, unsigned int interface, RSysModFile_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 RSysModFile_GetModuleInfo(RSysModFile_File *file, RSysModFile_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 RSysModFile_GetUsedFunc(RSysModFile_File *file, unsigned int n, RSysModFile_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 RSysModFile_GetUsedFuncReloc(RSysModFile_File *file, unsigned int n, RSysModFile_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 RSysModFile_LoadCode(RSysModFile_File *file, unsigned int start, unsigned int size, void *where, void *codeStart, void *dataStart);

Propriedades

Descrição

Esta função carrega o código do módulo file.

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.

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 RSysModFile_LoadData(RSysModFile_File *file, unsigned int start, unsigned int size, void *where, void *codeStart, void *dataStart);

Propriedades

Descrição

Esta função carrega os dados do módulo file.

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.

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 - Open

Sintaxe

int RSysModFile_Open(const char *pathname, RSysModFile_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