00001
00011 #ifndef __GOBI_API_FMS_H__
00012 #define __GOBI_API_FMS_H__
00013
00014 #ifdef __cplusplus
00015 extern "C" {
00016 #endif
00017
00018
00019 #define SLQSFWINFO_MODELID_SZ 20
00020 #define SLQSFWINFO_BOOTVERSION_SZ 85
00021 #define SLQSFWINFO_APPVERSION_SZ 85
00022 #define SLQSFWINFO_SKU_SZ 15
00023 #define SLQSFWINFO_PACKAGEID_SZ 85
00024 #define SLQSFWINFO_CARRIER_SZ 20
00025 #define SLQSFWINFO_PRIVERSION_SZ 10
00026
00027 #define GOBI_MBN_IMG_ID_STR_LEN 16
00028 #define GOBI_MBN_BUILD_ID_STR_LEN 100
00029 #define GOBI_LISTENTRIES_MAX 2
00030 #define GOBI_SET_IMG_PREF_RSPLEN 40
00031 #define DEVICE_SHUTDOWN 5
00032 #define DEVICE_RESET 4
00033
00048 struct fwinfo_s
00049 {
00050 ULONG FirmwareID;
00051 ULONG Technology;
00052 ULONG Carrier;
00053 ULONG Region;
00054 ULONG GPSCapability;
00055 };
00056
00068 struct slqsfwinfo_s{
00069 CHAR modelid_str[SLQSFWINFO_MODELID_SZ];
00070 CHAR bootversion_str[SLQSFWINFO_BOOTVERSION_SZ];
00071 CHAR appversion_str[SLQSFWINFO_APPVERSION_SZ];
00072 CHAR sku_str[SLQSFWINFO_SKU_SZ];
00073 CHAR packageid_str[SLQSFWINFO_PACKAGEID_SZ];
00074 CHAR carrier_str[SLQSFWINFO_CARRIER_SZ];
00075 CHAR priversion_str[SLQSFWINFO_PRIVERSION_SZ];
00076 };
00077
00087 struct qmifwinfo_s
00088 {
00089 union
00090 {
00091 struct fwinfo_s g;
00092 struct slqsfwinfo_s s;
00093 } dev;
00094 };
00095
00113 extern ULONG GetImageStore(
00114 WORD imageStorePathSize,
00115 CHAR *pImageStorePath );
00116
00120 enum eGobiImageTech
00121 {
00122 eGOBI_IMG_TECH_CDMA = 0,
00123 eGOBI_IMG_TECH_UMTS
00124 };
00125
00129 enum eGobiImageCarrier
00130 {
00131 eGOBI_IMG_CAR_GENERIC = 1,
00132 eGOBI_IMG_CAR_FACTORY,
00133 eGOBI_IMG_CAR_NORF,
00134
00135 eGOBI_IMG_CAR_VERIZON = 101,
00136 eGOBI_IMG_CAR_SPRINT,
00137 eGOBI_IMG_CAR_ALLTEL,
00138 eGOBI_IMG_CAR_BELL,
00139 eGOBI_IMG_CAR_TELUS,
00140 eGOBI_IMG_CAR_US,
00141 eGOBI_IMG_CAR_TELSTRA1,
00142 eGOBI_IMG_CAR_CHINA_UNICOM,
00143 eGOBI_IMG_CAR_TELCOM_NZ,
00144 eGOBI_IMG_CAR_SK_TELCOM1,
00145 eGOBI_IMG_CAR_RELIANCE1,
00146 eGOBI_IMG_CAR_TATA,
00147 eGOBI_IMG_CAR_METROPCS,
00148 eGOBI_IMG_CAR_LEAP,
00149 eGOBI_IMG_CAR_KDDI,
00150 eGOBI_IMG_CAR_IUSACELL,
00151 eGOBI_IMG_CAR_CHINA_TELECOM,
00152 eGOBI_IMG_CAR_OMH,
00153
00154 eGOBI_IMG_CAR_ATT = 201,
00155 eGOBI_IMG_CAR_VODAFONE,
00156 eGOBI_IMG_CAR_TMOBILE,
00157 eGOBI_IMG_CAR_ORANGE,
00158 eGOBI_IMG_CAR_TELEFONICA,
00159 eGOBI_IMG_CAR_TELCOM_ITALIA,
00160 eGOBI_IMG_CAR_3,
00161 eGOBI_IMG_CAR_O2,
00162 eGOBI_IMG_CAR_SFR,
00163 eGOBI_IMG_CAR_SWISSCOM,
00164 eGOBI_IMG_CAR_CHINA_MOBILE,
00165 eGOBI_IMG_CAR_TELSTRA2,
00166 eGOBI_IMG_CAR_SINGTEL_OPTUS,
00167 eGOBI_IMG_CAR_RELIANCE2,
00168 eGOBI_IMG_CAR_BHARTI,
00169 eGOBI_IMG_CAR_NTT_DOCOMO,
00170 eGOBI_IMG_CAR_EMOBILE,
00171 eGOBI_IMG_CAR_SOFTBANK,
00172 eGOBI_IMG_CAR_KT_FREETEL,
00173 eGOBI_IMG_CAR_SK_TELCOM2,
00174 eGOBI_IMG_CAR_TELENOR,
00175 eGOBI_IMG_CAR_NETCOM,
00176 eGOBI_IMG_CAR_TELIASONERA,
00177 eGOBI_IMG_CAR_AMX_TELCEL,
00178 eGOBI_IMG_CAR_BRASIL_VIVO
00179 };
00180
00184 enum eGobiImageRegion
00185 {
00186 eGOBI_IMG_REG_NA = 0,
00187 eGOBI_IMG_REG_LA,
00188 eGOBI_IMG_REG_EU,
00189 eGOBI_IMG_REG_ASIA,
00190 eGOBI_IMG_REG_AUS,
00191 eGOBI_IMG_REG_GLOBAL
00192 };
00193
00197 enum eGobiImageGPS
00198 {
00199 eGOBI_IMG_GPS_NONE = 0,
00200 eGOBI_IMG_GPS_STAND_ALONE,
00201 eGOBI_IMG_GPS_ASSISTED,
00202 eGOBI_IMG_GPS_NO_XTRA
00203 };
00204
00219 ULONG SLQSGetFirmwareInfo(
00220 struct qmifwinfo_s *pinfo );
00221
00243 ULONG SLQSGetImageInfoMC77xx(
00244 LPCSTR path,
00245 struct qmifwinfo_s *pinfo );
00246
00266 ULONG SLQSGetImageInfoMC83xx(
00267 LPCSTR path,
00268 struct qmifwinfo_s *pinfo );
00269
00294 ULONG SLQSGetImageInfo(
00295 LPCSTR path,
00296 struct qmifwinfo_s *pinfo );
00297
00325 ULONG UpgradeFirmware2k(
00326 CHAR *pDestinationPath );
00327
00332 #pragma pack(push)
00333 #pragma pack(1)
00334
00354 struct ImageElement
00355 {
00356 BYTE imageType;
00357 BYTE imageId[GOBI_MBN_IMG_ID_STR_LEN];
00358 BYTE buildIdLength;
00359 CHAR buildId[GOBI_MBN_BUILD_ID_STR_LEN];
00360 };
00361
00374 struct PrefImageList
00375 {
00376 BYTE listSize;
00377 struct ImageElement listEntries[GOBI_LISTENTRIES_MAX];
00378 };
00379
00383 #pragma pack(pop)
00384
00405 extern ULONG GetImagesPreference(
00406 ULONG *pImageListSize,
00407 BYTE *pImageList );
00408
00450 extern ULONG SetImagesPreference(
00451 ULONG imageListSize,
00452 BYTE *pImageList,
00453 ULONG bForceDownload,
00454 BYTE modemIndex,
00455 ULONG *pImageTypesSize,
00456 BYTE *pImageTypes );
00457
00462 #pragma pack(push)
00463 #pragma pack(1)
00464
00486 struct ImageIdElement
00487 {
00488 BYTE storageIndex;
00489 BYTE failureCount;
00490 BYTE imageID[16];
00491 BYTE buildIDLength;
00492 CHAR buildID[GOBI_MBN_BUILD_ID_STR_LEN];
00493 };
00494
00516 struct ImageIDEntries
00517 {
00518 BYTE imageType;
00519 BYTE maxImages;
00520 BYTE executingImage;
00521 BYTE imageIDSize;
00522 struct ImageIdElement imageIDElement[50];
00523 };
00524
00534 struct ImageList
00535 {
00536 BYTE listSize;
00537 struct ImageIDEntries imageIDEntries[2];
00538 };
00539
00543 #pragma pack(pop)
00544
00565 ULONG GetStoredImages(
00566 ULONG *pImageListSize,
00567 BYTE *pImageList );
00568
00590 ULONG DeleteStoredImage(
00591 ULONG imageInfoSize,
00592 BYTE *pImageInfo );
00593
00594
00595
00596
00597
00598
00599 BOOL IsGobiDevice(void);
00600
00601
00606 BOOL IsSierraGobiDevice(void);
00607
00632 ULONG SLQSGetImageInfo_9x15(
00633 LPCSTR path,
00634 BYTE imgType,
00635 struct slqsfwinfo_s *pinfo );
00636
00637 #ifdef __cplusplus
00638 }
00639 #endif
00640
00641 #endif