summaryrefslogtreecommitdiff
path: root/source4/lib/events/events_internal.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2007-01-21 08:23:14 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:43:54 -0500
commit336ae458e9f648625f8fe438bf1dc4c8f7e616a7 (patch)
treedd7ead16ed385381a13046a85f2ff2a431465480 /source4/lib/events/events_internal.h
parent7fba2dbf9a7b387fb5a975b528d880da55da1560 (diff)
downloadsamba-336ae458e9f648625f8fe438bf1dc4c8f7e616a7.tar.gz
samba-336ae458e9f648625f8fe438bf1dc4c8f7e616a7.tar.bz2
samba-336ae458e9f648625f8fe438bf1dc4c8f7e616a7.zip
r20928: added signal events to lib/events
Jeremy asked for this to allow Samba3 to use the Samba4 events library see torture/local/event.c for an example (This used to be commit 7e105482ff9a3da6b4708ff99a64f1881614fc5f)
Diffstat (limited to 'source4/lib/events/events_internal.h')
-rw-r--r--source4/lib/events/events_internal.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/source4/lib/events/events_internal.h b/source4/lib/events/events_internal.h
index dc321769e0..0b8de12a35 100644
--- a/source4/lib/events/events_internal.h
+++ b/source4/lib/events/events_internal.h
@@ -47,6 +47,12 @@ struct event_ops {
struct iocb *iocb,
event_aio_handler_t handler,
void *private_data);
+ /* signal functions */
+ struct signal_event *(*add_signal)(struct event_context *ev,
+ TALLOC_CTX *mem_ctx,
+ int signum,
+ event_signal_handler_t handler,
+ void *private_data);
/* loop functions */
int (*loop_once)(struct event_context *ev);
@@ -77,6 +83,14 @@ struct timed_event {
void *additional_data;
};
+struct signal_event {
+ struct signal_event *prev, *next;
+ struct event_context *event_ctx;
+ event_signal_handler_t handler;
+ void *private_data;
+ int signum;
+};
+
/* aio event is private to the aio backend */
struct aio_event;
@@ -89,6 +103,12 @@ struct event_context {
/* this is private for the events_ops implementation */
void *additional_data;
+
+ /* number of signal event handlers */
+ int num_signal_handlers;
+
+ /* pipe hack used with signal handlers */
+ struct fd_event *pipe_fde;
};
@@ -98,3 +118,11 @@ struct timed_event *common_event_add_timed(struct event_context *, TALLOC_CTX *,
struct timeval, event_timed_handler_t, void *);
void common_event_loop_timer(struct event_context *);
struct timeval common_event_loop_delay(struct event_context *);
+
+struct signal_event *common_event_add_signal(struct event_context *ev,
+ TALLOC_CTX *mem_ctx,
+ int signum,
+ event_signal_handler_t handler,
+ void *private_data);
+int common_event_check_signal(struct event_context *ev);
+