You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
284 lines
7.4 KiB
284 lines
7.4 KiB
/*
|
|
* 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
|
|
|
|
|