event: allow to query userdata and watchdog state

This commit is contained in:
Lennart Poettering 2013-12-13 04:14:25 +01:00
parent f9f4dd51bd
commit 8f726607ec
3 changed files with 23 additions and 0 deletions

View File

@ -239,6 +239,7 @@ global:
sd_event_get_now_realtime;
sd_event_get_now_monotonic;
sd_event_set_watchdog;
sd_event_get_watchdog;
sd_event_source_ref;
sd_event_source_unref;
@ -250,6 +251,7 @@ global:
sd_event_source_get_enabled;
sd_event_source_set_enabled;
sd_event_source_get_userdata;
sd_event_source_set_userdata;
sd_event_source_get_io_fd;
sd_event_source_get_io_events;
sd_event_source_set_io_events;

View File

@ -1371,6 +1371,17 @@ _public_ void* sd_event_source_get_userdata(sd_event_source *s) {
return s->userdata;
}
_public_ void *sd_event_source_set_userdata(sd_event_source *s, void *userdata) {
void *ret;
assert_return(s, NULL);
ret = s->userdata;
s->userdata = userdata;
return ret;
}
static usec_t sleep_between(sd_event *e, usec_t a, usec_t b) {
usec_t c;
assert(e);
@ -2078,6 +2089,7 @@ _public_ int sd_event_set_watchdog(sd_event *e, int b) {
int r;
assert_return(e, -EINVAL);
assert_return(!event_pid_changed(e), -ECHILD);
if (e->watchdog == !!b)
return e->watchdog;
@ -2133,3 +2145,10 @@ fail:
e->watchdog_fd = -1;
return r;
}
_public_ int sd_event_get_watchdog(sd_event *e) {
assert_return(e, -EINVAL);
assert_return(!event_pid_changed(e), -ECHILD);
return e->watchdog;
}

View File

@ -94,6 +94,7 @@ int sd_event_get_exit_code(sd_event *e, int *code);
int sd_event_get_now_realtime(sd_event *e, uint64_t *usec);
int sd_event_get_now_monotonic(sd_event *e, uint64_t *usec);
int sd_event_set_watchdog(sd_event *e, int b);
int sd_event_get_watchdog(sd_event *e);
sd_event_source* sd_event_source_ref(sd_event_source *s);
sd_event_source* sd_event_source_unref(sd_event_source *s);
@ -105,6 +106,7 @@ int sd_event_source_set_priority(sd_event_source *s, int priority);
int sd_event_source_get_enabled(sd_event_source *s, int *enabled);
int sd_event_source_set_enabled(sd_event_source *s, int enabled);
void* sd_event_source_get_userdata(sd_event_source *s);
void* sd_event_source_set_userdata(sd_event_source *s, void *userdata);
int sd_event_source_get_io_fd(sd_event_source *s);
int sd_event_source_get_io_events(sd_event_source *s, uint32_t* events);
int sd_event_source_set_io_events(sd_event_source *s, uint32_t events);