⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flashtool_handle.h

📁 MTK 最新的flashtool工具的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
//------------------------------------------------------------------------------
// prototype of customized file integrity check callback                        
//------------------------------------------------------------------------------
typedef int (__stdcall *CALLBACK_FILE_INTEGRITY_CHECK)(unsigned char * const p_file_content, unsigned int * const p_file_length, void *user_arg);

//------------------------------------------------------------------------------
// BL_HANDLE: Exported Functions                                                
//------------------------------------------------------------------------------

typedef struct {
	_BOOL				m_valid;	// _TRUE -> dram setting is valid 
	unsigned int		m_emi_gen_a;
	unsigned int		m_emi_gen_b;
	unsigned int		m_emi_gen_c;
	unsigned int		m_emi_dram_con_i_mode;
	unsigned int		m_emi_dram_con_i_ext_mode;
	unsigned int		m_emi_dram_con_k;
	unsigned int		m_emi_dram_con_l;
} BL_DRAM_SETTING;

typedef struct {
	char				m_version[5];
	char				m_filepath[512];
	unsigned int		m_filesize;
	unsigned int		m_start_addr;
	unsigned int		m_chksum_seed;
	unsigned int		m_chksum;
	BL_DRAM_SETTING		m_dram_cfg;
	_BOOL				m_enable;	// _FALSE -> disbale 
									// _TRUE  -> enable  
} BL_INFO;

//------------------------------------------------------------------------------
// DL_HANDLE: Exported Functions                                                
//------------------------------------------------------------------------------
typedef enum {
	ABSOLUTE_ADDR = 0,
	OFFSET_VALUE
} REGION_ADDR_TYPE;

typedef enum {
	NORMAL_ROM = 0x01,
	RESOURCE_BIN = 0x02,
	JUMPTABLE_BIN = 0x04,
	ENFB_BIN = 0x08
} ROM_TYPE;

typedef struct {
	char 				name[64];
	unsigned int 		region_addr;
	REGION_ADDR_TYPE	addr_type;	// ABSOLUTE_ADDR -> region_addr is absolute address 
									// OFFSET_VALUE  -> region_addr is offset value 
	unsigned int 		begin_addr;
	unsigned int 		end_addr;
	char 				filepath[256];
	unsigned int 		filesize;
	unsigned short 		index;

	ROM_TYPE			rom_type;

	_BOOL				enable;	// _FALSE -> disbale 
								// _TRUE  -> enable  
}ROM_INFO;

typedef struct {
	unsigned int		m_is_nfb:1;
	unsigned int		m_security_supported:1;
	unsigned int		m_cust_para_supported:1;
	unsigned int		m_system_drive_on_nand:1;
	unsigned int		m_fota_full:1;
} DL_Config_T;

typedef struct {
	DL_Config_T			m_config;
} DL_INFO;

struct DL_HANDLE;
typedef struct DL_HANDLE *	DL_HANDLE_T;
extern int __stdcall DL_Create(DL_HANDLE_T  *p_dl_handle);
extern int __stdcall DL_Destroy(DL_HANDLE_T  *p_dl_handle);
extern int __stdcall DL_LoadScatter(DL_HANDLE_T  dl_handle, const char *scatter_filepath);
extern int __stdcall DL_SetPacketLength(DL_HANDLE_T  dl_handle, unsigned short length);
extern int __stdcall DL_GetCount(DL_HANDLE_T  dl_handle, unsigned short *p_rom_count);
extern int __stdcall DL_GetInfo(DL_HANDLE_T  dl_handle, DL_INFO  *p_dl_info);
extern int __stdcall DL_IsReady(DL_HANDLE_T  dl_handle, ROM_INFO  *p_rom_info, BL_INFO  *p_bl_info, _BOOL  check_if_updated);
extern int __stdcall DL_GetJumpTableInfo(DL_HANDLE_T  dl_handle, MTK_JumpTable  *p_jmptbl_info);
extern int __stdcall DL_GetProjectId(DL_HANDLE_T  dl_handle, char *buf, unsigned int buf_len);
extern int __stdcall DL_ResourceProjectIdComparisonSetting(DL_HANDLE_T  dl_handle, _BOOL  enable);
extern int __stdcall DL_AutoLoadByScatRegionName(DL_HANDLE_T  dl_handle, const char *full_filepath, unsigned char allow_rom_type);
extern int __stdcall DL_GetBBChipType(DL_HANDLE_T  dl_handle, BBCHIP_TYPE  *p_bbchip);
extern int __stdcall DL_GetBBChipName(DL_HANDLE_T  dl_handle, char *buf, unsigned int buf_len);
extern int __stdcall DL_GetCustomName(DL_HANDLE_T  dl_handle, char *buf, unsigned int buf_len);
extern int __stdcall DL_Rom_GetInfo(DL_HANDLE_T  dl_handle, unsigned short index, ROM_INFO  *p_rom_info);
extern int __stdcall DL_Rom_GetInfoAll(DL_HANDLE_T  dl_handle, ROM_INFO  *p_rom_info, unsigned short max_rom_count);
extern int __stdcall DL_Rom_GetResInfo(DL_HANDLE_T  dl_handle, unsigned short index, MTK_Resource  *p_res_info);
extern int __stdcall DL_Rom_Load(DL_HANDLE_T  dl_handle, unsigned short index, const char *rom_filepath);
extern int __stdcall DL_Rom_Unload(DL_HANDLE_T  dl_handle, unsigned short index);
extern int __stdcall DL_Rom_UnloadAll(DL_HANDLE_T  dl_handle);
extern int __stdcall DL_Rom_SetEnableAttr(DL_HANDLE_T  dl_handle, unsigned short index, _BOOL  attr);
extern int __stdcall DL_IsNFB(DL_HANDLE_T  dl_handle, _BOOL  *p_is_nfb);
extern int __stdcall DL_SetCallback(DL_HANDLE_T  dl_handle, 
									CALLBACK_REMOTE_GET_FILE_LEN	cb_remote_get_file_len,
									void *							cb_remote_get_file_len_arg,
									CALLBACK_REMOTE_READ_FILE		cb_remote_read_file,
									void *							cb_remote_read_file_arg,
									CALLBACK_FILE_INTEGRITY_CHECK	cb_file_integrity_check,
									void *							cb_file_integrity_check_arg);
