diff options
-rw-r--r-- | Android.mk | 3 | ||||
-rw-r--r-- | samsung-ril.c | 15 | ||||
-rw-r--r-- | samsung-ril.h | 10 | ||||
-rw-r--r-- | sat.c | 27 |
4 files changed, 37 insertions, 18 deletions
@@ -48,6 +48,9 @@ LOCAL_STATIC_LIBRARIES := libsamsung-ipc # for asprinf LOCAL_CFLAGS := -D_GNU_SOURCE +# Disable STK +LOCAL_CFLAGS += -DDISABLE_STK + ifeq ($(TARGET_DEVICE),crespo) LOCAL_CFLAGS += -DDEVICE_IPC_V4 samsung-ipc_device := crespo diff --git a/samsung-ril.c b/samsung-ril.c index d8ae7d6..73c2ecd 100644 --- a/samsung-ril.c +++ b/samsung-ril.c @@ -306,12 +306,14 @@ void ipc_fmt_dispatch(struct ipc_message_info *info) ipc_misc_time_info(info); break; /* SAT */ +#ifndef DISABLE_STK case IPC_SAT_PROACTIVE_CMD: - respondSatProactiveCmd(info); + ipc_sat_proactive_cmd(info); break; case IPC_SAT_ENVELOPE_CMD: - respondSatEnvelopeCmd(info); + ipc_sat_envelope_cmd(info); break; +#endif /* SS */ case IPC_SS_USSD: ipc_ss_ussd(info); @@ -473,15 +475,20 @@ void ril_on_request(int request, void *data, size_t length, RIL_Token t) ril_request_get_imsi(t); break; /* SAT */ +#ifndef DISABLE_STK + case RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING: + ril_request_report_stk_service_is_running(t); + break; case RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE: - requestSatSendTerminalResponse(t, data, length); + ril_request_stk_send_terminal_response(t, data, length); break; case RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND: - requestSatSendEnvelopeCommand(t, data, length); + ril_request_stk_send_envelope_command(t, data, length); break; case RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM: ril_request_complete(t, RIL_E_SUCCESS, NULL, 0); break; +#endif /* SS */ case RIL_REQUEST_SEND_USSD: ril_request_send_ussd(t, data, length); diff --git a/samsung-ril.h b/samsung-ril.h index c8a203b..3cf8f34 100644 --- a/samsung-ril.h +++ b/samsung-ril.h @@ -246,10 +246,11 @@ void ipc_misc_me_imsi(struct ipc_message_info *info); void ipc_misc_time_info(struct ipc_message_info *info); /* SAT */ -void respondSatProactiveCmd(struct ipc_message_info *request); -void requestSatSendTerminalResponse(RIL_Token t, void *data, size_t datalen); -void requestSatSendEnvelopeCommand(RIL_Token t, void *data, size_t datalen); -void respondSatEnvelopeCmd(struct ipc_message_info *request); +void ril_request_report_stk_service_is_running(RIL_Token t); +void ipc_sat_proactive_cmd(struct ipc_message_info *info); +void ril_request_stk_send_terminal_response(RIL_Token t, void *data, size_t datalen); +void ril_request_stk_send_envelope_command(RIL_Token t, void *data, size_t datalen); +void ipc_sat_envelope_cmd(struct ipc_message_info *info); /* SS */ @@ -313,7 +314,6 @@ struct ril_request_send_sms_info { RIL_Token token; }; - int ril_request_send_sms_register(char *pdu, int pdu_length, unsigned char *smsc, int smsc_length, RIL_Token t); void ril_request_send_sms_unregister(struct ril_request_send_sms_info *send_sms); struct ril_request_send_sms_info *ril_request_send_sms_info_find(void); @@ -25,13 +25,22 @@ #include "samsung-ril.h" #include "util.h" +void ril_request_report_stk_service_is_running(RIL_Token t) +{ +#ifndef DISABLE_STK + ril_request_complete(t, RIL_E_SUCCESS, NULL, 0); +#else + ril_request_complete(t, RIL_E_GENERIC_FAILURE, NULL, 0); +#endif +} + /** * In: IPC_SAT_PROACTIVE_CMD * STK proactive command * * Out: RIL_UNSOL_STK_PROACTIVE_COMMAND */ -void respondSatProactiveCmdIndi(struct ipc_message_info *info) +void ipc_sat_proactive_cmd_unsol(struct ipc_message_info *info) { int data_len = (info->length-2); char *hexdata; @@ -51,7 +60,7 @@ void respondSatProactiveCmdIndi(struct ipc_message_info *info) * * Out: RIL_UNSOL_STK_SESSION_END */ -void respondSatProactiveCmdResp(struct ipc_message_info *info) +void ipc_sat_proactive_cmd_sol(struct ipc_message_info *info) { unsigned char sw1, sw2; @@ -68,14 +77,14 @@ void respondSatProactiveCmdResp(struct ipc_message_info *info) /** * Proactive command indi/resp helper function */ -void respondSatProactiveCmd(struct ipc_message_info *info) +void ipc_sat_proactive_cmd(struct ipc_message_info *info) { if(info->type == IPC_TYPE_INDI) { - respondSatProactiveCmdIndi(info); + ipc_sat_proactive_cmd_unsol(info); } else if(info->type == IPC_TYPE_RESP) { - respondSatProactiveCmdResp(info); + ipc_sat_proactive_cmd_sol(info); } else { - LOGE("%s: unhandled proactive command response type %d", __FUNCTION__, info->type); + LOGE("%s: unhandled proactive command response type %d",__func__, info->type); } } @@ -86,7 +95,7 @@ void respondSatProactiveCmd(struct ipc_message_info *info) * * Out: IPC_SAT_PROACTIVE_CMD GET */ -void requestSatSendTerminalResponse(RIL_Token t, void *data, size_t datalen) +void ril_request_stk_send_terminal_response(RIL_Token t, void *data, size_t datalen) { unsigned char buf[264]; int len = (strlen(data) / 2); @@ -113,7 +122,7 @@ void requestSatSendTerminalResponse(RIL_Token t, void *data, size_t datalen) * * Out: IPC_SAT_ENVELOPE_CMD EXEC */ -void requestSatSendEnvelopeCommand(RIL_Token t, void *data, size_t datalen) +void ril_request_stk_send_envelope_command(RIL_Token t, void *data, size_t datalen) { unsigned char buf[264]; int len = (strlen(data) / 2); @@ -138,7 +147,7 @@ void requestSatSendEnvelopeCommand(RIL_Token t, void *data, size_t datalen) * Requests to send a SAT/USAT envelope command to SIM. * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111 */ -void respondSatEnvelopeCmd(struct ipc_message_info *info) +void ipc_sat_envelope_cmd(struct ipc_message_info *info) { int data_len = (info->length-2); char *hexdata; |