/* * Copyright (C) 2009 Samsung Electronics, Co. Ltd. * All rights reserved. * * Oem_ril_sap.h * * author: young jin Park (lucky29.park@samsung.com) * data : 20100129 */ #ifndef __OEM_RIL_SAP_H__ #define __OEM_RIL_SAP_H__ /** * OEM request header data(for RIL_REQUEST_OEM_HOOK_RAW) typedef struct _OemReqDataHdr { char func_id; char sub_func_id; char len; } __attribute__((packed)) OemReqDataHdr; * OEM request data(for RIL_REQUEST_OEM_HOOK_RAW) typedef struct _OemReqData { OemReqDataHdr hdr; char *payload; } __attribute__((packed)) OemReqData; **/ /* -- OEM RIL SAP Main Cmd --*/ #define OEM_FUNCTION_ID_SAP 0x14 /* -- OEM RIL SAP SUB FUNCTION ID -- */ #define OEM_SAP_CONNECT 0x01 /** OEM_SAP_CONNECT Req - Format info 1. MSG ID (1 byte) Res - Format info 1. MSG ID (1 byte) 2. CONNECTION STATUS (1 byte) 3. MAX MSG SIZE (2 byte) Noti(Unsol) - Format info 1. DISCONNECT TYPE (1 byte) **/ #define OEM_SAP_STATUS 0x02 /** OEM_SAP_STATUS Req - Format info non. Res - Format info 1. SAP Status (1 byte) Noti(Unsol) - Format info 1. Card Status (1 byte) **/ #define OEM_SAP_READER_STATUS 0x03 /** OEM_SAP_READER_STATUS Req - Format info non. Res - Format info 1. Result code (1 byte) 2. Card reader status (1 byte) Noti(Unsol) - Format info non. **/ #define OEM_SAP_SIM_POWER 0x04 /** OEM_SAP_SIM_POWER Req - Format info 1. MSG ID (1 byte) Res - Format info 1. MSG ID (1 byte) 2. Result code (1 byte) Noti(Unsol) - Format info non. **/ #define OEM_SAP_TRANSFER_ATR 0x05 /** OEM_SAP_TRANSFER_ATR Req - Format info non. Res - Format info 1. Result code (1 byte) 2. ATR length (2 byte) 3. ATR (variables) Noti(Unsol) - Format info non. **/ #define OEM_SAP_TRANSFER_APDU 0x06 /** OEM_SAP_TRANSFER_APDU Req - Format info 1. APDU length(2 byte) 2. commadn apdu or apdu_7816 (variables) Res - Format info 1. Result code (1 byte) 2. Res APDU length (2 byte) 3. Res APDU (variables) Noti(Unsol) - Format info non. **/ #define OEM_SAP_SET_PROTOCOL 0x07 /** OEM_SAP_SET_PROTOCOL Req - Format info 1. Transport protocol (1 byte) Res - Format info 1. Result code (1 byte) Noti(Unsol) - Format info non. **/ /*MAX_MSG_SIZE */ #define MAX_MSG_SIZE 512 // 256->512 /* MSG_ID Table */ #define OEM_SAP_CONNECT_REQ 0x00 /*Client -> Server*/ #define OEM_SAP_CONNECT_RESP 0x01 /*Server -> Client */ #define OEM_SAP_DISCONNECT_REQ 0x02 /*Client -> Server*/ #define OEM_SAP_DISCONNECT_RESP 0x03 /*Server -> Client */ #define OEM_SAP_DISCONNECT_IND 0x04 /*Server -> Client */ #define OEM_SAP_TRANSFER_APDU_REQ 0x05 /*Client -> Server*/ #define OEM_SAP_TRANSFER_APDU_RESP 0x06 /*Server -> Client */ #define OEM_SAP_TRANSFER_ATR_REQ 0x07 /*Client -> Server*/ #define OEM_SAP_TRANSFER_ATR_RESP 0x08 /*Server -> Client */ #define OEM_SAP_POWER_SIM_OFF_REQ 0x09 /*Client -> Server*/ #define OEM_SAP_POWER_SIM_OFF_RESP 0x0A /*Server -> Client */ #define OEM_SAP_POWER_SIM_ON_REQ 0x0B /*Client -> Server*/ #define OEM_SAP_POWER_SIM_ON_RESP 0x0C /*Server -> Client */ #define OEM_SAP_RESET_SIM_REQ 0x0D /*Client -> Server*/ #define OEM_SAP_RESET_SIM_RESP 0x0E /*Server -> Client */ #define OEM_SAP_TRANSFER_CARD_READER_STATUS_REQ 0x0F /*Client -> Server*/ #define OEM_SAP_TRANSFER_CARD_READER_STATUS_RESP 0x10 /*Server -> Client */ #define OEM_SAP_STATUS_IND 0x11 /*Client -> Server*/ #define OEM_SAP_ERROR_RESP 0x12 /*Server -> Client */ #define OEM_SAP_SET_TRANSPORT_PROTOCOL_REQ 0x13 /*Client -> Server*/ #define OEM_SAP_SET_TRANSPORT_PROTOCOL_RESP 0x14 /*Server -> Client */ /*CONNECTIN STATUS */ #define OEM_SAP_CONNECT_OK 0x00 #define OEM_SAP_CONNECT_UNABLE_ESTABLISH 0x01 #define OEM_SAP_CONNECT_NOT_SUPPORT_MAX_SIZE 0x02 #define OEM_SAP_CONNECT_TOO_SMALL_MAX_SIZE 0x03 /*DISCONNECT TYPE */ #define OEM_SAP_DISCONNECT_TYPE_GRACEFUL 0x00 #define OEM_SAP_DISCONNECT_TYPE_IMMEDIATE 0x01 /*SAP STATUS */ #define OEM_SAP_STATUS_UNKNOWN 0x00 #define OEM_SAP_STATUS_NO_SIM 0x01 #define OEM_SAP_STATUS_NOT_READY 0x02 #define OEM_SAP_STATUS_READY 0x03 #define OEM_SAP_STATUS_CONNECTED 0x04 /*CARD STATUS */ #define OEM_SAP_CARD_STATUS_UNKNOWN 0x00 #define OEM_SAP_CARD_STATUS_RESET 0x01 #define OEM_SAP_CARD_STATUS_NOT_ACCESSIBLE 0x02 #define OEM_SAP_CARD_STATUS_REMOVED 0x03 #define OEM_SAP_CARD_STATUS_INSERTED 0x04 #define OEM_SAP_CARD_STATUS_RECOVERED 0x05 /*RESULT CODE */ #define OEM_SAP_RESULT_OK 0x00 #define OEM_SAP_RESULT_NO_REASON 0x01 #define OEM_SAP_RESULT_CARD_NOT_ACCESSIBLE 0x02 #define OEM_SAP_RESULT_CARD_ALREADY_POWER_OFF 0x03 #define OEM_SAP_RESULT_REMOVED 0x04 #define OEM_SAP_RESULT_ALREADY_POWER_ON 0x05 #define OEM_SAP_RESULT_DATA_NOT_AVAILABLE 0x06 #define OEM_SAP_RESULT_NOT_SUPPORT 0x07 /*TRANSPORT PROTOCOL*/ #define OEM_SAP_TRANSPORT_PROTOCOL_T_ZERO 0x00 #define OEM_SAP_TRANSPORT_PROTOCOL_T_ONE 0x01 typedef struct { uint8_t func_id; uint8_t cmd; uint16_t len; } __attribute__((packed)) oem_ril_sap_hdr; typedef struct { uint8_t msg_id; } __attribute__((packed)) ril_sap_req_sap_connect; typedef struct { uint16_t apdu_len; uint8_t apdu[MAX_MSG_SIZE]; } __attribute__((packed)) ril_sap_req_transfer_apdu; typedef struct { uint8_t transport_protocol; } __attribute__((packed)) ril_sap_req_transport_protocol; typedef struct { uint8_t msg_id; } __attribute__((packed)) ril_sap_req_sim_power; typedef struct { uint8_t msg_id; uint8_t connection_status; uint16_t max_msg_size; } __attribute__((packed)) ril_sap_res_connect; typedef struct { uint8_t sap_status; } __attribute__((packed)) ril_sap_res_sap_status; typedef struct { uint8_t result_code; uint16_t atr_len; uint8_t atr[MAX_MSG_SIZE]; } __attribute__((packed)) ril_sap_res_transfer_atr; typedef struct { uint8_t result_code; uint16_t res_apdu_len; uint8_t res_apdu[MAX_MSG_SIZE]; } __attribute__((packed)) ril_sap_res_transfer_apdu; typedef struct { uint8_t result_code; } __attribute__((packed)) ril_sap_res_transport_protocol; typedef struct { uint8_t msg_id; uint8_t result_code; } __attribute__((packed)) ril_sap_res_sim_power; typedef struct { uint8_t result_code; uint8_t card_reader_status; } __attribute__((packed)) ril_sap_res_card_reader_status; typedef struct { uint8_t disconnect_type; } __attribute__((packed)) unsol_sap_connect; typedef struct { uint8_t card_status; } __attribute__((packed)) unsol_sap_status; typedef union { unsol_sap_connect connect; unsol_sap_status status; } __attribute__((packed)) unsol_sap_parameters; typedef struct { uint8_t sub_id; unsol_sap_parameters param; } __attribute__((packed)) unsol_sap_notification; #endif