57 lines
1.8 KiB
Diff
57 lines
1.8 KiB
Diff
From 9b364545435d2b65fcf73519b3064bb7c28093b7 Mon Sep 17 00:00:00 2001
|
|
From: Tom Gundersen <teg@jklm.no>
|
|
Date: Fri, 15 Aug 2014 21:04:07 +0200
|
|
Subject: [PATCH] sd-event: add API to access epoll_fd
|
|
|
|
This is a prerequisite for integrating sd-event into an external
|
|
event loop.
|
|
---
|
|
src/libsystemd/libsystemd.sym.m4 | 1 +
|
|
src/libsystemd/sd-event/sd-event.c | 8 ++++++++
|
|
src/systemd/sd-event.h | 1 +
|
|
3 files changed, 10 insertions(+)
|
|
|
|
diff --git a/src/libsystemd/libsystemd.sym.m4 b/src/libsystemd/libsystemd.sym.m4
|
|
index 415d89afbe..3fc9983f98 100644
|
|
--- a/src/libsystemd/libsystemd.sym.m4
|
|
+++ b/src/libsystemd/libsystemd.sym.m4
|
|
@@ -374,6 +374,7 @@ global:
|
|
sd_event_loop;
|
|
sd_event_exit;
|
|
sd_event_now;
|
|
+ sd_event_get_fd;
|
|
sd_event_get_state;
|
|
sd_event_get_tid;
|
|
sd_event_get_exit_code;
|
|
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
|
|
index 7917ab934a..e062997a80 100644
|
|
--- a/src/libsystemd/sd-event/sd-event.c
|
|
+++ b/src/libsystemd/sd-event/sd-event.c
|
|
@@ -2361,6 +2361,14 @@ finish:
|
|
return r;
|
|
}
|
|
|
|
+_public_ int sd_event_get_fd(sd_event *e) {
|
|
+
|
|
+ assert_return(e, -EINVAL);
|
|
+ assert_return(!event_pid_changed(e), -ECHILD);
|
|
+
|
|
+ return e->epoll_fd;
|
|
+}
|
|
+
|
|
_public_ int sd_event_get_state(sd_event *e) {
|
|
assert_return(e, -EINVAL);
|
|
assert_return(!event_pid_changed(e), -ECHILD);
|
|
diff --git a/src/systemd/sd-event.h b/src/systemd/sd-event.h
|
|
index 5d9b3be6c7..d96852a763 100644
|
|
--- a/src/systemd/sd-event.h
|
|
+++ b/src/systemd/sd-event.h
|
|
@@ -90,6 +90,7 @@ int sd_event_exit(sd_event *e, int code);
|
|
|
|
int sd_event_now(sd_event *e, clockid_t clock, uint64_t *usec);
|
|
|
|
+int sd_event_get_fd(sd_event *e);
|
|
int sd_event_get_state(sd_event *e);
|
|
int sd_event_get_tid(sd_event *e, pid_t *tid);
|
|
int sd_event_get_exit_code(sd_event *e, int *code);
|