diff --git a/src/modem.c b/src/modem.c index 412dfb96..9128f0d4 100644 --- a/src/modem.c +++ b/src/modem.c @@ -1550,3 +1550,14 @@ void __ofono_modem_shutdown() if (modems_remaining == 0) __ofono_exit(); } + +void __ofono_modem_foreach(ofono_modem_foreach_func func, void *userdata) +{ + struct ofono_modem *modem; + GSList *l; + + for (l = g_modem_list; l; l = l->next) { + modem = l->data; + func(modem, userdata); + } +} diff --git a/src/ofono.h b/src/ofono.h index 51084249..f1c09739 100644 --- a/src/ofono.h +++ b/src/ofono.h @@ -89,6 +89,9 @@ void __ofono_plugin_cleanup(void); #include +typedef void (*ofono_modem_foreach_func)(struct ofono_modem *modem, void *data); +void __ofono_modem_foreach(ofono_modem_foreach_func cb, void *userdata); + unsigned int __ofono_modem_callid_next(struct ofono_modem *modem); void __ofono_modem_callid_hold(struct ofono_modem *modem, int id); void __ofono_modem_callid_release(struct ofono_modem *modem, int id);