From 15b1a733b0a3a99adcf619b82ee4304a43ade4dd Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 1 Sep 2009 16:57:24 -0500 Subject: [PATCH] Introduce vendor parameter to call-barring --- drivers/atmodem/call-barring.c | 6 +++++- drivers/isimodem/call-barring.c | 5 +++-- drivers/isimodem/isimodem.c | 2 +- include/call-barring.h | 3 ++- plugins/generic_at.c | 2 +- src/call-barring.c | 7 ++++--- 6 files changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/atmodem/call-barring.c b/drivers/atmodem/call-barring.c index f2ac438d..1009f0bd 100644 --- a/drivers/atmodem/call-barring.c +++ b/drivers/atmodem/call-barring.c @@ -206,8 +206,12 @@ static gboolean at_call_barring_register(gpointer user) return FALSE; } -static int at_call_barring_probe(struct ofono_call_barring *cb) +static int at_call_barring_probe(struct ofono_call_barring *cb, int vendor, + void *user) { + GAtChat *chat = user; + + ofono_call_barring_set_data(cb, chat); g_idle_add(at_call_barring_register, cb); return 0; diff --git a/drivers/isimodem/call-barring.c b/drivers/isimodem/call-barring.c index a35dd9bc..d091930c 100644 --- a/drivers/isimodem/call-barring.c +++ b/drivers/isimodem/call-barring.c @@ -65,9 +65,10 @@ static void isi_set_passwd(struct ofono_call_barring *barr, const char *lock, { } -static int isi_call_barring_probe(struct ofono_call_barring *barr) +static int isi_call_barring_probe(struct ofono_call_barring *barr, int vendor, + void *user) { - GIsiModem *idx = ofono_call_barring_get_data(barr); + GIsiModem *idx = user; struct call_barring_data *data = g_try_new0(struct call_barring_data, 1); if (!data) diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c index 3f3d179d..22e467ed 100644 --- a/drivers/isimodem/isimodem.c +++ b/drivers/isimodem/isimodem.c @@ -159,7 +159,7 @@ static int isi_modem_populate(struct ofono_modem *modem) ofono_ussd_create(isi->modem, "isi", isi->idx); ofono_call_forwarding_create(isi->modem, "isi", isi->idx); ofono_call_settings_create(isi->modem, "isi", isi->idx); - ofono_call_barring_create(isi->modem, "isi", isi->idx); + ofono_call_barring_create(isi->modem, 0, "isi", isi->idx); ofono_call_meter_create(isi->modem, "isi", isi->idx); return 0; diff --git a/include/call-barring.h b/include/call-barring.h index 04f18c55..6350ec64 100644 --- a/include/call-barring.h +++ b/include/call-barring.h @@ -37,7 +37,7 @@ typedef void (*ofono_call_barring_query_cb_t)(const struct ofono_error *error, struct ofono_call_barring_driver { const char *name; - int (*probe)(struct ofono_call_barring *cb); + int (*probe)(struct ofono_call_barring *cb, int vendor, void *data); int (*remove)(struct ofono_call_barring *cb); void (*set)(struct ofono_call_barring *barr, const char *lock, int enable, const char *passwd, int cls, @@ -53,6 +53,7 @@ int ofono_call_barring_driver_register(const struct ofono_call_barring_driver *d void ofono_call_barring_driver_unregister(const struct ofono_call_barring_driver *d); struct ofono_call_barring *ofono_call_barring_create(struct ofono_modem *modem, + int vendor, const char *driver, void *data); diff --git a/plugins/generic_at.c b/plugins/generic_at.c index d93a154f..0676ae86 100644 --- a/plugins/generic_at.c +++ b/plugins/generic_at.c @@ -517,7 +517,7 @@ static int generic_at_populate(struct ofono_modem *modem) ofono_netreg_create(modem, "generic_at", chat); ofono_voicecall_create(modem, "generic_at", chat); ofono_call_meter_create(modem, "generic_at", chat); - ofono_call_barring_create(modem, "generic_at", chat); + ofono_call_barring_create(modem, 0, "generic_at", chat); ofono_ssn_create(modem, "generic_at", chat); ofono_sms_create(modem, "generic_at", chat); ofono_phonebook_create(modem, "generic_at", chat); diff --git a/src/call-barring.c b/src/call-barring.c index a88cc616..2e831f84 100644 --- a/src/call-barring.c +++ b/src/call-barring.c @@ -1098,7 +1098,9 @@ static void call_barring_remove(struct ofono_atom *atom) } struct ofono_call_barring *ofono_call_barring_create(struct ofono_modem *modem, - const char *driver, void *data) + int vendor, + const char *driver, + void *data) { struct ofono_call_barring *cb; GSList *l; @@ -1116,7 +1118,6 @@ struct ofono_call_barring *ofono_call_barring_create(struct ofono_modem *modem, cb->cur_locks = g_new0(int, lcount); cb->new_locks = g_new0(int, lcount); - cb->driver_data = data; cb->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_CALL_BARRING, call_barring_remove, cb); @@ -1126,7 +1127,7 @@ struct ofono_call_barring *ofono_call_barring_create(struct ofono_modem *modem, if (g_strcmp0(drv->name, driver)) continue; - if (drv->probe(cb) < 0) + if (drv->probe(cb, vendor, data) < 0) continue; cb->driver = drv;