From 3083841f72579501b9dff187cbc856e3c437de57 Mon Sep 17 00:00:00 2001 From: Andrzej Zaborowski Date: Wed, 10 Nov 2010 04:27:50 +0100 Subject: [PATCH] sim: Add sim_service_available() This is meant to query EFsst or EFust. The function is not public api because the service constants are in src/simutil.h. --- src/ofono.h | 5 +++++ src/sim.c | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/ofono.h b/src/ofono.h index e5b4acbe..4d76d20a 100644 --- a/src/ofono.h +++ b/src/ofono.h @@ -281,6 +281,11 @@ gboolean __ofono_sms_datagram_watch_remove(struct ofono_sms *sms, unsigned short __ofono_sms_get_next_ref(struct ofono_sms *sms); #include + +ofono_bool_t __ofono_sim_service_available(struct ofono_sim *sim, + int ust_service, + int sst_service); + #include typedef void (*__ofono_sms_sim_download_cb_t)(ofono_bool_t ok, diff --git a/src/sim.c b/src/sim.c index e5e304cf..f362565b 100644 --- a/src/sim.c +++ b/src/sim.c @@ -1928,6 +1928,21 @@ const unsigned char *ofono_sim_get_cphs_service_table(struct ofono_sim *sim) return sim->cphs_service_table; } +ofono_bool_t __ofono_sim_service_available(struct ofono_sim *sim, + int ust_service, + int sst_service) +{ + if (sim->efust) + return sim_ust_is_available(sim->efust, sim->efust_length, + ust_service); + + if (sim->efsst) + return sim_sst_is_active(sim->efsst, sim->efsst_length, + sst_service); + + return FALSE; +} + static void sim_inserted_update(struct ofono_sim *sim) { DBusConnection *conn = ofono_dbus_get_connection();