summaryrefslogtreecommitdiffstats
path: root/sim.c
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-10-15 08:24:47 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-01-01 23:54:56 +0100
commite593f410d7c3f0924033e71c84dcb1ace32fd6a0 (patch)
treedbc1fe7366b4c13189e10f74d78ae1d7683c2149 /sim.c
parent1f4962b5d11e5e3567e6a78ecce7207ed3ef438e (diff)
downloadhardware_replicant_libsamsung-ril-e593f410d7c3f0924033e71c84dcb1ace32fd6a0.tar.gz
hardware_replicant_libsamsung-ril-e593f410d7c3f0924033e71c84dcb1ace32fd6a0.tar.bz2
hardware_replicant_libsamsung-ril-e593f410d7c3f0924033e71c84dcb1ace32fd6a0.zip
Convert to use separate SIM statusreplicant-6.0-0004-rc4
In 2001, in the RIL repository[1], the SIM states were separated from the radio states by the following commit: 2bc78d614e349574426d198c37e51ccb7455b5bb 2bc78d61 Separate SIM states from Radio States Then in 2016 the SIM states were removed from the RADIO_STATES by the following commit: 2baf72329c43d9e3f7850973f087176f535e31e8 2baf7232 Remove deprecated RADIO_STATES So to be compatible with recent rild, we need to convert the code to use separate SIM states. This was tested on Replicant 4.2 with a Galaxy SIII (GT-I9300) and a Nexus S (GT-I9023) and in both cases: - It compiled fine - Calling worked fine too: I called an invalid number I got an automatic voice reply telling me that this number was invalid. Similarly that was also tested on Replicant 6.0 0004 RC3 both by compiling it and calling an invalid number, as this commit was part of the Replicant 6.0 0004 RC3 release. Since then only the commit message was modified to add information about the tests as it didn't have them but had the following text instead: TODO: - Test this code with Replicant 4.2!!!! [1]https://android.googlesource.com/platform/hardware/ril Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'sim.c')
-rw-r--r--sim.c52
1 files changed, 26 insertions, 26 deletions
diff --git a/sim.c b/sim.c
index e8c3373..6bb0f4c 100644
--- a/sim.c
+++ b/sim.c
@@ -28,8 +28,8 @@
#include <utils.h>
#include <sim.h>
-RIL_RadioState ipc2ril_sec_pin_status_response(struct ipc_sec_pin_status_response_data *data,
- RIL_CardStatus_compat *card_status)
+enum sim_state ipc2ril_sec_pin_status_response(struct ipc_sec_pin_status_response_data *data,
+ RIL_CardStatus_compat *card_status)
{
RIL_AppStatus app_statuses[] = {
// Absent
@@ -53,12 +53,12 @@ RIL_RadioState ipc2ril_sec_pin_status_response(struct ipc_sec_pin_status_respons
// Perso service provider
{ RIL_APPTYPE_SIM, RIL_APPSTATE_SUBSCRIPTION_PERSO, RIL_PERSOSUBSTATE_SIM_SERVICE_PROVIDER, NULL, NULL, 0, RIL_PINSTATE_ENABLED_NOT_VERIFIED, RIL_PINSTATE_UNKNOWN },
};
- RIL_RadioState radio_state;
+ enum sim_state sim_state;
unsigned int index;
unsigned int count;
if (data == NULL || card_status == NULL)
- return 0;
+ return SIM_STATE_ERROR;
count = sizeof(app_statuses) / sizeof(RIL_AppStatus);
@@ -113,14 +113,14 @@ RIL_RadioState ipc2ril_sec_pin_status_response(struct ipc_sec_pin_status_respons
switch (index) {
case 1:
- radio_state = RADIO_STATE_SIM_NOT_READY;
+ sim_state = SIM_STATE_NOT_READY;
break;
case 2:
- radio_state = RADIO_STATE_SIM_READY;
+ sim_state = SIM_STATE_READY;
break;
default:
- radio_state = RADIO_STATE_SIM_LOCKED_OR_ABSENT;
- }
+ sim_state = SIM_STATE_LOCKED_OR_ABSENT;
+ }
memset(card_status, 0, sizeof(RIL_CardStatus_compat));
@@ -143,7 +143,7 @@ RIL_RadioState ipc2ril_sec_pin_status_response(struct ipc_sec_pin_status_respons
RIL_LOGD("%s: Selecting status application %d on %d", __func__, index, count);
- return radio_state;
+ return sim_state;
}
unsigned char ril2ipc_sec_facility_type(char *facility)
@@ -194,20 +194,20 @@ int ipc_sec_pin_status(struct ipc_message *message)
struct ipc_sec_pin_status_response_data *data;
struct ipc_sec_pin_status_request_data request_data;
RIL_CardStatus_compat card_status;
- RIL_RadioState radio_state;
+ enum sim_state sim_state;
int rc;
if (message == NULL || message->data == NULL || message->size < sizeof(struct ipc_sec_pin_status_response_data))
return -1;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_NOT_READY);
+ rc = ril_radio_has_reached_state(RADIO_STATE_ON);
if (rc < 0)
return 0;
data = (struct ipc_sec_pin_status_response_data *) message->data;
- radio_state = ipc2ril_sec_pin_status_response(data, &card_status);
- if (radio_state == 0)
+ sim_state = ipc2ril_sec_pin_status_response(data, &card_status);
+ if (sim_state == SIM_STATE_ERROR)
return 0;
if (card_status.applications[0].app_type == RIL_APPTYPE_SIM && card_status.applications[0].app_state == RIL_APPSTATE_PIN && ril_data->sim_pin != NULL) {
@@ -233,7 +233,7 @@ int ipc_sec_pin_status(struct ipc_message *message)
}
- ril_radio_state_update(radio_state);
+ ril_sim_state_update(sim_state);
if (message->type == IPC_TYPE_RESP && ipc_seq_valid(message->aseq)) {
ril_request_complete(ipc_fmt_request_token(message->aseq), RIL_E_SUCCESS, (void *) &card_status, sizeof(card_status));
@@ -254,7 +254,7 @@ int ril_request_get_sim_status(__attribute__((unused)) void *data,
struct ril_request *request;
int rc;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_NOT_READY);
+ rc = ril_radio_has_reached_state(RADIO_STATE_ON);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -311,7 +311,7 @@ int ril_request_query_facility_lock(void *data, size_t size, RIL_Token token)
if (data == NULL || size < 4 * sizeof(char *))
goto error;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_READY);
+ rc = ril_sim_has_reached_state(SIM_STATE_READY);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -510,7 +510,7 @@ int ril_request_set_facility_lock(void *data, size_t size, RIL_Token token)
if (data == NULL || size < 4 * sizeof(char *))
goto error;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_READY);
+ rc = ril_sim_has_reached_state(SIM_STATE_READY);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -588,7 +588,7 @@ int ril_request_enter_sim_pin(void *data, size_t size, RIL_Token token)
if (data == NULL || size < 2 * sizeof(char *) || ril_data == NULL)
goto error;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_NOT_READY);
+ rc = ril_radio_has_reached_state(RADIO_STATE_ON);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -645,7 +645,7 @@ int ril_request_enter_sim_puk(void *data, size_t size, RIL_Token token)
if (data == NULL || size < 2 * sizeof(char *))
goto error;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_NOT_READY);
+ rc = ril_radio_has_reached_state(RADIO_STATE_ON);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -695,7 +695,7 @@ int ril_request_enter_sim_pin2(void *data, size_t size, RIL_Token token)
if (data == NULL || size < 2 * sizeof(char *))
goto error;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_NOT_READY);
+ rc = ril_radio_has_reached_state(RADIO_STATE_ON);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -745,7 +745,7 @@ int ril_request_enter_sim_puk2(void *data, size_t size, RIL_Token token)
if (data == NULL || size < 2 * sizeof(char *))
goto error;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_NOT_READY);
+ rc = ril_radio_has_reached_state(RADIO_STATE_ON);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -799,7 +799,7 @@ int ril_request_change_sim_pin(void *data, size_t size, RIL_Token token)
if (request != NULL)
return RIL_REQUEST_UNHANDLED;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_READY);
+ rc = ril_sim_has_reached_state(SIM_STATE_READY);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -849,7 +849,7 @@ int ril_request_change_sim_pin2(void *data, size_t size, RIL_Token token)
if (request != NULL)
return RIL_REQUEST_UNHANDLED;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_READY);
+ rc = ril_sim_has_reached_state(SIM_STATE_READY);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
@@ -965,9 +965,9 @@ int ril_request_sim_io(void *data, size_t size, RIL_Token token)
if (data == NULL || size < sizeof(RIL_SIM_IO_compat))
goto error;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_READY);
+ rc = ril_sim_has_reached_state(SIM_STATE_READY);
if (rc < 0) {
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_LOCKED_OR_ABSENT);
+ rc = ril_sim_has_reached_state(SIM_STATE_LOCKED_OR_ABSENT);
if (rc < 0)
return RIL_REQUEST_UNHANDLED;
else
@@ -1128,7 +1128,7 @@ int ipc_sec_lock_infomation(struct ipc_message *message)
if (message == NULL || message->data == NULL || message->size < sizeof(struct ipc_sec_lock_information_response_data))
return -1;
- rc = ril_radio_has_reached_state(RADIO_STATE_SIM_NOT_READY);
+ rc = ril_radio_has_reached_state(RADIO_STATE_ON);
if (rc < 0)
return 0;