// BL_HANDLE related 
extern int __stdcall DL_BL_IsReady(DL_HANDLE_T  dl_handle, BL_INFO  *p_bl_info, _BOOL  check_if_updated);
extern int __stdcall DL_BL_Load(DL_HANDLE_T  dl_handle, const char *bl_filepath);
extern int __stdcall DL_BL_GetInfo(DL_HANDLE_T  dl_handle, BL_INFO  *p_bl_info);
extern int __stdcall DL_BL_SetEnableAttr(DL_HANDLE_T  dl_handle, _BOOL  attr);

//------------------------------------------------------------------------------
// DL_HANDLE_LIST: Exported Functions                                           
//------------------------------------------------------------------------------
struct DL_HANDLE_LIST;
typedef struct DL_HANDLE_LIST *	DL_HANDLE_LIST_T;
extern int __stdcall DL_CreateList(DL_HANDLE_LIST_T * dl_handle_list);
extern int __stdcall DL_DestroyList(DL_HANDLE_LIST_T * dl_handle_list);
extern int __stdcall DL_AddHandleToList(DL_HANDLE_LIST_T dl_handle_list, DL_HANDLE_T dl_handle);
extern int __stdcall DL_DeleteHandleFromList(DL_HANDLE_LIST_T dl_handle_list, DL_HANDLE_T dl_handle);
extern int __stdcall DL_GetHandleNumber(DL_HANDLE_LIST_T dl_handle_list, int * HandleNumber);
extern int __stdcall DL_CheckHandleInList(DL_HANDLE_LIST_T dl_handle_list, DL_HANDLE_T dl_handle);
extern int __stdcall DL_CheckHandleSameSWVersionInList(DL_HANDLE_LIST_T dl_handle_list, DL_HANDLE_T dl_handle);

//------------------------------------------------------------------------------
// DA_HANDLE: Exported Functions                                                
//------------------------------------------------------------------------------

typedef struct {
	char			filepath[256];
	unsigned int	start_addr;
	unsigned char	*buf;
	unsigned int	buf_len;
	unsigned int	main_prog_size;
	char			version[13];
	char			last_modified_date[256];
}DA_INFO;

struct DA_HANDLE;
typedef struct DA_HANDLE *		DA_HANDLE_T;
extern int __stdcall DA_Create(DA_HANDLE_T  *p_da_handle);
extern int __stdcall DA_Destroy(DA_HANDLE_T  *p_da_handle);
extern int __stdcall DA_IsReady(DA_HANDLE_T  da_handle, DA_INFO  *p_da_info, _BOOL  check_if_updated);
extern int __stdcall DA_GetInfo(DA_HANDLE_T  da_handle, DA_INFO  *p_da_info);
extern int __stdcall DA_SetDefaultStartAddr(DA_HANDLE_T  da_handle, unsigned int da_start_addr);
extern int __stdcall DA_Load(DA_HANDLE_T  da_handle, const char *da_filepath, _BOOL  bDA_Validation);
extern int __stdcall DA_Unload(DA_HANDLE_T  da_handle);

