From aecf42646e80e334b50c07f482079457b33b8860 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 1 Sep 2009 17:36:27 -0500 Subject: [PATCH] Add vendor flag capability to sim --- drivers/atmodem/sim.c | 5 ++++- drivers/isimodem/isimodem.c | 2 +- drivers/isimodem/sim.c | 4 ++-- include/sim.h | 4 ++-- plugins/generic_at.c | 2 +- src/sim.c | 4 ++-- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c index 27fef762..9f4577d9 100644 --- a/drivers/atmodem/sim.c +++ b/drivers/atmodem/sim.c @@ -440,8 +440,11 @@ static gboolean at_sim_register(gpointer user) return FALSE; } -static int at_sim_probe(struct ofono_sim *sim) +static int at_sim_probe(struct ofono_sim *sim, int vendor, void *data) { + GAtChat *chat = data; + + ofono_sim_set_data(sim, chat); g_idle_add(at_sim_register, sim); return 0; diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c index 016b17ce..7b5bdacb 100644 --- a/drivers/isimodem/isimodem.c +++ b/drivers/isimodem/isimodem.c @@ -154,7 +154,7 @@ static int isi_modem_populate(struct ofono_modem *modem) ofono_netreg_create(isi->modem, 0, "isi", isi->idx); ofono_voicecall_create(isi->modem, "isi", isi->idx); ofono_sms_create(isi->modem, "isi", isi->idx); - ofono_sim_create(isi->modem, "isi", isi->idx); + ofono_sim_create(isi->modem, 0, "isi", isi->idx); ofono_ssn_create(isi->modem, "isi", isi->idx); ofono_ussd_create(isi->modem, "isi", isi->idx); ofono_call_forwarding_create(isi->modem, 0, "isi", isi->idx); diff --git a/drivers/isimodem/sim.c b/drivers/isimodem/sim.c index e0e64252..1537ccf5 100644 --- a/drivers/isimodem/sim.c +++ b/drivers/isimodem/sim.c @@ -96,9 +96,9 @@ static void isi_read_imsi(struct ofono_sim *sim, { } -static int isi_sim_probe(struct ofono_sim *sim) +static int isi_sim_probe(struct ofono_sim *sim, int vendor, void *user) { - GIsiModem *idx = ofono_sim_get_data(sim); + GIsiModem *idx = user; struct sim_data *data = g_try_new0(struct sim_data, 1); if (!data) diff --git a/include/sim.h b/include/sim.h index b6a9b514..2cabd79f 100644 --- a/include/sim.h +++ b/include/sim.h @@ -66,7 +66,7 @@ typedef void (*ofono_sim_file_write_cb_t)(int ok, void *userdata); struct ofono_sim_driver { const char *name; - int (*probe)(struct ofono_sim *sim); + int (*probe)(struct ofono_sim *sim, int vendor, void *data); int (*remove)(struct ofono_sim *sim); void (*read_file_info)(struct ofono_sim *sim, int fileid, ofono_sim_file_info_cb_t cb, void *data); @@ -95,7 +95,7 @@ struct ofono_sim_driver { int ofono_sim_driver_register(const struct ofono_sim_driver *d); void ofono_sim_driver_unregister(const struct ofono_sim_driver *d); -struct ofono_sim *ofono_sim_create(struct ofono_modem *modem, +struct ofono_sim *ofono_sim_create(struct ofono_modem *modem, int vendor, const char *driver, void *data); void ofono_sim_register(struct ofono_sim *sim); diff --git a/plugins/generic_at.c b/plugins/generic_at.c index e69717af..7f30c3d3 100644 --- a/plugins/generic_at.c +++ b/plugins/generic_at.c @@ -511,7 +511,7 @@ static int generic_at_populate(struct ofono_modem *modem) ofono_devinfo_create(modem, 0, "generic_at", chat); ofono_ussd_create(modem, "generic_at", chat); - ofono_sim_create(modem, "generic_at", chat); + ofono_sim_create(modem, 0, "generic_at", chat); ofono_call_forwarding_create(modem, 0, "generic_at", chat); ofono_call_settings_create(modem, 0, "generic_at", chat); ofono_netreg_create(modem, 0, "generic_at", chat); diff --git a/src/sim.c b/src/sim.c index 3d4be240..8ab7306d 100644 --- a/src/sim.c +++ b/src/sim.c @@ -1299,6 +1299,7 @@ static void sim_remove(struct ofono_atom *atom) } struct ofono_sim *ofono_sim_create(struct ofono_modem *modem, + int vendor, const char *driver, void *data) { @@ -1313,7 +1314,6 @@ struct ofono_sim *ofono_sim_create(struct ofono_modem *modem, if (sim == NULL) return NULL; - sim->driver_data = data; sim->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_SIM, sim_remove, sim); @@ -1323,7 +1323,7 @@ struct ofono_sim *ofono_sim_create(struct ofono_modem *modem, if (g_strcmp0(drv->name, driver)) continue; - if (drv->probe(sim) < 0) + if (drv->probe(sim, vendor, data) < 0) continue; sim->driver = drv;