xref: /OK3568_Linux_fs/external/rkupdate/DefineHeader.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef DEFINE_HEADER
2*4882a593Smuzhiyun #define DEFINE_HEADER
3*4882a593Smuzhiyun #ifndef _U
4*4882a593Smuzhiyun     #define _U _CTYPE_U
5*4882a593Smuzhiyun #endif
6*4882a593Smuzhiyun #ifndef _L
7*4882a593Smuzhiyun     #define _L _CTYPE_L
8*4882a593Smuzhiyun #endif
9*4882a593Smuzhiyun #ifndef _N
10*4882a593Smuzhiyun     #define _N _CTYPE_L
11*4882a593Smuzhiyun #endif
12*4882a593Smuzhiyun #ifndef _X
13*4882a593Smuzhiyun     #define _X _CTYPE_X
14*4882a593Smuzhiyun #endif
15*4882a593Smuzhiyun #ifndef _P
16*4882a593Smuzhiyun     #define _P _CTYPE_P
17*4882a593Smuzhiyun #endif
18*4882a593Smuzhiyun #ifndef _B
19*4882a593Smuzhiyun     #define _B _CTYPE_B
20*4882a593Smuzhiyun #endif
21*4882a593Smuzhiyun #ifndef _C
22*4882a593Smuzhiyun     #define _C _CTYPE_C
23*4882a593Smuzhiyun #endif
24*4882a593Smuzhiyun #ifndef _S
25*4882a593Smuzhiyun     #define _S _CTYPE_S
26*4882a593Smuzhiyun #endif
27*4882a593Smuzhiyun #include <stdio.h>
28*4882a593Smuzhiyun #include <stdlib.h>
29*4882a593Smuzhiyun #include <stdarg.h>
30*4882a593Smuzhiyun #include <string.h>
31*4882a593Smuzhiyun #include <sys/stat.h>
32*4882a593Smuzhiyun #include <sys/ioctl.h>
33*4882a593Smuzhiyun #include <fcntl.h>
34*4882a593Smuzhiyun #include <dirent.h>
35*4882a593Smuzhiyun #include <time.h>
36*4882a593Smuzhiyun #include <unistd.h>
37*4882a593Smuzhiyun //#include <iconv.h>
38*4882a593Smuzhiyun #include <wchar.h>
39*4882a593Smuzhiyun #include <errno.h>
40*4882a593Smuzhiyun #include <ctype.h>
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun #include "Property.hpp"
43*4882a593Smuzhiyun #include <list>
44*4882a593Smuzhiyun #include <vector>
45*4882a593Smuzhiyun //#include <set>
46*4882a593Smuzhiyun #include <string>
47*4882a593Smuzhiyun #include <sstream>
48*4882a593Smuzhiyun #include <algorithm>
49*4882a593Smuzhiyun using namespace std;
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun typedef unsigned int u_int32;
52*4882a593Smuzhiyun typedef unsigned char u_int8;
53*4882a593Smuzhiyun typedef unsigned char BYTE;
54*4882a593Smuzhiyun typedef signed char CHAR;
55*4882a593Smuzhiyun typedef BYTE *PBYTE;
56*4882a593Smuzhiyun typedef unsigned char UCHAR;
57*4882a593Smuzhiyun typedef unsigned short WCHAR;
58*4882a593Smuzhiyun typedef unsigned short USHORT;
59*4882a593Smuzhiyun typedef unsigned int    UINT;
60*4882a593Smuzhiyun typedef unsigned int    DWORD;
61*4882a593Smuzhiyun //#ifdef _UNICODE
62*4882a593Smuzhiyun //    typedef wchar_t tchar;
63*4882a593Smuzhiyun //    typedef wstring tstring;
64*4882a593Smuzhiyun //    #define _T(x) L ## x
65*4882a593Smuzhiyun //    #define _tcslen  wcslen
66*4882a593Smuzhiyun //    #define _tcscpy wcscpy
67*4882a593Smuzhiyun //    #define _tcsicmp wcscmp
68*4882a593Smuzhiyun //    #define _tcscmp  wcscmp
69*4882a593Smuzhiyun //    #define _stprintf swprintf
70*4882a593Smuzhiyun //    #define _istprint iswprint
71*4882a593Smuzhiyun //#else
72*4882a593Smuzhiyun typedef char tchar;
73*4882a593Smuzhiyun typedef string tstring;
74*4882a593Smuzhiyun #define _T(x) x
75*4882a593Smuzhiyun #define _tcslen  strlen
76*4882a593Smuzhiyun #define _tcscpy strcpy
77*4882a593Smuzhiyun #define _tcsicmp strcasecmp
78*4882a593Smuzhiyun #define _tcscmp  strcmp
79*4882a593Smuzhiyun #define _stprintf sprintf
80*4882a593Smuzhiyun #define _istprint isprint
81*4882a593Smuzhiyun //#endif
82*4882a593Smuzhiyun typedef enum
83*4882a593Smuzhiyun {
84*4882a593Smuzhiyun     RKNONE_DEVICE = 0,
85*4882a593Smuzhiyun     RK27_DEVICE = 0x10,
86*4882a593Smuzhiyun     RKCAYMAN_DEVICE,
87*4882a593Smuzhiyun     RK28_DEVICE = 0x20,
88*4882a593Smuzhiyun     RK281X_DEVICE,
89*4882a593Smuzhiyun     RKPANDA_DEVICE,
90*4882a593Smuzhiyun     RKNANO_DEVICE = 0x30,
91*4882a593Smuzhiyun     RKSMART_DEVICE,
92*4882a593Smuzhiyun     RKCROWN_DEVICE = 0x40,
93*4882a593Smuzhiyun     RK29_DEVICE = 0x50,
94*4882a593Smuzhiyun     RK292X_DEVICE,
95*4882a593Smuzhiyun     RK30_DEVICE = 0x60,
96*4882a593Smuzhiyun     RK30B_DEVICE,
97*4882a593Smuzhiyun     RK31_DEVICE = 0x70,
98*4882a593Smuzhiyun     RK32_DEVICE = 0x80
99*4882a593Smuzhiyun } ENUM_RKDEVICE_TYPE;
100*4882a593Smuzhiyun typedef enum
101*4882a593Smuzhiyun {
102*4882a593Smuzhiyun     RK_OS = 0,
103*4882a593Smuzhiyun     ANDROID_OS = 0x1
104*4882a593Smuzhiyun } ENUM_OS_TYPE;
105*4882a593Smuzhiyun 
106*4882a593Smuzhiyun typedef enum
107*4882a593Smuzhiyun {
108*4882a593Smuzhiyun     RKUSB_NONE = 0x0,
109*4882a593Smuzhiyun     RKUSB_MASKROM = 0x01,
110*4882a593Smuzhiyun     RKUSB_LOADER = 0x02,
111*4882a593Smuzhiyun     RKUSB_MSC = 0x04
112*4882a593Smuzhiyun } ENUM_RKUSB_TYPE;
113*4882a593Smuzhiyun typedef enum
114*4882a593Smuzhiyun {
115*4882a593Smuzhiyun     ENTRY471 = 1,
116*4882a593Smuzhiyun     ENTRY472 = 2,
117*4882a593Smuzhiyun     ENTRYLOADER = 4
118*4882a593Smuzhiyun } ENUM_RKBOOTENTRY;
119*4882a593Smuzhiyun #define  MSC_ANDROID_OPER 0xFF
120*4882a593Smuzhiyun typedef enum
121*4882a593Smuzhiyun {
122*4882a593Smuzhiyun     MSC_NONE_OPER = 0x0,
123*4882a593Smuzhiyun     MSC_FORMAT_OPER = 0x1,
124*4882a593Smuzhiyun     MSC_COPY_OPER = 0x2,
125*4882a593Smuzhiyun     MSC_FORMAT_DATA_OPER = 0x4,
126*4882a593Smuzhiyun     MSC_COPY_DATA_OPER = 0x8
127*4882a593Smuzhiyun } ENUM_MSC_OPER;
128*4882a593Smuzhiyun typedef enum
129*4882a593Smuzhiyun {
130*4882a593Smuzhiyun     MISC_MODIFY_NONE = 0,
131*4882a593Smuzhiyun     MISC_MODIFY_WIPE_ALL,
132*4882a593Smuzhiyun     MISC_MODIFY_WIPE_DATA,
133*4882a593Smuzhiyun } ENUM_MISC_MODIFY_FLAG;
134*4882a593Smuzhiyun typedef enum
135*4882a593Smuzhiyun {
136*4882a593Smuzhiyun     WF_UPGRADE = 1,
137*4882a593Smuzhiyun     WF_RESTORE,
138*4882a593Smuzhiyun     WF_GETOLDDISKSIZE,
139*4882a593Smuzhiyun     WF_READSN,
140*4882a593Smuzhiyun     WF_WRITESN,
141*4882a593Smuzhiyun     WF_ERASEFLASH,
142*4882a593Smuzhiyun     WF_ERASEIDB,
143*4882a593Smuzhiyun     WF_GETBLOCKSTATE,
144*4882a593Smuzhiyun     WF_READMAC,
145*4882a593Smuzhiyun     WF_WRITEMAC,
146*4882a593Smuzhiyun     WF_READBT,
147*4882a593Smuzhiyun     WF_WRITEBT,
148*4882a593Smuzhiyun     WF_READIMEI,
149*4882a593Smuzhiyun     WF_WRITEIMEI,
150*4882a593Smuzhiyun     WF_READUID,
151*4882a593Smuzhiyun     WF_READCUSTOMDATA,
152*4882a593Smuzhiyun     WF_WRITECUSTOMDATA,
153*4882a593Smuzhiyun     WF_READALLINFO,
154*4882a593Smuzhiyun     WF_WRITEALLINFO,
155*4882a593Smuzhiyun     WF_DOWNLOADBOOT
156*4882a593Smuzhiyun } ENUM_WORKFLOW;
157*4882a593Smuzhiyun #pragma pack(1)
158*4882a593Smuzhiyun typedef struct
159*4882a593Smuzhiyun {
160*4882a593Smuzhiyun     USHORT  usYear;
161*4882a593Smuzhiyun     BYTE    ucMonth;
162*4882a593Smuzhiyun     BYTE    ucDay;
163*4882a593Smuzhiyun     BYTE    ucHour;
164*4882a593Smuzhiyun     BYTE    ucMinute;
165*4882a593Smuzhiyun     BYTE    ucSecond;
166*4882a593Smuzhiyun } STRUCT_RKTIME, *PSTRUCT_RKTIME;
167*4882a593Smuzhiyun typedef struct
168*4882a593Smuzhiyun {
169*4882a593Smuzhiyun     char szItemName[20];
170*4882a593Smuzhiyun     UINT uiItemOffset;
171*4882a593Smuzhiyun     UINT uiItemSize;
172*4882a593Smuzhiyun } STRUCT_PARAM_ITEM, *PSTRUCT_PARAM_ITEM;
173*4882a593Smuzhiyun typedef struct
174*4882a593Smuzhiyun {
175*4882a593Smuzhiyun     char szItemName[20];
176*4882a593Smuzhiyun     char szItemValue[256];
177*4882a593Smuzhiyun } STRUCT_CONFIG_ITEM, *PSTRUCT_CONFIG_ITEM;
178*4882a593Smuzhiyun typedef struct _STRUCT_RKDEVICE_DESC
179*4882a593Smuzhiyun {
180*4882a593Smuzhiyun     USHORT usVid;
181*4882a593Smuzhiyun     USHORT usPid;
182*4882a593Smuzhiyun     USHORT usbcdUsb;
183*4882a593Smuzhiyun     UINT     uiLocationID;
184*4882a593Smuzhiyun     ENUM_RKUSB_TYPE emUsbType;
185*4882a593Smuzhiyun     ENUM_RKDEVICE_TYPE emDeviceType;
186*4882a593Smuzhiyun     void   *pUsbHandle;
187*4882a593Smuzhiyun } STRUCT_RKDEVICE_DESC, *PSTRUCT_RKDEVICE_DESC;
188*4882a593Smuzhiyun #pragma pack()
189*4882a593Smuzhiyun typedef list<STRUCT_RKDEVICE_DESC> RKDEVICE_DESC_SET;
190*4882a593Smuzhiyun typedef RKDEVICE_DESC_SET::iterator device_list_iter;
191*4882a593Smuzhiyun typedef vector<tstring> STRING_VECTOR;
192*4882a593Smuzhiyun typedef vector<UINT> UINT_VECTOR;
193*4882a593Smuzhiyun typedef vector<STRUCT_PARAM_ITEM> PARAM_ITEM_VECTOR;
194*4882a593Smuzhiyun typedef vector<STRUCT_CONFIG_ITEM> CONFIG_ITEM_VECTOR;
195*4882a593Smuzhiyun //typedef enum
196*4882a593Smuzhiyun //{
197*4882a593Smuzhiyun //      DOWNLOADBOOT_START=1,
198*4882a593Smuzhiyun //      DOWNLOADBOOT_FAIL=2,
199*4882a593Smuzhiyun //      DOWNLOADBOOT_PASS=3,
200*4882a593Smuzhiyun //      DOWNLOADIDBLOCK_START=4,
201*4882a593Smuzhiyun //      DOWNLOADIDBLOCK_FAIL=5,
202*4882a593Smuzhiyun //      DOWNLOADIDBLOCK_PASS=6,
203*4882a593Smuzhiyun //      DOWNLOADIMAGE_START=7,
204*4882a593Smuzhiyun //      DOWNLOADIMAGE_FAIL=8,
205*4882a593Smuzhiyun //      DOWNLOADIMAGE_PASS=9,
206*4882a593Smuzhiyun //      TESTDEVICE_START=10,
207*4882a593Smuzhiyun //      TESTDEVICE_FAIL=11,
208*4882a593Smuzhiyun //      TESTDEVICE_PASS=12,
209*4882a593Smuzhiyun //      RESETDEVICE_START=13,
210*4882a593Smuzhiyun //      RESETDEVICE_FAIL=14,
211*4882a593Smuzhiyun //      RESETDEVICE_PASS=15,
212*4882a593Smuzhiyun //      FORMATDISK_START=16,
213*4882a593Smuzhiyun //      FORMATDISK_FAIL=17,
214*4882a593Smuzhiyun //      FORMATDISK_PASS=18,
215*4882a593Smuzhiyun //      COPYDATA_START=19,
216*4882a593Smuzhiyun //      COPYDATA_FAIL=20,
217*4882a593Smuzhiyun //      COPYDATA_PASS=21,
218*4882a593Smuzhiyun //      WAITMSC_START=22,
219*4882a593Smuzhiyun //      WAITMSC_FAIL=23,
220*4882a593Smuzhiyun //      WAITMSC_PASS=24,
221*4882a593Smuzhiyun //      WAITLOADER_START=25,
222*4882a593Smuzhiyun //      WAITLOADER_FAIL=26,
223*4882a593Smuzhiyun //      WAITLOADER_PASS=27,
224*4882a593Smuzhiyun //      WAITMASKROM_START=28,
225*4882a593Smuzhiyun //      WAITMASKROM_FAIL=29,
226*4882a593Smuzhiyun //      WAITMASKROM_PASS=30,
227*4882a593Smuzhiyun //      ERASEIDB_START=31,
228*4882a593Smuzhiyun //      ERASEIDB_FAIL=32,
229*4882a593Smuzhiyun //      ERASEIDB_PASS=33,
230*4882a593Smuzhiyun //      SWITCHMSC_START=34,
231*4882a593Smuzhiyun //      SWITCHMSC_FAIL=35,
232*4882a593Smuzhiyun //      SWITCHMSC_PASS=36,
233*4882a593Smuzhiyun //      CHECKCHIP_START=37,
234*4882a593Smuzhiyun //      CHECKCHIP_FAIL=38,
235*4882a593Smuzhiyun //      CHECKCHIP_PASS=39,
236*4882a593Smuzhiyun //      PREPAREIDB_START=40,
237*4882a593Smuzhiyun //      PREPAREIDB_FAIL=41,
238*4882a593Smuzhiyun //      PREPAREIDB_PASS=42,
239*4882a593Smuzhiyun //      MUTEXRESETDEVICE_START=43,
240*4882a593Smuzhiyun //      MUTEXRESETDEVICE_FAIL=44,
241*4882a593Smuzhiyun //      MUTEXRESETDEVICE_PASS=45,
242*4882a593Smuzhiyun //      GETOLDDISKSIZE_START=46,
243*4882a593Smuzhiyun //      GETOLDDISKSIZE_FAIL=47,
244*4882a593Smuzhiyun //      GETOLDDISKSIZE_PASS=48,
245*4882a593Smuzhiyun //      READSN_START=49,
246*4882a593Smuzhiyun //      READSN_FAIL=50,
247*4882a593Smuzhiyun //      READSN_PASS=51,
248*4882a593Smuzhiyun //      WRITESN_START=52,
249*4882a593Smuzhiyun //      WRITESN_FAIL=53,
250*4882a593Smuzhiyun //      WRITESN_PASS=54,
251*4882a593Smuzhiyun //      ERASEALLBLOCKS_START=55,
252*4882a593Smuzhiyun //      ERASEALLBLOCKS_FAIL=56,
253*4882a593Smuzhiyun //      ERASEALLBLOCKS_PASS=57,
254*4882a593Smuzhiyun //      GETBLOCKSTATE_START=58,
255*4882a593Smuzhiyun //      GETBLOCKSTATE_FAIL=59,
256*4882a593Smuzhiyun //      GETBLOCKSTATE_PASS=60,
257*4882a593Smuzhiyun //      GETFLASHINFO_START=61,
258*4882a593Smuzhiyun //      GETFLASHINFO_FAIL=62,
259*4882a593Smuzhiyun //      GETFLASHINFO_PASS=63,
260*4882a593Smuzhiyun //      WRITEBACK_START=64,
261*4882a593Smuzhiyun //      WRITEBACK_FAIL=65,
262*4882a593Smuzhiyun //      WRITEBACK_PASS=66,
263*4882a593Smuzhiyun //      FINDUSERDISK_START=67,
264*4882a593Smuzhiyun //      FINDUSERDISK_FAIL=68,
265*4882a593Smuzhiyun //      FINDUSERDISK_PASS=69,
266*4882a593Smuzhiyun //      SHOWUSERDISK_START=70,
267*4882a593Smuzhiyun //      SHOWUSERDISK_FAIL=71,
268*4882a593Smuzhiyun //      SHOWUSERDISK_PASS=72,
269*4882a593Smuzhiyun //      READMAC_START=73,
270*4882a593Smuzhiyun //      READMAC_FAIL=74,
271*4882a593Smuzhiyun //      READMAC_PASS=75,
272*4882a593Smuzhiyun //      WRITEMAC_START=76,
273*4882a593Smuzhiyun //      WRITEMAC_FAIL=77,
274*4882a593Smuzhiyun //      WRITEMAC_PASS=78,
275*4882a593Smuzhiyun //      READBT_START=79,
276*4882a593Smuzhiyun //      READBT_FAIL=80,
277*4882a593Smuzhiyun //      READBT_PASS=81,
278*4882a593Smuzhiyun //      WRITEBT_START=82,
279*4882a593Smuzhiyun //      WRITEBT_FAIL=83,
280*4882a593Smuzhiyun //      WRITEBT_PASS=84,
281*4882a593Smuzhiyun //      LOWERFORMAT_START=85,
282*4882a593Smuzhiyun //      LOWERFORMAT_FAIL=86,
283*4882a593Smuzhiyun //      LOWERFORMAT_PASS=87,
284*4882a593Smuzhiyun //      READIMEI_START=88,
285*4882a593Smuzhiyun //      READIMEI_FAIL=89,
286*4882a593Smuzhiyun //      READIMEI_PASS=90,
287*4882a593Smuzhiyun //      WRITEIMEI_START=91,
288*4882a593Smuzhiyun //      WRITEIMEI_FAIL=92,
289*4882a593Smuzhiyun //      WRITEIMEI_PASS=93,
290*4882a593Smuzhiyun //      SHOWDATADISK_START=94,
291*4882a593Smuzhiyun //      SHOWDATADISK_FAIL=95,
292*4882a593Smuzhiyun //      SHOWDATADISK_PASS=96,
293*4882a593Smuzhiyun //      FINDDATADISK_START=97,
294*4882a593Smuzhiyun //      FINDDATADISK_FAIL=98,
295*4882a593Smuzhiyun //      FINDDATADISK_PASS=99,
296*4882a593Smuzhiyun //      FORMATDATADISK_START=100,
297*4882a593Smuzhiyun //      FORMATDATADISK_FAIL=101,
298*4882a593Smuzhiyun //      FORMATDATADISK_PASS=102,
299*4882a593Smuzhiyun //      COPYDATADISK_START=103,
300*4882a593Smuzhiyun //      COPYDATADISK_FAIL=104,
301*4882a593Smuzhiyun //      COPYDATADISK_PASS=105,
302*4882a593Smuzhiyun //      READUID_START=106,
303*4882a593Smuzhiyun //      READUID_FAIL=107,
304*4882a593Smuzhiyun //      READUID_PASS=108,
305*4882a593Smuzhiyun //      READCUSTOMDATA_START=109,
306*4882a593Smuzhiyun //      READCUSTOMDATA_FAIL=110,
307*4882a593Smuzhiyun //      READCUSTOMDATA_PASS=111,
308*4882a593Smuzhiyun //      WRITECUSTOMDATA_START=112,
309*4882a593Smuzhiyun //      WRITECUSTOMDATA_FAIL=113,
310*4882a593Smuzhiyun //      WRITECUSTOMDATA_PASS=114,
311*4882a593Smuzhiyun //      SETRESETFLAG_START=115,
312*4882a593Smuzhiyun //      SETRESETFLAG_FAIL=116,
313*4882a593Smuzhiyun //      SETRESETFLAG_PASS=117,
314*4882a593Smuzhiyun //      POWEROFF_START=118,
315*4882a593Smuzhiyun //      POWEROFF_FAIL=119,
316*4882a593Smuzhiyun //      POWEROFF_PASS=120,
317*4882a593Smuzhiyun //      READALLINFO_START=121,
318*4882a593Smuzhiyun //      READALLINFO_FAIL=122,
319*4882a593Smuzhiyun //      READALLINFO_PASS=123,
320*4882a593Smuzhiyun //      WRITEALLINFO_START=124,
321*4882a593Smuzhiyun //      WRITEALLINFO_FAIL=125,
322*4882a593Smuzhiyun //      WRITEALLINFO_PASS=126,
323*4882a593Smuzhiyun //      RESETMSC_START=127,
324*4882a593Smuzhiyun //      RESETMSC_FAIL=128,
325*4882a593Smuzhiyun //      RESETMSC_PASS=129
326*4882a593Smuzhiyun //}ENUM_UPGRADE_PROMPT;
327*4882a593Smuzhiyun //typedef enum
328*4882a593Smuzhiyun //{
329*4882a593Smuzhiyun //  TESTDEVICE_PROGRESS,
330*4882a593Smuzhiyun //  DOWNLOADIMAGE_PROGRESS,
331*4882a593Smuzhiyun //  CHECKIMAGE_PROGRESS,
332*4882a593Smuzhiyun //  TAGBADBLOCK_PROGRESS,
333*4882a593Smuzhiyun //  TESTBLOCK_PROGRESS,
334*4882a593Smuzhiyun //  ERASEFLASH_PROGRESS,
335*4882a593Smuzhiyun //  ERASESYSTEM_PROGRESS,
336*4882a593Smuzhiyun //  LOWERFORMAT_PROGRESS,
337*4882a593Smuzhiyun //  ERASEUSERDATA_PROGRESS
338*4882a593Smuzhiyun //}ENUM_PROGRESS_PROMPT;
339*4882a593Smuzhiyun //#define   MSC_SWITCHROCKUSB   0xFFFFFFFE
340*4882a593Smuzhiyun //#define MSC_GETVERSIONINFO    0xFFFFFFFF
341*4882a593Smuzhiyun //#define MSC_RESETDEVICE       0xFFFFFFFD
342*4882a593Smuzhiyun //#define MSC_GETCHIPINFO       0xFFFFFFFC
343*4882a593Smuzhiyun //#define MSC_SHOWUSERDISK  0xFFFFFFFB
344*4882a593Smuzhiyun //#define MSC_GETDEVIVEUID  0xFFFFFFF7
345*4882a593Smuzhiyun //#define MSC_SHOWDATADISK  0xFFFFFFF6
346*4882a593Smuzhiyun //#define MSC_GETPRODUCTMODEL 0xFFFFFFF3
347*4882a593Smuzhiyun //#define MSC_GETPARAMETER  0xFFFFFFF2
348*4882a593Smuzhiyun //#define MSC_GETIDBSECTOR  0xFFFFFFF1
349*4882a593Smuzhiyun //#define MSC_GETPRODUCTSN  0xFFFFFFEF
350*4882a593Smuzhiyun //typedef enum
351*4882a593Smuzhiyun //{
352*4882a593Smuzhiyun //  CALL_FIRST,
353*4882a593Smuzhiyun //  CALL_MIDDLE,
354*4882a593Smuzhiyun //  CALL_LAST
355*4882a593Smuzhiyun //}ENUM_CALL_STEP;
356*4882a593Smuzhiyun 
357*4882a593Smuzhiyun //typedef void (*UpgradeStepPromptCB)(DWORD deviceLayer,ENUM_UPGRADE_PROMPT promptID,DWORD oldDeviceLayer);
358*4882a593Smuzhiyun //typedef void (*ProgressPromptCB)(DWORD deviceLayer,ENUM_PROGRESS_PROMPT promptID,long long totalValue,long long currentValue,ENUM_CALL_STEP emCall);
359*4882a593Smuzhiyun 
360*4882a593Smuzhiyun //bool WideStringToString(wchar_t *pszSrc,char *&pszDest);
361*4882a593Smuzhiyun //bool StringToWideString(char *pszSrc,wchar_t *&pszDest);
362*4882a593Smuzhiyun //bool transform(string &src,bool lowercase);
363*4882a593Smuzhiyun typedef void (*UpgradeCallbackFunc)(char *pszPrompt);
364*4882a593Smuzhiyun typedef void (*UpgradeProgressCallbackFunc)(float portion, float seconds);
365*4882a593Smuzhiyun #endif
366