53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
#ifndef _INCLUDE_SPDECOMP_FILE_FORMAT_H_
|
|
#define _INCLUDE_SPDECOMP_FILE_FORMAT_H_
|
|
|
|
#include <sp_vm_types.h>
|
|
|
|
struct sp_debug_t
|
|
{
|
|
const char *stringbase; /**< base of string table */
|
|
uint32_t files_num; /**< number of files */
|
|
sp_fdbg_file_t *files; /**< files table */
|
|
uint32_t lines_num; /**< number of lines */
|
|
sp_fdbg_line_t *lines; /**< lines table */
|
|
uint32_t syms_num; /**< number of symbols */
|
|
sp_fdbg_symbol_t *symbols; /**< symbol table */
|
|
sp_fdbg_ntvtab_s *ntv; /**< native table */
|
|
};
|
|
|
|
struct sp_tag_t
|
|
{
|
|
uint32_t id;
|
|
const char *name;
|
|
};
|
|
|
|
struct sp_file_t
|
|
{
|
|
uint8_t *base;
|
|
size_t base_size;
|
|
uint8_t *pcode;
|
|
uint32_t pcode_size;
|
|
uint32_t pcode_version;
|
|
uint8_t *data;
|
|
uint32_t data_size;
|
|
uint32_t mem_size;
|
|
sp_public_t *publics;
|
|
uint32_t num_publics;
|
|
sp_pubvar_t *pubvars;
|
|
uint32_t num_pubvars;
|
|
sp_native_t *natives;
|
|
uint32_t num_natives;
|
|
sp_tag_t *tags;
|
|
uint32_t num_tags;
|
|
const char *stringbase;
|
|
uint32_t flags;
|
|
sp_debug_t debug;
|
|
};
|
|
|
|
void Sp_FreePlugin(sp_file_t *plugin);
|
|
sp_file_t *Sp_ReadPlugin(const char *file, int *err);
|
|
sp_fdbg_symbol_t *Sp_FindFunctionSym(sp_file_t *plugin, ucell_t addr);
|
|
sp_tag_t *Sp_FindTag(sp_file_t *plugin, uint32_t tag_id);
|
|
|
|
#endif //_INCLUDE_SPDECOMP_FILE_FORMAT_H_
|