sourcepawn/decompiler/file_format.h
author David Anderson <dvander@alliedmods.net>
Wed Feb 25 20:07:12 2009 -0500 (2009-02-25)
changeset 2607 f3b8bbe17f85
parent 2325 7a24ee5557fb
permissions -rw-r--r--
Backed out changeset fa286305bd3f
dvander@2320
     1
#ifndef _INCLUDE_SPDECOMP_FILE_FORMAT_H_
dvander@2320
     2
#define _INCLUDE_SPDECOMP_FILE_FORMAT_H_
dvander@2320
     3
dvander@2320
     4
#include <sp_vm_types.h>
dvander@2320
     5
dvander@2320
     6
struct sp_debug_t
dvander@2320
     7
{
dvander@2320
     8
	const char *stringbase;		/**< base of string table */
dvander@2320
     9
	uint32_t	files_num;		/**< number of files */
dvander@2320
    10
	sp_fdbg_file_t *files;		/**< files table */
dvander@2320
    11
	uint32_t	lines_num;		/**< number of lines */
dvander@2320
    12
	sp_fdbg_line_t *lines;		/**< lines table */
dvander@2320
    13
	uint32_t	syms_num;		/**< number of symbols */
dvander@2320
    14
	sp_fdbg_symbol_t *symbols;	/**< symbol table */
dvander@2325
    15
	sp_fdbg_ntvtab_s *ntv;		/**< native table */
dvander@2320
    16
};
dvander@2320
    17
dvander@2320
    18
struct sp_tag_t
dvander@2320
    19
{
dvander@2320
    20
	uint32_t id;
dvander@2320
    21
	const char *name;
dvander@2320
    22
};
dvander@2320
    23
dvander@2320
    24
struct sp_file_t
dvander@2320
    25
{
dvander@2320
    26
	uint8_t *base;
dvander@2320
    27
	size_t base_size;
dvander@2320
    28
	uint8_t *pcode;
dvander@2320
    29
	uint32_t pcode_size;
dvander@2320
    30
	uint32_t pcode_version;
dvander@2320
    31
	uint8_t *data;
dvander@2320
    32
	uint32_t data_size;
dvander@2320
    33
	uint32_t mem_size;
dvander@2320
    34
	sp_public_t *publics;
dvander@2320
    35
	uint32_t num_publics;
dvander@2320
    36
	sp_pubvar_t *pubvars;
dvander@2320
    37
	uint32_t num_pubvars;
dvander@2320
    38
	sp_native_t *natives;
dvander@2320
    39
	uint32_t num_natives;
dvander@2320
    40
	sp_tag_t *tags;
dvander@2320
    41
	uint32_t num_tags;
dvander@2320
    42
	const char *stringbase;
dvander@2320
    43
	uint32_t flags;
dvander@2320
    44
	sp_debug_t debug;
dvander@2320
    45
};
dvander@2320
    46
dvander@2320
    47
void Sp_FreePlugin(sp_file_t *plugin);
dvander@2320
    48
sp_file_t *Sp_ReadPlugin(const char *file, int *err);
dvander@2320
    49
sp_fdbg_symbol_t *Sp_FindFunctionSym(sp_file_t *plugin, ucell_t addr);
dvander@2320
    50
sp_tag_t *Sp_FindTag(sp_file_t *plugin, uint32_t tag_id);
dvander@2320
    51
dvander@2320
    52
#endif //_INCLUDE_SPDECOMP_FILE_FORMAT_H_