summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sim.c25
-rw-r--r--src/sim.h10
2 files changed, 35 insertions, 0 deletions
diff --git a/src/sim.c b/src/sim.c
index 9afaf916..5d06f513 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -807,6 +807,31 @@ static void initialize_sim_manager(struct ofono_modem *modem)
g_timeout_add(0, sim_retrieve_pnn, modem);
}
+int ofono_sim_ready_notify_register(struct ofono_modem *modem,
+ ofono_sim_ready_notify_cb_t cb)
+{
+ if (modem->sim_manager == NULL)
+ return -1;
+
+ modem->sim_manager->ready_notify =
+ g_slist_append(modem->sim_manager->ready_notify, cb);
+
+ return 0;
+}
+
+void ofono_sim_ready_notify_unregister(struct ofono_modem *modem,
+ ofono_sim_ready_notify_cb_t cb)
+{
+ if (modem->sim_manager == NULL)
+ return;
+
+ modem->sim_manager->ready_notify =
+ g_slist_remove(modem->sim_manager->ready_notify, cb);
+}
+
+ return 0;
+}
+
int ofono_sim_manager_register(struct ofono_modem *modem,
struct ofono_sim_ops *ops)
{
diff --git a/src/sim.h b/src/sim.h
index 5adf1a51..8f1707be 100644
--- a/src/sim.h
+++ b/src/sim.h
@@ -19,12 +19,22 @@
*
*/
+typedef void (*ofono_sim_ready_notify_cb_t)(struct ofono_modem *modem);
+
+typedef void (*ofono_sim_read_binary_cb_t)(struct ofono_modem *modem,
+ const struct ofono_error *error,
+ const unsigned char *data,
+ int len, void *userdata);
void ofono_sim_manager_init(struct ofono_modem *modem);
void ofono_sim_manager_exit(struct ofono_modem *modem);
gboolean ofono_operator_in_spdi(struct ofono_modem *modem,
const struct ofono_network_operator *op);
+int ofono_sim_ready_notify_register(struct ofono_modem *modem,
+ ofono_sim_ready_notify_cb_t cb);
+void ofono_sim_ready_notify_unregister(struct ofono_modem *modem,
+ ofono_sim_ready_notify_cb_t cb);
const char *ofono_operator_name_sim_override(struct ofono_modem *modem,
const char *mcc,