From 590310e8a1a0fbb74c8dc836fd4898cc484f943e Mon Sep 17 00:00:00 2001 From: theropfather Date: Wed, 3 Oct 2018 20:17:58 +0100 Subject: [PATCH] Add libuv as a statically linked library. --- extern/CMakeProject-uwebsocket.cmake | 7 +- extern/libuv/libuv.a | Bin 0 -> 831512 bytes extern/libuv/uv.h | 1611 ++++++++++++++++++++++++++ extern/libuv/uv/aix.h | 32 + extern/libuv/uv/android-ifaddrs.h | 54 + extern/libuv/uv/bsd.h | 34 + extern/libuv/uv/darwin.h | 61 + extern/libuv/uv/errno.h | 443 +++++++ extern/libuv/uv/linux.h | 34 + extern/libuv/uv/os390.h | 33 + extern/libuv/uv/posix.h | 31 + extern/libuv/uv/pthread-barrier.h | 69 ++ extern/libuv/uv/stdint-msvc2008.h | 247 ++++ extern/libuv/uv/sunos.h | 44 + extern/libuv/uv/threadpool.h | 37 + extern/libuv/uv/tree.h | 768 ++++++++++++ extern/libuv/uv/unix.h | 473 ++++++++ extern/libuv/uv/version.h | 43 + extern/libuv/uv/win.h | 676 +++++++++++ extern/uWebSocket/include/Libuv.h | 4 + extern/uWebSocket/includelibs/uv.h | 4 + extern/uWebSocket/src/Libuv.h | 7 +- 22 files changed, 4707 insertions(+), 5 deletions(-) create mode 100644 extern/libuv/libuv.a create mode 100755 extern/libuv/uv.h create mode 100755 extern/libuv/uv/aix.h create mode 100755 extern/libuv/uv/android-ifaddrs.h create mode 100755 extern/libuv/uv/bsd.h create mode 100755 extern/libuv/uv/darwin.h create mode 100755 extern/libuv/uv/errno.h create mode 100755 extern/libuv/uv/linux.h create mode 100755 extern/libuv/uv/os390.h create mode 100755 extern/libuv/uv/posix.h create mode 100755 extern/libuv/uv/pthread-barrier.h create mode 100755 extern/libuv/uv/stdint-msvc2008.h create mode 100755 extern/libuv/uv/sunos.h create mode 100755 extern/libuv/uv/threadpool.h create mode 100755 extern/libuv/uv/tree.h create mode 100755 extern/libuv/uv/unix.h create mode 100755 extern/libuv/uv/version.h create mode 100755 extern/libuv/uv/win.h diff --git a/extern/CMakeProject-uwebsocket.cmake b/extern/CMakeProject-uwebsocket.cmake index 7064c9787a..ca8296a6db 100644 --- a/extern/CMakeProject-uwebsocket.cmake +++ b/extern/CMakeProject-uwebsocket.cmake @@ -1,11 +1,10 @@ if(NOT MSVC) find_package(OpenSSL REQUIRED) - find_package(LibUV REQUIRED) find_package(ZLIB REQUIRED) file(GLOB SOURCES "${SM_EXTERN_DIR}/uWebSocket/src/*.cpp") add_library("uWS" STATIC ${SOURCES}) set_property(TARGET "uWS" PROPERTY FOLDER "External Libraries") - target_include_directories("uWS" PUBLIC ${OPENSSL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} ${LibUV_INCLUDE_DIRS} "${SM_EXTERN_DIR}/uWebSocket/include") - target_link_libraries("uWS" PUBLIC ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${LibUV_LIBRARIES}) -endif() \ No newline at end of file + target_include_directories("uWS" PUBLIC ${OPENSSL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} "${SM_EXTERN_DIR}/libuv/include" "${SM_EXTERN_DIR}/uWebSocket/include") + target_link_libraries("uWS" PUBLIC ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} "${SM_EXTERN_DIR}/libuv/libuv.a") +endif() diff --git a/extern/libuv/libuv.a b/extern/libuv/libuv.a new file mode 100644 index 0000000000000000000000000000000000000000..a20da33652debcd1a5e2ea98561ccde94132c823 GIT binary patch literal 831512 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%0Dp&k9F;y1`PYc-kex2N$myR8?EYQX!T#_GEus4A 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¬PcIyrOZtls+pLp-kj+xWGy7!4;rMbJ7 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

FFb04 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%0Dj| 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�G=(i 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%0AVmhL&b9;eCSH!yD;OR#`pc6PXOW1`j~UFhns3 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 YF0?@W{jSIl4x{^z=k1dtM_AVX0}wRf%>V!Z literal 0 HcmV?d00001 diff --git a/extern/libuv/uv.h b/extern/libuv/uv.h new file mode 100755 index 0000000000..717c2e570b --- /dev/null +++ b/extern/libuv/uv.h @@ -0,0 +1,1611 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* See https://github.com/libuv/libuv#documentation for documentation. */ + +#ifndef UV_H +#define UV_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef _WIN32 + /* Windows - set up dll import/export decorators. */ +# if defined(BUILDING_UV_SHARED) + /* Building shared library. */ +# define UV_EXTERN __declspec(dllexport) +# elif defined(USING_UV_SHARED) + /* Using shared library. */ +# define UV_EXTERN __declspec(dllimport) +# else + /* Building static library. */ +# define UV_EXTERN /* nothing */ +# endif +#elif __GNUC__ >= 4 +# define UV_EXTERN __attribute__((visibility("default"))) +#else +# define UV_EXTERN /* nothing */ +#endif + +#include "uv/errno.h" +#include "uv/version.h" +#include +#include + +#if defined(_MSC_VER) && _MSC_VER < 1600 +# include "uv/stdint-msvc2008.h" +#else +# include +#endif + +#if defined(_WIN32) +# include "uv/win.h" +#else +# include "uv/unix.h" +#endif + +/* Expand this list if necessary. */ +#define UV_ERRNO_MAP(XX) \ + XX(E2BIG, "argument list too long") \ + XX(EACCES, "permission denied") \ + XX(EADDRINUSE, "address already in use") \ + XX(EADDRNOTAVAIL, "address not available") \ + XX(EAFNOSUPPORT, "address family not supported") \ + XX(EAGAIN, "resource temporarily unavailable") \ + XX(EAI_ADDRFAMILY, "address family not supported") \ + XX(EAI_AGAIN, "temporary failure") \ + XX(EAI_BADFLAGS, "bad ai_flags value") \ + XX(EAI_BADHINTS, "invalid value for hints") \ + XX(EAI_CANCELED, "request canceled") \ + XX(EAI_FAIL, "permanent failure") \ + XX(EAI_FAMILY, "ai_family not supported") \ + XX(EAI_MEMORY, "out of memory") \ + XX(EAI_NODATA, "no address") \ + XX(EAI_NONAME, "unknown node or service") \ + XX(EAI_OVERFLOW, "argument buffer overflow") \ + XX(EAI_PROTOCOL, "resolved protocol is unknown") \ + XX(EAI_SERVICE, "service not available for socket type") \ + XX(EAI_SOCKTYPE, "socket type not supported") \ + XX(EALREADY, "connection already in progress") \ + XX(EBADF, "bad file descriptor") \ + XX(EBUSY, "resource busy or locked") \ + XX(ECANCELED, "operation canceled") \ + XX(ECHARSET, "invalid Unicode character") \ + XX(ECONNABORTED, "software caused connection abort") \ + XX(ECONNREFUSED, "connection refused") \ + XX(ECONNRESET, "connection reset by peer") \ + XX(EDESTADDRREQ, "destination address required") \ + XX(EEXIST, "file already exists") \ + XX(EFAULT, "bad address in system call argument") \ + XX(EFBIG, "file too large") \ + XX(EHOSTUNREACH, "host is unreachable") \ + XX(EINTR, "interrupted system call") \ + XX(EINVAL, "invalid argument") \ + XX(EIO, "i/o error") \ + XX(EISCONN, "socket is already connected") \ + XX(EISDIR, "illegal operation on a directory") \ + XX(ELOOP, "too many symbolic links encountered") \ + XX(EMFILE, "too many open files") \ + XX(EMSGSIZE, "message too long") \ + XX(ENAMETOOLONG, "name too long") \ + XX(ENETDOWN, "network is down") \ + XX(ENETUNREACH, "network is unreachable") \ + XX(ENFILE, "file table overflow") \ + XX(ENOBUFS, "no buffer space available") \ + XX(ENODEV, "no such device") \ + XX(ENOENT, "no such file or directory") \ + XX(ENOMEM, "not enough memory") \ + XX(ENONET, "machine is not on the network") \ + XX(ENOPROTOOPT, "protocol not available") \ + XX(ENOSPC, "no space left on device") \ + XX(ENOSYS, "function not implemented") \ + XX(ENOTCONN, "socket is not connected") \ + XX(ENOTDIR, "not a directory") \ + XX(ENOTEMPTY, "directory not empty") \ + XX(ENOTSOCK, "socket operation on non-socket") \ + XX(ENOTSUP, "operation not supported on socket") \ + XX(EPERM, "operation not permitted") \ + XX(EPIPE, "broken pipe") \ + XX(EPROTO, "protocol error") \ + XX(EPROTONOSUPPORT, "protocol not supported") \ + XX(EPROTOTYPE, "protocol wrong type for socket") \ + XX(ERANGE, "result too large") \ + XX(EROFS, "read-only file system") \ + XX(ESHUTDOWN, "cannot send after transport endpoint shutdown") \ + XX(ESPIPE, "invalid seek") \ + XX(ESRCH, "no such process") \ + XX(ETIMEDOUT, "connection timed out") \ + XX(ETXTBSY, "text file is busy") \ + XX(EXDEV, "cross-device link not permitted") \ + XX(UNKNOWN, "unknown error") \ + XX(EOF, "end of file") \ + XX(ENXIO, "no such device or address") \ + XX(EMLINK, "too many links") \ + XX(EHOSTDOWN, "host is down") \ + XX(EREMOTEIO, "remote I/O error") \ + XX(ENOTTY, "inappropriate ioctl for device") \ + XX(EFTYPE, "inappropriate file type or format") \ + +#define UV_HANDLE_TYPE_MAP(XX) \ + XX(ASYNC, async) \ + XX(CHECK, check) \ + XX(FS_EVENT, fs_event) \ + XX(FS_POLL, fs_poll) \ + XX(HANDLE, handle) \ + XX(IDLE, idle) \ + XX(NAMED_PIPE, pipe) \ + XX(POLL, poll) \ + XX(PREPARE, prepare) \ + XX(PROCESS, process) \ + XX(STREAM, stream) \ + XX(TCP, tcp) \ + XX(TIMER, timer) \ + XX(TTY, tty) \ + XX(UDP, udp) \ + XX(SIGNAL, signal) \ + +#define UV_REQ_TYPE_MAP(XX) \ + XX(REQ, req) \ + XX(CONNECT, connect) \ + XX(WRITE, write) \ + XX(SHUTDOWN, shutdown) \ + XX(UDP_SEND, udp_send) \ + XX(FS, fs) \ + XX(WORK, work) \ + XX(GETADDRINFO, getaddrinfo) \ + XX(GETNAMEINFO, getnameinfo) \ + +typedef enum { +#define XX(code, _) UV_ ## code = UV__ ## code, + UV_ERRNO_MAP(XX) +#undef XX + UV_ERRNO_MAX = UV__EOF - 1 +} uv_errno_t; + +typedef enum { + UV_UNKNOWN_HANDLE = 0, +#define XX(uc, lc) UV_##uc, + UV_HANDLE_TYPE_MAP(XX) +#undef XX + UV_FILE, + UV_HANDLE_TYPE_MAX +} uv_handle_type; + +typedef enum { + UV_UNKNOWN_REQ = 0, +#define XX(uc, lc) UV_##uc, + UV_REQ_TYPE_MAP(XX) +#undef XX + UV_REQ_TYPE_PRIVATE + UV_REQ_TYPE_MAX +} uv_req_type; + + +/* Handle types. */ +typedef struct uv_loop_s uv_loop_t; +typedef struct uv_handle_s uv_handle_t; +typedef struct uv_stream_s uv_stream_t; +typedef struct uv_tcp_s uv_tcp_t; +typedef struct uv_udp_s uv_udp_t; +typedef struct uv_pipe_s uv_pipe_t; +typedef struct uv_tty_s uv_tty_t; +typedef struct uv_poll_s uv_poll_t; +typedef struct uv_timer_s uv_timer_t; +typedef struct uv_prepare_s uv_prepare_t; +typedef struct uv_check_s uv_check_t; +typedef struct uv_idle_s uv_idle_t; +typedef struct uv_async_s uv_async_t; +typedef struct uv_process_s uv_process_t; +typedef struct uv_fs_event_s uv_fs_event_t; +typedef struct uv_fs_poll_s uv_fs_poll_t; +typedef struct uv_signal_s uv_signal_t; + +/* Request types. */ +typedef struct uv_req_s uv_req_t; +typedef struct uv_getaddrinfo_s uv_getaddrinfo_t; +typedef struct uv_getnameinfo_s uv_getnameinfo_t; +typedef struct uv_shutdown_s uv_shutdown_t; +typedef struct uv_write_s uv_write_t; +typedef struct uv_connect_s uv_connect_t; +typedef struct uv_udp_send_s uv_udp_send_t; +typedef struct uv_fs_s uv_fs_t; +typedef struct uv_work_s uv_work_t; + +/* None of the above. */ +typedef struct uv_cpu_info_s uv_cpu_info_t; +typedef struct uv_interface_address_s uv_interface_address_t; +typedef struct uv_dirent_s uv_dirent_t; +typedef struct uv_passwd_s uv_passwd_t; + +typedef enum { + UV_LOOP_BLOCK_SIGNAL +} uv_loop_option; + +typedef enum { + UV_RUN_DEFAULT = 0, + UV_RUN_ONCE, + UV_RUN_NOWAIT +} uv_run_mode; + + +UV_EXTERN unsigned int uv_version(void); +UV_EXTERN const char* uv_version_string(void); + +typedef void* (*uv_malloc_func)(size_t size); +typedef void* (*uv_realloc_func)(void* ptr, size_t size); +typedef void* (*uv_calloc_func)(size_t count, size_t size); +typedef void (*uv_free_func)(void* ptr); + +UV_EXTERN int uv_replace_allocator(uv_malloc_func malloc_func, + uv_realloc_func realloc_func, + uv_calloc_func calloc_func, + uv_free_func free_func); + +UV_EXTERN uv_loop_t* uv_default_loop(void); +UV_EXTERN int uv_loop_init(uv_loop_t* loop); +UV_EXTERN int uv_loop_close(uv_loop_t* loop); +/* + * NOTE: + * This function is DEPRECATED (to be removed after 0.12), users should + * allocate the loop manually and use uv_loop_init instead. + */ +UV_EXTERN uv_loop_t* uv_loop_new(void); +/* + * NOTE: + * This function is DEPRECATED (to be removed after 0.12). Users should use + * uv_loop_close and free the memory manually instead. + */ +UV_EXTERN void uv_loop_delete(uv_loop_t*); +UV_EXTERN size_t uv_loop_size(void); +UV_EXTERN int uv_loop_alive(const uv_loop_t* loop); +UV_EXTERN int uv_loop_configure(uv_loop_t* loop, uv_loop_option option, ...); +UV_EXTERN int uv_loop_fork(uv_loop_t* loop); + +UV_EXTERN int uv_run(uv_loop_t*, uv_run_mode mode); +UV_EXTERN void uv_stop(uv_loop_t*); + +UV_EXTERN void uv_ref(uv_handle_t*); +UV_EXTERN void uv_unref(uv_handle_t*); +UV_EXTERN int uv_has_ref(const uv_handle_t*); + +UV_EXTERN void uv_update_time(uv_loop_t*); +UV_EXTERN uint64_t uv_now(const uv_loop_t*); + +UV_EXTERN int uv_backend_fd(const uv_loop_t*); +UV_EXTERN int uv_backend_timeout(const uv_loop_t*); + +typedef void (*uv_alloc_cb)(uv_handle_t* handle, + size_t suggested_size, + uv_buf_t* buf); +typedef void (*uv_read_cb)(uv_stream_t* stream, + ssize_t nread, + const uv_buf_t* buf); +typedef void (*uv_write_cb)(uv_write_t* req, int status); +typedef void (*uv_connect_cb)(uv_connect_t* req, int status); +typedef void (*uv_shutdown_cb)(uv_shutdown_t* req, int status); +typedef void (*uv_connection_cb)(uv_stream_t* server, int status); +typedef void (*uv_close_cb)(uv_handle_t* handle); +typedef void (*uv_poll_cb)(uv_poll_t* handle, int status, int events); +typedef void (*uv_timer_cb)(uv_timer_t* handle); +typedef void (*uv_async_cb)(uv_async_t* handle); +typedef void (*uv_prepare_cb)(uv_prepare_t* handle); +typedef void (*uv_check_cb)(uv_check_t* handle); +typedef void (*uv_idle_cb)(uv_idle_t* handle); +typedef void (*uv_exit_cb)(uv_process_t*, int64_t exit_status, int term_signal); +typedef void (*uv_walk_cb)(uv_handle_t* handle, void* arg); +typedef void (*uv_fs_cb)(uv_fs_t* req); +typedef void (*uv_work_cb)(uv_work_t* req); +typedef void (*uv_after_work_cb)(uv_work_t* req, int status); +typedef void (*uv_getaddrinfo_cb)(uv_getaddrinfo_t* req, + int status, + struct addrinfo* res); +typedef void (*uv_getnameinfo_cb)(uv_getnameinfo_t* req, + int status, + const char* hostname, + const char* service); + +typedef struct { + long tv_sec; + long tv_nsec; +} uv_timespec_t; + + +typedef struct { + uint64_t st_dev; + uint64_t st_mode; + uint64_t st_nlink; + uint64_t st_uid; + uint64_t st_gid; + uint64_t st_rdev; + uint64_t st_ino; + uint64_t st_size; + uint64_t st_blksize; + uint64_t st_blocks; + uint64_t st_flags; + uint64_t st_gen; + uv_timespec_t st_atim; + uv_timespec_t st_mtim; + uv_timespec_t st_ctim; + uv_timespec_t st_birthtim; +} uv_stat_t; + + +typedef void (*uv_fs_event_cb)(uv_fs_event_t* handle, + const char* filename, + int events, + int status); + +typedef void (*uv_fs_poll_cb)(uv_fs_poll_t* handle, + int status, + const uv_stat_t* prev, + const uv_stat_t* curr); + +typedef void (*uv_signal_cb)(uv_signal_t* handle, int signum); + + +typedef enum { + UV_LEAVE_GROUP = 0, + UV_JOIN_GROUP +} uv_membership; + + +UV_EXTERN int uv_translate_sys_error(int sys_errno); + +UV_EXTERN const char* uv_strerror(int err); +UV_EXTERN char* uv_strerror_r(int err, char* buf, size_t buflen); + +UV_EXTERN const char* uv_err_name(int err); +UV_EXTERN char* uv_err_name_r(int err, char* buf, size_t buflen); + + +#define UV_REQ_FIELDS \ + /* public */ \ + void* data; \ + /* read-only */ \ + uv_req_type type; \ + /* private */ \ + void* reserved[6]; \ + UV_REQ_PRIVATE_FIELDS \ + +/* Abstract base class of all requests. */ +struct uv_req_s { + UV_REQ_FIELDS +}; + + +/* Platform-specific request types. */ +UV_PRIVATE_REQ_TYPES + + +UV_EXTERN int uv_shutdown(uv_shutdown_t* req, + uv_stream_t* handle, + uv_shutdown_cb cb); + +struct uv_shutdown_s { + UV_REQ_FIELDS + uv_stream_t* handle; + uv_shutdown_cb cb; + UV_SHUTDOWN_PRIVATE_FIELDS +}; + + +#define UV_HANDLE_FIELDS \ + /* public */ \ + void* data; \ + /* read-only */ \ + uv_loop_t* loop; \ + uv_handle_type type; \ + /* private */ \ + uv_close_cb close_cb; \ + void* handle_queue[2]; \ + union { \ + int fd; \ + void* reserved[4]; \ + } u; \ + UV_HANDLE_PRIVATE_FIELDS \ + +/* The abstract base class of all handles. */ +struct uv_handle_s { + UV_HANDLE_FIELDS +}; + +UV_EXTERN size_t uv_handle_size(uv_handle_type type); +UV_EXTERN uv_handle_type uv_handle_get_type(const uv_handle_t* handle); +UV_EXTERN const char* uv_handle_type_name(uv_handle_type type); +UV_EXTERN void* uv_handle_get_data(const uv_handle_t* handle); +UV_EXTERN uv_loop_t* uv_handle_get_loop(const uv_handle_t* handle); +UV_EXTERN void uv_handle_set_data(uv_handle_t* handle, void* data); + +UV_EXTERN size_t uv_req_size(uv_req_type type); +UV_EXTERN void* uv_req_get_data(const uv_req_t* req); +UV_EXTERN void uv_req_set_data(uv_req_t* req, void* data); +UV_EXTERN uv_req_type uv_req_get_type(const uv_req_t* req); +UV_EXTERN const char* uv_req_type_name(uv_req_type type); + +UV_EXTERN int uv_is_active(const uv_handle_t* handle); + +UV_EXTERN void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg); + +/* Helpers for ad hoc debugging, no API/ABI stability guaranteed. */ +UV_EXTERN void uv_print_all_handles(uv_loop_t* loop, FILE* stream); +UV_EXTERN void uv_print_active_handles(uv_loop_t* loop, FILE* stream); + +UV_EXTERN void uv_close(uv_handle_t* handle, uv_close_cb close_cb); + +UV_EXTERN int uv_send_buffer_size(uv_handle_t* handle, int* value); +UV_EXTERN int uv_recv_buffer_size(uv_handle_t* handle, int* value); + +UV_EXTERN int uv_fileno(const uv_handle_t* handle, uv_os_fd_t* fd); + +UV_EXTERN uv_buf_t uv_buf_init(char* base, unsigned int len); + + +#define UV_STREAM_FIELDS \ + /* number of bytes queued for writing */ \ + size_t write_queue_size; \ + uv_alloc_cb alloc_cb; \ + uv_read_cb read_cb; \ + /* private */ \ + UV_STREAM_PRIVATE_FIELDS + +/* + * uv_stream_t is a subclass of uv_handle_t. + * + * uv_stream is an abstract class. + * + * uv_stream_t is the parent class of uv_tcp_t, uv_pipe_t and uv_tty_t. + */ +struct uv_stream_s { + UV_HANDLE_FIELDS + UV_STREAM_FIELDS +}; + +UV_EXTERN size_t uv_stream_get_write_queue_size(const uv_stream_t* stream); + +UV_EXTERN int uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb); +UV_EXTERN int uv_accept(uv_stream_t* server, uv_stream_t* client); + +UV_EXTERN int uv_read_start(uv_stream_t*, + uv_alloc_cb alloc_cb, + uv_read_cb read_cb); +UV_EXTERN int uv_read_stop(uv_stream_t*); + +UV_EXTERN int uv_write(uv_write_t* req, + uv_stream_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, + uv_write_cb cb); +UV_EXTERN int uv_write2(uv_write_t* req, + uv_stream_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, + uv_stream_t* send_handle, + uv_write_cb cb); +UV_EXTERN int uv_try_write(uv_stream_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs); + +/* uv_write_t is a subclass of uv_req_t. */ +struct uv_write_s { + UV_REQ_FIELDS + uv_write_cb cb; + uv_stream_t* send_handle; /* TODO: make private and unix-only in v2.x. */ + uv_stream_t* handle; + UV_WRITE_PRIVATE_FIELDS +}; + + +UV_EXTERN int uv_is_readable(const uv_stream_t* handle); +UV_EXTERN int uv_is_writable(const uv_stream_t* handle); + +UV_EXTERN int uv_stream_set_blocking(uv_stream_t* handle, int blocking); + +UV_EXTERN int uv_is_closing(const uv_handle_t* handle); + + +/* + * uv_tcp_t is a subclass of uv_stream_t. + * + * Represents a TCP stream or TCP server. + */ +struct uv_tcp_s { + UV_HANDLE_FIELDS + UV_STREAM_FIELDS + UV_TCP_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_tcp_init(uv_loop_t*, uv_tcp_t* handle); +UV_EXTERN int uv_tcp_init_ex(uv_loop_t*, uv_tcp_t* handle, unsigned int flags); +UV_EXTERN int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock); +UV_EXTERN int uv_tcp_nodelay(uv_tcp_t* handle, int enable); +UV_EXTERN int uv_tcp_keepalive(uv_tcp_t* handle, + int enable, + unsigned int delay); +UV_EXTERN int uv_tcp_simultaneous_accepts(uv_tcp_t* handle, int enable); + +enum uv_tcp_flags { + /* Used with uv_tcp_bind, when an IPv6 address is used. */ + UV_TCP_IPV6ONLY = 1 +}; + +UV_EXTERN int uv_tcp_bind(uv_tcp_t* handle, + const struct sockaddr* addr, + unsigned int flags); +UV_EXTERN int uv_tcp_getsockname(const uv_tcp_t* handle, + struct sockaddr* name, + int* namelen); +UV_EXTERN int uv_tcp_getpeername(const uv_tcp_t* handle, + struct sockaddr* name, + int* namelen); +UV_EXTERN int uv_tcp_connect(uv_connect_t* req, + uv_tcp_t* handle, + const struct sockaddr* addr, + uv_connect_cb cb); + +/* uv_connect_t is a subclass of uv_req_t. */ +struct uv_connect_s { + UV_REQ_FIELDS + uv_connect_cb cb; + uv_stream_t* handle; + UV_CONNECT_PRIVATE_FIELDS +}; + + +/* + * UDP support. + */ + +enum uv_udp_flags { + /* Disables dual stack mode. */ + UV_UDP_IPV6ONLY = 1, + /* + * Indicates message was truncated because read buffer was too small. The + * remainder was discarded by the OS. Used in uv_udp_recv_cb. + */ + UV_UDP_PARTIAL = 2, + /* + * Indicates if SO_REUSEADDR will be set when binding the handle. + * This sets the SO_REUSEPORT socket flag on the BSDs and OS X. On other + * Unix platforms, it sets the SO_REUSEADDR flag. What that means is that + * multiple threads or processes can bind to the same address without error + * (provided they all set the flag) but only the last one to bind will receive + * any traffic, in effect "stealing" the port from the previous listener. + */ + UV_UDP_REUSEADDR = 4 +}; + +typedef void (*uv_udp_send_cb)(uv_udp_send_t* req, int status); +typedef void (*uv_udp_recv_cb)(uv_udp_t* handle, + ssize_t nread, + const uv_buf_t* buf, + const struct sockaddr* addr, + unsigned flags); + +/* uv_udp_t is a subclass of uv_handle_t. */ +struct uv_udp_s { + UV_HANDLE_FIELDS + /* read-only */ + /* + * Number of bytes queued for sending. This field strictly shows how much + * information is currently queued. + */ + size_t send_queue_size; + /* + * Number of send requests currently in the queue awaiting to be processed. + */ + size_t send_queue_count; + UV_UDP_PRIVATE_FIELDS +}; + +/* uv_udp_send_t is a subclass of uv_req_t. */ +struct uv_udp_send_s { + UV_REQ_FIELDS + uv_udp_t* handle; + uv_udp_send_cb cb; + UV_UDP_SEND_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_udp_init(uv_loop_t*, uv_udp_t* handle); +UV_EXTERN int uv_udp_init_ex(uv_loop_t*, uv_udp_t* handle, unsigned int flags); +UV_EXTERN int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock); +UV_EXTERN int uv_udp_bind(uv_udp_t* handle, + const struct sockaddr* addr, + unsigned int flags); + +UV_EXTERN int uv_udp_getsockname(const uv_udp_t* handle, + struct sockaddr* name, + int* namelen); +UV_EXTERN int uv_udp_set_membership(uv_udp_t* handle, + const char* multicast_addr, + const char* interface_addr, + uv_membership membership); +UV_EXTERN int uv_udp_set_multicast_loop(uv_udp_t* handle, int on); +UV_EXTERN int uv_udp_set_multicast_ttl(uv_udp_t* handle, int ttl); +UV_EXTERN int uv_udp_set_multicast_interface(uv_udp_t* handle, + const char* interface_addr); +UV_EXTERN int uv_udp_set_broadcast(uv_udp_t* handle, int on); +UV_EXTERN int uv_udp_set_ttl(uv_udp_t* handle, int ttl); +UV_EXTERN int uv_udp_send(uv_udp_send_t* req, + uv_udp_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, + const struct sockaddr* addr, + uv_udp_send_cb send_cb); +UV_EXTERN int uv_udp_try_send(uv_udp_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, + const struct sockaddr* addr); +UV_EXTERN int uv_udp_recv_start(uv_udp_t* handle, + uv_alloc_cb alloc_cb, + uv_udp_recv_cb recv_cb); +UV_EXTERN int uv_udp_recv_stop(uv_udp_t* handle); +UV_EXTERN size_t uv_udp_get_send_queue_size(const uv_udp_t* handle); +UV_EXTERN size_t uv_udp_get_send_queue_count(const uv_udp_t* handle); + + +/* + * uv_tty_t is a subclass of uv_stream_t. + * + * Representing a stream for the console. + */ +struct uv_tty_s { + UV_HANDLE_FIELDS + UV_STREAM_FIELDS + UV_TTY_PRIVATE_FIELDS +}; + +typedef enum { + /* Initial/normal terminal mode */ + UV_TTY_MODE_NORMAL, + /* Raw input mode (On Windows, ENABLE_WINDOW_INPUT is also enabled) */ + UV_TTY_MODE_RAW, + /* Binary-safe I/O mode for IPC (Unix-only) */ + UV_TTY_MODE_IO +} uv_tty_mode_t; + +UV_EXTERN int uv_tty_init(uv_loop_t*, uv_tty_t*, uv_file fd, int readable); +UV_EXTERN int uv_tty_set_mode(uv_tty_t*, uv_tty_mode_t mode); +UV_EXTERN int uv_tty_reset_mode(void); +UV_EXTERN int uv_tty_get_winsize(uv_tty_t*, int* width, int* height); + +#ifdef __cplusplus +extern "C++" { + +inline int uv_tty_set_mode(uv_tty_t* handle, int mode) { + return uv_tty_set_mode(handle, static_cast(mode)); +} + +} +#endif + +UV_EXTERN uv_handle_type uv_guess_handle(uv_file file); + +/* + * uv_pipe_t is a subclass of uv_stream_t. + * + * Representing a pipe stream or pipe server. On Windows this is a Named + * Pipe. On Unix this is a Unix domain socket. + */ +struct uv_pipe_s { + UV_HANDLE_FIELDS + UV_STREAM_FIELDS + int ipc; /* non-zero if this pipe is used for passing handles */ + UV_PIPE_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_pipe_init(uv_loop_t*, uv_pipe_t* handle, int ipc); +UV_EXTERN int uv_pipe_open(uv_pipe_t*, uv_file file); +UV_EXTERN int uv_pipe_bind(uv_pipe_t* handle, const char* name); +UV_EXTERN void uv_pipe_connect(uv_connect_t* req, + uv_pipe_t* handle, + const char* name, + uv_connect_cb cb); +UV_EXTERN int uv_pipe_getsockname(const uv_pipe_t* handle, + char* buffer, + size_t* size); +UV_EXTERN int uv_pipe_getpeername(const uv_pipe_t* handle, + char* buffer, + size_t* size); +UV_EXTERN void uv_pipe_pending_instances(uv_pipe_t* handle, int count); +UV_EXTERN int uv_pipe_pending_count(uv_pipe_t* handle); +UV_EXTERN uv_handle_type uv_pipe_pending_type(uv_pipe_t* handle); +UV_EXTERN int uv_pipe_chmod(uv_pipe_t* handle, int flags); + + +struct uv_poll_s { + UV_HANDLE_FIELDS + uv_poll_cb poll_cb; + UV_POLL_PRIVATE_FIELDS +}; + +enum uv_poll_event { + UV_READABLE = 1, + UV_WRITABLE = 2, + UV_DISCONNECT = 4, + UV_PRIORITIZED = 8 +}; + +UV_EXTERN int uv_poll_init(uv_loop_t* loop, uv_poll_t* handle, int fd); +UV_EXTERN int uv_poll_init_socket(uv_loop_t* loop, + uv_poll_t* handle, + uv_os_sock_t socket); +UV_EXTERN int uv_poll_start(uv_poll_t* handle, int events, uv_poll_cb cb); +UV_EXTERN int uv_poll_stop(uv_poll_t* handle); + + +struct uv_prepare_s { + UV_HANDLE_FIELDS + UV_PREPARE_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_prepare_init(uv_loop_t*, uv_prepare_t* prepare); +UV_EXTERN int uv_prepare_start(uv_prepare_t* prepare, uv_prepare_cb cb); +UV_EXTERN int uv_prepare_stop(uv_prepare_t* prepare); + + +struct uv_check_s { + UV_HANDLE_FIELDS + UV_CHECK_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_check_init(uv_loop_t*, uv_check_t* check); +UV_EXTERN int uv_check_start(uv_check_t* check, uv_check_cb cb); +UV_EXTERN int uv_check_stop(uv_check_t* check); + + +struct uv_idle_s { + UV_HANDLE_FIELDS + UV_IDLE_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_idle_init(uv_loop_t*, uv_idle_t* idle); +UV_EXTERN int uv_idle_start(uv_idle_t* idle, uv_idle_cb cb); +UV_EXTERN int uv_idle_stop(uv_idle_t* idle); + + +struct uv_async_s { + UV_HANDLE_FIELDS + UV_ASYNC_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_async_init(uv_loop_t*, + uv_async_t* async, + uv_async_cb async_cb); +UV_EXTERN int uv_async_send(uv_async_t* async); + + +/* + * uv_timer_t is a subclass of uv_handle_t. + * + * Used to get woken up at a specified time in the future. + */ +struct uv_timer_s { + UV_HANDLE_FIELDS + UV_TIMER_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_timer_init(uv_loop_t*, uv_timer_t* handle); +UV_EXTERN int uv_timer_start(uv_timer_t* handle, + uv_timer_cb cb, + uint64_t timeout, + uint64_t repeat); +UV_EXTERN int uv_timer_stop(uv_timer_t* handle); +UV_EXTERN int uv_timer_again(uv_timer_t* handle); +UV_EXTERN void uv_timer_set_repeat(uv_timer_t* handle, uint64_t repeat); +UV_EXTERN uint64_t uv_timer_get_repeat(const uv_timer_t* handle); + + +/* + * uv_getaddrinfo_t is a subclass of uv_req_t. + * + * Request object for uv_getaddrinfo. + */ +struct uv_getaddrinfo_s { + UV_REQ_FIELDS + /* read-only */ + uv_loop_t* loop; + /* struct addrinfo* addrinfo is marked as private, but it really isn't. */ + UV_GETADDRINFO_PRIVATE_FIELDS +}; + + +UV_EXTERN int uv_getaddrinfo(uv_loop_t* loop, + uv_getaddrinfo_t* req, + uv_getaddrinfo_cb getaddrinfo_cb, + const char* node, + const char* service, + const struct addrinfo* hints); +UV_EXTERN void uv_freeaddrinfo(struct addrinfo* ai); + + +/* +* uv_getnameinfo_t is a subclass of uv_req_t. +* +* Request object for uv_getnameinfo. +*/ +struct uv_getnameinfo_s { + UV_REQ_FIELDS + /* read-only */ + uv_loop_t* loop; + /* host and service are marked as private, but they really aren't. */ + UV_GETNAMEINFO_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_getnameinfo(uv_loop_t* loop, + uv_getnameinfo_t* req, + uv_getnameinfo_cb getnameinfo_cb, + const struct sockaddr* addr, + int flags); + + +/* uv_spawn() options. */ +typedef enum { + UV_IGNORE = 0x00, + UV_CREATE_PIPE = 0x01, + UV_INHERIT_FD = 0x02, + UV_INHERIT_STREAM = 0x04, + + /* + * When UV_CREATE_PIPE is specified, UV_READABLE_PIPE and UV_WRITABLE_PIPE + * determine the direction of flow, from the child process' perspective. Both + * flags may be specified to create a duplex data stream. + */ + UV_READABLE_PIPE = 0x10, + UV_WRITABLE_PIPE = 0x20, + + /* + * Open the child pipe handle in overlapped mode on Windows. + * On Unix it is silently ignored. + */ + UV_OVERLAPPED_PIPE = 0x40 +} uv_stdio_flags; + +typedef struct uv_stdio_container_s { + uv_stdio_flags flags; + + union { + uv_stream_t* stream; + int fd; + } data; +} uv_stdio_container_t; + +typedef struct uv_process_options_s { + uv_exit_cb exit_cb; /* Called after the process exits. */ + const char* file; /* Path to program to execute. */ + /* + * Command line arguments. args[0] should be the path to the program. On + * Windows this uses CreateProcess which concatenates the arguments into a + * string this can cause some strange errors. See the note at + * windows_verbatim_arguments. + */ + char** args; + /* + * This will be set as the environ variable in the subprocess. If this is + * NULL then the parents environ will be used. + */ + char** env; + /* + * If non-null this represents a directory the subprocess should execute + * in. Stands for current working directory. + */ + const char* cwd; + /* + * Various flags that control how uv_spawn() behaves. See the definition of + * `enum uv_process_flags` below. + */ + unsigned int flags; + /* + * The `stdio` field points to an array of uv_stdio_container_t structs that + * describe the file descriptors that will be made available to the child + * process. The convention is that stdio[0] points to stdin, fd 1 is used for + * stdout, and fd 2 is stderr. + * + * Note that on windows file descriptors greater than 2 are available to the + * child process only if the child processes uses the MSVCRT runtime. + */ + int stdio_count; + uv_stdio_container_t* stdio; + /* + * Libuv can change the child process' user/group id. This happens only when + * the appropriate bits are set in the flags fields. This is not supported on + * windows; uv_spawn() will fail and set the error to UV_ENOTSUP. + */ + uv_uid_t uid; + uv_gid_t gid; +} uv_process_options_t; + +/* + * These are the flags that can be used for the uv_process_options.flags field. + */ +enum uv_process_flags { + /* + * Set the child process' user id. The user id is supplied in the `uid` field + * of the options struct. This does not work on windows; setting this flag + * will cause uv_spawn() to fail. + */ + UV_PROCESS_SETUID = (1 << 0), + /* + * Set the child process' group id. The user id is supplied in the `gid` + * field of the options struct. This does not work on windows; setting this + * flag will cause uv_spawn() to fail. + */ + UV_PROCESS_SETGID = (1 << 1), + /* + * Do not wrap any arguments in quotes, or perform any other escaping, when + * converting the argument list into a command line string. This option is + * only meaningful on Windows systems. On Unix it is silently ignored. + */ + UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS = (1 << 2), + /* + * Spawn the child process in a detached state - this will make it a process + * group leader, and will effectively enable the child to keep running after + * the parent exits. Note that the child process will still keep the + * parent's event loop alive unless the parent process calls uv_unref() on + * the child's process handle. + */ + UV_PROCESS_DETACHED = (1 << 3), + /* + * Hide the subprocess console window that would normally be created. This + * option is only meaningful on Windows systems. On Unix it is silently + * ignored. + */ + UV_PROCESS_WINDOWS_HIDE = (1 << 4) +}; + +/* + * uv_process_t is a subclass of uv_handle_t. + */ +struct uv_process_s { + UV_HANDLE_FIELDS + uv_exit_cb exit_cb; + int pid; + UV_PROCESS_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_spawn(uv_loop_t* loop, + uv_process_t* handle, + const uv_process_options_t* options); +UV_EXTERN int uv_process_kill(uv_process_t*, int signum); +UV_EXTERN int uv_kill(int pid, int signum); +UV_EXTERN uv_pid_t uv_process_get_pid(const uv_process_t*); + + +/* + * uv_work_t is a subclass of uv_req_t. + */ +struct uv_work_s { + UV_REQ_FIELDS + uv_loop_t* loop; + uv_work_cb work_cb; + uv_after_work_cb after_work_cb; + UV_WORK_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_queue_work(uv_loop_t* loop, + uv_work_t* req, + uv_work_cb work_cb, + uv_after_work_cb after_work_cb); + +UV_EXTERN int uv_cancel(uv_req_t* req); + + +struct uv_cpu_times_s { + uint64_t user; + uint64_t nice; + uint64_t sys; + uint64_t idle; + uint64_t irq; +}; + +struct uv_cpu_info_s { + char* model; + int speed; + struct uv_cpu_times_s cpu_times; +}; + +struct uv_interface_address_s { + char* name; + char phys_addr[6]; + int is_internal; + union { + struct sockaddr_in address4; + struct sockaddr_in6 address6; + } address; + union { + struct sockaddr_in netmask4; + struct sockaddr_in6 netmask6; + } netmask; +}; + +struct uv_passwd_s { + char* username; + long uid; + long gid; + char* shell; + char* homedir; +}; + +typedef enum { + UV_DIRENT_UNKNOWN, + UV_DIRENT_FILE, + UV_DIRENT_DIR, + UV_DIRENT_LINK, + UV_DIRENT_FIFO, + UV_DIRENT_SOCKET, + UV_DIRENT_CHAR, + UV_DIRENT_BLOCK +} uv_dirent_type_t; + +struct uv_dirent_s { + const char* name; + uv_dirent_type_t type; +}; + +UV_EXTERN char** uv_setup_args(int argc, char** argv); +UV_EXTERN int uv_get_process_title(char* buffer, size_t size); +UV_EXTERN int uv_set_process_title(const char* title); +UV_EXTERN int uv_resident_set_memory(size_t* rss); +UV_EXTERN int uv_uptime(double* uptime); +UV_EXTERN uv_os_fd_t uv_get_osfhandle(int fd); +UV_EXTERN int uv_open_osfhandle(uv_os_fd_t os_fd); + +typedef struct { + long tv_sec; + long tv_usec; +} uv_timeval_t; + +typedef struct { + uv_timeval_t ru_utime; /* user CPU time used */ + uv_timeval_t ru_stime; /* system CPU time used */ + uint64_t ru_maxrss; /* maximum resident set size */ + uint64_t ru_ixrss; /* integral shared memory size */ + uint64_t ru_idrss; /* integral unshared data size */ + uint64_t ru_isrss; /* integral unshared stack size */ + uint64_t ru_minflt; /* page reclaims (soft page faults) */ + uint64_t ru_majflt; /* page faults (hard page faults) */ + uint64_t ru_nswap; /* swaps */ + uint64_t ru_inblock; /* block input operations */ + uint64_t ru_oublock; /* block output operations */ + uint64_t ru_msgsnd; /* IPC messages sent */ + uint64_t ru_msgrcv; /* IPC messages received */ + uint64_t ru_nsignals; /* signals received */ + uint64_t ru_nvcsw; /* voluntary context switches */ + uint64_t ru_nivcsw; /* involuntary context switches */ +} uv_rusage_t; + +UV_EXTERN int uv_getrusage(uv_rusage_t* rusage); + +UV_EXTERN int uv_os_homedir(char* buffer, size_t* size); +UV_EXTERN int uv_os_tmpdir(char* buffer, size_t* size); +UV_EXTERN int uv_os_get_passwd(uv_passwd_t* pwd); +UV_EXTERN void uv_os_free_passwd(uv_passwd_t* pwd); +UV_EXTERN uv_pid_t uv_os_getpid(void); +UV_EXTERN uv_pid_t uv_os_getppid(void); + +#define UV_PRIORITY_LOW 19 +#define UV_PRIORITY_BELOW_NORMAL 10 +#define UV_PRIORITY_NORMAL 0 +#define UV_PRIORITY_ABOVE_NORMAL -7 +#define UV_PRIORITY_HIGH -14 +#define UV_PRIORITY_HIGHEST -20 + +UV_EXTERN int uv_os_getpriority(uv_pid_t pid, int* priority); +UV_EXTERN int uv_os_setpriority(uv_pid_t pid, int priority); + +UV_EXTERN int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count); +UV_EXTERN void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count); + +UV_EXTERN int uv_interface_addresses(uv_interface_address_t** addresses, + int* count); +UV_EXTERN void uv_free_interface_addresses(uv_interface_address_t* addresses, + int count); + +UV_EXTERN int uv_os_getenv(const char* name, char* buffer, size_t* size); +UV_EXTERN int uv_os_setenv(const char* name, const char* value); +UV_EXTERN int uv_os_unsetenv(const char* name); + +UV_EXTERN int uv_os_gethostname(char* buffer, size_t* size); + + +typedef enum { + UV_FS_UNKNOWN = -1, + UV_FS_CUSTOM, + UV_FS_OPEN, + UV_FS_CLOSE, + UV_FS_READ, + UV_FS_WRITE, + UV_FS_SENDFILE, + UV_FS_STAT, + UV_FS_LSTAT, + UV_FS_FSTAT, + UV_FS_FTRUNCATE, + UV_FS_UTIME, + UV_FS_FUTIME, + UV_FS_ACCESS, + UV_FS_CHMOD, + UV_FS_FCHMOD, + UV_FS_FSYNC, + UV_FS_FDATASYNC, + UV_FS_UNLINK, + UV_FS_RMDIR, + UV_FS_MKDIR, + UV_FS_MKDTEMP, + UV_FS_RENAME, + UV_FS_SCANDIR, + UV_FS_LINK, + UV_FS_SYMLINK, + UV_FS_READLINK, + UV_FS_CHOWN, + UV_FS_FCHOWN, + UV_FS_REALPATH, + UV_FS_COPYFILE, + UV_FS_LCHOWN +} uv_fs_type; + +/* uv_fs_t is a subclass of uv_req_t. */ +struct uv_fs_s { + UV_REQ_FIELDS + uv_fs_type fs_type; + uv_loop_t* loop; + uv_fs_cb cb; + ssize_t result; + void* ptr; + const char* path; + uv_stat_t statbuf; /* Stores the result of uv_fs_stat() and uv_fs_fstat(). */ + UV_FS_PRIVATE_FIELDS +}; + +UV_EXTERN uv_fs_type uv_fs_get_type(const uv_fs_t*); +UV_EXTERN ssize_t uv_fs_get_result(const uv_fs_t*); +UV_EXTERN void* uv_fs_get_ptr(const uv_fs_t*); +UV_EXTERN const char* uv_fs_get_path(const uv_fs_t*); +UV_EXTERN uv_stat_t* uv_fs_get_statbuf(uv_fs_t*); + +UV_EXTERN void uv_fs_req_cleanup(uv_fs_t* req); +UV_EXTERN int uv_fs_close(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + uv_fs_cb cb); +UV_EXTERN int uv_fs_open(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int flags, + int mode, + uv_fs_cb cb); +UV_EXTERN int uv_fs_read(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + const uv_buf_t bufs[], + unsigned int nbufs, + int64_t offset, + uv_fs_cb cb); +UV_EXTERN int uv_fs_unlink(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_write(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + const uv_buf_t bufs[], + unsigned int nbufs, + int64_t offset, + uv_fs_cb cb); +/* + * This flag can be used with uv_fs_copyfile() to return an error if the + * destination already exists. + */ +#define UV_FS_COPYFILE_EXCL 0x0001 + +/* + * This flag can be used with uv_fs_copyfile() to attempt to create a reflink. + * If copy-on-write is not supported, a fallback copy mechanism is used. + */ +#define UV_FS_COPYFILE_FICLONE 0x0002 + +/* + * This flag can be used with uv_fs_copyfile() to attempt to create a reflink. + * If copy-on-write is not supported, an error is returned. + */ +#define UV_FS_COPYFILE_FICLONE_FORCE 0x0004 + +UV_EXTERN int uv_fs_copyfile(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + const char* new_path, + int flags, + uv_fs_cb cb); +UV_EXTERN int uv_fs_mkdir(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int mode, + uv_fs_cb cb); +UV_EXTERN int uv_fs_mkdtemp(uv_loop_t* loop, + uv_fs_t* req, + const char* tpl, + uv_fs_cb cb); +UV_EXTERN int uv_fs_rmdir(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_scandir(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int flags, + uv_fs_cb cb); +UV_EXTERN int uv_fs_scandir_next(uv_fs_t* req, + uv_dirent_t* ent); +UV_EXTERN int uv_fs_stat(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_fstat(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + uv_fs_cb cb); +UV_EXTERN int uv_fs_rename(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + const char* new_path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_fsync(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + uv_fs_cb cb); +UV_EXTERN int uv_fs_fdatasync(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + uv_fs_cb cb); +UV_EXTERN int uv_fs_ftruncate(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + int64_t offset, + uv_fs_cb cb); +UV_EXTERN int uv_fs_sendfile(uv_loop_t* loop, + uv_fs_t* req, + uv_file out_fd, + uv_file in_fd, + int64_t in_offset, + size_t length, + uv_fs_cb cb); +UV_EXTERN int uv_fs_access(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int mode, + uv_fs_cb cb); +UV_EXTERN int uv_fs_chmod(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int mode, + uv_fs_cb cb); +UV_EXTERN int uv_fs_utime(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + double atime, + double mtime, + uv_fs_cb cb); +UV_EXTERN int uv_fs_futime(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + double atime, + double mtime, + uv_fs_cb cb); +UV_EXTERN int uv_fs_lstat(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_link(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + const char* new_path, + uv_fs_cb cb); + +/* + * This flag can be used with uv_fs_symlink() on Windows to specify whether + * path argument points to a directory. + */ +#define UV_FS_SYMLINK_DIR 0x0001 + +/* + * This flag can be used with uv_fs_symlink() on Windows to specify whether + * the symlink is to be created using junction points. + */ +#define UV_FS_SYMLINK_JUNCTION 0x0002 + +UV_EXTERN int uv_fs_symlink(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + const char* new_path, + int flags, + uv_fs_cb cb); +UV_EXTERN int uv_fs_readlink(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_realpath(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_fchmod(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + int mode, + uv_fs_cb cb); +UV_EXTERN int uv_fs_chown(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_uid_t uid, + uv_gid_t gid, + uv_fs_cb cb); +UV_EXTERN int uv_fs_fchown(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + uv_uid_t uid, + uv_gid_t gid, + uv_fs_cb cb); +UV_EXTERN int uv_fs_lchown(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_uid_t uid, + uv_gid_t gid, + uv_fs_cb cb); + + +enum uv_fs_event { + UV_RENAME = 1, + UV_CHANGE = 2 +}; + + +struct uv_fs_event_s { + UV_HANDLE_FIELDS + /* private */ + char* path; + UV_FS_EVENT_PRIVATE_FIELDS +}; + + +/* + * uv_fs_stat() based polling file watcher. + */ +struct uv_fs_poll_s { + UV_HANDLE_FIELDS + /* Private, don't touch. */ + void* poll_ctx; +}; + +UV_EXTERN int uv_fs_poll_init(uv_loop_t* loop, uv_fs_poll_t* handle); +UV_EXTERN int uv_fs_poll_start(uv_fs_poll_t* handle, + uv_fs_poll_cb poll_cb, + const char* path, + unsigned int interval); +UV_EXTERN int uv_fs_poll_stop(uv_fs_poll_t* handle); +UV_EXTERN int uv_fs_poll_getpath(uv_fs_poll_t* handle, + char* buffer, + size_t* size); + + +struct uv_signal_s { + UV_HANDLE_FIELDS + uv_signal_cb signal_cb; + int signum; + UV_SIGNAL_PRIVATE_FIELDS +}; + +UV_EXTERN int uv_signal_init(uv_loop_t* loop, uv_signal_t* handle); +UV_EXTERN int uv_signal_start(uv_signal_t* handle, + uv_signal_cb signal_cb, + int signum); +UV_EXTERN int uv_signal_start_oneshot(uv_signal_t* handle, + uv_signal_cb signal_cb, + int signum); +UV_EXTERN int uv_signal_stop(uv_signal_t* handle); + +UV_EXTERN void uv_loadavg(double avg[3]); + + +/* + * Flags to be passed to uv_fs_event_start(). + */ +enum uv_fs_event_flags { + /* + * By default, if the fs event watcher is given a directory name, we will + * watch for all events in that directory. This flags overrides this behavior + * and makes fs_event report only changes to the directory entry itself. This + * flag does not affect individual files watched. + * This flag is currently not implemented yet on any backend. + */ + UV_FS_EVENT_WATCH_ENTRY = 1, + + /* + * By default uv_fs_event will try to use a kernel interface such as inotify + * or kqueue to detect events. This may not work on remote filesystems such + * as NFS mounts. This flag makes fs_event fall back to calling stat() on a + * regular interval. + * This flag is currently not implemented yet on any backend. + */ + UV_FS_EVENT_STAT = 2, + + /* + * By default, event watcher, when watching directory, is not registering + * (is ignoring) changes in it's subdirectories. + * This flag will override this behaviour on platforms that support it. + */ + UV_FS_EVENT_RECURSIVE = 4 +}; + + +UV_EXTERN int uv_fs_event_init(uv_loop_t* loop, uv_fs_event_t* handle); +UV_EXTERN int uv_fs_event_start(uv_fs_event_t* handle, + uv_fs_event_cb cb, + const char* path, + unsigned int flags); +UV_EXTERN int uv_fs_event_stop(uv_fs_event_t* handle); +UV_EXTERN int uv_fs_event_getpath(uv_fs_event_t* handle, + char* buffer, + size_t* size); + +UV_EXTERN int uv_ip4_addr(const char* ip, int port, struct sockaddr_in* addr); +UV_EXTERN int uv_ip6_addr(const char* ip, int port, struct sockaddr_in6* addr); + +UV_EXTERN int uv_ip4_name(const struct sockaddr_in* src, char* dst, size_t size); +UV_EXTERN int uv_ip6_name(const struct sockaddr_in6* src, char* dst, size_t size); + +UV_EXTERN int uv_inet_ntop(int af, const void* src, char* dst, size_t size); +UV_EXTERN int uv_inet_pton(int af, const char* src, void* dst); + +#if defined(IF_NAMESIZE) +# define UV_IF_NAMESIZE (IF_NAMESIZE + 1) +#elif defined(IFNAMSIZ) +# define UV_IF_NAMESIZE (IFNAMSIZ + 1) +#else +# define UV_IF_NAMESIZE (16 + 1) +#endif + +UV_EXTERN int uv_if_indextoname(unsigned int ifindex, + char* buffer, + size_t* size); +UV_EXTERN int uv_if_indextoiid(unsigned int ifindex, + char* buffer, + size_t* size); + +UV_EXTERN int uv_exepath(char* buffer, size_t* size); + +UV_EXTERN int uv_cwd(char* buffer, size_t* size); + +UV_EXTERN int uv_chdir(const char* dir); + +UV_EXTERN uint64_t uv_get_free_memory(void); +UV_EXTERN uint64_t uv_get_total_memory(void); + +UV_EXTERN uint64_t uv_hrtime(void); + +UV_EXTERN void uv_disable_stdio_inheritance(void); + +UV_EXTERN int uv_dlopen(const char* filename, uv_lib_t* lib); +UV_EXTERN void uv_dlclose(uv_lib_t* lib); +UV_EXTERN int uv_dlsym(uv_lib_t* lib, const char* name, void** ptr); +UV_EXTERN const char* uv_dlerror(const uv_lib_t* lib); + +UV_EXTERN int uv_mutex_init(uv_mutex_t* handle); +UV_EXTERN int uv_mutex_init_recursive(uv_mutex_t* handle); +UV_EXTERN void uv_mutex_destroy(uv_mutex_t* handle); +UV_EXTERN void uv_mutex_lock(uv_mutex_t* handle); +UV_EXTERN int uv_mutex_trylock(uv_mutex_t* handle); +UV_EXTERN void uv_mutex_unlock(uv_mutex_t* handle); + +UV_EXTERN int uv_rwlock_init(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_destroy(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_rdlock(uv_rwlock_t* rwlock); +UV_EXTERN int uv_rwlock_tryrdlock(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_rdunlock(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_wrlock(uv_rwlock_t* rwlock); +UV_EXTERN int uv_rwlock_trywrlock(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_wrunlock(uv_rwlock_t* rwlock); + +UV_EXTERN int uv_sem_init(uv_sem_t* sem, unsigned int value); +UV_EXTERN void uv_sem_destroy(uv_sem_t* sem); +UV_EXTERN void uv_sem_post(uv_sem_t* sem); +UV_EXTERN void uv_sem_wait(uv_sem_t* sem); +UV_EXTERN int uv_sem_trywait(uv_sem_t* sem); + +UV_EXTERN int uv_cond_init(uv_cond_t* cond); +UV_EXTERN void uv_cond_destroy(uv_cond_t* cond); +UV_EXTERN void uv_cond_signal(uv_cond_t* cond); +UV_EXTERN void uv_cond_broadcast(uv_cond_t* cond); + +UV_EXTERN int uv_barrier_init(uv_barrier_t* barrier, unsigned int count); +UV_EXTERN void uv_barrier_destroy(uv_barrier_t* barrier); +UV_EXTERN int uv_barrier_wait(uv_barrier_t* barrier); + +UV_EXTERN void uv_cond_wait(uv_cond_t* cond, uv_mutex_t* mutex); +UV_EXTERN int uv_cond_timedwait(uv_cond_t* cond, + uv_mutex_t* mutex, + uint64_t timeout); + +UV_EXTERN void uv_once(uv_once_t* guard, void (*callback)(void)); + +UV_EXTERN int uv_key_create(uv_key_t* key); +UV_EXTERN void uv_key_delete(uv_key_t* key); +UV_EXTERN void* uv_key_get(uv_key_t* key); +UV_EXTERN void uv_key_set(uv_key_t* key, void* value); + +typedef void (*uv_thread_cb)(void* arg); + +UV_EXTERN int uv_thread_create(uv_thread_t* tid, uv_thread_cb entry, void* arg); +UV_EXTERN uv_thread_t uv_thread_self(void); +UV_EXTERN int uv_thread_join(uv_thread_t *tid); +UV_EXTERN int uv_thread_equal(const uv_thread_t* t1, const uv_thread_t* t2); + +/* The presence of these unions force similar struct layout. */ +#define XX(_, name) uv_ ## name ## _t name; +union uv_any_handle { + UV_HANDLE_TYPE_MAP(XX) +}; + +union uv_any_req { + UV_REQ_TYPE_MAP(XX) +}; +#undef XX + + +struct uv_loop_s { + /* User data - use this for whatever. */ + void* data; + /* Loop reference counting. */ + unsigned int active_handles; + void* handle_queue[2]; + union { + void* unused[2]; + unsigned int count; + } active_reqs; + /* Internal flag to signal loop stop. */ + unsigned int stop_flag; + UV_LOOP_PRIVATE_FIELDS +}; + +UV_EXTERN void* uv_loop_get_data(const uv_loop_t*); +UV_EXTERN void uv_loop_set_data(uv_loop_t*, void* data); + +/* Don't export the private CPP symbols. */ +#undef UV_HANDLE_TYPE_PRIVATE +#undef UV_REQ_TYPE_PRIVATE +#undef UV_REQ_PRIVATE_FIELDS +#undef UV_STREAM_PRIVATE_FIELDS +#undef UV_TCP_PRIVATE_FIELDS +#undef UV_PREPARE_PRIVATE_FIELDS +#undef UV_CHECK_PRIVATE_FIELDS +#undef UV_IDLE_PRIVATE_FIELDS +#undef UV_ASYNC_PRIVATE_FIELDS +#undef UV_TIMER_PRIVATE_FIELDS +#undef UV_GETADDRINFO_PRIVATE_FIELDS +#undef UV_GETNAMEINFO_PRIVATE_FIELDS +#undef UV_FS_REQ_PRIVATE_FIELDS +#undef UV_WORK_PRIVATE_FIELDS +#undef UV_FS_EVENT_PRIVATE_FIELDS +#undef UV_SIGNAL_PRIVATE_FIELDS +#undef UV_LOOP_PRIVATE_FIELDS +#undef UV_LOOP_PRIVATE_PLATFORM_FIELDS +#undef UV__ERR + +#ifdef __cplusplus +} +#endif +#endif /* UV_H */ diff --git a/extern/libuv/uv/aix.h b/extern/libuv/uv/aix.h new file mode 100755 index 0000000000..7dc992fa6d --- /dev/null +++ b/extern/libuv/uv/aix.h @@ -0,0 +1,32 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_AIX_H +#define UV_AIX_H + +#define UV_PLATFORM_LOOP_FIELDS \ + int fs_fd; \ + +#define UV_PLATFORM_FS_EVENT_FIELDS \ + uv__io_t event_watcher; \ + char *dir_filename; \ + +#endif /* UV_AIX_H */ diff --git a/extern/libuv/uv/android-ifaddrs.h b/extern/libuv/uv/android-ifaddrs.h new file mode 100755 index 0000000000..9cd19fec12 --- /dev/null +++ b/extern/libuv/uv/android-ifaddrs.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 1995, 1999 + * Berkeley Software Design, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * THIS SOFTWARE IS PROVIDED BY Berkeley Software Design, Inc. ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL Berkeley Software Design, Inc. BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * BSDI ifaddrs.h,v 2.5 2000/02/23 14:51:59 dab Exp + */ + +#ifndef _IFADDRS_H_ +#define _IFADDRS_H_ + +struct ifaddrs { + struct ifaddrs *ifa_next; + char *ifa_name; + unsigned int ifa_flags; + struct sockaddr *ifa_addr; + struct sockaddr *ifa_netmask; + struct sockaddr *ifa_dstaddr; + void *ifa_data; +}; + +/* + * This may have been defined in . Note that if is + * to be included it must be included before this header file. + */ +#ifndef ifa_broadaddr +#define ifa_broadaddr ifa_dstaddr /* broadcast address interface */ +#endif + +#include + +__BEGIN_DECLS +extern int getifaddrs(struct ifaddrs **ifap); +extern void freeifaddrs(struct ifaddrs *ifa); +__END_DECLS + +#endif diff --git a/extern/libuv/uv/bsd.h b/extern/libuv/uv/bsd.h new file mode 100755 index 0000000000..2d72b3d771 --- /dev/null +++ b/extern/libuv/uv/bsd.h @@ -0,0 +1,34 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_BSD_H +#define UV_BSD_H + +#define UV_PLATFORM_FS_EVENT_FIELDS \ + uv__io_t event_watcher; \ + +#define UV_IO_PRIVATE_PLATFORM_FIELDS \ + int rcount; \ + int wcount; \ + +#define UV_HAVE_KQUEUE 1 + +#endif /* UV_BSD_H */ diff --git a/extern/libuv/uv/darwin.h b/extern/libuv/uv/darwin.h new file mode 100755 index 0000000000..d226415820 --- /dev/null +++ b/extern/libuv/uv/darwin.h @@ -0,0 +1,61 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_DARWIN_H +#define UV_DARWIN_H + +#if defined(__APPLE__) && defined(__MACH__) +# include +# include +# include +# include +# define UV_PLATFORM_SEM_T semaphore_t +#endif + +#define UV_IO_PRIVATE_PLATFORM_FIELDS \ + int rcount; \ + int wcount; \ + +#define UV_PLATFORM_LOOP_FIELDS \ + uv_thread_t cf_thread; \ + void* _cf_reserved; \ + void* cf_state; \ + uv_mutex_t cf_mutex; \ + uv_sem_t cf_sem; \ + void* cf_signals[2]; \ + +#define UV_PLATFORM_FS_EVENT_FIELDS \ + uv__io_t event_watcher; \ + char* realpath; \ + int realpath_len; \ + int cf_flags; \ + uv_async_t* cf_cb; \ + void* cf_events[2]; \ + void* cf_member[2]; \ + int cf_error; \ + uv_mutex_t cf_mutex; \ + +#define UV_STREAM_PRIVATE_PLATFORM_FIELDS \ + void* select; \ + +#define UV_HAVE_KQUEUE 1 + +#endif /* UV_DARWIN_H */ diff --git a/extern/libuv/uv/errno.h b/extern/libuv/uv/errno.h new file mode 100755 index 0000000000..8eeb95de31 --- /dev/null +++ b/extern/libuv/uv/errno.h @@ -0,0 +1,443 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_ERRNO_H_ +#define UV_ERRNO_H_ + +#include +#if EDOM > 0 +# define UV__ERR(x) (-(x)) +#else +# define UV__ERR(x) (x) +#endif + +#define UV__EOF (-4095) +#define UV__UNKNOWN (-4094) + +#define UV__EAI_ADDRFAMILY (-3000) +#define UV__EAI_AGAIN (-3001) +#define UV__EAI_BADFLAGS (-3002) +#define UV__EAI_CANCELED (-3003) +#define UV__EAI_FAIL (-3004) +#define UV__EAI_FAMILY (-3005) +#define UV__EAI_MEMORY (-3006) +#define UV__EAI_NODATA (-3007) +#define UV__EAI_NONAME (-3008) +#define UV__EAI_OVERFLOW (-3009) +#define UV__EAI_SERVICE (-3010) +#define UV__EAI_SOCKTYPE (-3011) +#define UV__EAI_BADHINTS (-3013) +#define UV__EAI_PROTOCOL (-3014) + +/* Only map to the system errno on non-Windows platforms. It's apparently + * a fairly common practice for Windows programmers to redefine errno codes. + */ +#if defined(E2BIG) && !defined(_WIN32) +# define UV__E2BIG UV__ERR(E2BIG) +#else +# define UV__E2BIG (-4093) +#endif + +#if defined(EACCES) && !defined(_WIN32) +# define UV__EACCES UV__ERR(EACCES) +#else +# define UV__EACCES (-4092) +#endif + +#if defined(EADDRINUSE) && !defined(_WIN32) +# define UV__EADDRINUSE UV__ERR(EADDRINUSE) +#else +# define UV__EADDRINUSE (-4091) +#endif + +#if defined(EADDRNOTAVAIL) && !defined(_WIN32) +# define UV__EADDRNOTAVAIL UV__ERR(EADDRNOTAVAIL) +#else +# define UV__EADDRNOTAVAIL (-4090) +#endif + +#if defined(EAFNOSUPPORT) && !defined(_WIN32) +# define UV__EAFNOSUPPORT UV__ERR(EAFNOSUPPORT) +#else +# define UV__EAFNOSUPPORT (-4089) +#endif + +#if defined(EAGAIN) && !defined(_WIN32) +# define UV__EAGAIN UV__ERR(EAGAIN) +#else +# define UV__EAGAIN (-4088) +#endif + +#if defined(EALREADY) && !defined(_WIN32) +# define UV__EALREADY UV__ERR(EALREADY) +#else +# define UV__EALREADY (-4084) +#endif + +#if defined(EBADF) && !defined(_WIN32) +# define UV__EBADF UV__ERR(EBADF) +#else +# define UV__EBADF (-4083) +#endif + +#if defined(EBUSY) && !defined(_WIN32) +# define UV__EBUSY UV__ERR(EBUSY) +#else +# define UV__EBUSY (-4082) +#endif + +#if defined(ECANCELED) && !defined(_WIN32) +# define UV__ECANCELED UV__ERR(ECANCELED) +#else +# define UV__ECANCELED (-4081) +#endif + +#if defined(ECHARSET) && !defined(_WIN32) +# define UV__ECHARSET UV__ERR(ECHARSET) +#else +# define UV__ECHARSET (-4080) +#endif + +#if defined(ECONNABORTED) && !defined(_WIN32) +# define UV__ECONNABORTED UV__ERR(ECONNABORTED) +#else +# define UV__ECONNABORTED (-4079) +#endif + +#if defined(ECONNREFUSED) && !defined(_WIN32) +# define UV__ECONNREFUSED UV__ERR(ECONNREFUSED) +#else +# define UV__ECONNREFUSED (-4078) +#endif + +#if defined(ECONNRESET) && !defined(_WIN32) +# define UV__ECONNRESET UV__ERR(ECONNRESET) +#else +# define UV__ECONNRESET (-4077) +#endif + +#if defined(EDESTADDRREQ) && !defined(_WIN32) +# define UV__EDESTADDRREQ UV__ERR(EDESTADDRREQ) +#else +# define UV__EDESTADDRREQ (-4076) +#endif + +#if defined(EEXIST) && !defined(_WIN32) +# define UV__EEXIST UV__ERR(EEXIST) +#else +# define UV__EEXIST (-4075) +#endif + +#if defined(EFAULT) && !defined(_WIN32) +# define UV__EFAULT UV__ERR(EFAULT) +#else +# define UV__EFAULT (-4074) +#endif + +#if defined(EHOSTUNREACH) && !defined(_WIN32) +# define UV__EHOSTUNREACH UV__ERR(EHOSTUNREACH) +#else +# define UV__EHOSTUNREACH (-4073) +#endif + +#if defined(EINTR) && !defined(_WIN32) +# define UV__EINTR UV__ERR(EINTR) +#else +# define UV__EINTR (-4072) +#endif + +#if defined(EINVAL) && !defined(_WIN32) +# define UV__EINVAL UV__ERR(EINVAL) +#else +# define UV__EINVAL (-4071) +#endif + +#if defined(EIO) && !defined(_WIN32) +# define UV__EIO UV__ERR(EIO) +#else +# define UV__EIO (-4070) +#endif + +#if defined(EISCONN) && !defined(_WIN32) +# define UV__EISCONN UV__ERR(EISCONN) +#else +# define UV__EISCONN (-4069) +#endif + +#if defined(EISDIR) && !defined(_WIN32) +# define UV__EISDIR UV__ERR(EISDIR) +#else +# define UV__EISDIR (-4068) +#endif + +#if defined(ELOOP) && !defined(_WIN32) +# define UV__ELOOP UV__ERR(ELOOP) +#else +# define UV__ELOOP (-4067) +#endif + +#if defined(EMFILE) && !defined(_WIN32) +# define UV__EMFILE UV__ERR(EMFILE) +#else +# define UV__EMFILE (-4066) +#endif + +#if defined(EMSGSIZE) && !defined(_WIN32) +# define UV__EMSGSIZE UV__ERR(EMSGSIZE) +#else +# define UV__EMSGSIZE (-4065) +#endif + +#if defined(ENAMETOOLONG) && !defined(_WIN32) +# define UV__ENAMETOOLONG UV__ERR(ENAMETOOLONG) +#else +# define UV__ENAMETOOLONG (-4064) +#endif + +#if defined(ENETDOWN) && !defined(_WIN32) +# define UV__ENETDOWN UV__ERR(ENETDOWN) +#else +# define UV__ENETDOWN (-4063) +#endif + +#if defined(ENETUNREACH) && !defined(_WIN32) +# define UV__ENETUNREACH UV__ERR(ENETUNREACH) +#else +# define UV__ENETUNREACH (-4062) +#endif + +#if defined(ENFILE) && !defined(_WIN32) +# define UV__ENFILE UV__ERR(ENFILE) +#else +# define UV__ENFILE (-4061) +#endif + +#if defined(ENOBUFS) && !defined(_WIN32) +# define UV__ENOBUFS UV__ERR(ENOBUFS) +#else +# define UV__ENOBUFS (-4060) +#endif + +#if defined(ENODEV) && !defined(_WIN32) +# define UV__ENODEV UV__ERR(ENODEV) +#else +# define UV__ENODEV (-4059) +#endif + +#if defined(ENOENT) && !defined(_WIN32) +# define UV__ENOENT UV__ERR(ENOENT) +#else +# define UV__ENOENT (-4058) +#endif + +#if defined(ENOMEM) && !defined(_WIN32) +# define UV__ENOMEM UV__ERR(ENOMEM) +#else +# define UV__ENOMEM (-4057) +#endif + +#if defined(ENONET) && !defined(_WIN32) +# define UV__ENONET UV__ERR(ENONET) +#else +# define UV__ENONET (-4056) +#endif + +#if defined(ENOSPC) && !defined(_WIN32) +# define UV__ENOSPC UV__ERR(ENOSPC) +#else +# define UV__ENOSPC (-4055) +#endif + +#if defined(ENOSYS) && !defined(_WIN32) +# define UV__ENOSYS UV__ERR(ENOSYS) +#else +# define UV__ENOSYS (-4054) +#endif + +#if defined(ENOTCONN) && !defined(_WIN32) +# define UV__ENOTCONN UV__ERR(ENOTCONN) +#else +# define UV__ENOTCONN (-4053) +#endif + +#if defined(ENOTDIR) && !defined(_WIN32) +# define UV__ENOTDIR UV__ERR(ENOTDIR) +#else +# define UV__ENOTDIR (-4052) +#endif + +#if defined(ENOTEMPTY) && !defined(_WIN32) +# define UV__ENOTEMPTY UV__ERR(ENOTEMPTY) +#else +# define UV__ENOTEMPTY (-4051) +#endif + +#if defined(ENOTSOCK) && !defined(_WIN32) +# define UV__ENOTSOCK UV__ERR(ENOTSOCK) +#else +# define UV__ENOTSOCK (-4050) +#endif + +#if defined(ENOTSUP) && !defined(_WIN32) +# define UV__ENOTSUP UV__ERR(ENOTSUP) +#else +# define UV__ENOTSUP (-4049) +#endif + +#if defined(EPERM) && !defined(_WIN32) +# define UV__EPERM UV__ERR(EPERM) +#else +# define UV__EPERM (-4048) +#endif + +#if defined(EPIPE) && !defined(_WIN32) +# define UV__EPIPE UV__ERR(EPIPE) +#else +# define UV__EPIPE (-4047) +#endif + +#if defined(EPROTO) && !defined(_WIN32) +# define UV__EPROTO UV__ERR(EPROTO) +#else +# define UV__EPROTO UV__ERR(4046) +#endif + +#if defined(EPROTONOSUPPORT) && !defined(_WIN32) +# define UV__EPROTONOSUPPORT UV__ERR(EPROTONOSUPPORT) +#else +# define UV__EPROTONOSUPPORT (-4045) +#endif + +#if defined(EPROTOTYPE) && !defined(_WIN32) +# define UV__EPROTOTYPE UV__ERR(EPROTOTYPE) +#else +# define UV__EPROTOTYPE (-4044) +#endif + +#if defined(EROFS) && !defined(_WIN32) +# define UV__EROFS UV__ERR(EROFS) +#else +# define UV__EROFS (-4043) +#endif + +#if defined(ESHUTDOWN) && !defined(_WIN32) +# define UV__ESHUTDOWN UV__ERR(ESHUTDOWN) +#else +# define UV__ESHUTDOWN (-4042) +#endif + +#if defined(ESPIPE) && !defined(_WIN32) +# define UV__ESPIPE UV__ERR(ESPIPE) +#else +# define UV__ESPIPE (-4041) +#endif + +#if defined(ESRCH) && !defined(_WIN32) +# define UV__ESRCH UV__ERR(ESRCH) +#else +# define UV__ESRCH (-4040) +#endif + +#if defined(ETIMEDOUT) && !defined(_WIN32) +# define UV__ETIMEDOUT UV__ERR(ETIMEDOUT) +#else +# define UV__ETIMEDOUT (-4039) +#endif + +#if defined(ETXTBSY) && !defined(_WIN32) +# define UV__ETXTBSY UV__ERR(ETXTBSY) +#else +# define UV__ETXTBSY (-4038) +#endif + +#if defined(EXDEV) && !defined(_WIN32) +# define UV__EXDEV UV__ERR(EXDEV) +#else +# define UV__EXDEV (-4037) +#endif + +#if defined(EFBIG) && !defined(_WIN32) +# define UV__EFBIG UV__ERR(EFBIG) +#else +# define UV__EFBIG (-4036) +#endif + +#if defined(ENOPROTOOPT) && !defined(_WIN32) +# define UV__ENOPROTOOPT UV__ERR(ENOPROTOOPT) +#else +# define UV__ENOPROTOOPT (-4035) +#endif + +#if defined(ERANGE) && !defined(_WIN32) +# define UV__ERANGE UV__ERR(ERANGE) +#else +# define UV__ERANGE (-4034) +#endif + +#if defined(ENXIO) && !defined(_WIN32) +# define UV__ENXIO UV__ERR(ENXIO) +#else +# define UV__ENXIO (-4033) +#endif + +#if defined(EMLINK) && !defined(_WIN32) +# define UV__EMLINK UV__ERR(EMLINK) +#else +# define UV__EMLINK (-4032) +#endif + +/* EHOSTDOWN is not visible on BSD-like systems when _POSIX_C_SOURCE is + * defined. Fortunately, its value is always 64 so it's possible albeit + * icky to hard-code it. + */ +#if defined(EHOSTDOWN) && !defined(_WIN32) +# define UV__EHOSTDOWN UV__ERR(EHOSTDOWN) +#elif defined(__APPLE__) || \ + defined(__DragonFly__) || \ + defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || \ + defined(__NetBSD__) || \ + defined(__OpenBSD__) +# define UV__EHOSTDOWN (-64) +#else +# define UV__EHOSTDOWN (-4031) +#endif + +#if defined(EREMOTEIO) && !defined(_WIN32) +# define UV__EREMOTEIO UV__ERR(EREMOTEIO) +#else +# define UV__EREMOTEIO (-4030) +#endif + +#if defined(ENOTTY) && !defined(_WIN32) +# define UV__ENOTTY UV__ERR(ENOTTY) +#else +# define UV__ENOTTY (-4029) +#endif + +#if defined(EFTYPE) && !defined(_WIN32) +# define UV__EFTYPE UV__ERR(EFTYPE) +#else +# define UV__EFTYPE (-4028) +#endif + + +#endif /* UV_ERRNO_H_ */ diff --git a/extern/libuv/uv/linux.h b/extern/libuv/uv/linux.h new file mode 100755 index 0000000000..9b38405a19 --- /dev/null +++ b/extern/libuv/uv/linux.h @@ -0,0 +1,34 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_LINUX_H +#define UV_LINUX_H + +#define UV_PLATFORM_LOOP_FIELDS \ + uv__io_t inotify_read_watcher; \ + void* inotify_watchers; \ + int inotify_fd; \ + +#define UV_PLATFORM_FS_EVENT_FIELDS \ + void* watchers[2]; \ + int wd; \ + +#endif /* UV_LINUX_H */ diff --git a/extern/libuv/uv/os390.h b/extern/libuv/uv/os390.h new file mode 100755 index 0000000000..0267d74cbd --- /dev/null +++ b/extern/libuv/uv/os390.h @@ -0,0 +1,33 @@ +/* Copyright libuv project contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_MVS_H +#define UV_MVS_H + +#define UV_PLATFORM_SEM_T long + +#define UV_PLATFORM_LOOP_FIELDS \ + void* ep; \ + +#define UV_PLATFORM_FS_EVENT_FIELDS \ + char rfis_rftok[8]; \ + +#endif /* UV_MVS_H */ diff --git a/extern/libuv/uv/posix.h b/extern/libuv/uv/posix.h new file mode 100755 index 0000000000..9a96634db0 --- /dev/null +++ b/extern/libuv/uv/posix.h @@ -0,0 +1,31 @@ +/* Copyright libuv project contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_POSIX_H +#define UV_POSIX_H + +#define UV_PLATFORM_LOOP_FIELDS \ + struct pollfd* poll_fds; \ + size_t poll_fds_used; \ + size_t poll_fds_size; \ + unsigned char poll_fds_iterating; \ + +#endif /* UV_POSIX_H */ diff --git a/extern/libuv/uv/pthread-barrier.h b/extern/libuv/uv/pthread-barrier.h new file mode 100755 index 0000000000..07db9b8a6a --- /dev/null +++ b/extern/libuv/uv/pthread-barrier.h @@ -0,0 +1,69 @@ +/* +Copyright (c) 2016, Kari Tristan Helgason + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#ifndef _UV_PTHREAD_BARRIER_ +#define _UV_PTHREAD_BARRIER_ +#include +#include +#if !defined(__MVS__) +#include /* sem_t */ +#endif + +#define PTHREAD_BARRIER_SERIAL_THREAD 0x12345 +#define UV__PTHREAD_BARRIER_FALLBACK 1 + +/* + * To maintain ABI compatibility with + * libuv v1.x struct is padded according + * to target platform + */ +#if defined(__ANDROID__) +# define UV_BARRIER_STRUCT_PADDING \ + sizeof(pthread_mutex_t) + \ + sizeof(pthread_cond_t) + \ + sizeof(unsigned int) - \ + sizeof(void *) +#elif defined(__APPLE__) +# define UV_BARRIER_STRUCT_PADDING \ + sizeof(pthread_mutex_t) + \ + 2 * sizeof(sem_t) + \ + 2 * sizeof(unsigned int) - \ + sizeof(void *) +#else +# define UV_BARRIER_STRUCT_PADDING 0 +#endif + +typedef struct { + pthread_mutex_t mutex; + pthread_cond_t cond; + unsigned threshold; + unsigned in; + unsigned out; +} _uv_barrier; + +typedef struct { + _uv_barrier* b; + char _pad[UV_BARRIER_STRUCT_PADDING]; +} pthread_barrier_t; + +int pthread_barrier_init(pthread_barrier_t* barrier, + const void* barrier_attr, + unsigned count); + +int pthread_barrier_wait(pthread_barrier_t* barrier); +int pthread_barrier_destroy(pthread_barrier_t *barrier); + +#endif /* _UV_PTHREAD_BARRIER_ */ diff --git a/extern/libuv/uv/stdint-msvc2008.h b/extern/libuv/uv/stdint-msvc2008.h new file mode 100755 index 0000000000..d02608a597 --- /dev/null +++ b/extern/libuv/uv/stdint-msvc2008.h @@ -0,0 +1,247 @@ +// ISO C9x compliant stdint.h for Microsoft Visual Studio +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// +// Copyright (c) 2006-2008 Alexander Chemeris +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. The name of the author may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_STDINT_H_ // [ +#define _MSC_STDINT_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#include + +// For Visual Studio 6 in C++ mode and for many Visual Studio versions when +// compiling for ARM we should wrap include with 'extern "C++" {}' +// or compiler give many errors like this: +// error C2733: second C linkage of overloaded function 'wmemchr' not allowed +#ifdef __cplusplus +extern "C" { +#endif +# include +#ifdef __cplusplus +} +#endif + +// Define _W64 macros to mark types changing their size, like intptr_t. +#ifndef _W64 +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif + + +// 7.18.1 Integer types + +// 7.18.1.1 Exact-width integer types + +// Visual Studio 6 and Embedded Visual C++ 4 doesn't +// realize that, e.g. char has the same size as __int8 +// so we give up on __intX for them. +#if (_MSC_VER < 1300) + typedef signed char int8_t; + typedef signed short int16_t; + typedef signed int int32_t; + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef unsigned int uint32_t; +#else + typedef signed __int8 int8_t; + typedef signed __int16 int16_t; + typedef signed __int32 int32_t; + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; +#endif +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; + + +// 7.18.1.2 Minimum-width integer types +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; + +// 7.18.1.3 Fastest minimum-width integer types +typedef int8_t int_fast8_t; +typedef int16_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef int64_t int_fast64_t; +typedef uint8_t uint_fast8_t; +typedef uint16_t uint_fast16_t; +typedef uint32_t uint_fast32_t; +typedef uint64_t uint_fast64_t; + +// 7.18.1.4 Integer types capable of holding object pointers +#ifdef _WIN64 // [ + typedef signed __int64 intptr_t; + typedef unsigned __int64 uintptr_t; +#else // _WIN64 ][ + typedef _W64 signed int intptr_t; + typedef _W64 unsigned int uintptr_t; +#endif // _WIN64 ] + +// 7.18.1.5 Greatest-width integer types +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; + + +// 7.18.2 Limits of specified-width integer types + +#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 + +// 7.18.2.1 Limits of exact-width integer types +#define INT8_MIN ((int8_t)_I8_MIN) +#define INT8_MAX _I8_MAX +#define INT16_MIN ((int16_t)_I16_MIN) +#define INT16_MAX _I16_MAX +#define INT32_MIN ((int32_t)_I32_MIN) +#define INT32_MAX _I32_MAX +#define INT64_MIN ((int64_t)_I64_MIN) +#define INT64_MAX _I64_MAX +#define UINT8_MAX _UI8_MAX +#define UINT16_MAX _UI16_MAX +#define UINT32_MAX _UI32_MAX +#define UINT64_MAX _UI64_MAX + +// 7.18.2.2 Limits of minimum-width integer types +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MIN INT64_MIN +#define INT_LEAST64_MAX INT64_MAX +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX + +// 7.18.2.3 Limits of fastest minimum-width integer types +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MIN INT64_MIN +#define INT_FAST64_MAX INT64_MAX +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX + +// 7.18.2.4 Limits of integer types capable of holding object pointers +#ifdef _WIN64 // [ +# define INTPTR_MIN INT64_MIN +# define INTPTR_MAX INT64_MAX +# define UINTPTR_MAX UINT64_MAX +#else // _WIN64 ][ +# define INTPTR_MIN INT32_MIN +# define INTPTR_MAX INT32_MAX +# define UINTPTR_MAX UINT32_MAX +#endif // _WIN64 ] + +// 7.18.2.5 Limits of greatest-width integer types +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#define UINTMAX_MAX UINT64_MAX + +// 7.18.3 Limits of other integer types + +#ifdef _WIN64 // [ +# define PTRDIFF_MIN _I64_MIN +# define PTRDIFF_MAX _I64_MAX +#else // _WIN64 ][ +# define PTRDIFF_MIN _I32_MIN +# define PTRDIFF_MAX _I32_MAX +#endif // _WIN64 ] + +#define SIG_ATOMIC_MIN INT_MIN +#define SIG_ATOMIC_MAX INT_MAX + +#ifndef SIZE_MAX // [ +# ifdef _WIN64 // [ +# define SIZE_MAX _UI64_MAX +# else // _WIN64 ][ +# define SIZE_MAX _UI32_MAX +# endif // _WIN64 ] +#endif // SIZE_MAX ] + +// WCHAR_MIN and WCHAR_MAX are also defined in +#ifndef WCHAR_MIN // [ +# define WCHAR_MIN 0 +#endif // WCHAR_MIN ] +#ifndef WCHAR_MAX // [ +# define WCHAR_MAX _UI16_MAX +#endif // WCHAR_MAX ] + +#define WINT_MIN 0 +#define WINT_MAX _UI16_MAX + +#endif // __STDC_LIMIT_MACROS ] + + +// 7.18.4 Limits of other integer types + +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 + +// 7.18.4.1 Macros for minimum-width integer constants + +#define INT8_C(val) val##i8 +#define INT16_C(val) val##i16 +#define INT32_C(val) val##i32 +#define INT64_C(val) val##i64 + +#define UINT8_C(val) val##ui8 +#define UINT16_C(val) val##ui16 +#define UINT32_C(val) val##ui32 +#define UINT64_C(val) val##ui64 + +// 7.18.4.2 Macros for greatest-width integer constants +#define INTMAX_C INT64_C +#define UINTMAX_C UINT64_C + +#endif // __STDC_CONSTANT_MACROS ] + + +#endif // _MSC_STDINT_H_ ] diff --git a/extern/libuv/uv/sunos.h b/extern/libuv/uv/sunos.h new file mode 100755 index 0000000000..042166424e --- /dev/null +++ b/extern/libuv/uv/sunos.h @@ -0,0 +1,44 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_SUNOS_H +#define UV_SUNOS_H + +#include +#include + +/* For the sake of convenience and reduced #ifdef-ery in src/unix/sunos.c, + * add the fs_event fields even when this version of SunOS doesn't support + * file watching. + */ +#define UV_PLATFORM_LOOP_FIELDS \ + uv__io_t fs_event_watcher; \ + int fs_fd; \ + +#if defined(PORT_SOURCE_FILE) + +# define UV_PLATFORM_FS_EVENT_FIELDS \ + file_obj_t fo; \ + int fd; \ + +#endif /* defined(PORT_SOURCE_FILE) */ + +#endif /* UV_SUNOS_H */ diff --git a/extern/libuv/uv/threadpool.h b/extern/libuv/uv/threadpool.h new file mode 100755 index 0000000000..9708ebdd53 --- /dev/null +++ b/extern/libuv/uv/threadpool.h @@ -0,0 +1,37 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* + * This file is private to libuv. It provides common functionality to both + * Windows and Unix backends. + */ + +#ifndef UV_THREADPOOL_H_ +#define UV_THREADPOOL_H_ + +struct uv__work { + void (*work)(struct uv__work *w); + void (*done)(struct uv__work *w, int status); + struct uv_loop_s* loop; + void* wq[2]; +}; + +#endif /* UV_THREADPOOL_H_ */ diff --git a/extern/libuv/uv/tree.h b/extern/libuv/uv/tree.h new file mode 100755 index 0000000000..f936416e3d --- /dev/null +++ b/extern/libuv/uv/tree.h @@ -0,0 +1,768 @@ +/*- + * Copyright 2002 Niels Provos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef UV_TREE_H_ +#define UV_TREE_H_ + +#ifndef UV__UNUSED +# if __GNUC__ +# define UV__UNUSED __attribute__((unused)) +# else +# define UV__UNUSED +# endif +#endif + +/* + * This file defines data structures for different types of trees: + * splay trees and red-black trees. + * + * A splay tree is a self-organizing data structure. Every operation + * on the tree causes a splay to happen. The splay moves the requested + * node to the root of the tree and partly rebalances it. + * + * This has the benefit that request locality causes faster lookups as + * the requested nodes move to the top of the tree. On the other hand, + * every lookup causes memory writes. + * + * The Balance Theorem bounds the total access time for m operations + * and n inserts on an initially empty tree as O((m + n)lg n). The + * amortized cost for a sequence of m accesses to a splay tree is O(lg n); + * + * A red-black tree is a binary search tree with the node color as an + * extra attribute. It fulfills a set of conditions: + * - every search path from the root to a leaf consists of the + * same number of black nodes, + * - each red node (except for the root) has a black parent, + * - each leaf node is black. + * + * Every operation on a red-black tree is bounded as O(lg n). + * The maximum height of a red-black tree is 2lg (n+1). + */ + +#define SPLAY_HEAD(name, type) \ +struct name { \ + struct type *sph_root; /* root of the tree */ \ +} + +#define SPLAY_INITIALIZER(root) \ + { NULL } + +#define SPLAY_INIT(root) do { \ + (root)->sph_root = NULL; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ENTRY(type) \ +struct { \ + struct type *spe_left; /* left element */ \ + struct type *spe_right; /* right element */ \ +} + +#define SPLAY_LEFT(elm, field) (elm)->field.spe_left +#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right +#define SPLAY_ROOT(head) (head)->sph_root +#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL) + +/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */ +#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \ + SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \ + SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ + (head)->sph_root = tmp; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \ + SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \ + SPLAY_LEFT(tmp, field) = (head)->sph_root; \ + (head)->sph_root = tmp; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_LINKLEFT(head, tmp, field) do { \ + SPLAY_LEFT(tmp, field) = (head)->sph_root; \ + tmp = (head)->sph_root; \ + (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_LINKRIGHT(head, tmp, field) do { \ + SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ + tmp = (head)->sph_root; \ + (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \ + SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \ + SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field); \ + SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \ + SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \ +} while (/*CONSTCOND*/ 0) + +/* Generates prototypes and inline functions */ + +#define SPLAY_PROTOTYPE(name, type, field, cmp) \ +void name##_SPLAY(struct name *, struct type *); \ +void name##_SPLAY_MINMAX(struct name *, int); \ +struct type *name##_SPLAY_INSERT(struct name *, struct type *); \ +struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \ + \ +/* Finds the node with the same key as elm */ \ +static __inline struct type * \ +name##_SPLAY_FIND(struct name *head, struct type *elm) \ +{ \ + if (SPLAY_EMPTY(head)) \ + return(NULL); \ + name##_SPLAY(head, elm); \ + if ((cmp)(elm, (head)->sph_root) == 0) \ + return (head->sph_root); \ + return (NULL); \ +} \ + \ +static __inline struct type * \ +name##_SPLAY_NEXT(struct name *head, struct type *elm) \ +{ \ + name##_SPLAY(head, elm); \ + if (SPLAY_RIGHT(elm, field) != NULL) { \ + elm = SPLAY_RIGHT(elm, field); \ + while (SPLAY_LEFT(elm, field) != NULL) { \ + elm = SPLAY_LEFT(elm, field); \ + } \ + } else \ + elm = NULL; \ + return (elm); \ +} \ + \ +static __inline struct type * \ +name##_SPLAY_MIN_MAX(struct name *head, int val) \ +{ \ + name##_SPLAY_MINMAX(head, val); \ + return (SPLAY_ROOT(head)); \ +} + +/* Main splay operation. + * Moves node close to the key of elm to top + */ +#define SPLAY_GENERATE(name, type, field, cmp) \ +struct type * \ +name##_SPLAY_INSERT(struct name *head, struct type *elm) \ +{ \ + if (SPLAY_EMPTY(head)) { \ + SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \ + } else { \ + int __comp; \ + name##_SPLAY(head, elm); \ + __comp = (cmp)(elm, (head)->sph_root); \ + if(__comp < 0) { \ + SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field); \ + SPLAY_RIGHT(elm, field) = (head)->sph_root; \ + SPLAY_LEFT((head)->sph_root, field) = NULL; \ + } else if (__comp > 0) { \ + SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field); \ + SPLAY_LEFT(elm, field) = (head)->sph_root; \ + SPLAY_RIGHT((head)->sph_root, field) = NULL; \ + } else \ + return ((head)->sph_root); \ + } \ + (head)->sph_root = (elm); \ + return (NULL); \ +} \ + \ +struct type * \ +name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ +{ \ + struct type *__tmp; \ + if (SPLAY_EMPTY(head)) \ + return (NULL); \ + name##_SPLAY(head, elm); \ + if ((cmp)(elm, (head)->sph_root) == 0) { \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \ + (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ + } else { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ + name##_SPLAY(head, elm); \ + SPLAY_RIGHT((head)->sph_root, field) = __tmp; \ + } \ + return (elm); \ + } \ + return (NULL); \ +} \ + \ +void \ +name##_SPLAY(struct name *head, struct type *elm) \ +{ \ + struct type __node, *__left, *__right, *__tmp; \ + int __comp; \ + \ + SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL; \ + __left = __right = &__node; \ + \ + while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \ + if (__comp < 0) { \ + __tmp = SPLAY_LEFT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if ((cmp)(elm, __tmp) < 0){ \ + SPLAY_ROTATE_RIGHT(head, __tmp, field); \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL) \ + break; \ + } \ + SPLAY_LINKLEFT(head, __right, field); \ + } else if (__comp > 0) { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if ((cmp)(elm, __tmp) > 0){ \ + SPLAY_ROTATE_LEFT(head, __tmp, field); \ + if (SPLAY_RIGHT((head)->sph_root, field) == NULL) \ + break; \ + } \ + SPLAY_LINKRIGHT(head, __left, field); \ + } \ + } \ + SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ +} \ + \ +/* Splay with either the minimum or the maximum element \ + * Used to find minimum or maximum element in tree. \ + */ \ +void name##_SPLAY_MINMAX(struct name *head, int __comp) \ +{ \ + struct type __node, *__left, *__right, *__tmp; \ + \ + SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL; \ + __left = __right = &__node; \ + \ + while (1) { \ + if (__comp < 0) { \ + __tmp = SPLAY_LEFT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if (__comp < 0){ \ + SPLAY_ROTATE_RIGHT(head, __tmp, field); \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL) \ + break; \ + } \ + SPLAY_LINKLEFT(head, __right, field); \ + } else if (__comp > 0) { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if (__comp > 0) { \ + SPLAY_ROTATE_LEFT(head, __tmp, field); \ + if (SPLAY_RIGHT((head)->sph_root, field) == NULL) \ + break; \ + } \ + SPLAY_LINKRIGHT(head, __left, field); \ + } \ + } \ + SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ +} + +#define SPLAY_NEGINF -1 +#define SPLAY_INF 1 + +#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y) +#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y) +#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y) +#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y) +#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \ + : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF)) +#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \ + : name##_SPLAY_MIN_MAX(x, SPLAY_INF)) + +#define SPLAY_FOREACH(x, name, head) \ + for ((x) = SPLAY_MIN(name, head); \ + (x) != NULL; \ + (x) = SPLAY_NEXT(name, head, x)) + +/* Macros that define a red-black tree */ +#define RB_HEAD(name, type) \ +struct name { \ + struct type *rbh_root; /* root of the tree */ \ +} + +#define RB_INITIALIZER(root) \ + { NULL } + +#define RB_INIT(root) do { \ + (root)->rbh_root = NULL; \ +} while (/*CONSTCOND*/ 0) + +#define RB_BLACK 0 +#define RB_RED 1 +#define RB_ENTRY(type) \ +struct { \ + struct type *rbe_left; /* left element */ \ + struct type *rbe_right; /* right element */ \ + struct type *rbe_parent; /* parent element */ \ + int rbe_color; /* node color */ \ +} + +#define RB_LEFT(elm, field) (elm)->field.rbe_left +#define RB_RIGHT(elm, field) (elm)->field.rbe_right +#define RB_PARENT(elm, field) (elm)->field.rbe_parent +#define RB_COLOR(elm, field) (elm)->field.rbe_color +#define RB_ROOT(head) (head)->rbh_root +#define RB_EMPTY(head) (RB_ROOT(head) == NULL) + +#define RB_SET(elm, parent, field) do { \ + RB_PARENT(elm, field) = parent; \ + RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ + RB_COLOR(elm, field) = RB_RED; \ +} while (/*CONSTCOND*/ 0) + +#define RB_SET_BLACKRED(black, red, field) do { \ + RB_COLOR(black, field) = RB_BLACK; \ + RB_COLOR(red, field) = RB_RED; \ +} while (/*CONSTCOND*/ 0) + +#ifndef RB_AUGMENT +#define RB_AUGMENT(x) do {} while (0) +#endif + +#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \ + (tmp) = RB_RIGHT(elm, field); \ + if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ + RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_LEFT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ +} while (/*CONSTCOND*/ 0) + +#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \ + (tmp) = RB_LEFT(elm, field); \ + if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ + RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_RIGHT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ +} while (/*CONSTCOND*/ 0) + +/* Generates prototypes and inline functions */ +#define RB_PROTOTYPE(name, type, field, cmp) \ + RB_PROTOTYPE_INTERNAL(name, type, field, cmp,) +#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ + RB_PROTOTYPE_INTERNAL(name, type, field, cmp, UV__UNUSED static) +#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ +attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \ +attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\ +attr struct type *name##_RB_REMOVE(struct name *, struct type *); \ +attr struct type *name##_RB_INSERT(struct name *, struct type *); \ +attr struct type *name##_RB_FIND(struct name *, struct type *); \ +attr struct type *name##_RB_NFIND(struct name *, struct type *); \ +attr struct type *name##_RB_NEXT(struct type *); \ +attr struct type *name##_RB_PREV(struct type *); \ +attr struct type *name##_RB_MINMAX(struct name *, int); \ + \ + +/* Main rb operation. + * Moves node close to the key of elm to top + */ +#define RB_GENERATE(name, type, field, cmp) \ + RB_GENERATE_INTERNAL(name, type, field, cmp,) +#define RB_GENERATE_STATIC(name, type, field, cmp) \ + RB_GENERATE_INTERNAL(name, type, field, cmp, UV__UNUSED static) +#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ +attr void \ +name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \ +{ \ + struct type *parent, *gparent, *tmp; \ + while ((parent = RB_PARENT(elm, field)) != NULL && \ + RB_COLOR(parent, field) == RB_RED) { \ + gparent = RB_PARENT(parent, field); \ + if (parent == RB_LEFT(gparent, field)) { \ + tmp = RB_RIGHT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field); \ + elm = gparent; \ + continue; \ + } \ + if (RB_RIGHT(parent, field) == elm) { \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_RIGHT(head, gparent, tmp, field); \ + } else { \ + tmp = RB_LEFT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field); \ + elm = gparent; \ + continue; \ + } \ + if (RB_LEFT(parent, field) == elm) { \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_LEFT(head, gparent, tmp, field); \ + } \ + } \ + RB_COLOR(head->rbh_root, field) = RB_BLACK; \ +} \ + \ +attr void \ +name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, \ + struct type *elm) \ +{ \ + struct type *tmp; \ + while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \ + elm != RB_ROOT(head)) { \ + if (RB_LEFT(parent, field) == elm) { \ + tmp = RB_RIGHT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + tmp = RB_RIGHT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) { \ + struct type *oleft; \ + if ((oleft = RB_LEFT(tmp, field)) \ + != NULL) \ + RB_COLOR(oleft, field) = RB_BLACK; \ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_RIGHT(head, tmp, oleft, field); \ + tmp = RB_RIGHT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_RIGHT(tmp, field)) \ + RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK; \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + elm = RB_ROOT(head); \ + break; \ + } \ + } else { \ + tmp = RB_LEFT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + tmp = RB_LEFT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) { \ + struct type *oright; \ + if ((oright = RB_RIGHT(tmp, field)) \ + != NULL) \ + RB_COLOR(oright, field) = RB_BLACK; \ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_LEFT(head, tmp, oright, field); \ + tmp = RB_LEFT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_LEFT(tmp, field)) \ + RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK; \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + elm = RB_ROOT(head); \ + break; \ + } \ + } \ + } \ + if (elm) \ + RB_COLOR(elm, field) = RB_BLACK; \ +} \ + \ +attr struct type * \ +name##_RB_REMOVE(struct name *head, struct type *elm) \ +{ \ + struct type *child, *parent, *old = elm; \ + int color; \ + if (RB_LEFT(elm, field) == NULL) \ + child = RB_RIGHT(elm, field); \ + else if (RB_RIGHT(elm, field) == NULL) \ + child = RB_LEFT(elm, field); \ + else { \ + struct type *left; \ + elm = RB_RIGHT(elm, field); \ + while ((left = RB_LEFT(elm, field)) != NULL) \ + elm = left; \ + child = RB_RIGHT(elm, field); \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ + if (RB_PARENT(elm, field) == old) \ + parent = elm; \ + (elm)->field = (old)->field; \ + if (RB_PARENT(old, field)) { \ + if (RB_LEFT(RB_PARENT(old, field), field) == old) \ + RB_LEFT(RB_PARENT(old, field), field) = elm; \ + else \ + RB_RIGHT(RB_PARENT(old, field), field) = elm; \ + RB_AUGMENT(RB_PARENT(old, field)); \ + } else \ + RB_ROOT(head) = elm; \ + RB_PARENT(RB_LEFT(old, field), field) = elm; \ + if (RB_RIGHT(old, field)) \ + RB_PARENT(RB_RIGHT(old, field), field) = elm; \ + if (parent) { \ + left = parent; \ + do { \ + RB_AUGMENT(left); \ + } while ((left = RB_PARENT(left, field)) != NULL); \ + } \ + goto color; \ + } \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ +color: \ + if (color == RB_BLACK) \ + name##_RB_REMOVE_COLOR(head, parent, child); \ + return (old); \ +} \ + \ +/* Inserts a node into the RB tree */ \ +attr struct type * \ +name##_RB_INSERT(struct name *head, struct type *elm) \ +{ \ + struct type *tmp; \ + struct type *parent = NULL; \ + int comp = 0; \ + tmp = RB_ROOT(head); \ + while (tmp) { \ + parent = tmp; \ + comp = (cmp)(elm, parent); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + RB_SET(elm, parent, field); \ + if (parent != NULL) { \ + if (comp < 0) \ + RB_LEFT(parent, field) = elm; \ + else \ + RB_RIGHT(parent, field) = elm; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = elm; \ + name##_RB_INSERT_COLOR(head, elm); \ + return (NULL); \ +} \ + \ +/* Finds the node with the same key as elm */ \ +attr struct type * \ +name##_RB_FIND(struct name *head, struct type *elm) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (NULL); \ +} \ + \ +/* Finds the first node greater than or equal to the search key */ \ +attr struct type * \ +name##_RB_NFIND(struct name *head, struct type *elm) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + struct type *res = NULL; \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) { \ + res = tmp; \ + tmp = RB_LEFT(tmp, field); \ + } \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (res); \ +} \ + \ +/* ARGSUSED */ \ +attr struct type * \ +name##_RB_NEXT(struct type *elm) \ +{ \ + if (RB_RIGHT(elm, field)) { \ + elm = RB_RIGHT(elm, field); \ + while (RB_LEFT(elm, field)) \ + elm = RB_LEFT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ +} \ + \ +/* ARGSUSED */ \ +attr struct type * \ +name##_RB_PREV(struct type *elm) \ +{ \ + if (RB_LEFT(elm, field)) { \ + elm = RB_LEFT(elm, field); \ + while (RB_RIGHT(elm, field)) \ + elm = RB_RIGHT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ +} \ + \ +attr struct type * \ +name##_RB_MINMAX(struct name *head, int val) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + struct type *parent = NULL; \ + while (tmp) { \ + parent = tmp; \ + if (val < 0) \ + tmp = RB_LEFT(tmp, field); \ + else \ + tmp = RB_RIGHT(tmp, field); \ + } \ + return (parent); \ +} + +#define RB_NEGINF -1 +#define RB_INF 1 + +#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) +#define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y) +#define RB_FIND(name, x, y) name##_RB_FIND(x, y) +#define RB_NFIND(name, x, y) name##_RB_NFIND(x, y) +#define RB_NEXT(name, x, y) name##_RB_NEXT(y) +#define RB_PREV(name, x, y) name##_RB_PREV(y) +#define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) +#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) + +#define RB_FOREACH(x, name, head) \ + for ((x) = RB_MIN(name, head); \ + (x) != NULL; \ + (x) = name##_RB_NEXT(x)) + +#define RB_FOREACH_FROM(x, name, y) \ + for ((x) = (y); \ + ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ + (x) = (y)) + +#define RB_FOREACH_SAFE(x, name, head, y) \ + for ((x) = RB_MIN(name, head); \ + ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ + (x) = (y)) + +#define RB_FOREACH_REVERSE(x, name, head) \ + for ((x) = RB_MAX(name, head); \ + (x) != NULL; \ + (x) = name##_RB_PREV(x)) + +#define RB_FOREACH_REVERSE_FROM(x, name, y) \ + for ((x) = (y); \ + ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ + (x) = (y)) + +#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \ + for ((x) = RB_MAX(name, head); \ + ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ + (x) = (y)) + +#endif /* UV_TREE_H_ */ diff --git a/extern/libuv/uv/unix.h b/extern/libuv/uv/unix.h new file mode 100755 index 0000000000..28c6df1ce3 --- /dev/null +++ b/extern/libuv/uv/unix.h @@ -0,0 +1,473 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_UNIX_H +#define UV_UNIX_H + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#if !defined(__MVS__) +#include +#endif +#include +#include + +#ifdef __APPLE__ +#include "../uv/threadpool.h" +#else + +#include "uv/threadpool.h" +#endif + +#if defined(__linux__) +# include "uv/linux.h" +#elif defined (__MVS__) +# include "uv/os390.h" +#elif defined(__PASE__) +# include "uv/posix.h" +#elif defined(_AIX) +# include "uv/aix.h" +#elif defined(__sun) +# include "uv/sunos.h" +#elif defined(__APPLE__) +# include "../uv/darwin.h" +#elif defined(__DragonFly__) || \ + defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || \ + defined(__OpenBSD__) || \ + defined(__NetBSD__) +# include "uv/bsd.h" +#elif defined(__CYGWIN__) || defined(__MSYS__) +# include "uv/posix.h" +#endif + +#ifndef PTHREAD_BARRIER_SERIAL_THREAD +#ifdef __APPLE__ +# include "../uv/pthread-barrier.h" +#else +#include "uv/pthread-barrier." +#endif +#endif + +#ifndef NI_MAXHOST +# define NI_MAXHOST 1025 +#endif + +#ifndef NI_MAXSERV +# define NI_MAXSERV 32 +#endif + +#ifndef UV_IO_PRIVATE_PLATFORM_FIELDS +# define UV_IO_PRIVATE_PLATFORM_FIELDS /* empty */ +#endif + +struct uv__io_s; +struct uv_loop_s; + +typedef void (*uv__io_cb)(struct uv_loop_s* loop, + struct uv__io_s* w, + unsigned int events); +typedef struct uv__io_s uv__io_t; + +struct uv__io_s { + uv__io_cb cb; + void* pending_queue[2]; + void* watcher_queue[2]; + unsigned int pevents; /* Pending event mask i.e. mask at next tick. */ + unsigned int events; /* Current event mask. */ + int fd; + UV_IO_PRIVATE_PLATFORM_FIELDS +}; + +#ifndef UV_PLATFORM_SEM_T +# define UV_PLATFORM_SEM_T sem_t +#endif + +#ifndef UV_PLATFORM_LOOP_FIELDS +# define UV_PLATFORM_LOOP_FIELDS /* empty */ +#endif + +#ifndef UV_PLATFORM_FS_EVENT_FIELDS +# define UV_PLATFORM_FS_EVENT_FIELDS /* empty */ +#endif + +#ifndef UV_STREAM_PRIVATE_PLATFORM_FIELDS +# define UV_STREAM_PRIVATE_PLATFORM_FIELDS /* empty */ +#endif + +/* Note: May be cast to struct iovec. See writev(2). */ +typedef struct uv_buf_t { + char* base; + size_t len; +} uv_buf_t; + +typedef int uv_file; +typedef int uv_os_sock_t; +typedef int uv_os_fd_t; +typedef pid_t uv_pid_t; + +#define UV_ONCE_INIT PTHREAD_ONCE_INIT + +typedef pthread_once_t uv_once_t; +typedef pthread_t uv_thread_t; +typedef pthread_mutex_t uv_mutex_t; +typedef pthread_rwlock_t uv_rwlock_t; +typedef UV_PLATFORM_SEM_T uv_sem_t; +typedef pthread_cond_t uv_cond_t; +typedef pthread_key_t uv_key_t; +typedef pthread_barrier_t uv_barrier_t; + + +/* Platform-specific definitions for uv_spawn support. */ +typedef gid_t uv_gid_t; +typedef uid_t uv_uid_t; + +typedef struct dirent uv__dirent_t; + +#if defined(DT_UNKNOWN) +# define HAVE_DIRENT_TYPES +# if defined(DT_REG) +# define UV__DT_FILE DT_REG +# else +# define UV__DT_FILE -1 +# endif +# if defined(DT_DIR) +# define UV__DT_DIR DT_DIR +# else +# define UV__DT_DIR -2 +# endif +# if defined(DT_LNK) +# define UV__DT_LINK DT_LNK +# else +# define UV__DT_LINK -3 +# endif +# if defined(DT_FIFO) +# define UV__DT_FIFO DT_FIFO +# else +# define UV__DT_FIFO -4 +# endif +# if defined(DT_SOCK) +# define UV__DT_SOCKET DT_SOCK +# else +# define UV__DT_SOCKET -5 +# endif +# if defined(DT_CHR) +# define UV__DT_CHAR DT_CHR +# else +# define UV__DT_CHAR -6 +# endif +# if defined(DT_BLK) +# define UV__DT_BLOCK DT_BLK +# else +# define UV__DT_BLOCK -7 +# endif +#endif + +/* Platform-specific definitions for uv_dlopen support. */ +#define UV_DYNAMIC /* empty */ + +typedef struct { + void* handle; + char* errmsg; +} uv_lib_t; + +#define UV_LOOP_PRIVATE_FIELDS \ + unsigned long flags; \ + int backend_fd; \ + void* pending_queue[2]; \ + void* watcher_queue[2]; \ + uv__io_t** watchers; \ + unsigned int nwatchers; \ + unsigned int nfds; \ + void* wq[2]; \ + uv_mutex_t wq_mutex; \ + uv_async_t wq_async; \ + uv_rwlock_t cloexec_lock; \ + uv_handle_t* closing_handles; \ + void* process_handles[2]; \ + void* prepare_handles[2]; \ + void* check_handles[2]; \ + void* idle_handles[2]; \ + void* async_handles[2]; \ + void (*async_unused)(void); /* TODO(bnoordhuis) Remove in libuv v2. */ \ + uv__io_t async_io_watcher; \ + int async_wfd; \ + struct { \ + void* min; \ + unsigned int nelts; \ + } timer_heap; \ + uint64_t timer_counter; \ + uint64_t time; \ + int signal_pipefd[2]; \ + uv__io_t signal_io_watcher; \ + uv_signal_t child_watcher; \ + int emfile_fd; \ + UV_PLATFORM_LOOP_FIELDS \ + +#define UV_REQ_TYPE_PRIVATE /* empty */ + +#define UV_REQ_PRIVATE_FIELDS /* empty */ + +#define UV_PRIVATE_REQ_TYPES /* empty */ + +#define UV_WRITE_PRIVATE_FIELDS \ + void* queue[2]; \ + unsigned int write_index; \ + uv_buf_t* bufs; \ + unsigned int nbufs; \ + int error; \ + uv_buf_t bufsml[4]; \ + +#define UV_CONNECT_PRIVATE_FIELDS \ + void* queue[2]; \ + +#define UV_SHUTDOWN_PRIVATE_FIELDS /* empty */ + +#define UV_UDP_SEND_PRIVATE_FIELDS \ + void* queue[2]; \ + struct sockaddr_storage addr; \ + unsigned int nbufs; \ + uv_buf_t* bufs; \ + ssize_t status; \ + uv_udp_send_cb send_cb; \ + uv_buf_t bufsml[4]; \ + +#define UV_HANDLE_PRIVATE_FIELDS \ + uv_handle_t* next_closing; \ + unsigned int flags; \ + +#define UV_STREAM_PRIVATE_FIELDS \ + uv_connect_t *connect_req; \ + uv_shutdown_t *shutdown_req; \ + uv__io_t io_watcher; \ + void* write_queue[2]; \ + void* write_completed_queue[2]; \ + uv_connection_cb connection_cb; \ + int delayed_error; \ + int accepted_fd; \ + void* queued_fds; \ + UV_STREAM_PRIVATE_PLATFORM_FIELDS \ + +#define UV_TCP_PRIVATE_FIELDS /* empty */ + +#define UV_UDP_PRIVATE_FIELDS \ + uv_alloc_cb alloc_cb; \ + uv_udp_recv_cb recv_cb; \ + uv__io_t io_watcher; \ + void* write_queue[2]; \ + void* write_completed_queue[2]; \ + +#define UV_PIPE_PRIVATE_FIELDS \ + const char* pipe_fname; /* strdup'ed */ + +#define UV_POLL_PRIVATE_FIELDS \ + uv__io_t io_watcher; + +#define UV_PREPARE_PRIVATE_FIELDS \ + uv_prepare_cb prepare_cb; \ + void* queue[2]; \ + +#define UV_CHECK_PRIVATE_FIELDS \ + uv_check_cb check_cb; \ + void* queue[2]; \ + +#define UV_IDLE_PRIVATE_FIELDS \ + uv_idle_cb idle_cb; \ + void* queue[2]; \ + +#define UV_ASYNC_PRIVATE_FIELDS \ + uv_async_cb async_cb; \ + void* queue[2]; \ + int pending; \ + +#define UV_TIMER_PRIVATE_FIELDS \ + uv_timer_cb timer_cb; \ + void* heap_node[3]; \ + uint64_t timeout; \ + uint64_t repeat; \ + uint64_t start_id; + +#define UV_GETADDRINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getaddrinfo_cb cb; \ + struct addrinfo* hints; \ + char* hostname; \ + char* service; \ + struct addrinfo* addrinfo; \ + int retcode; + +#define UV_GETNAMEINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getnameinfo_cb getnameinfo_cb; \ + struct sockaddr_storage storage; \ + int flags; \ + char host[NI_MAXHOST]; \ + char service[NI_MAXSERV]; \ + int retcode; + +#define UV_PROCESS_PRIVATE_FIELDS \ + void* queue[2]; \ + int status; \ + +#define UV_FS_PRIVATE_FIELDS \ + const char *new_path; \ + uv_file file; \ + int flags; \ + mode_t mode; \ + unsigned int nbufs; \ + uv_buf_t* bufs; \ + off_t off; \ + uv_uid_t uid; \ + uv_gid_t gid; \ + double atime; \ + double mtime; \ + struct uv__work work_req; \ + uv_buf_t bufsml[4]; \ + +#define UV_WORK_PRIVATE_FIELDS \ + struct uv__work work_req; + +#define UV_TTY_PRIVATE_FIELDS \ + struct termios orig_termios; \ + int mode; + +#define UV_SIGNAL_PRIVATE_FIELDS \ + /* RB_ENTRY(uv_signal_s) tree_entry; */ \ + struct { \ + struct uv_signal_s* rbe_left; \ + struct uv_signal_s* rbe_right; \ + struct uv_signal_s* rbe_parent; \ + int rbe_color; \ + } tree_entry; \ + /* Use two counters here so we don have to fiddle with atomics. */ \ + unsigned int caught_signals; \ + unsigned int dispatched_signals; + +#define UV_FS_EVENT_PRIVATE_FIELDS \ + uv_fs_event_cb cb; \ + UV_PLATFORM_FS_EVENT_FIELDS \ + +/* fs open() flags supported on this platform: */ +#if defined(O_APPEND) +# define UV_FS_O_APPEND O_APPEND +#else +# define UV_FS_O_APPEND 0 +#endif +#if defined(O_CREAT) +# define UV_FS_O_CREAT O_CREAT +#else +# define UV_FS_O_CREAT 0 +#endif +#if defined(O_DIRECT) +# define UV_FS_O_DIRECT O_DIRECT +#else +# define UV_FS_O_DIRECT 0 +#endif +#if defined(O_DIRECTORY) +# define UV_FS_O_DIRECTORY O_DIRECTORY +#else +# define UV_FS_O_DIRECTORY 0 +#endif +#if defined(O_DSYNC) +# define UV_FS_O_DSYNC O_DSYNC +#else +# define UV_FS_O_DSYNC 0 +#endif +#if defined(O_EXCL) +# define UV_FS_O_EXCL O_EXCL +#else +# define UV_FS_O_EXCL 0 +#endif +#if defined(O_EXLOCK) +# define UV_FS_O_EXLOCK O_EXLOCK +#else +# define UV_FS_O_EXLOCK 0 +#endif +#if defined(O_NOATIME) +# define UV_FS_O_NOATIME O_NOATIME +#else +# define UV_FS_O_NOATIME 0 +#endif +#if defined(O_NOCTTY) +# define UV_FS_O_NOCTTY O_NOCTTY +#else +# define UV_FS_O_NOCTTY 0 +#endif +#if defined(O_NOFOLLOW) +# define UV_FS_O_NOFOLLOW O_NOFOLLOW +#else +# define UV_FS_O_NOFOLLOW 0 +#endif +#if defined(O_NONBLOCK) +# define UV_FS_O_NONBLOCK O_NONBLOCK +#else +# define UV_FS_O_NONBLOCK 0 +#endif +#if defined(O_RDONLY) +# define UV_FS_O_RDONLY O_RDONLY +#else +# define UV_FS_O_RDONLY 0 +#endif +#if defined(O_RDWR) +# define UV_FS_O_RDWR O_RDWR +#else +# define UV_FS_O_RDWR 0 +#endif +#if defined(O_SYMLINK) +# define UV_FS_O_SYMLINK O_SYMLINK +#else +# define UV_FS_O_SYMLINK 0 +#endif +#if defined(O_SYNC) +# define UV_FS_O_SYNC O_SYNC +#else +# define UV_FS_O_SYNC 0 +#endif +#if defined(O_TRUNC) +# define UV_FS_O_TRUNC O_TRUNC +#else +# define UV_FS_O_TRUNC 0 +#endif +#if defined(O_WRONLY) +# define UV_FS_O_WRONLY O_WRONLY +#else +# define UV_FS_O_WRONLY 0 +#endif + +/* fs open() flags supported on other platforms: */ +#define UV_FS_O_RANDOM 0 +#define UV_FS_O_SHORT_LIVED 0 +#define UV_FS_O_SEQUENTIAL 0 +#define UV_FS_O_TEMPORARY 0 + +#endif /* UV_UNIX_H */ diff --git a/extern/libuv/uv/version.h b/extern/libuv/uv/version.h new file mode 100755 index 0000000000..002d91c920 --- /dev/null +++ b/extern/libuv/uv/version.h @@ -0,0 +1,43 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef UV_VERSION_H +#define UV_VERSION_H + + /* + * Versions with the same major number are ABI stable. API is allowed to + * evolve between minor releases, but only in a backwards compatible way. + * Make sure you update the -soname directives in configure.ac + * and uv.gyp whenever you bump UV_VERSION_MAJOR or UV_VERSION_MINOR (but + * not UV_VERSION_PATCH.) + */ + +#define UV_VERSION_MAJOR 1 +#define UV_VERSION_MINOR 23 +#define UV_VERSION_PATCH 2 +#define UV_VERSION_IS_RELEASE 0 +#define UV_VERSION_SUFFIX "dev" + +#define UV_VERSION_HEX ((UV_VERSION_MAJOR << 16) | \ + (UV_VERSION_MINOR << 8) | \ + (UV_VERSION_PATCH)) + +#endif /* UV_VERSION_H */ diff --git a/extern/libuv/uv/win.h b/extern/libuv/uv/win.h new file mode 100755 index 0000000000..d6b8b3a7f7 --- /dev/null +++ b/extern/libuv/uv/win.h @@ -0,0 +1,676 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef _WIN32_WINNT +# define _WIN32_WINNT 0x0600 +#endif + +#if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) +typedef intptr_t ssize_t; +# define _SSIZE_T_ +# define _SSIZE_T_DEFINED +#endif + +#include + +#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) +typedef struct pollfd { + SOCKET fd; + short events; + short revents; +} WSAPOLLFD, *PWSAPOLLFD, *LPWSAPOLLFD; +#endif + +#ifndef LOCALE_INVARIANT +# define LOCALE_INVARIANT 0x007f +#endif + +#include +#include +#include + +#include +#include +#include +#include + +#if defined(_MSC_VER) && _MSC_VER < 1600 +# include "uv/stdint-msvc2008.h" +#else +# include +#endif + +#include "uv/tree.h" +#include "uv/threadpool.h" + +#define MAX_PIPENAME_LEN 256 + +#ifndef S_IFLNK +# define S_IFLNK 0xA000 +#endif + +/* Additional signals supported by uv_signal and or uv_kill. The CRT defines + * the following signals already: + * + * #define SIGINT 2 + * #define SIGILL 4 + * #define SIGABRT_COMPAT 6 + * #define SIGFPE 8 + * #define SIGSEGV 11 + * #define SIGTERM 15 + * #define SIGBREAK 21 + * #define SIGABRT 22 + * + * The additional signals have values that are common on other Unix + * variants (Linux and Darwin) + */ +#define SIGHUP 1 +#define SIGKILL 9 +#define SIGWINCH 28 + +/* The CRT defines SIGABRT_COMPAT as 6, which equals SIGABRT on many unix-like + * platforms. However MinGW doesn't define it, so we do. */ +#ifndef SIGABRT_COMPAT +# define SIGABRT_COMPAT 6 +#endif + +/* + * Guids and typedefs for winsock extension functions + * Mingw32 doesn't have these :-( + */ +#ifndef WSAID_ACCEPTEX +# define WSAID_ACCEPTEX \ + {0xb5367df1, 0xcbac, 0x11cf, \ + {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + +# define WSAID_CONNECTEX \ + {0x25a207b9, 0xddf3, 0x4660, \ + {0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}} + +# define WSAID_GETACCEPTEXSOCKADDRS \ + {0xb5367df2, 0xcbac, 0x11cf, \ + {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + +# define WSAID_DISCONNECTEX \ + {0x7fda2e11, 0x8630, 0x436f, \ + {0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}} + +# define WSAID_TRANSMITFILE \ + {0xb5367df0, 0xcbac, 0x11cf, \ + {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + + typedef BOOL (PASCAL *LPFN_ACCEPTEX) + (SOCKET sListenSocket, + SOCKET sAcceptSocket, + PVOID lpOutputBuffer, + DWORD dwReceiveDataLength, + DWORD dwLocalAddressLength, + DWORD dwRemoteAddressLength, + LPDWORD lpdwBytesReceived, + LPOVERLAPPED lpOverlapped); + + typedef BOOL (PASCAL *LPFN_CONNECTEX) + (SOCKET s, + const struct sockaddr* name, + int namelen, + PVOID lpSendBuffer, + DWORD dwSendDataLength, + LPDWORD lpdwBytesSent, + LPOVERLAPPED lpOverlapped); + + typedef void (PASCAL *LPFN_GETACCEPTEXSOCKADDRS) + (PVOID lpOutputBuffer, + DWORD dwReceiveDataLength, + DWORD dwLocalAddressLength, + DWORD dwRemoteAddressLength, + LPSOCKADDR* LocalSockaddr, + LPINT LocalSockaddrLength, + LPSOCKADDR* RemoteSockaddr, + LPINT RemoteSockaddrLength); + + typedef BOOL (PASCAL *LPFN_DISCONNECTEX) + (SOCKET hSocket, + LPOVERLAPPED lpOverlapped, + DWORD dwFlags, + DWORD reserved); + + typedef BOOL (PASCAL *LPFN_TRANSMITFILE) + (SOCKET hSocket, + HANDLE hFile, + DWORD nNumberOfBytesToWrite, + DWORD nNumberOfBytesPerSend, + LPOVERLAPPED lpOverlapped, + LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, + DWORD dwFlags); + + typedef PVOID RTL_SRWLOCK; + typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK; +#endif + +typedef int (WSAAPI* LPFN_WSARECV) + (SOCKET socket, + LPWSABUF buffers, + DWORD buffer_count, + LPDWORD bytes, + LPDWORD flags, + LPWSAOVERLAPPED overlapped, + LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); + +typedef int (WSAAPI* LPFN_WSARECVFROM) + (SOCKET socket, + LPWSABUF buffers, + DWORD buffer_count, + LPDWORD bytes, + LPDWORD flags, + struct sockaddr* addr, + LPINT addr_len, + LPWSAOVERLAPPED overlapped, + LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); + +#ifndef _NTDEF_ + typedef LONG NTSTATUS; + typedef NTSTATUS *PNTSTATUS; +#endif + +#ifndef RTL_CONDITION_VARIABLE_INIT + typedef PVOID CONDITION_VARIABLE, *PCONDITION_VARIABLE; +#endif + +typedef struct _AFD_POLL_HANDLE_INFO { + HANDLE Handle; + ULONG Events; + NTSTATUS Status; +} AFD_POLL_HANDLE_INFO, *PAFD_POLL_HANDLE_INFO; + +typedef struct _AFD_POLL_INFO { + LARGE_INTEGER Timeout; + ULONG NumberOfHandles; + ULONG Exclusive; + AFD_POLL_HANDLE_INFO Handles[1]; +} AFD_POLL_INFO, *PAFD_POLL_INFO; + +#define UV_MSAFD_PROVIDER_COUNT 3 + + +/** + * It should be possible to cast uv_buf_t[] to WSABUF[] + * see http://msdn.microsoft.com/en-us/library/ms741542(v=vs.85).aspx + */ +typedef struct uv_buf_t { + ULONG len; + char* base; +} uv_buf_t; + +typedef int uv_file; +typedef SOCKET uv_os_sock_t; +typedef HANDLE uv_os_fd_t; +typedef int uv_pid_t; + +typedef HANDLE uv_thread_t; + +typedef HANDLE uv_sem_t; + +typedef CRITICAL_SECTION uv_mutex_t; + +/* This condition variable implementation is based on the SetEvent solution + * (section 3.2) at http://www.cs.wustl.edu/~schmidt/win32-cv-1.html + * We could not use the SignalObjectAndWait solution (section 3.4) because + * it want the 2nd argument (type uv_mutex_t) of uv_cond_wait() and + * uv_cond_timedwait() to be HANDLEs, but we use CRITICAL_SECTIONs. + */ + +typedef union { + CONDITION_VARIABLE cond_var; + struct { + unsigned int waiters_count; + CRITICAL_SECTION waiters_count_lock; + HANDLE signal_event; + HANDLE broadcast_event; + } unused_; /* TODO: retained for ABI compatibility; remove me in v2.x. */ +} uv_cond_t; + +typedef union { + struct { + unsigned int num_readers_; + CRITICAL_SECTION num_readers_lock_; + HANDLE write_semaphore_; + } state_; + /* TODO: remove me in v2.x. */ + struct { + SRWLOCK unused_; + } unused1_; + /* TODO: remove me in v2.x. */ + struct { + uv_mutex_t unused1_; + uv_mutex_t unused2_; + } unused2_; +} uv_rwlock_t; + +typedef struct { + unsigned int n; + unsigned int count; + uv_mutex_t mutex; + uv_sem_t turnstile1; + uv_sem_t turnstile2; +} uv_barrier_t; + +typedef struct { + DWORD tls_index; +} uv_key_t; + +#define UV_ONCE_INIT { 0, NULL } + +typedef struct uv_once_s { + unsigned char ran; + HANDLE event; +} uv_once_t; + +/* Platform-specific definitions for uv_spawn support. */ +typedef unsigned char uv_uid_t; +typedef unsigned char uv_gid_t; + +typedef struct uv__dirent_s { + int d_type; + char d_name[1]; +} uv__dirent_t; + +#define HAVE_DIRENT_TYPES +#define UV__DT_DIR UV_DIRENT_DIR +#define UV__DT_FILE UV_DIRENT_FILE +#define UV__DT_LINK UV_DIRENT_LINK +#define UV__DT_FIFO UV_DIRENT_FIFO +#define UV__DT_SOCKET UV_DIRENT_SOCKET +#define UV__DT_CHAR UV_DIRENT_CHAR +#define UV__DT_BLOCK UV_DIRENT_BLOCK + +/* Platform-specific definitions for uv_dlopen support. */ +#define UV_DYNAMIC FAR WINAPI +typedef struct { + HMODULE handle; + char* errmsg; +} uv_lib_t; + +#define UV_LOOP_PRIVATE_FIELDS \ + /* The loop's I/O completion port */ \ + HANDLE iocp; \ + /* The current time according to the event loop. in msecs. */ \ + uint64_t time; \ + /* Tail of a single-linked circular queue of pending reqs. If the queue */ \ + /* is empty, tail_ is NULL. If there is only one item, */ \ + /* tail_->next_req == tail_ */ \ + uv_req_t* pending_reqs_tail; \ + /* Head of a single-linked list of closed handles */ \ + uv_handle_t* endgame_handles; \ + /* TODO(bnoordhuis) Stop heap-allocating |timer_heap| in libuv v2.x. */ \ + void* timer_heap; \ + /* Lists of active loop (prepare / check / idle) watchers */ \ + uv_prepare_t* prepare_handles; \ + uv_check_t* check_handles; \ + uv_idle_t* idle_handles; \ + /* This pointer will refer to the prepare/check/idle handle whose */ \ + /* callback is scheduled to be called next. This is needed to allow */ \ + /* safe removal from one of the lists above while that list being */ \ + /* iterated over. */ \ + uv_prepare_t* next_prepare_handle; \ + uv_check_t* next_check_handle; \ + uv_idle_t* next_idle_handle; \ + /* This handle holds the peer sockets for the fast variant of uv_poll_t */ \ + SOCKET poll_peer_sockets[UV_MSAFD_PROVIDER_COUNT]; \ + /* Counter to keep track of active tcp streams */ \ + unsigned int active_tcp_streams; \ + /* Counter to keep track of active udp streams */ \ + unsigned int active_udp_streams; \ + /* Counter to started timer */ \ + uint64_t timer_counter; \ + /* Threadpool */ \ + void* wq[2]; \ + uv_mutex_t wq_mutex; \ + uv_async_t wq_async; + +#define UV_REQ_TYPE_PRIVATE \ + /* TODO: remove the req suffix */ \ + UV_ACCEPT, \ + UV_FS_EVENT_REQ, \ + UV_POLL_REQ, \ + UV_PROCESS_EXIT, \ + UV_READ, \ + UV_UDP_RECV, \ + UV_WAKEUP, \ + UV_SIGNAL_REQ, + +#define UV_REQ_PRIVATE_FIELDS \ + union { \ + /* Used by I/O operations */ \ + struct { \ + OVERLAPPED overlapped; \ + size_t queued_bytes; \ + } io; \ + } u; \ + struct uv_req_s* next_req; + +#define UV_WRITE_PRIVATE_FIELDS \ + int coalesced; \ + uv_buf_t write_buffer; \ + HANDLE event_handle; \ + HANDLE wait_handle; + +#define UV_CONNECT_PRIVATE_FIELDS \ + /* empty */ + +#define UV_SHUTDOWN_PRIVATE_FIELDS \ + /* empty */ + +#define UV_UDP_SEND_PRIVATE_FIELDS \ + /* empty */ + +#define UV_PRIVATE_REQ_TYPES \ + typedef struct uv_pipe_accept_s { \ + UV_REQ_FIELDS \ + HANDLE pipeHandle; \ + struct uv_pipe_accept_s* next_pending; \ + } uv_pipe_accept_t; \ + \ + typedef struct uv_tcp_accept_s { \ + UV_REQ_FIELDS \ + SOCKET accept_socket; \ + char accept_buffer[sizeof(struct sockaddr_storage) * 2 + 32]; \ + HANDLE event_handle; \ + HANDLE wait_handle; \ + struct uv_tcp_accept_s* next_pending; \ + } uv_tcp_accept_t; \ + \ + typedef struct uv_read_s { \ + UV_REQ_FIELDS \ + HANDLE event_handle; \ + HANDLE wait_handle; \ + } uv_read_t; + +#define uv_stream_connection_fields \ + unsigned int write_reqs_pending; \ + uv_shutdown_t* shutdown_req; + +#define uv_stream_server_fields \ + uv_connection_cb connection_cb; + +#define UV_STREAM_PRIVATE_FIELDS \ + unsigned int reqs_pending; \ + int activecnt; \ + uv_read_t read_req; \ + union { \ + struct { uv_stream_connection_fields } conn; \ + struct { uv_stream_server_fields } serv; \ + } stream; + +#define uv_tcp_server_fields \ + uv_tcp_accept_t* accept_reqs; \ + unsigned int processed_accepts; \ + uv_tcp_accept_t* pending_accepts; \ + LPFN_ACCEPTEX func_acceptex; + +#define uv_tcp_connection_fields \ + uv_buf_t read_buffer; \ + LPFN_CONNECTEX func_connectex; + +#define UV_TCP_PRIVATE_FIELDS \ + SOCKET socket; \ + int delayed_error; \ + union { \ + struct { uv_tcp_server_fields } serv; \ + struct { uv_tcp_connection_fields } conn; \ + } tcp; + +#define UV_UDP_PRIVATE_FIELDS \ + SOCKET socket; \ + unsigned int reqs_pending; \ + int activecnt; \ + uv_req_t recv_req; \ + uv_buf_t recv_buffer; \ + struct sockaddr_storage recv_from; \ + int recv_from_len; \ + uv_udp_recv_cb recv_cb; \ + uv_alloc_cb alloc_cb; \ + LPFN_WSARECV func_wsarecv; \ + LPFN_WSARECVFROM func_wsarecvfrom; + +#define uv_pipe_server_fields \ + int pending_instances; \ + uv_pipe_accept_t* accept_reqs; \ + uv_pipe_accept_t* pending_accepts; + +#define uv_pipe_connection_fields \ + uv_timer_t* eof_timer; \ + uv_write_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \ + DWORD ipc_remote_pid; \ + union { \ + uint32_t payload_remaining; \ + uint64_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \ + } ipc_data_frame; \ + void* ipc_xfer_queue[2]; \ + int ipc_xfer_queue_length; \ + uv_write_t* non_overlapped_writes_tail; \ + CRITICAL_SECTION readfile_thread_lock; \ + volatile HANDLE readfile_thread_handle; + +#define UV_PIPE_PRIVATE_FIELDS \ + HANDLE handle; \ + WCHAR* name; \ + union { \ + struct { uv_pipe_server_fields } serv; \ + struct { uv_pipe_connection_fields } conn; \ + } pipe; + +/* TODO: put the parser states in an union - TTY handles are always half-duplex + * so read-state can safely overlap write-state. */ +#define UV_TTY_PRIVATE_FIELDS \ + HANDLE handle; \ + union { \ + struct { \ + /* Used for readable TTY handles */ \ + /* TODO: remove me in v2.x. */ \ + HANDLE unused_; \ + uv_buf_t read_line_buffer; \ + HANDLE read_raw_wait; \ + /* Fields used for translating win keystrokes into vt100 characters */ \ + char last_key[8]; \ + unsigned char last_key_offset; \ + unsigned char last_key_len; \ + WCHAR last_utf16_high_surrogate; \ + INPUT_RECORD last_input_record; \ + } rd; \ + struct { \ + /* Used for writable TTY handles */ \ + /* utf8-to-utf16 conversion state */ \ + unsigned int utf8_codepoint; \ + unsigned char utf8_bytes_left; \ + /* eol conversion state */ \ + unsigned char previous_eol; \ + /* ansi parser state */ \ + unsigned char ansi_parser_state; \ + unsigned char ansi_csi_argc; \ + unsigned short ansi_csi_argv[4]; \ + COORD saved_position; \ + WORD saved_attributes; \ + } wr; \ + } tty; + +#define UV_POLL_PRIVATE_FIELDS \ + SOCKET socket; \ + /* Used in fast mode */ \ + SOCKET peer_socket; \ + AFD_POLL_INFO afd_poll_info_1; \ + AFD_POLL_INFO afd_poll_info_2; \ + /* Used in fast and slow mode. */ \ + uv_req_t poll_req_1; \ + uv_req_t poll_req_2; \ + unsigned char submitted_events_1; \ + unsigned char submitted_events_2; \ + unsigned char mask_events_1; \ + unsigned char mask_events_2; \ + unsigned char events; + +#define UV_TIMER_PRIVATE_FIELDS \ + void* heap_node[3]; \ + int unused; \ + uint64_t timeout; \ + uint64_t repeat; \ + uint64_t start_id; \ + uv_timer_cb timer_cb; + +#define UV_ASYNC_PRIVATE_FIELDS \ + struct uv_req_s async_req; \ + uv_async_cb async_cb; \ + /* char to avoid alignment issues */ \ + char volatile async_sent; + +#define UV_PREPARE_PRIVATE_FIELDS \ + uv_prepare_t* prepare_prev; \ + uv_prepare_t* prepare_next; \ + uv_prepare_cb prepare_cb; + +#define UV_CHECK_PRIVATE_FIELDS \ + uv_check_t* check_prev; \ + uv_check_t* check_next; \ + uv_check_cb check_cb; + +#define UV_IDLE_PRIVATE_FIELDS \ + uv_idle_t* idle_prev; \ + uv_idle_t* idle_next; \ + uv_idle_cb idle_cb; + +#define UV_HANDLE_PRIVATE_FIELDS \ + uv_handle_t* endgame_next; \ + unsigned int flags; + +#define UV_GETADDRINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getaddrinfo_cb getaddrinfo_cb; \ + void* alloc; \ + WCHAR* node; \ + WCHAR* service; \ + /* The addrinfoW field is used to store a pointer to the hints, and */ \ + /* later on to store the result of GetAddrInfoW. The final result will */ \ + /* be converted to struct addrinfo* and stored in the addrinfo field. */ \ + struct addrinfoW* addrinfow; \ + struct addrinfo* addrinfo; \ + int retcode; + +#define UV_GETNAMEINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getnameinfo_cb getnameinfo_cb; \ + struct sockaddr_storage storage; \ + int flags; \ + char host[NI_MAXHOST]; \ + char service[NI_MAXSERV]; \ + int retcode; + +#define UV_PROCESS_PRIVATE_FIELDS \ + struct uv_process_exit_s { \ + UV_REQ_FIELDS \ + } exit_req; \ + BYTE* child_stdio_buffer; \ + int exit_signal; \ + HANDLE wait_handle; \ + HANDLE process_handle; \ + volatile char exit_cb_pending; + +#define UV_FS_PRIVATE_FIELDS \ + struct uv__work work_req; \ + int flags; \ + DWORD sys_errno_; \ + union { \ + /* TODO: remove me in 0.9. */ \ + WCHAR* pathw; \ + int fd; \ + } file; \ + union { \ + struct { \ + int mode; \ + WCHAR* new_pathw; \ + int file_flags; \ + int fd_out; \ + unsigned int nbufs; \ + uv_buf_t* bufs; \ + int64_t offset; \ + uv_buf_t bufsml[4]; \ + } info; \ + struct { \ + double atime; \ + double mtime; \ + } time; \ + } fs; + +#define UV_WORK_PRIVATE_FIELDS \ + struct uv__work work_req; + +#define UV_FS_EVENT_PRIVATE_FIELDS \ + struct uv_fs_event_req_s { \ + UV_REQ_FIELDS \ + } req; \ + HANDLE dir_handle; \ + int req_pending; \ + uv_fs_event_cb cb; \ + WCHAR* filew; \ + WCHAR* short_filew; \ + WCHAR* dirw; \ + char* buffer; + +#define UV_SIGNAL_PRIVATE_FIELDS \ + RB_ENTRY(uv_signal_s) tree_entry; \ + struct uv_req_s signal_req; \ + unsigned long pending_signum; + +#ifndef F_OK +#define F_OK 0 +#endif +#ifndef R_OK +#define R_OK 4 +#endif +#ifndef W_OK +#define W_OK 2 +#endif +#ifndef X_OK +#define X_OK 1 +#endif + +/* fs open() flags supported on this platform: */ +#define UV_FS_O_APPEND _O_APPEND +#define UV_FS_O_CREAT _O_CREAT +#define UV_FS_O_EXCL _O_EXCL +#define UV_FS_O_RANDOM _O_RANDOM +#define UV_FS_O_RDONLY _O_RDONLY +#define UV_FS_O_RDWR _O_RDWR +#define UV_FS_O_SEQUENTIAL _O_SEQUENTIAL +#define UV_FS_O_SHORT_LIVED _O_SHORT_LIVED +#define UV_FS_O_TEMPORARY _O_TEMPORARY +#define UV_FS_O_TRUNC _O_TRUNC +#define UV_FS_O_WRONLY _O_WRONLY + +/* fs open() flags supported on other platforms (or mapped on this platform): */ +#define UV_FS_O_DIRECT 0x02000000 /* FILE_FLAG_NO_BUFFERING */ +#define UV_FS_O_DIRECTORY 0 +#define UV_FS_O_DSYNC 0x04000000 /* FILE_FLAG_WRITE_THROUGH */ +#define UV_FS_O_EXLOCK 0x10000000 /* EXCLUSIVE SHARING MODE */ +#define UV_FS_O_NOATIME 0 +#define UV_FS_O_NOCTTY 0 +#define UV_FS_O_NOFOLLOW 0 +#define UV_FS_O_NONBLOCK 0 +#define UV_FS_O_SYMLINK 0 +#define UV_FS_O_SYNC 0x08000000 /* FILE_FLAG_WRITE_THROUGH */ diff --git a/extern/uWebSocket/include/Libuv.h b/extern/uWebSocket/include/Libuv.h index 017e25b9c9..72fe1cc9da 100644 --- a/extern/uWebSocket/include/Libuv.h +++ b/extern/uWebSocket/include/Libuv.h @@ -1,7 +1,11 @@ #ifndef LIBUV_H #define LIBUV_H +#ifdef __APPLE__ +#include "../includelibs/uv.h" +#else #include +#endif static_assert (UV_VERSION_MINOR >= 3, "µWebSockets requires libuv >=1.3.0"); namespace uS { diff --git a/extern/uWebSocket/includelibs/uv.h b/extern/uWebSocket/includelibs/uv.h index 3c30f12608..e7368e5ea4 100644 --- a/extern/uWebSocket/includelibs/uv.h +++ b/extern/uWebSocket/includelibs/uv.h @@ -59,8 +59,12 @@ extern "C" { #if defined(_WIN32) # include "uv-win.h" #else +#ifdef __APPLE__ +#include "../../../extern/libuv/uv/unix.h" +#else # include "uv-unix.h" #endif +#endif /* Expand this list if necessary. */ #define UV_ERRNO_MAP(XX) \ diff --git a/extern/uWebSocket/src/Libuv.h b/extern/uWebSocket/src/Libuv.h index 017e25b9c9..a51ad02dda 100644 --- a/extern/uWebSocket/src/Libuv.h +++ b/extern/uWebSocket/src/Libuv.h @@ -1,7 +1,12 @@ #ifndef LIBUV_H #define LIBUV_H -#include +#ifdef __APPLE__ + #include "../../libuv/uv.h" +#else + #include +#endif + static_assert (UV_VERSION_MINOR >= 3, "µWebSockets requires libuv >=1.3.0"); namespace uS {