Linux SDK (lite-qmi)  MBPL_SDK_R25_ENG3
qaGobiApiUim.h
Go to the documentation of this file.
1 
9 /*
10  * Copyright: © 2012-2015 Sierra Wireless, Inc. all rights reserved
11  */
12 #ifndef __GOBI_API_UIM_H__
13 #define __GOBI_API_UIM_H__
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 #define MAX_DESCRIPTION_LENGTH 255
20 #define MAX_CONTENT_LENGTH 1024
21 #define MAX_NO_OF_APPLICATIONS 10
22 #define MAX_NO_OF_SLOTS 5
23 #define MAX_PUK_LENGTH 8
24 #define MAX_PATH_LENGTH 255
25 #define MAX_ICCID_LENGTH 255
26 #define MAX_SLOTS_STATUS 255
27 #define MAX_READ_RESULT_SZ 1600
28 
29 #define MAX_ACTIVE_PERS_FEATURES 12
30 
42 typedef struct
43 {
44  BYTE slot;
46 
65 typedef struct {
66  WORD fileID;
67  BYTE pathLen;
68  WORD path[MAX_PATH_LENGTH];
69 } fileInfo;
70 
126 typedef struct
127 {
128  /* Every response message must have a results structure */
129  struct qmTlvResult results;
130  BYTE stage;
131  BYTE mode;
132  BYTE sessionType;
133  BYTE aidLength;
134  BYTE aid[MAX_DESCRIPTION_LENGTH];
135  WORD numOfFiles;
136  fileInfo arrfileInfo[MAX_DESCRIPTION_LENGTH];
138 
243 typedef struct
244 {
245  BYTE appType;
246  BYTE appState;
247  BYTE persoState;
248  BYTE persoFeature;
249  BYTE persoRetries;
250  BYTE persoUnblockRetries;
251  BYTE aidLength;
252  BYTE aidVal[MAX_DESCRIPTION_LENGTH];
253  BYTE univPin;
254  BYTE pin1State;
255  BYTE pin1Retries;
256  BYTE puk1Retries;
257  BYTE pin2State;
258  BYTE pin2Retries;
259  BYTE puk2Retries;
260 } appStatus;
261 
315 typedef struct
316 {
317  BYTE cardState;
318  BYTE upinState;
319  BYTE upinRetries;
320  BYTE upukRetries;
321  BYTE errorState;
322  BYTE numApp;
323  appStatus AppStatus[MAX_NO_OF_APPLICATIONS];
324 } slotInfo;
325 
368 typedef struct
369 {
370  WORD indexGwPri;
371  WORD index1xPri;
372  WORD indexGwSec;
373  WORD index1xSec;
374  BYTE numSlot;
375  slotInfo SlotInfo[MAX_NO_OF_SLOTS];
376 } cardStatus;
377 
395 typedef struct
396 {
397  BYTE hotSwapLength;
398  BYTE hotSwap[MAX_DESCRIPTION_LENGTH];
399 } hotSwapStatus;
400 
416 typedef struct
417 {
418  cardStatus *pCardStatus;
419  hotSwapStatus *pHotSwapStatus;
421 
449 typedef struct
450 {
451  BYTE sessionType;
452  BYTE aidLength;
453  BYTE aid[MAX_DESCRIPTION_LENGTH];
455 
482 typedef struct
483 {
484  BYTE pinID;
485  BYTE pinOperation;
486  BYTE pinLength;
487  BYTE pinValue[MAX_DESCRIPTION_LENGTH];
489 
517 typedef struct
518 {
519  UIMSessionInformation sessionInfo;
520  setPINProtection pinProtection;
521  BYTE *pKeyReferenceID;
522  ULONG *pIndicationToken;
524 
543 typedef struct
544 {
545  BYTE verifyLeft;
546  BYTE unblockLeft;
548 
565 typedef struct
566 {
567  BYTE pin1Len;
568  BYTE pin1Val[MAX_DESCRIPTION_LENGTH];
569 } encryptedPIN1;
570 
592 typedef struct
593 {
594  remainingRetries *pRemainingRetries;
595  encryptedPIN1 *pEncryptedPIN1;
596  ULONG *pIndicationToken;
597 } UIMPinResp;
598 
620 typedef struct{
621  BYTE pinID;
622  BYTE pinLen;
623  BYTE pinVal[MAX_DESCRIPTION_LENGTH];
624 } verifyUIMPIN;
625 
656 typedef struct
657 {
658  UIMSessionInformation sessionInfo;
659  verifyUIMPIN verifyPIN;
660  encryptedPIN1 *pEncryptedPIN1;
661  BYTE *pKeyReferenceID;
662  ULONG *pIndicationToken;
664 
693 typedef struct{
694  BYTE pinID;
695  BYTE oldPINLen;
696  BYTE oldPINVal[MAX_DESCRIPTION_LENGTH];
697  BYTE pinLen;
698  BYTE pinVal[MAX_DESCRIPTION_LENGTH];
699 } changeUIMPIN;
700 
728 typedef struct
729 {
730  UIMSessionInformation sessionInfo;
731  changeUIMPIN changePIN;
732  BYTE *pKeyReferenceID;
733  ULONG *pIndicationToken;
735 
762 typedef struct{
763  BYTE pinID;
764  BYTE pukLen;
765  BYTE pukVal[MAX_DESCRIPTION_LENGTH];
766  BYTE newPINLen;
767  BYTE newPINVal[MAX_DESCRIPTION_LENGTH];
768 } unblockUIMPIN;
769 
797 typedef struct
798 {
799  UIMSessionInformation sessionInfo;
800  unblockUIMPIN unblockPIN;
801  BYTE *pKeyReferenceID;
802  ULONG *pIndicationToken;
804 
820 typedef struct
821 {
822  ULONG eventMask;
824 
839 typedef struct
840 {
841  UIMSessionInformation sessionInfo;
842  BYTE OKtoRefresh;
844 
872 typedef struct
873 {
874  BYTE registerFlag;
875  BYTE voteForInit;
876  WORD numFiles;
877  fileInfo arrfileInfo[MAX_DESCRIPTION_LENGTH];
879 
895 typedef struct
896 {
897  UIMSessionInformation sessionInfo;
898  registerRefresh regRefresh;
900 
917 typedef struct
918 {
919  UIMSessionInformation sessionInfo;
920  BYTE refreshComplete;
922 
923 
933 typedef struct
934 {
935  UIMRefreshEvent *pRefreshEvent;
937 
948 typedef struct
949 {
950  UIMSessionInformation sessionInfo;
952 
980 typedef struct
981 {
982  UIMSessionInformation sessionInfo;
983  fileInfo fileIndex;
984  ULONG *pIndicationToken;
985  BYTE *pUICCSecurityAttributes;
987 
1000 typedef struct
1001 {
1002  BYTE sw1;
1003  BYTE sw2;
1004 } cardResult;
1005 
1120 typedef struct
1121 {
1122  WORD fileSize;
1123  WORD fileID;
1124  BYTE fileType;
1125  WORD recordSize;
1126  WORD recordCount;
1127  BYTE secRead;
1128  WORD secReadMask;
1129  BYTE secWrite;
1130  WORD secWriteMask;
1131  BYTE secIncrease;
1132  WORD secIncreaseMask;
1133  BYTE secDeactivate;
1134  WORD secDeactivateMask;
1135  BYTE secActivate;
1136  WORD secActivateMask;
1137  WORD rawLen;
1138  BYTE rawValue[MAX_DESCRIPTION_LENGTH];
1139 } fileAttributes;
1140 
1168 typedef struct
1169 {
1170  cardResult *pCardResult;
1171  fileAttributes *pFileAttributes;
1172  ULONG *pIndicationToken;
1173  ULONG *pFileStatus;
1175 
1208 typedef struct{
1209  BYTE feature;
1210  BYTE operation;
1211  BYTE ckLen;
1212  BYTE ckVal[MAX_DESCRIPTION_LENGTH];
1214 
1225 typedef struct
1226 {
1227  depersonalizationInformation depersonilisationInfo;
1229 
1242 typedef struct
1243 {
1244  remainingRetries *pRemainingRetries;
1246 
1295 typedef struct
1296 {
1297  BYTE context;
1298  WORD dataLen;
1299  BYTE data[MAX_CONTENT_LENGTH];
1301 
1322 typedef struct
1323 {
1324  UIMSessionInformation sessionInfo;
1325  authenticationData authData;
1326  ULONG *pIndicationToken;
1328 
1342 typedef struct
1343 {
1344  WORD contentLen;
1345  BYTE content[MAX_CONTENT_LENGTH];
1347 
1368 typedef struct
1369 {
1370  cardResult *pCardResult;
1371  authenticateResult *pAuthenticateResult;
1372  ULONG *pIndicationToken;
1374 
1387 typedef struct
1388 {
1389  WORD contentLen;
1390  BYTE content[MAX_READ_RESULT_SZ];
1391 } readResult;
1392 
1406 typedef struct
1407 {
1408  WORD offset;
1409  WORD length;
1411 
1439 typedef struct
1440 {
1441  UIMSessionInformation sessionInfo;
1442  fileInfo fileIndex;
1443  readTransparentInfo readTransparent;
1444  ULONG *pIndicationToken;
1445  BYTE *pEncryptData;
1447 
1472 typedef struct
1473 {
1474  cardResult *pCardResult;
1475  readResult *pReadResult;
1476  ULONG *pIndicationToken;
1477  BYTE *pEncryptedData;
1479 
1498 typedef struct
1499 {
1500  BYTE slot;
1501  BYTE *pIgnoreHotSwapSwitch;
1502 } UIMPowerUpReq;
1503 
1537 typedef struct
1538 {
1539  ULONG uPhyCardStatus;
1540  ULONG uPhySlotStatus;
1541  BYTE bLogicalSlot;
1542  BYTE bICCIDLength;
1543  BYTE bICCID[MAX_ICCID_LENGTH];
1544 }UIMSlotStatus;
1545 
1556 typedef struct
1557 {
1558  UIMSlotStatus uimSlotStatus[MAX_SLOTS_STATUS];
1560 
1574 typedef struct
1575 {
1576  BYTE *pNumberOfPhySlot;
1577  UIMSlotsStatus *pUimSlotsStatus;
1579 
1603 typedef struct
1604 {
1605  BYTE bLogicalSlot;
1606  ULONG ulPhysicalSlot;
1608 
1641 typedef struct
1642 {
1643  BYTE numFeatures;
1644  BYTE feature[MAX_ACTIVE_PERS_FEATURES];
1645  BYTE verifyLeft[MAX_ACTIVE_PERS_FEATURES];
1646  BYTE unblockLeft[MAX_ACTIVE_PERS_FEATURES];
1648 
1665 typedef struct
1666 {
1667  ULONG *pConfigurationMask;
1669 
1695 typedef struct
1696 {
1697  BYTE *pAutoSelection;
1698  personalizationStatus *pPersonalizationStatus;
1699  BYTE *pHaltSubscription;
1701 
1715 typedef struct
1716 {
1717  WORD record;
1718  WORD length;
1719 } readRecordInfo;
1720 
1748 typedef struct
1749 {
1750  UIMSessionInformation sessionInfo;
1751  fileInfo fileIndex;
1752  readRecordInfo readRecord;
1753  WORD *pLastRecord;
1754  ULONG *pIndicationToken;
1756 
1770 typedef struct
1771 {
1772  WORD additionalRecordLen;
1773  BYTE additionalRecord[MAX_DESCRIPTION_LENGTH];
1775 
1799 typedef struct
1800 {
1801  cardResult *pCardResult;
1802  readResult *pReadResult;
1803  additionalReadResult *pAdditionalReadResult;
1804  ULONG *pIndicationToken;
1806 
1822 typedef struct
1823 {
1824  WORD offset;
1825  WORD dataLen;
1826  BYTE data[MAX_CONTENT_LENGTH];
1828 
1852 typedef struct
1853 {
1854  UIMSessionInformation sessionInfo;
1855  fileInfo fileIndex;
1856  writetransparentInfo writeTransparent;
1857  ULONG *pIndicationToken;
1859 
1877 typedef struct
1878 {
1879  cardResult *pCardResult;
1880  ULONG *pIndicationToken;
1882 
1900 typedef struct
1901 {
1902  cardResult *pCardResult;
1903  ULONG *pIndicationToken;
1905 
1922 typedef struct
1923 {
1924  WORD record;
1925  WORD dataLen;
1926  BYTE data[MAX_DESCRIPTION_LENGTH];
1927 } writeRecordInfo;
1928 
1952 typedef struct
1953 {
1954  UIMSessionInformation sessionInfo;
1955  fileInfo fileIndex;
1956  writeRecordInfo writeRecord;
1957  ULONG *pIndicationToken;
1959 
1975 typedef struct
1976 {
1977  BYTE aidLength;
1978  BYTE aid[MAX_DESCRIPTION_LENGTH];
1979 }openChannel;
1980 
1992 typedef struct
1993 {
1994  BYTE sw1;
1995  BYTE sw2;
1997 
2010 typedef struct
2011 {
2012  BYTE respLen;
2013  BYTE resp[MAX_DESCRIPTION_LENGTH];
2014 }selectResp;
2015 
2055 typedef struct
2056 {
2057  BYTE bSlot;
2058  openChannel *pOpenCh;
2059  BYTE *pChID;
2060  BYTE *pFileControlInfo;
2061  BYTE *pTerminate;
2063 
2080 typedef struct
2081 {
2082  BYTE *pChID;
2083  logicalChCardResult *pCardResult;
2084  selectResp *pSelectResp;
2086 
2101 typedef struct
2102 {
2103  UIMSessionInformation sessionInfo;
2104  BYTE *pFDNStatus;
2106 
2126 ULONG SLQSUIMSetServiceStatus ( UIMSetServiceStatusReq *pUIMSetServiceStatusReq );
2127 
2144 typedef struct
2145 {
2146  UIMSessionInformation sessionInfo;
2147  ULONG capMask;
2149 
2171 typedef struct
2172 {
2173  BYTE *pFDNStatus;
2174  BYTE *pHiddenKeyStatus;
2175  BYTE *pIndex;
2177 
2202 ULONG SLQSUIMGetServiceStatus ( UIMGetServiceStatusReq *pUIMGetServiceStatusReq,
2203  UIMGetServiceStatusResp *pUIMGetServiceStatusResp );
2204 
2205 
2206 #ifdef __cplusplus
2207 } /* extern "C" { */
2208 #endif
2209 
2210 #endif /* __GOBI_API_UIM_H__ */
Definition: qaGobiApiUim.h:762
Definition: qaGobiApiUim.h:2010
Definition: qaGobiApiUim.h:1715
Definition: qaGobiApiUim.h:1406
Definition: qaGobiApiUim.h:1168
Definition: qaGobiApiUim.h:1342
Definition: qaGobiApiUim.h:2171
Definition: qaGobiApiUim.h:1992
Definition: qaGobiApiUim.h:65
Definition: qaGobiApiUim.h:1439
Definition: qaGobiApiUim.h:1665
Definition: qaGobiApiUim.h:416
Definition: qaGobiApiUim.h:42
Definition: qaGobiApiUim.h:1695
Definition: qaGobiApiUim.h:980
Definition: qaGobiApiUim.h:592
ULONG SLQSUIMGetServiceStatus(UIMGetServiceStatusReq *pUIMGetServiceStatusReq, UIMGetServiceStatusResp *pUIMGetServiceStatusResp)
Definition: qaGobiApiUim.h:1574
Definition: qaGobiApiUim.h:1799
Definition: qaGobiApiUim.h:243
ULONG SLQSUIMSetServiceStatus(UIMSetServiceStatusReq *pUIMSetServiceStatusReq)
Definition: qaGobiApiUim.h:565
Definition: qaGobiApiUim.h:2055
Definition: qaGobiApiUim.h:656
Definition: qaGobiApiUim.h:839
Definition: SwiDataTypes.h:57
Definition: qaGobiApiUim.h:820
Definition: qaGobiApiUim.h:1208
Definition: qaGobiApiUim.h:1770
Definition: qaGobiApiUim.h:1295
Definition: qaGobiApiUim.h:449
Definition: qaGobiApiUim.h:1498
Definition: qaGobiApiUim.h:693
Definition: qaGobiApiUim.h:797
Definition: qaGobiApiUim.h:395
Definition: qaGobiApiUim.h:895
Definition: qaGobiApiUim.h:948
Definition: qaGobiApiUim.h:1368
Definition: qaGobiApiUim.h:1952
Definition: qaGobiApiUim.h:620
Definition: qaGobiApiUim.h:1852
Definition: qaGobiApiUim.h:543
Definition: qaGobiApiUim.h:1900
Definition: qaGobiApiUim.h:2144
Definition: qaGobiApiUim.h:1472
Definition: qaGobiApiUim.h:728
Definition: qaGobiApiUim.h:1120
Definition: qaGobiApiUim.h:1387
Definition: qaGobiApiUim.h:1322
Definition: qaGobiApiUim.h:1242
Definition: qaGobiApiUim.h:1641
Definition: qaGobiApiUim.h:368
Definition: qaGobiApiUim.h:933
Definition: qaGobiApiUim.h:917
Definition: qaGobiApiUim.h:126
Definition: qaGobiApiUim.h:1877
Definition: qaGobiApiUim.h:1556
Definition: qaGobiApiUim.h:1822
Definition: qaGobiApiUim.h:1975
Definition: qaGobiApiUim.h:1000
Definition: qaGobiApiUim.h:1603
Definition: qaGobiApiUim.h:517
Definition: qaGobiApiUim.h:1537
Definition: qaGobiApiUim.h:2080
Definition: qaGobiApiUim.h:1922
Definition: qaGobiApiUim.h:872
Definition: qaGobiApiUim.h:315
Definition: qaGobiApiUim.h:1225
Definition: qaGobiApiUim.h:482
Definition: qaGobiApiUim.h:1748
Definition: qaGobiApiUim.h:2101