📄 flashtool_handle.h
字号:
//------------------------------------------------------------------------------
// 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 + -