In addition, add header guards as the API can be used from more than one plugin. --- plugins/n900.c | 12 +++--- plugins/nokia-gpio.c | 106 ++++++++++++++++++++++---------------------------- plugins/nokia-gpio.h | 37 +++++++++++++++-- 3 files changed, 85 insertions(+), 70 deletions(-)
diff --git a/plugins/n900.c b/plugins/n900.c index 44e2e75..420fd0c 100644 --- a/plugins/n900.c +++ b/plugins/n900.c @@ -308,7 +308,7 @@ static void n900_power_cb(enum power_state state, void *data) struct ofono_modem *modem = data; struct isi_data *isi = ofono_modem_get_data(modem); - DBG("power state %s", gpio_power_state_name(state)); + DBG("power state %s", nokia_gpio_power_state_name(state)); isi->power_state = state; @@ -358,7 +358,7 @@ static int n900_probe(struct ofono_modem *modem) if (getenv("OFONO_ISI_TRACE")) g_isi_modem_set_trace(isimodem, isi_trace); - if (gpio_probe(isimodem, address, n900_power_cb, modem) != 0) { + if (nokia_gpio_probe(isimodem, address, n900_power_cb, modem) != 0) { DBG("gpio for %s: %s", ifname, strerror(errno)); goto error; } @@ -382,7 +382,7 @@ static int n900_probe(struct ofono_modem *modem) error: g_isi_modem_destroy(isimodem); - gpio_remove(modem); + nokia_gpio_remove(modem); g_free(isi); return -errno; @@ -397,7 +397,7 @@ static void n900_remove(struct ofono_modem *modem) if (!isi) return; - gpio_remove(modem); + nokia_gpio_remove(modem); if (isi->timeout) g_source_remove(isi->timeout); @@ -523,7 +523,7 @@ static int n900_enable(struct ofono_modem *modem) isi->enabled = TRUE; - return gpio_enable(modem); + return nokia_gpio_enable(modem); } static int n900_disable(struct ofono_modem *modem) @@ -534,7 +534,7 @@ static int n900_disable(struct ofono_modem *modem) isi->enabled = FALSE; - return gpio_disable(modem); + return nokia_gpio_disable(modem); } static struct ofono_modem_driver n900_driver = { diff --git a/plugins/nokia-gpio.c b/plugins/nokia-gpio.c index 57aad8d..d9e05f3 100644 --- a/plugins/nokia-gpio.c +++ b/plugins/nokia-gpio.c @@ -60,18 +60,6 @@ enum phonet_link { PHONET_LINK_UP, }; -enum power_event { - POWER_EVENT_PHONET_LINK_UP = 1, - POWER_EVENT_PHONET_LINK_DOWN, - POWER_EVENT_ON, - POWER_EVENT_ON_TIMEOUT, - POWER_EVENT_REBOOT_TIMEOUT, - POWER_EVENT_OFF, - POWER_EVENT_OFF_IMMEDIATELY, - POWER_EVENT_OFF_TIMEOUT, - POWER_EVENT_OFF_COMPLETE, -}; - struct gpio_data { GIsiPhonetNetlink *link; gpio_finished_cb_t callback; @@ -98,41 +86,6 @@ struct gpio_data { static struct gpio_data self; -#define _(X) case X: return #X - -static inline char const *gpio_power_event_name(enum power_event value) -{ - switch (value) { - _(POWER_EVENT_PHONET_LINK_UP); - _(POWER_EVENT_PHONET_LINK_DOWN); - _(POWER_EVENT_ON); - _(POWER_EVENT_ON_TIMEOUT); - _(POWER_EVENT_REBOOT_TIMEOUT); - _(POWER_EVENT_OFF); - _(POWER_EVENT_OFF_IMMEDIATELY); - _(POWER_EVENT_OFF_TIMEOUT); - _(POWER_EVENT_OFF_COMPLETE); - } - return "<UNKNOWN>"; -} - -char const *gpio_power_state_name(enum power_state value) -{ - switch (value) { - _(POWER_STATE_NONE); - _(POWER_STATE_ON_STARTED); - _(POWER_STATE_ON); - _(POWER_STATE_ON_RESET); - _(POWER_STATE_ON_FAILED); - _(POWER_STATE_OFF_STARTED); - _(POWER_STATE_OFF_WAITING); - _(POWER_STATE_OFF); - } - return "<UNKNOWN>"; -} - -#undef _ - static void gpio_power_state_machine(enum power_event event); static void gpio_power_set_state(enum power_state new_state); @@ -324,14 +277,13 @@ static gboolean gpio_power_timer_cb(gpointer user) return FALSE; } - static void gpio_power_state_machine(enum power_event event) { enum power_state new_state; DBG("(%s) @ state %s", - gpio_power_event_name(event), - gpio_power_state_name(self.state)); + nokia_gpio_power_event_name(event), + nokia_gpio_power_state_name(self.state)); switch (event) { case POWER_EVENT_ON: @@ -491,10 +443,10 @@ static void gpio_power_state_machine(enum power_event event) return; } - DBG("Event %s (%d) not handled", gpio_power_event_name(event), event); + DBG("Event %s (%d) not handled", nokia_gpio_power_event_name(event), + event); } - static void gpio_power_set_state(enum power_state new_state) { enum power_state old_state = self.state; @@ -502,8 +454,8 @@ static void gpio_power_set_state(enum power_state new_state) enum power_event timer_event; DBG("(%s) at (%s)%s", - gpio_power_state_name(new_state), - gpio_power_state_name(old_state), + nokia_gpio_power_state_name(new_state), + nokia_gpio_power_state_name(old_state), new_state == old_state ? " - already" : ""); switch (old_state) { @@ -707,8 +659,8 @@ static int gpio_probe_links(void) return -(errno = ENODEV); } - -int gpio_probe(GIsiModem *idx, unsigned addr, gpio_finished_cb_t cb, void *data) +int nokia_gpio_probe(GIsiModem *idx, unsigned addr, gpio_finished_cb_t cb, + void *data) { int error; @@ -774,7 +726,7 @@ int gpio_probe(GIsiModem *idx, unsigned addr, gpio_finished_cb_t cb, void *data) return 0; } -int gpio_remove(void *data) +int nokia_gpio_remove(void *data) { if (self.data != data) return -EINVAL; @@ -792,7 +744,7 @@ int gpio_remove(void *data) return 0; } -int gpio_enable(void *data) +int nokia_gpio_enable(void *data) { if (self.data != data) return -EINVAL; @@ -805,7 +757,7 @@ int gpio_enable(void *data) return -EINPROGRESS; } -int gpio_disable(void *data) +int nokia_gpio_disable(void *data) { if (self.data != data) return -EINVAL; @@ -818,3 +770,39 @@ int gpio_disable(void *data) return -EINPROGRESS; } + + +#define _(X) case X: return #X + +const char *nokia_gpio_power_event_name(enum power_event value) +{ + switch (value) { + _(POWER_EVENT_PHONET_LINK_UP); + _(POWER_EVENT_PHONET_LINK_DOWN); + _(POWER_EVENT_ON); + _(POWER_EVENT_ON_TIMEOUT); + _(POWER_EVENT_REBOOT_TIMEOUT); + _(POWER_EVENT_OFF); + _(POWER_EVENT_OFF_IMMEDIATELY); + _(POWER_EVENT_OFF_TIMEOUT); + _(POWER_EVENT_OFF_COMPLETE); + } + return "<UNKNOWN>"; +} + +const char *nokia_gpio_power_state_name(enum power_state value) +{ + switch (value) { + _(POWER_STATE_NONE); + _(POWER_STATE_ON_STARTED); + _(POWER_STATE_ON); + _(POWER_STATE_ON_RESET); + _(POWER_STATE_ON_FAILED); + _(POWER_STATE_OFF_STARTED); + _(POWER_STATE_OFF_WAITING); + _(POWER_STATE_OFF); + } + return "<UNKNOWN>"; +} + +#undef _ diff --git a/plugins/nokia-gpio.h b/plugins/nokia-gpio.h index b653bb8..991c10a 100644 --- a/plugins/nokia-gpio.h +++ b/plugins/nokia-gpio.h @@ -19,6 +19,13 @@ * */ +#ifndef __NOKIA_GPIO_H +#define __NOKIA_GPIO_H + +#ifdef __cplusplus +extern "C" { +#endif + enum power_state { POWER_STATE_NONE, POWER_STATE_ON_STARTED, @@ -30,11 +37,31 @@ enum power_state { POWER_STATE_OFF, }; +enum power_event { + POWER_EVENT_PHONET_LINK_UP = 1, + POWER_EVENT_PHONET_LINK_DOWN, + POWER_EVENT_ON, + POWER_EVENT_ON_TIMEOUT, + POWER_EVENT_REBOOT_TIMEOUT, + POWER_EVENT_OFF, + POWER_EVENT_OFF_IMMEDIATELY, + POWER_EVENT_OFF_TIMEOUT, + POWER_EVENT_OFF_COMPLETE, +}; + typedef void (*gpio_finished_cb_t)(enum power_state value, void *opaque); -int gpio_probe(GIsiModem *idx, unsigned addr, gpio_finished_cb_t cb, void *data); -int gpio_enable(void *opaque); -int gpio_disable(void *opaque); -int gpio_remove(void *opaque); +int nokia_gpio_probe(GIsiModem *idx, unsigned addr, gpio_finished_cb_t cb, + void *data); +int nokia_gpio_enable(void *opaque); +int nokia_gpio_disable(void *opaque); +int nokia_gpio_remove(void *opaque); + +const char *nokia_gpio_power_event_name(enum power_event value); +const char *nokia_gpio_power_state_name(enum power_state value); + +#ifdef __cplusplus +}; +#endif -char const *gpio_power_state_name(enum power_state value); +#endif /* !__NOKIA_GPIO_H */ -- 1.7.5.4 _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono