FreeCalypso > hg > fc-magnetite
view cdg-hybrid/cdginc/uicc.h @ 606:de936aea260a
FFS: added Multi-ID support for Samsung flash chips
needed for GTM900 target support
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 17 Jun 2019 19:23:57 +0000 |
parents | e7a67accfad9 |
children |
line wrap: on
line source
/* +--------------------------------------------------------------------------+ | PROJECT : PROTOCOL STACK | | FILE : uicc.h | | SOURCE : "sap\8010_136_SIMDRV_SAP.pdf" | | LastModified : "2004-06-10" | | IdAndVersion : "8010.136.03.009" | | SrcFileTime : "Thu Nov 29 09:27:56 2007" | | Generated by CCDGEN_2.5.5A on Fri Oct 14 21:41:52 2016 | | !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!! | +--------------------------------------------------------------------------+ */ /* PRAGMAS * PREFIX : SIMDRV * COMPATIBILITY_DEFINES : NO * ALWAYS_ENUM_IN_VAL_FILE: YES * ENABLE_GROUP: YES * CAPITALIZE_TYPENAME: NO */ #ifndef UICC_INCLUDE #define UICC_INCLUDE #define PUB_L1_MISC_ENTER__Uicc_H #define PUB_L1_MISC_ENTER__FILENAME _Uicc_H #define PUB_L1_MISC_ENTER__Uicc_H__FILE_TYPE CDGINC #define PUB_L1_MISC_ENTER__Uicc_H__LAST_MODIFIED _2004_06_10 #define PUB_L1_MISC_ENTER__Uicc_H__ID_AND_VERSION _8010_136_03_009 #define PUB_L1_MISC_ENTER__Uicc_H__SRC_FILE_TIME _Thu_Nov_29_09_27_56_2007 #include "pub_L1_misc_enter.h" #undef PUB_L1_MISC_ENTER__Uicc_H #undef PUB_L1_MISC_ENTER__FILENAME /* * Enum to value table VAL_reset_return_val * CCDGEN:WriteEnum_Count==30 */ #ifndef UICC_VAL_RESET_RETURN_VAL_CLASS #define UICC_VAL_RESET_RETURN_VAL_CLASS enum { UICC_SIM_INSERTED = 0x0, /* A SIM is inserted and ATR/PPS was successful */ UICC_SIM_NOT_INSERTED = 0x1, /* No SIM inserted (hardware detected) */ UICC_INVALID_CARD = 0x2, /* Card is not responding or gives unintelligible answers, communications time out. */ UICC_ME_FAILURE = 0x3, /* Power management related problems, e.g. voltage selection */ UICC_IMPROPER_CALL_BACK = 0x4, /* simdrv_register function called with pointer improperly set, e.g. NULL. */ UICC_ME_READER_NOT_AVAILABLE = 0x5 /* The reader requested is not available */ }; typedef Uint8 Uicc_ValResetReturnVal; #endif /* UICC_VAL_RESET_RETURN_VAL_CLASS */ /* * Enum to value table VAL_len * CCDGEN:WriteEnum_Count==32 */ #ifndef UICC_VAL_LEN_CLASS #define UICC_VAL_LEN_CLASS enum { UICC_VAL_LEN__RANGE_MIN = 0x0, /* minimum */ UICC_VAL_LEN__RANGE_MAX = 0x100, /* maximum */ UICC_LENGTH_UNKNOWN = 0xffff /* Indicating that the length expected is unknown. */ }; typedef Uint16 Uicc_ValLen; #endif /* UICC_VAL_LEN_CLASS */ /* * Enum to value table VAL_sw1_2 * CCDGEN:WriteEnum_Count==34 */ #ifndef UICC_VAL_SW_1_2_CLASS #define UICC_VAL_SW_1_2_CLASS enum { UICC_ERR_NOCARD = 0x1, /* No SIM inserted (hardware detected) */ UICC_ERR_NOT_RESET = 0x2, /* A reset has not been performed on the driver with the requested Id. */ UICC_ERR_ME_FAIL = 0x3, /* Unrecoverable ME failure (for instance interrupt fails to occur) */ UICC_ERR_RETRY_FAIL = 0x4, /* ME/SIM communication failed after certain retries, SIM reset required */ UICC_ERR_PARAM_WRONG = 0x5 /* A driver function is called with invalid parameters */ }; typedef Uint8 Uicc_ValSw1_2; #endif /* UICC_VAL_SW_1_2_CLASS */ /* * Enum to value table VAL_cla * CCDGEN:WriteEnum_Count==36 */ #ifndef UICC_VAL_CLA_CLASS #define UICC_VAL_CLA_CLASS enum { UICC_GSM_CLASS_BYTE = 0xa0, /* GSM Class byte according to [GSM 11.11 / 3GPP 51.011] */ UICC_UMTS_CLASS_BYTE = 0x80, /* UMTS Class byte according to [ETSI 102 221 10.1.2] */ UICC_UICC_CLASS_BYTE = 0x0 /* UICC Class byte according to [ISO 7816-4] */ }; typedef Uint8 Uicc_ValCla; #endif /* UICC_VAL_CLA_CLASS */ /* * Enum to value table VAL_ins * CCDGEN:WriteEnum_Count==38 */ #ifndef UICC_VAL_INS_CLASS #define UICC_VAL_INS_CLASS enum { UICC_INS_SELECT = 0xa4, /* Select Instruction */ UICC_INS_STATUS = 0xf2, /* Status Instruction */ UICC_INS_READ_BINARY = 0xb0, /* Read Binary Instruction */ UICC_INS_UPDATE_BINARY = 0xd6, /* Update Binary Instruction */ UICC_INS_READ_RECORD = 0xb2, /* Read Record Instruction */ UICC_INS_UPDATE_RECORD = 0xdc, /* Update Record Instruction */ UICC_INS_SEEK = 0xa2, /* Seek Instruction */ UICC_INS_INCREASE = 0x32, /* Increase Instruction */ UICC_INS_VERIFY_CHV = 0x20, /* Verify Chv Instruction */ UICC_INS_CHANGE_CHV = 0x24, /* Change Chv Instruction */ UICC_INS_DISABLE_CHV = 0x26, /* Disable Chv Instruction */ UICC_INS_ENABLE_CHV = 0x28, /* Ensable Chv Instruction */ UICC_INS_UNBLOCK_CHV = 0x2c, /* Unblock Chv Instruction */ UICC_INS_INVALIDATE = 0x4, /* Invalidate Instruction */ UICC_INS_REHABILITATE = 0x44, /* Rehabilitate Instruction */ UICC_INS_AUTHENTICATE = 0x88, /* Run GSM Algorithm (2/2.5G) / Authenticate (3G) Instruction */ UICC_INS_TERMINAL_PROFILE = 0x10, /* Terminal Profile Instruction */ UICC_INS_ENVELOPE = 0xc2, /* Envelope Instruction */ UICC_INS_FETCH = 0x12, /* Fetch Instruction */ UICC_INS_TERMINAL_RESPONSE = 0x14, /* Terminal Response Instruction */ UICC_INS_GET_RESPONSE = 0xc0 /* Get Response Instruction */ }; typedef Uint8 Uicc_ValIns; #endif /* UICC_VAL_INS_CLASS */ /* * Enum to value table VAL_voltage_select * CCDGEN:WriteEnum_Count==40 */ #ifndef UICC_VAL_VOLTAGE_SELECT_CLASS #define UICC_VAL_VOLTAGE_SELECT_CLASS enum { UICC_REQ_VOLTAGE_SEL = 0x0, /* The SIM reader driver shall perform voltage selection */ UICC_OMIT_VOLTAGE_SEL = 0x1 /* The SIM reader driver shall restart with the current voltage */ }; typedef Uint8 Uicc_ValVoltageSelect; #endif /* UICC_VAL_VOLTAGE_SELECT_CLASS */ /* * Enum to value table VAL_config_requested * CCDGEN:WriteEnum_Count==42 */ #ifndef UICC_VAL_CONFIG_REQUESTED_CLASS #define UICC_VAL_CONFIG_REQUESTED_CLASS enum { UICC_OMIT_CONFIG_CHARACTERISTICS = 0x0, /* PS Shall not retrieve Configuration Characteristics */ UICC_REQUEST_CONFIG_CHARACTERISTICS = 0x1 /* PS Shall retrieve Configuration Characteristics */ }; typedef Uint8 Uicc_ValConfigRequested; #endif /* UICC_VAL_CONFIG_REQUESTED_CLASS */ /* * Enum to value table VAL_reader_id * CCDGEN:WriteEnum_Count==44 */ #ifndef UICC_VAL_READER_ID_CLASS #define UICC_VAL_READER_ID_CLASS enum { UICC_VAL_READER_ID__RANGE_MIN = 0x1, /* minimum */ UICC_VAL_READER_ID__RANGE_MAX = 0x2 /* maximum */ }; typedef Uint8 Uicc_ValReaderId; #endif /* UICC_VAL_READER_ID_CLASS */ #define UICC_SIZE_ATR_INFO (0x21) #ifndef UICC_ATR_STRING_INFO_CLASS #define UICC_ATR_STRING_INFO_CLASS /* * SIM Card Info * CCDGEN:WriteStruct_Count==1284 */ typedef struct { Uint8 atrStringArrayCount; /*< 0: 1> counter */ Uint8 atrStringArray[UICC_SIZE_ATR_INFO]; /*< 1: 33> SIM Card Answer to reset string */ Uint8 __dummy0; /*< 34: 1> alignment */ Uint8 __dummy1; /*< 35: 1> alignment */ } Uicc_AtrStringInfo; #endif /* UICC_ATR_STRING_INFO_CLASS */ /* * typedef between var and valtab enums */ #ifndef UICC_LEN_CLASS #define UICC_LEN_CLASS typedef Uicc_ValLen Uicc_Len; #endif /* Uicc_Len_CLASS */ #define UICC_MAX_RESULT (0x100) #ifndef UICC_RESULT_INFO_CLASS #define UICC_RESULT_INFO_CLASS /* * Result Buffer * CCDGEN:WriteStruct_Count==1286 */ typedef struct { Uicc_Len len; /*< 0: 2> Uicc_Len, Maximum length of expected data */ Uint16 resultArrayCount; /*< 2: 2> counter */ Uint8 *resultArray; /*< 4: 4> pointer codetransparent to Result byte */ } Uicc_ResultInfo; #endif /* UICC_RESULT_INFO_CLASS */ #define UICC_MAX_DATA_SIZE (0xff) #ifndef UICC_DATA_INFO_CLASS #define UICC_DATA_INFO_CLASS /* * Data element info * CCDGEN:WriteStruct_Count==1288 */ typedef struct { Uint8 __dummy0; /*< 0: 1> alignment */ Uint8 __dummy1; /*< 1: 1> alignment */ Uint8 __dummy2; /*< 2: 1> alignment */ Uint8 dataArrayCount; /*< 3: 1> counter */ Uint8 *dataArray; /*< 4: 4> pointer codetransparent to Data element */ } Uicc_DataInfo; #endif /* UICC_DATA_INFO_CLASS */ /* * typedef between var and valtab enums */ #ifndef UICC_CLA_CLASS #define UICC_CLA_CLASS typedef Uicc_ValCla Uicc_Cla; #endif /* Uicc_Cla_CLASS */ #ifndef UICC_INS_CLASS #define UICC_INS_CLASS typedef Uicc_ValIns Uicc_Ins; #endif /* Uicc_Ins_CLASS */ #ifndef UICC_CMD_HEADER_CLASS #define UICC_CMD_HEADER_CLASS /* * Transparent command header * CCDGEN:WriteStruct_Count==1290 */ typedef struct { Uicc_Cla cla; /*< 0: 1> Uicc_Cla, Class Byte */ Uicc_Ins ins; /*< 1: 1> Uicc_Ins, instruction code */ Uint8 p1; /*< 2: 1> Parameter 1 of the SIM APDU */ Uint8 p2; /*< 3: 1> Parameter 2 of the SIM APDU */ } Uicc_CmdHeader; #endif /* UICC_CMD_HEADER_CLASS */ #ifndef UICC_CONFIG_CHARACTERISTICS_CLASS #define UICC_CONFIG_CHARACTERISTICS_CLASS /* * Configuration Characteristics * CCDGEN:WriteStruct_Count==1292 */ typedef struct { Uint8 uiccCharacteristics; /*< 0: 1> UICC Characteristics */ Uint8 __dummy0; /*< 1: 1> alignment */ Uint8 __dummy1; /*< 2: 1> alignment */ Uint8 __dummy2; /*< 3: 1> alignment */ } Uicc_ConfigCharacteristics; #endif /* UICC_CONFIG_CHARACTERISTICS_CLASS */ /* * typedef between var and valtab enums */ #ifndef UICC_RESET_RETURN_VAL_CLASS #define UICC_RESET_RETURN_VAL_CLASS typedef Uicc_ValResetReturnVal Uicc_ResetReturnVal; #endif /* Uicc_ResetReturnVal_CLASS */ #ifndef UICC_LEN_CLASS #define UICC_LEN_CLASS typedef Uicc_ValLen Uicc_Len; #endif /* Uicc_Len_CLASS */ #ifndef UICC_SW_1_2_CLASS #define UICC_SW_1_2_CLASS typedef Uicc_ValSw1_2 Uicc_Sw1_2; #endif /* Uicc_Sw1_2_CLASS */ #ifndef UICC_CLA_CLASS #define UICC_CLA_CLASS typedef Uicc_ValCla Uicc_Cla; #endif /* Uicc_Cla_CLASS */ #ifndef UICC_INS_CLASS #define UICC_INS_CLASS typedef Uicc_ValIns Uicc_Ins; #endif /* Uicc_Ins_CLASS */ #ifndef UICC_VOLTAGE_SELECT_CLASS #define UICC_VOLTAGE_SELECT_CLASS typedef Uicc_ValVoltageSelect Uicc_VoltageSelect; #endif /* Uicc_VoltageSelect_CLASS */ #ifndef UICC_CONFIG_REQUESTED_CLASS #define UICC_CONFIG_REQUESTED_CLASS typedef Uicc_ValConfigRequested Uicc_ConfigRequested; #endif /* Uicc_ConfigRequested_CLASS */ #ifndef UICC_READER_ID_CLASS #define UICC_READER_ID_CLASS typedef Uicc_ValReaderId Uicc_ReaderId; #endif /* Uicc_ReaderId_CLASS */ #ifndef UICC_DUMMY_CLASS #define UICC_DUMMY_CLASS /* * * CCDGEN:WriteStruct_Count==1294 */ typedef struct { Puf_PrimHdr primHdr; Uicc_AtrStringInfo *atrStringInfoPtr; /*< 0: 4> pointer to SIM Card Info */ Uicc_ResetReturnVal resetReturnVal; /*< 4: 1> Uicc_ResetReturnVal, Reset return value */ Uint8 __dummy0; /*< 5: 1> alignment */ Uint8 __dummy1; /*< 6: 1> alignment */ Uint8 __dummy2; /*< 7: 1> alignment */ Uicc_ResultInfo *resultInfoPtr; /*< 8: 4> pointer to Result Buffer */ Uicc_Len len; /*< 12: 2> Uicc_Len, Maximum length of expected data */ Uint8 __dummy3; /*< 14: 1> alignment */ Uint8 __dummy4; /*< 15: 1> alignment */ Uicc_DataInfo *dataInfoPtr; /*< 16: 4> pointer to Data element info */ Uicc_Sw1_2 sw1_2; /*< 20: 2> Uicc_Sw1_2, Status Words */ Uicc_Cla cla; /*< 22: 1> Uicc_Cla, Class Byte */ Uicc_Ins ins; /*< 23: 1> Uicc_Ins, instruction code */ Uicc_CmdHeader cmdHeader; /*< 24: 4> Transparent command header */ Uicc_VoltageSelect voltageSelect; /*< 28: 1> Uicc_VoltageSelect, Perform Voltage Selection */ Uint8 p1; /*< 29: 1> Parameter 1 of the SIM APDU */ Uint8 p2; /*< 30: 1> Parameter 2 of the SIM APDU */ Uicc_ConfigRequested configRequested; /*< 31: 1> Uicc_ConfigRequested, Configuration Characteristics requested */ Uicc_ConfigCharacteristics *configCharacteristicsPtr; /*< 32: 4> pointer to Configuration Characteristics */ Uicc_ReaderId readerId; /*< 36: 1> Uicc_ReaderId, Reader Id */ Uint8 uiccCharacteristics; /*< 37: 1> UICC Characteristics */ Uint8 __dummy5; /*< 38: 1> alignment */ Uint8 __dummy6; /*< 39: 1> alignment */ } Uicc_Dummy; #define UICC_DUMMY_SIZE() \ ( \ sizeof(Uicc_Dummy) \ ) #endif /* UICC_DUMMY_CLASS */ #define UICC_MIN_RESULT (0x1) #define UICC_MIN_DATA_SIZE (0x1) #define UICC_MAX_READERS (0x2) #include "pub_L1_misc_leave.h" #endif