mirror of git://git.sysmocom.de/ofono
Add vendor flag capability to netreg
This commit is contained in:
parent
c7d35dd039
commit
271b042488
|
@ -636,9 +636,9 @@ static void at_network_registration_initialized(gboolean ok, GAtResult *result,
|
||||||
ofono_netreg_register(netreg);
|
ofono_netreg_register(netreg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int at_netreg_probe(struct ofono_netreg *netreg)
|
static int at_netreg_probe(struct ofono_netreg *netreg, int vendor, void *data)
|
||||||
{
|
{
|
||||||
GAtChat *chat = ofono_netreg_get_data(netreg);
|
GAtChat *chat = data;
|
||||||
struct netreg_data *nd;
|
struct netreg_data *nd;
|
||||||
|
|
||||||
nd = g_new0(struct netreg_data, 1);
|
nd = g_new0(struct netreg_data, 1);
|
||||||
|
|
|
@ -151,7 +151,7 @@ static int isi_modem_populate(struct ofono_modem *modem)
|
||||||
|
|
||||||
ofono_devinfo_create(isi->modem, 0, "isi", isi->idx);
|
ofono_devinfo_create(isi->modem, 0, "isi", isi->idx);
|
||||||
ofono_phonebook_create(isi->modem, "isi", isi->idx);
|
ofono_phonebook_create(isi->modem, "isi", isi->idx);
|
||||||
ofono_netreg_create(isi->modem, "isi", isi->idx);
|
ofono_netreg_create(isi->modem, 0, "isi", isi->idx);
|
||||||
ofono_voicecall_create(isi->modem, "isi", isi->idx);
|
ofono_voicecall_create(isi->modem, "isi", isi->idx);
|
||||||
ofono_sms_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, "isi", isi->idx);
|
||||||
|
|
|
@ -178,21 +178,21 @@ static gboolean isi_netreg_register(gpointer user)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int isi_netreg_probe(struct ofono_netreg *netreg)
|
static int isi_netreg_probe(struct ofono_netreg *netreg, int vendor, void *user)
|
||||||
{
|
{
|
||||||
GIsiModem *idx = ofono_netreg_get_data(netreg);
|
GIsiModem *idx = user;
|
||||||
struct netreg_data *user = g_try_new0(struct netreg_data, 1);
|
struct netreg_data *data = g_try_new0(struct netreg_data, 1);
|
||||||
|
|
||||||
if (!user)
|
if (!data)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
user->client = g_isi_client_create(idx, PN_NETWORK);
|
data->client = g_isi_client_create(idx, PN_NETWORK);
|
||||||
if (!user->client) {
|
if (!data->client) {
|
||||||
g_free(user);
|
g_free(data);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
ofono_netreg_set_data(netreg, user);
|
ofono_netreg_set_data(netreg, data);
|
||||||
|
|
||||||
g_idle_add(isi_netreg_register, netreg);
|
g_idle_add(isi_netreg_register, netreg);
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ typedef void (*ofono_netreg_strength_cb_t)(const struct ofono_error *error,
|
||||||
*/
|
*/
|
||||||
struct ofono_netreg_driver {
|
struct ofono_netreg_driver {
|
||||||
const char *name;
|
const char *name;
|
||||||
int (*probe)(struct ofono_netreg *netreg);
|
int (*probe)(struct ofono_netreg *netreg, int vendor, void *data);
|
||||||
int (*remove)(struct ofono_netreg *netreg);
|
int (*remove)(struct ofono_netreg *netreg);
|
||||||
void (*registration_status)(struct ofono_netreg *netreg,
|
void (*registration_status)(struct ofono_netreg *netreg,
|
||||||
ofono_netreg_status_cb_t cb, void *data);
|
ofono_netreg_status_cb_t cb, void *data);
|
||||||
|
@ -96,7 +96,7 @@ void ofono_netreg_status_notify(struct ofono_netreg *netreg, int status,
|
||||||
int ofono_netreg_driver_register(const struct ofono_netreg_driver *d);
|
int ofono_netreg_driver_register(const struct ofono_netreg_driver *d);
|
||||||
void ofono_netreg_driver_unregister(const struct ofono_netreg_driver *d);
|
void ofono_netreg_driver_unregister(const struct ofono_netreg_driver *d);
|
||||||
|
|
||||||
struct ofono_netreg *ofono_netreg_create(struct ofono_modem *modem,
|
struct ofono_netreg *ofono_netreg_create(struct ofono_modem *modem, int vendor,
|
||||||
const char *driver, void *data);
|
const char *driver, void *data);
|
||||||
|
|
||||||
void ofono_netreg_register(struct ofono_netreg *netreg);
|
void ofono_netreg_register(struct ofono_netreg *netreg);
|
||||||
|
|
|
@ -514,7 +514,7 @@ static int generic_at_populate(struct ofono_modem *modem)
|
||||||
ofono_sim_create(modem, "generic_at", chat);
|
ofono_sim_create(modem, "generic_at", chat);
|
||||||
ofono_call_forwarding_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_call_settings_create(modem, 0, "generic_at", chat);
|
||||||
ofono_netreg_create(modem, "generic_at", chat);
|
ofono_netreg_create(modem, 0, "generic_at", chat);
|
||||||
ofono_voicecall_create(modem, "generic_at", chat);
|
ofono_voicecall_create(modem, "generic_at", chat);
|
||||||
ofono_call_meter_create(modem, 0, "generic_at", chat);
|
ofono_call_meter_create(modem, 0, "generic_at", chat);
|
||||||
ofono_call_barring_create(modem, 0, "generic_at", chat);
|
ofono_call_barring_create(modem, 0, "generic_at", chat);
|
||||||
|
|
|
@ -1399,6 +1399,7 @@ static void netreg_remove(struct ofono_atom *atom)
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ofono_netreg *ofono_netreg_create(struct ofono_modem *modem,
|
struct ofono_netreg *ofono_netreg_create(struct ofono_modem *modem,
|
||||||
|
int vendor,
|
||||||
const char *driver,
|
const char *driver,
|
||||||
void *data)
|
void *data)
|
||||||
{
|
{
|
||||||
|
@ -1419,8 +1420,6 @@ struct ofono_netreg *ofono_netreg_create(struct ofono_modem *modem,
|
||||||
netreg->technology = -1;
|
netreg->technology = -1;
|
||||||
netreg->signal_strength = -1;
|
netreg->signal_strength = -1;
|
||||||
|
|
||||||
DBG("%p, %p", netreg, netreg->current_operator);
|
|
||||||
netreg->driver_data = data;
|
|
||||||
netreg->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_NETREG,
|
netreg->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_NETREG,
|
||||||
netreg_remove, netreg);
|
netreg_remove, netreg);
|
||||||
|
|
||||||
|
@ -1430,7 +1429,7 @@ struct ofono_netreg *ofono_netreg_create(struct ofono_modem *modem,
|
||||||
if (g_strcmp0(drv->name, driver))
|
if (g_strcmp0(drv->name, driver))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (drv->probe(netreg) < 0)
|
if (drv->probe(netreg, vendor, data) < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
netreg->driver = drv;
|
netreg->driver = drv;
|
||||||
|
|
Loading…
Reference in New Issue