static void ril_cbs_remove(struct ofono_cbs *cbs) { struct cbs_data *cd = ofono_cbs_get_data(cbs); ofono_cbs_set_data(cbs, NULL); g_ril_unref(cd->ril); g_free(cd); }
static int ril_cbs_probe(struct ofono_cbs *cbs, unsigned int vendor, void *data) { struct ril_modem *modem = data; struct ril_cbs *cd = g_try_new0(struct ril_cbs, 1); DBG(""); cd->cbs = cbs; cd->io = grilio_channel_ref(ril_modem_io(modem)); cd->timer_id = g_idle_add(ril_cbs_register, cd); ofono_cbs_set_data(cbs, cd); return 0; }
static int ril_cbs_probe(struct ofono_cbs *cbs, unsigned int vendor, void *user) { GRil *ril = user; struct cbs_data *cd = g_try_new0(struct cbs_data, 1); cd->ril = g_ril_clone(ril); ofono_cbs_set_data(cbs, cd); g_timeout_add_seconds(2, ril_delayed_register, cbs); return 0; }
static void ril_cbs_remove(struct ofono_cbs *cbs) { struct ril_cbs *cd = ofono_cbs_get_data(cbs); DBG(""); ofono_cbs_set_data(cbs, NULL); if (cd->timer_id > 0) { g_source_remove(cd->timer_id); } grilio_channel_remove_handler(cd->io, cd->event_id); grilio_channel_unref(cd->io); g_free(cd); }