From 8d380f8fa0b41749868fc0fed7c8523f60c047c6 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 1 Sep 2009 17:39:29 -0500 Subject: [PATCH] Add vendor flag capability for sms --- drivers/atmodem/sms.c | 6 ++++-- drivers/isimodem/isimodem.c | 2 +- drivers/isimodem/sms.c | 4 ++-- include/sms.h | 4 ++-- plugins/generic_at.c | 2 +- src/sms.c | 4 ++-- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/atmodem/sms.c b/drivers/atmodem/sms.c index 2f9776c9..3ce104f4 100644 --- a/drivers/atmodem/sms.c +++ b/drivers/atmodem/sms.c @@ -73,6 +73,7 @@ struct sms_data { char *cnma_ack_pdu; int cnma_ack_pdu_len; GAtChat *chat; + int vendor; }; struct cpms_request { @@ -956,13 +957,14 @@ out: at_csms_set_cb, sms, NULL); } -static int at_sms_probe(struct ofono_sms *sms) +static int at_sms_probe(struct ofono_sms *sms, int vendor, void *user) { - GAtChat *chat = ofono_sms_get_data(sms); + GAtChat *chat = user; struct sms_data *data; data = g_new0(struct sms_data, 1); data->chat = chat; + data->vendor = vendor; ofono_sms_set_data(sms, data); diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c index 7b5bdacb..dc641dd3 100644 --- a/drivers/isimodem/isimodem.c +++ b/drivers/isimodem/isimodem.c @@ -153,7 +153,7 @@ static int isi_modem_populate(struct ofono_modem *modem) ofono_phonebook_create(isi->modem, 0, "isi", isi->idx); 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_sms_create(isi->modem, 0, "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); diff --git a/drivers/isimodem/sms.c b/drivers/isimodem/sms.c index 52ce4d1a..36cbdae0 100644 --- a/drivers/isimodem/sms.c +++ b/drivers/isimodem/sms.c @@ -65,9 +65,9 @@ static void isi_submit(struct ofono_sms *sms, unsigned char *pdu, { } -static int isi_sms_probe(struct ofono_sms *sms) +static int isi_sms_probe(struct ofono_sms *sms, int vendor, void *user) { - GIsiModem *idx = ofono_sms_get_data(sms); + GIsiModem *idx = user; struct sms_data *data = g_try_new0(struct sms_data, 1); if (!data) diff --git a/include/sms.h b/include/sms.h index 6cbdce37..546d40af 100644 --- a/include/sms.h +++ b/include/sms.h @@ -40,7 +40,7 @@ typedef void (*ofono_sms_sca_set_cb_t)(const struct ofono_error *error, struct ofono_sms_driver { const char *name; - int (*probe)(struct ofono_sms *sms); + int (*probe)(struct ofono_sms *sms, int vendor, void *data); int (*remove)(struct ofono_sms *sms); void (*sca_query)(struct ofono_sms *sms, ofono_sms_sca_query_cb_t cb, void *data); @@ -60,7 +60,7 @@ void ofono_sms_status_notify(struct ofono_sms *sms, unsigned char *pdu, int ofono_sms_driver_register(const struct ofono_sms_driver *d); void ofono_sms_driver_unregister(const struct ofono_sms_driver *d); -struct ofono_sms *ofono_sms_create(struct ofono_modem *modem, +struct ofono_sms *ofono_sms_create(struct ofono_modem *modem, int vendor, const char *driver, void *data); void ofono_sms_register(struct ofono_sms *sms); diff --git a/plugins/generic_at.c b/plugins/generic_at.c index 7f30c3d3..0900e3ce 100644 --- a/plugins/generic_at.c +++ b/plugins/generic_at.c @@ -519,7 +519,7 @@ static int generic_at_populate(struct ofono_modem *modem) ofono_call_meter_create(modem, 0, "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_sms_create(modem, 0, "generic_at", chat); ofono_phonebook_create(modem, 0, "generic_at", chat); mw = ofono_message_waiting_create(modem); diff --git a/src/sms.c b/src/sms.c index 775802a5..fd2b5b9a 100644 --- a/src/sms.c +++ b/src/sms.c @@ -819,6 +819,7 @@ static void sms_remove(struct ofono_atom *atom) } struct ofono_sms *ofono_sms_create(struct ofono_modem *modem, + int vendor, const char *driver, void *data) { @@ -837,7 +838,6 @@ struct ofono_sms *ofono_sms_create(struct ofono_modem *modem, sms->ref = 1; sms->assembly = sms_assembly_new(); sms->txq = g_queue_new(); - sms->driver_data = data; sms->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_SMS, sms_remove, sms); @@ -847,7 +847,7 @@ struct ofono_sms *ofono_sms_create(struct ofono_modem *modem, if (g_strcmp0(drv->name, driver)) continue; - if (drv->probe(sms) < 0) + if (drv->probe(sms, vendor, data) < 0) continue; sms->driver = drv;