From 48ead58e7794505508bf7f9e94b59f959195fe72 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Tue, 14 Mar 2017 00:46:47 +0300 Subject: [PATCH] cmake: Export missing symbols for win32 --- evthread-internal.h | 9 +++++++++ iocp-internal.h | 13 +++++++++++++ util-internal.h | 1 + 3 files changed, 23 insertions(+) diff --git a/evthread-internal.h b/evthread-internal.h index bd573296..5fdf3161 100644 --- a/evthread-internal.h +++ b/evthread-internal.h @@ -185,14 +185,23 @@ EVLOCK_TRY_LOCK_(void *lock) #elif ! defined(EVENT__DISABLE_THREAD_SUPPORT) unsigned long evthreadimpl_get_id_(void); +EVENT2_EXPORT_SYMBOL int evthreadimpl_is_lock_debugging_enabled_(void); +EVENT2_EXPORT_SYMBOL void *evthreadimpl_lock_alloc_(unsigned locktype); +EVENT2_EXPORT_SYMBOL void evthreadimpl_lock_free_(void *lock, unsigned locktype); +EVENT2_EXPORT_SYMBOL int evthreadimpl_lock_lock_(unsigned mode, void *lock); +EVENT2_EXPORT_SYMBOL int evthreadimpl_lock_unlock_(unsigned mode, void *lock); +EVENT2_EXPORT_SYMBOL void *evthreadimpl_cond_alloc_(unsigned condtype); +EVENT2_EXPORT_SYMBOL void evthreadimpl_cond_free_(void *cond); +EVENT2_EXPORT_SYMBOL int evthreadimpl_cond_signal_(void *cond, int broadcast); +EVENT2_EXPORT_SYMBOL int evthreadimpl_cond_wait_(void *cond, void *lock, const struct timeval *tv); int evthreadimpl_locking_enabled_(void); diff --git a/iocp-internal.h b/iocp-internal.h index 089754d6..21e0e0af 100644 --- a/iocp-internal.h +++ b/iocp-internal.h @@ -92,6 +92,7 @@ struct event_iocp_port { HANDLE *shutdownSemaphore; }; +EVENT2_EXPORT_SYMBOL const struct win32_extension_fns *event_get_win32_extension_fns_(void); #else /* Dummy definition so we can test-compile more things on unix. */ @@ -106,12 +107,14 @@ struct event_overlapped { @param cb The callback that should be invoked once the IO operation has finished. */ +EVENT2_EXPORT_SYMBOL void event_overlapped_init_(struct event_overlapped *, iocp_callback cb); /** Allocate and return a new evbuffer that supports overlapped IO on a given socket. The socket must be associated with an IO completion port using event_iocp_port_associate_. */ +EVENT2_EXPORT_SYMBOL struct evbuffer *evbuffer_overlapped_new_(evutil_socket_t fd); /** XXXX Document (nickm) */ @@ -131,6 +134,7 @@ void evbuffer_overlapped_set_fd_(struct evbuffer *buf, evutil_socket_t fd); @param ol Overlapped object with associated completion callback. @return 0 on success, -1 on error. */ +EVENT2_EXPORT_SYMBOL int evbuffer_launch_read_(struct evbuffer *buf, size_t n, struct event_overlapped *ol); /** Start writing data from the start of an evbuffer. @@ -145,21 +149,26 @@ int evbuffer_launch_read_(struct evbuffer *buf, size_t n, struct event_overlappe @param ol Overlapped object with associated completion callback. @return 0 on success, -1 on error. */ +EVENT2_EXPORT_SYMBOL int evbuffer_launch_write_(struct evbuffer *buf, ev_ssize_t n, struct event_overlapped *ol); /** XXX document */ +EVENT2_EXPORT_SYMBOL void evbuffer_commit_read_(struct evbuffer *, ev_ssize_t); +EVENT2_EXPORT_SYMBOL void evbuffer_commit_write_(struct evbuffer *, ev_ssize_t); /** Create an IOCP, and launch its worker threads. Internal use only. This interface is unstable, and will change. */ +EVENT2_EXPORT_SYMBOL struct event_iocp_port *event_iocp_port_launch_(int n_cpus); /** Associate a file descriptor with an iocp, such that overlapped IO on the fd will happen on one of the iocp's worker threads. */ +EVENT2_EXPORT_SYMBOL int event_iocp_port_associate_(struct event_iocp_port *port, evutil_socket_t fd, ev_uintptr_t key); @@ -169,15 +178,18 @@ int event_iocp_port_associate_(struct event_iocp_port *port, evutil_socket_t fd, 0. Otherwise, return -1. If you get a -1 return value, it is safe to call this function again. */ +EVENT2_EXPORT_SYMBOL int event_iocp_shutdown_(struct event_iocp_port *port, long waitMsec); /* FIXME document. */ +EVENT2_EXPORT_SYMBOL int event_iocp_activate_overlapped_(struct event_iocp_port *port, struct event_overlapped *o, ev_uintptr_t key, ev_uint32_t n_bytes); struct event_base; /* FIXME document. */ +EVENT2_EXPORT_SYMBOL struct event_iocp_port *event_base_get_iocp_(struct event_base *base); /* FIXME document. */ @@ -186,6 +198,7 @@ int event_base_start_iocp_(struct event_base *base, int n_cpus); void event_base_stop_iocp_(struct event_base *base); /* FIXME document. */ +EVENT2_EXPORT_SYMBOL struct bufferevent *bufferevent_async_new_(struct event_base *base, evutil_socket_t fd, int options); diff --git a/util-internal.h b/util-internal.h index 7ae42fa0..507dceb7 100644 --- a/util-internal.h +++ b/util-internal.h @@ -437,6 +437,7 @@ void evutil_free_secure_rng_globals_(void); void evutil_free_globals_(void); #ifdef _WIN32 +EVENT2_EXPORT_SYMBOL HMODULE evutil_load_windows_system_library_(const TCHAR *library_name); #endif -- 2.40.0