FreeCalypso > hg > fc-selenite
diff cdg-hybrid/cdginc/uicc.h @ 9:6da1d56a96a3
cdg-hybrid: import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 21:08:11 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cdg-hybrid/cdginc/uicc.h Sun Jul 15 21:08:11 2018 +0000 @@ -0,0 +1,362 @@ +/* ++--------------------------------------------------------------------------+ +| 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