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
     1 #ifndef _INCLUDE_SPDECOMP_FILE_FORMAT_H_
     2 #define _INCLUDE_SPDECOMP_FILE_FORMAT_H_
     3 
     4 #include <sp_vm_types.h>
     5 
     6 struct sp_debug_t
     7 {
     8 	const char *stringbase;		/**< base of string table */
     9 	uint32_t	files_num;		/**< number of files */
    10 	sp_fdbg_file_t *files;		/**< files table */
    11 	uint32_t	lines_num;		/**< number of lines */
    12 	sp_fdbg_line_t *lines;		/**< lines table */
    13 	uint32_t	syms_num;		/**< number of symbols */
    14 	sp_fdbg_symbol_t *symbols;	/**< symbol table */
    15 	sp_fdbg_ntvtab_s *ntv;		/**< native table */
    16 };
    17 
    18 struct sp_tag_t
    19 {
    20 	uint32_t id;
    21 	const char *name;
    22 };
    23 
    24 struct sp_file_t
    25 {
    26 	uint8_t *base;
    27 	size_t base_size;
    28 	uint8_t *pcode;
    29 	uint32_t pcode_size;
    30 	uint32_t pcode_version;
    31 	uint8_t *data;
    32 	uint32_t data_size;
    33 	uint32_t mem_size;
    34 	sp_public_t *publics;
    35 	uint32_t num_publics;
    36 	sp_pubvar_t *pubvars;
    37 	uint32_t num_pubvars;
    38 	sp_native_t *natives;
    39 	uint32_t num_natives;
    40 	sp_tag_t *tags;
    41 	uint32_t num_tags;
    42 	const char *stringbase;
    43 	uint32_t flags;
    44 	sp_debug_t debug;
    45 };
    46 
    47 void Sp_FreePlugin(sp_file_t *plugin);
    48 sp_file_t *Sp_ReadPlugin(const char *file, int *err);
    49 sp_fdbg_symbol_t *Sp_FindFunctionSym(sp_file_t *plugin, ucell_t addr);
    50 sp_tag_t *Sp_FindTag(sp_file_t *plugin, uint32_t tag_id);
    51 
    52 #endif //_INCLUDE_SPDECOMP_FILE_FORMAT_H_