/* | |
* 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 | |