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_RESET 5
00032
00047 struct fwinfo_s
00048 {
00049 ULONG FirmwareID;
00050 ULONG Technology;
00051 ULONG Carrier;
00052 ULONG Region;
00053 ULONG GPSCapability;
00054 };
00055
00067 struct slqsfwinfo_s{
00068 CHAR modelid_str[SLQSFWINFO_MODELID_SZ];
00069 CHAR bootversion_str[SLQSFWINFO_BOOTVERSION_SZ];
00070 CHAR appversion_str[SLQSFWINFO_APPVERSION_SZ];
00071 CHAR sku_str[SLQSFWINFO_SKU_SZ];
00072 CHAR packageid_str[SLQSFWINFO_PACKAGEID_SZ];
00073 CHAR carrier_str[SLQSFWINFO_CARRIER_SZ];
00074 CHAR priversion_str[SLQSFWINFO_PRIVERSION_SZ];
00075 };
00076
00086 struct qmifwinfo_s
00087 {
00088 union
00089 {
00090 struct fwinfo_s g;
00091 struct slqsfwinfo_s s;
00092 } dev;
00093 };
00094
00115 extern ULONG GetImageStore(
00116 WORD imageStorePathSize,
00117 CHAR *pImageStorePath );
00118
00122 enum eGobiImageTech
00123 {
00124 eGOBI_IMG_TECH_CDMA = 0,
00125 eGOBI_IMG_TECH_UMTS
00126 };
00127
00131 enum eGobiImageCarrier
00132 {
00133 eGOBI_IMG_CAR_GENERIC = 1,
00134 eGOBI_IMG_CAR_FACTORY,
00135 eGOBI_IMG_CAR_NORF,
00136
00137 eGOBI_IMG_CAR_VERIZON = 101,
00138 eGOBI_IMG_CAR_SPRINT,
00139 eGOBI_IMG_CAR_ALLTEL,
00140 eGOBI_IMG_CAR_BELL,
00141 eGOBI_IMG_CAR_TELUS,
00142 eGOBI_IMG_CAR_US,
00143 eGOBI_IMG_CAR_TELSTRA1,
00144 eGOBI_IMG_CAR_CHINA_UNICOM,
00145 eGOBI_IMG_CAR_TELCOM_NZ,
00146 eGOBI_IMG_CAR_SK_TELCOM1,
00147 eGOBI_IMG_CAR_RELIANCE1,
00148 eGOBI_IMG_CAR_TATA,
00149 eGOBI_IMG_CAR_METROPCS,
00150 eGOBI_IMG_CAR_LEAP,
00151 eGOBI_IMG_CAR_KDDI,
00152 eGOBI_IMG_CAR_IUSACELL,
00153 eGOBI_IMG_CAR_CHINA_TELECOM,
00154 eGOBI_IMG_CAR_OMH,
00155
00156 eGOBI_IMG_CAR_ATT = 201,
00157 eGOBI_IMG_CAR_VODAFONE,
00158 eGOBI_IMG_CAR_TMOBILE,
00159 eGOBI_IMG_CAR_ORANGE,
00160 eGOBI_IMG_CAR_TELEFONICA,
00161 eGOBI_IMG_CAR_TELCOM_ITALIA,
00162 eGOBI_IMG_CAR_3,
00163 eGOBI_IMG_CAR_O2,
00164 eGOBI_IMG_CAR_SFR,
00165 eGOBI_IMG_CAR_SWISSCOM,
00166 eGOBI_IMG_CAR_CHINA_MOBILE,
00167 eGOBI_IMG_CAR_TELSTRA2,
00168 eGOBI_IMG_CAR_SINGTEL_OPTUS,
00169 eGOBI_IMG_CAR_RELIANCE2,
00170 eGOBI_IMG_CAR_BHARTI,
00171 eGOBI_IMG_CAR_NTT_DOCOMO,
00172 eGOBI_IMG_CAR_EMOBILE,
00173 eGOBI_IMG_CAR_SOFTBANK,
00174 eGOBI_IMG_CAR_KT_FREETEL,
00175 eGOBI_IMG_CAR_SK_TELCOM2,
00176 eGOBI_IMG_CAR_TELENOR,
00177 eGOBI_IMG_CAR_NETCOM,
00178 eGOBI_IMG_CAR_TELIASONERA,
00179 eGOBI_IMG_CAR_AMX_TELCEL,
00180 eGOBI_IMG_CAR_BRASIL_VIVO
00181 };
00182
00186 enum eGobiImageRegion
00187 {
00188 eGOBI_IMG_REG_NA = 0,
00189 eGOBI_IMG_REG_LA,
00190 eGOBI_IMG_REG_EU,
00191 eGOBI_IMG_REG_ASIA,
00192 eGOBI_IMG_REG_AUS,
00193 eGOBI_IMG_REG_GLOBAL
00194 };
00195
00199 enum eGobiImageGPS
00200 {
00201 eGOBI_IMG_GPS_NONE = 0,
00202 eGOBI_IMG_GPS_STAND_ALONE,
00203 eGOBI_IMG_GPS_ASSISTED,
00204 eGOBI_IMG_GPS_NO_XTRA
00205 };
00206
00222 ULONG SLQSGetFirmwareInfo(
00223 struct qmifwinfo_s *pinfo );
00224
00247 ULONG SLQSGetImageInfoMC77xx(
00248 LPCSTR path,
00249 struct qmifwinfo_s *pinfo );
00250
00271 ULONG SLQSGetImageInfoMC83xx(
00272 LPCSTR path,
00273 struct qmifwinfo_s *pinfo );
00274
00301 ULONG SLQSGetImageInfo(
00302 LPCSTR path,
00303 struct qmifwinfo_s *pinfo );
00304
00334 ULONG UpgradeFirmware2k(
00335 CHAR *pDestinationPath );
00336
00341 #pragma pack(push)
00342 #pragma pack(1)
00343
00363 struct ImageElement
00364 {
00365 BYTE imageType;
00366 BYTE imageId[GOBI_MBN_IMG_ID_STR_LEN];
00367 BYTE buildIdLength;
00368 CHAR buildId[GOBI_MBN_BUILD_ID_STR_LEN];
00369 };
00370
00383 struct PrefImageList
00384 {
00385 BYTE listSize;
00386 struct ImageElement listEntries[GOBI_LISTENTRIES_MAX];
00387 };
00388
00392 #pragma pack(pop)
00393
00416 extern ULONG GetImagesPreference(
00417 ULONG *pImageListSize,
00418 BYTE *pImageList );
00419
00463 extern ULONG SetImagesPreference(
00464 ULONG imageListSize,
00465 BYTE *pImageList,
00466 ULONG bForceDownload,
00467 BYTE modemIndex,
00468 ULONG *pImageTypesSize,
00469 BYTE *pImageTypes );
00470
00475 #pragma pack(push)
00476 #pragma pack(1)
00477
00499 struct ImageIdElement
00500 {
00501 BYTE storageIndex;
00502 BYTE failureCount;
00503 BYTE imageID[16];
00504 BYTE buildIDLength;
00505 CHAR buildID[GOBI_MBN_BUILD_ID_STR_LEN];
00506 };
00507
00529 struct ImageIDEntries
00530 {
00531 BYTE imageType;
00532 BYTE maxImages;
00533 BYTE executingImage;
00534 BYTE imageIDSize;
00535 struct ImageIdElement imageIDElement[50];
00536 };
00537
00547 struct ImageList
00548 {
00549 BYTE listSize;
00550 struct ImageIDEntries imageIDEntries[2];
00551 };
00552
00556 #pragma pack(pop)
00557
00579 ULONG GetStoredImages(
00580 ULONG *pImageListSize,
00581 BYTE *pImageList );
00582
00605 ULONG DeleteStoredImage(
00606 ULONG imageInfoSize,
00607 BYTE *pImageInfo );
00608
00609
00610
00611
00612
00613 BOOL IsGobiDevice(void);
00614
00619 BOOL IsSierraGobiDevice(void);
00620
00621 #ifdef __cplusplus
00622 }
00623 #endif
00624
00625 #endif