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