summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/tevent/tevent.exports1
-rw-r--r--lib/tevent/tevent.h64
-rw-r--r--lib/tevent/tevent.mk1
-rw-r--r--lib/tevent/tevent.signatures3
-rw-r--r--lib/tevent/tevent_internal.h50
5 files changed, 67 insertions, 52 deletions
diff --git a/lib/tevent/tevent.exports b/lib/tevent/tevent.exports
index 7d55c17e5d..b1554dff4e 100644
--- a/lib/tevent/tevent.exports
+++ b/lib/tevent/tevent.exports
@@ -21,6 +21,7 @@
tevent_queue_length;
tevent_queue_start;
tevent_queue_stop;
+ tevent_register_backend;
_tevent_req_callback_data;
_tevent_req_create;
_tevent_req_data;
diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h
index 2cbd175e73..56ae0ee082 100644
--- a/lib/tevent/tevent.h
+++ b/lib/tevent/tevent.h
@@ -358,6 +358,70 @@ int _tevent_loop_until(struct tevent_context *ev,
_tevent_loop_until(ev, finished, private_data, __location__)
#endif
+
+/**
+ * The following structure and registration functions are exclusively
+ * needed for people writing and pluggin a different event engine.
+ * There is nothing useful for normal tevent user in here.
+ */
+
+struct tevent_ops {
+ /* context init */
+ int (*context_init)(struct tevent_context *ev);
+
+ /* fd_event functions */
+ struct tevent_fd *(*add_fd)(struct tevent_context *ev,
+ TALLOC_CTX *mem_ctx,
+ int fd, uint16_t flags,
+ tevent_fd_handler_t handler,
+ void *private_data,
+ const char *handler_name,
+ const char *location);
+ void (*set_fd_close_fn)(struct tevent_fd *fde,
+ tevent_fd_close_fn_t close_fn);
+ uint16_t (*get_fd_flags)(struct tevent_fd *fde);
+ void (*set_fd_flags)(struct tevent_fd *fde, uint16_t flags);
+
+ /* timed_event functions */
+ struct tevent_timer *(*add_timer)(struct tevent_context *ev,
+ TALLOC_CTX *mem_ctx,
+ struct timeval next_event,
+ tevent_timer_handler_t handler,
+ void *private_data,
+ const char *handler_name,
+ const char *location);
+
+ /* immediate event functions */
+ void (*schedule_immediate)(struct tevent_immediate *im,
+ struct tevent_context *ev,
+ tevent_immediate_handler_t handler,
+ void *private_data,
+ const char *handler_name,
+ const char *location);
+
+ /* signal functions */
+ struct tevent_signal *(*add_signal)(struct tevent_context *ev,
+ TALLOC_CTX *mem_ctx,
+ int signum, int sa_flags,
+ tevent_signal_handler_t handler,
+ void *private_data,
+ const char *handler_name,
+ const char *location);
+
+ /* loop functions */
+ int (*loop_once)(struct tevent_context *ev, const char *location);
+ int (*loop_wait)(struct tevent_context *ev, const char *location);
+};
+
+bool tevent_register_backend(const char *name, const struct tevent_ops *ops);
+
+
+/**
+ * The following definitions are usueful only for compatibility with the
+ * implementation originally developed within the samba4 code and will be
+ * soon removed. Please NEVER use in new code.
+ */
+
#ifdef TEVENT_COMPAT_DEFINES
#define event_context tevent_context
diff --git a/lib/tevent/tevent.mk b/lib/tevent/tevent.mk
index 82cc4a0860..480366e938 100644
--- a/lib/tevent/tevent.mk
+++ b/lib/tevent/tevent.mk
@@ -22,7 +22,6 @@ installdirs::
installheaders:: installdirs
cp $(srcdir)/tevent.h $(DESTDIR)$(includedir)
- cp $(srcdir)/tevent_internal.h $(DESTDIR)$(includedir)
installlibs:: installdirs
cp tevent.pc $(DESTDIR)$(libdir)/pkgconfig
diff --git a/lib/tevent/tevent.signatures b/lib/tevent/tevent.signatures
index fab5f64559..190522f8ec 100644
--- a/lib/tevent/tevent.signatures
+++ b/lib/tevent/tevent.signatures
@@ -7,7 +7,7 @@ uint16_t tevent_fd_get_flags (struct tevent_fd *);
void tevent_fd_set_flags (struct tevent_fd *, uint16_t);
_Bool tevent_signal_support (struct tevent_context *);
void tevent_set_abort_fn (void (*) (const char *));
-int tevent_set_debug (struct tevent_context *, void (*) (void *, enum tevent_debug_level, const char *, __va_list_tag *), void *);
+int tevent_set_debug (struct tevent_context *, void (*) (void *, enum tevent_debug_level, const char *, va_list), void *);
int tevent_set_debug_stderr (struct tevent_context *);
void tevent_req_set_callback (struct tevent_req *, tevent_req_fn, void *);
void *_tevent_req_callback_data (struct tevent_req *);
@@ -44,6 +44,7 @@ size_t tevent_queue_length (struct tevent_queue *);
void tevent_loop_allow_nesting (struct tevent_context *);
void tevent_loop_set_nesting_hook (struct tevent_context *, tevent_nesting_hook, void *);
int _tevent_loop_until (struct tevent_context *, _Bool (*) (void *), void *, const char *);
+_Bool tevent_register_backend (const char *, const struct tevent_ops *);
struct tevent_context *tevent_context_init (TALLOC_CTX *);
struct tevent_context *tevent_context_init_byname (TALLOC_CTX *, const char *);
const char **tevent_backend_list (TALLOC_CTX *);
diff --git a/lib/tevent/tevent_internal.h b/lib/tevent/tevent_internal.h
index 36abfa4482..e260524208 100644
--- a/lib/tevent/tevent_internal.h
+++ b/lib/tevent/tevent_internal.h
@@ -130,54 +130,6 @@ struct tevent_req {
} internal;
};
-struct tevent_ops {
- /* conntext init */
- int (*context_init)(struct tevent_context *ev);
-
- /* fd_event functions */
- struct tevent_fd *(*add_fd)(struct tevent_context *ev,
- TALLOC_CTX *mem_ctx,
- int fd, uint16_t flags,
- tevent_fd_handler_t handler,
- void *private_data,
- const char *handler_name,
- const char *location);
- void (*set_fd_close_fn)(struct tevent_fd *fde,
- tevent_fd_close_fn_t close_fn);
- uint16_t (*get_fd_flags)(struct tevent_fd *fde);
- void (*set_fd_flags)(struct tevent_fd *fde, uint16_t flags);
-
- /* timed_event functions */
- struct tevent_timer *(*add_timer)(struct tevent_context *ev,
- TALLOC_CTX *mem_ctx,
- struct timeval next_event,
- tevent_timer_handler_t handler,
- void *private_data,
- const char *handler_name,
- const char *location);
-
- /* immediate event functions */
- void (*schedule_immediate)(struct tevent_immediate *im,
- struct tevent_context *ev,
- tevent_immediate_handler_t handler,
- void *private_data,
- const char *handler_name,
- const char *location);
-
- /* signal functions */
- struct tevent_signal *(*add_signal)(struct tevent_context *ev,
- TALLOC_CTX *mem_ctx,
- int signum, int sa_flags,
- tevent_signal_handler_t handler,
- void *private_data,
- const char *handler_name,
- const char *location);
-
- /* loop functions */
- int (*loop_once)(struct tevent_context *ev, const char *location);
- int (*loop_wait)(struct tevent_context *ev, const char *location);
-};
-
struct tevent_fd {
struct tevent_fd *prev, *next;
struct tevent_context *event_ctx;
@@ -283,8 +235,6 @@ struct tevent_context {
};
-bool tevent_register_backend(const char *name, const struct tevent_ops *ops);
-
int tevent_common_context_destructor(struct tevent_context *ev);
int tevent_common_loop_wait(struct tevent_context *ev,
const char *location);