diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sim.c | 25 | ||||
-rw-r--r-- | src/sim.h | 10 |
2 files changed, 35 insertions, 0 deletions
@@ -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) { @@ -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, |