* @brief Event types that can be passed to the simple event callback.
*/
enum {
- GPIOD_EVENT_CB_TIMEOUT,
+ GPIOD_SIMPLE_EVENT_CB_TIMEOUT,
/**< Waiting for events timed out. */
- GPIOD_EVENT_CB_RISING_EDGE,
+ GPIOD_SIMPLE_EVENT_CB_RISING_EDGE,
/**< Rising edge event occured. */
- GPIOD_EVENT_CB_FALLING_EDGE,
+ GPIOD_SIMPLE_EVENT_CB_FALLING_EDGE,
/**< Falling edge event occured. */
};
* @brief Return status values that the simple event callback can return.
*/
enum {
- GPIOD_EVENT_CB_OK = 0,
+ GPIOD_SIMPLE_EVENT_CB_RET_OK = 0,
/**< Continue processing events. */
- GPIOD_EVENT_CB_STOP,
+ GPIOD_SIMPLE_EVENT_CB_RET_STOP,
/**< Stop processing events. */
};
* @brief Return status values that the simple event poll callback can return.
*/
enum {
- GPIOD_EVENT_POLL_ERR = -1,
+ GPIOD_SIMPLE_EVENT_POLL_RET_ERR = -1,
/**< Polling error occurred (the polling function should set errno). */
- GPIOD_EVENT_POLL_TIMEOUT = 0,
+ GPIOD_SIMPLE_EVENT_POLL_RET_TIMEOUT = 0,
/**< Poll timed out. */
- GPIOD_EVENT_POLL_EVENT = 1,
+ GPIOD_SIMPLE_EVENT_POLL_RET_EVENT = 1,
/**< Line event occurred. */
- GPIOD_EVENT_POLL_STOP = 2,
+ GPIOD_SIMPLE_EVENT_POLL_RET_STOP = 2,
/**< The event loop should stop processing events. */
};
status = ppoll(poll_fds, num_lines, timeout, NULL);
if (status < 0) {
if (errno == EINTR)
- return GPIOD_EVENT_POLL_TIMEOUT;
+ return GPIOD_SIMPLE_EVENT_POLL_RET_TIMEOUT;
else
- return GPIOD_EVENT_POLL_ERR;
+ return GPIOD_SIMPLE_EVENT_POLL_RET_ERR;
} else if (status == 0) {
- return GPIOD_EVENT_POLL_TIMEOUT;
+ return GPIOD_SIMPLE_EVENT_POLL_RET_TIMEOUT;
}
for (i = 0; !poll_fds[i].revents; i++);
*event_offset = i;
- return GPIOD_EVENT_POLL_EVENT;
+ return GPIOD_SIMPLE_EVENT_POLL_RET_EVENT;
}
int gpiod_simple_event_loop(const char *consumer, const char *device,
ret = poll_cb(num_lines, fds, &event_offset, timeout, data);
if (ret < 0) {
goto out;
- } else if (ret == GPIOD_EVENT_POLL_TIMEOUT) {
- evtype = GPIOD_EVENT_CB_TIMEOUT;
+ } else if (ret == GPIOD_SIMPLE_EVENT_POLL_RET_TIMEOUT) {
+ evtype = GPIOD_SIMPLE_EVENT_CB_TIMEOUT;
line_offset = 0;
- } else if (ret == GPIOD_EVENT_POLL_STOP) {
+ } else if (ret == GPIOD_SIMPLE_EVENT_POLL_RET_STOP) {
ret = 0;
goto out;
} else {
goto out;
evtype = event.event_type == GPIOD_EVENT_RISING_EDGE
- ? GPIOD_EVENT_CB_RISING_EDGE
- : GPIOD_EVENT_CB_FALLING_EDGE;
+ ? GPIOD_SIMPLE_EVENT_CB_RISING_EDGE
+ : GPIOD_SIMPLE_EVENT_CB_FALLING_EDGE;
line_offset = offsets[event_offset];
}
ret = event_cb(evtype, line_offset, &event.ts, data);
- if (ret == GPIOD_EVENT_CB_STOP) {
+ if (ret == GPIOD_SIMPLE_EVENT_CB_RET_STOP) {
ret = 0;
goto out;
}
printf("%u", offset);
break;
case 'e':
- if (event_type == GPIOD_EVENT_CB_RISING_EDGE)
+ if (event_type == GPIOD_SIMPLE_EVENT_CB_RISING_EDGE)
fputc('1', stdout);
else
fputc('0', stdout);
{
char *evname;
- if (event_type == GPIOD_EVENT_CB_RISING_EDGE)
+ if (event_type == GPIOD_SIMPLE_EVENT_CB_RISING_EDGE)
evname = " RISING EDGE";
else
evname = "FALLING EDGE";
ret = poll(pfds, num_lines + 1, ts);
if (ret < 0)
- return GPIOD_EVENT_POLL_ERR;
+ return GPIOD_SIMPLE_EVENT_POLL_RET_ERR;
else if (ret == 0)
- return GPIOD_EVENT_POLL_TIMEOUT;
+ return GPIOD_SIMPLE_EVENT_POLL_RET_TIMEOUT;
for (i = 0; i < num_lines; i++) {
if (pfds[i].revents) {
*event_offset = i;
- return GPIOD_EVENT_POLL_EVENT;
+ return GPIOD_SIMPLE_EVENT_POLL_RET_EVENT;
}
}
*/
close(ctx->sigfd);
- return GPIOD_EVENT_POLL_STOP;
+ return GPIOD_SIMPLE_EVENT_POLL_RET_STOP;
}
static int event_callback(int event_type, unsigned int line_offset,
struct mon_ctx *ctx = data;
if (!ctx->silent) {
- if ((event_type == GPIOD_EVENT_CB_RISING_EDGE
+ if ((event_type == GPIOD_SIMPLE_EVENT_CB_RISING_EDGE
&& ctx->watch_rising)
- || (event_type == GPIOD_EVENT_CB_FALLING_EDGE
+ || (event_type == GPIOD_SIMPLE_EVENT_CB_FALLING_EDGE
&& ctx->watch_falling)) {
if (ctx->fmt)
event_print_custom(line_offset, timestamp,
ctx->events_done++;
if (ctx->events_wanted && ctx->events_done >= ctx->events_wanted)
- return GPIOD_EVENT_CB_STOP;
+ return GPIOD_SIMPLE_EVENT_CB_RET_STOP;
- return GPIOD_EVENT_CB_OK;
+ return GPIOD_SIMPLE_EVENT_CB_RET_OK;
}
static int make_signalfd(void)
{
struct simple_event_data *evdata = data;
- if (evtype == GPIOD_EVENT_CB_RISING_EDGE)
+ if (evtype == GPIOD_SIMPLE_EVENT_CB_RISING_EDGE)
evdata->got_rising_edge = true;
- else if (evtype == GPIOD_EVENT_CB_FALLING_EDGE)
+ else if (evtype == GPIOD_SIMPLE_EVENT_CB_FALLING_EDGE)
evdata->got_falling_edge = true;
evdata->offset = offset;
- return ++evdata->count == 2 ? GPIOD_EVENT_CB_STOP : GPIOD_EVENT_CB_OK;
+ return ++evdata->count == 2 ? GPIOD_SIMPLE_EVENT_CB_RET_STOP
+ : GPIOD_SIMPLE_EVENT_CB_RET_OK;
}
static void simple_event_loop(void)