//------------------------------------------------------------------------------
// RB_HANDLE: Exported Functions                                                
//------------------------------------------------------------------------------
typedef struct {
	char				filepath[256];
	unsigned int		readback_addr;
	unsigned int		readback_len;
	_BOOL				enable;	// _FALSE -> disbale 
								// _TRUE  -> enable  

	unsigned short		index;

	NUTL_ReadFlag_E		m_read_flag;

}RB_INFO;

struct RB_HANDLE;
typedef struct RB_HANDLE *	RB_HANDLE_T;
extern int __stdcall RB_Create(RB_HANDLE_T  *p_rb_handle);
extern int __stdcall RB_Destroy(RB_HANDLE_T  *p_rb_handle);
extern int __stdcall RB_SetPacketLength(RB_HANDLE_T  rb_handle, unsigned short length);
extern int __stdcall RB_GetCount(RB_HANDLE_T  rb_handle, unsigned short *p_rb_count);
extern int __stdcall RB_IsReady(RB_HANDLE_T  rb_handle, RB_INFO  *p_rb_info);
extern int __stdcall RB_GetInfo(RB_HANDLE_T  rb_handle, unsigned short index, RB_INFO  *p_rb_info);
extern int __stdcall RB_GetInfoAll(RB_HANDLE_T  rb_handle, RB_INFO  *p_rb_info, unsigned short max_rb_count);
extern int __stdcall RB_Append(RB_HANDLE_T  rb_handle, const char *rb_filepath, unsigned int rb_addr, unsigned int rb_len);
extern int __stdcall RB_Append_ReadToBuf(RB_HANDLE_T  rb_handle, unsigned int rb_addr, unsigned int rb_len, char *buf, unsigned int buf_len);
extern int __stdcall RB_Delete(RB_HANDLE_T  rb_handle, unsigned short index);
extern int __stdcall RB_SetFilepath(RB_HANDLE_T  rb_handle, unsigned short index, const char *rb_filepath);
extern int __stdcall RB_SetReadbackFlag(RB_HANDLE_T  rb_handle, unsigned short index, NUTL_ReadFlag_E  flag);
extern int __stdcall RB_SetReadbackAddr(RB_HANDLE_T  rb_handle, unsigned short index, unsigned int rb_addr);
extern int __stdcall RB_SetReadbackLength(RB_HANDLE_T  rb_handle, unsigned short index, unsigned int rb_len);
extern int __stdcall RB_ClearAll(RB_HANDLE_T  rb_handle);
extern int __stdcall RB_SetEnableAttr(RB_HANDLE_T  rb_handle, unsigned short index, _BOOL  attr);
extern int __stdcall RB_EnableReadbackFAT(RB_HANDLE_T  rb_handle, unsigned short index, _BOOL  attr);

//------------------------------------------------------------------------------
// AUTH_HANDLE: Exported Functions                                              
//------------------------------------------------------------------------------

typedef struct {
	unsigned int		m_version;
	char				m_filepath[512];
	unsigned char		m_secure_custom_name[32];
	unsigned char		m_description[512];
} AUTH_INFO;

struct AUTH_HANDLE;
typedef struct AUTH_HANDLE *	AUTH_HANDLE_T;
extern int __stdcall AUTH_Create(AUTH_HANDLE_T  *p_auth_handle);
extern int __stdcall AUTH_Destroy(AUTH_HANDLE_T  *p_auth_handle);
extern int __stdcall AUTH_IsReady(AUTH_HANDLE_T  auth_handle, AUTH_INFO  *p_auth_info, _BOOL  bCheckIfUpdated);
extern int __stdcall AUTH_GetInfo(AUTH_HANDLE_T  auth_handle, AUTH_INFO  *p_auth_info);
extern int __stdcall AUTH_Load(AUTH_HANDLE_T  auth_handle, const char *auth_filepath);
extern int __stdcall AUTH_Unload(AUTH_HANDLE_T  auth_handle);
extern int __stdcall AUTH_SetCallback(AUTH_HANDLE_T  auth_handle, 
									CALLBACK_REMOTE_GET_FILE_LEN	cb_remote_get_file_len,
									void *							cb_remote_get_file_len_arg,
									CALLBACK_REMOTE_READ_FILE		cb_remote_read_file,
									void *							cb_remote_read_file_arg,
									CALLBACK_FILE_INTEGRITY_CHECK	cb_file_integrity_check,
									void *							cb_file_integrity_check_arg);

#ifdef	__cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -