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