#ifndef DEFINE_HEADER
|
#define DEFINE_HEADER
|
|
typedef unsigned int u_int32;
|
typedef unsigned char u_int8;
|
typedef unsigned char BYTE;
|
typedef signed char CHAR;
|
typedef BYTE *PBYTE;
|
typedef unsigned char UCHAR;
|
typedef unsigned short WCHAR;
|
typedef unsigned short USHORT;
|
typedef unsigned int UINT;
|
typedef unsigned int DWORD;
|
|
typedef char tchar;
|
|
#define LBA_TRANSFER_SIZE 16*1024
|
#define LBA_LOOP_SIZE 1024*1024
|
|
#define MAX_PACKAGE_FILES 16
|
#define RKIMAGE_TAG 0x46414B52
|
#define PARTNAME_BOOTLOADER "bootloader"
|
#define PARTNAME_PARAMETER "parameter"
|
#define PARTNAME_KERNEL "kernel"
|
#define PARTNAME_BOOT "boot"
|
#define PARTNAME_RECOVERY "recovery"
|
#define PARTNAME_SYSTEM "system"
|
#define PARTNAME_MISC "misc"
|
#define PARTNAME_BACKUP "backup"
|
#define PARTNAME_USERDATA "userdata"
|
#define PARTNAME_USER "user"
|
|
#define MAX_MANUFACTURER 60
|
#define MAX_MACHINE_INFO 30
|
#define MAX_MACHINE_MODEL 34
|
#define RELATIVE_PATH 60
|
#define PART_NAME 32
|
#define IMAGE_RESERVED_SIZE 61
|
|
typedef enum
|
{
|
RKNONE_DEVICE=0,
|
RK27_DEVICE=0x10,
|
RKCAYMAN_DEVICE,
|
RK28_DEVICE=0x20,
|
RK281X_DEVICE,
|
RKPANDA_DEVICE,
|
RKNANO_DEVICE=0x30,
|
RKSMART_DEVICE,
|
RKCROWN_DEVICE=0x40,
|
RK29_DEVICE=0x50,
|
RK292X_DEVICE,
|
RK30_DEVICE=0x60,
|
RK30B_DEVICE,
|
RK31_DEVICE=0x70,
|
RK32_DEVICE=0x80
|
}ENUM_RKDEVICE_TYPE;
|
|
typedef enum
|
{
|
RK_OS=0,
|
ANDROID_OS=0x1
|
}ENUM_OS_TYPE;
|
|
#pragma pack(1)
|
typedef struct
|
{
|
char name[PART_NAME];// ·ÖÇøÃû³Æ
|
char file[RELATIVE_PATH];// Ïà¶Ô·¾¶Ãû£¬ÌáÈ¡ÎļþʱÓõ½
|
unsigned int part_size;//·ÖÇøÕ¼ÓÃÉÈÇøÊý
|
unsigned int offset;// ÎļþÔÚImageÖÐµÄÆ«ÒÆ
|
unsigned int flash_offset;// ÉÕдµ½FlashÖеÄλÖÃ(ÒÔsectorΪµ¥Î»)
|
unsigned int usespace;// ÎļþÕ¼Óÿռ䣨°´PAGE¶ÔÆë)
|
unsigned int size;// ×Ö½ÚÊý£¬Êµ¼ÊÎļþ´óС
|
}STRUCT_RKIMAGE_ITEM,*PSTRUCT_RKIMAGE_ITEM;
|
|
typedef struct
|
{
|
USHORT usYear;
|
BYTE ucMonth;
|
BYTE ucDay;
|
BYTE ucHour;
|
BYTE ucMinute;
|
BYTE ucSecond;
|
}STRUCT_RKTIME,*PSTRUCT_RKTIME;
|
|
typedef struct
|
{
|
char szItemName[20];
|
UINT uiItemOffset;
|
UINT uiItemSize;
|
}STRUCT_PARAM_ITEM,*PSTRUCT_PARAM_ITEM;
|
|
typedef struct
|
{
|
char szItemName[20];
|
char szItemValue[256];
|
}STRUCT_CONFIG_ITEM,*PSTRUCT_CONFIG_ITEM;
|
|
typedef struct
|
{
|
UINT uiTag;
|
USHORT usSize;
|
DWORD dwVersion;
|
DWORD dwMergeVersion;
|
STRUCT_RKTIME stReleaseTime;
|
ENUM_RKDEVICE_TYPE emSupportChip;
|
DWORD dwBootOffset;
|
DWORD dwBootSize;
|
DWORD dwFWOffset;
|
DWORD dwFWSize;
|
BYTE reserved[IMAGE_RESERVED_SIZE];
|
}STRUCT_RKIMAGE_HEAD,*PSTRUCT_RKIMAGE_HEAD;
|
|
typedef struct tagRKIMAGE_HDR
|
{
|
unsigned int tag;
|
unsigned int size;// Îļþ´óС£¬²»º¬Ä©Î²µÄCRCУÑéÂë
|
char machine_model[MAX_MACHINE_MODEL];
|
char machine_info[MAX_MACHINE_INFO];
|
char manufacturer[MAX_MANUFACTURER];
|
unsigned int dwFWVer;
|
int item_count;
|
STRUCT_RKIMAGE_ITEM item[MAX_PACKAGE_FILES];
|
}STRUCT_RKIMAGE_HDR,*PSTRUCT_RKIMAGE_HDR;
|
|
#pragma pack()
|
|
#endif
|