[Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-451-g1925f8b

Brad King brad.king at kitware.com
Wed Feb 22 10:40:57 EST 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  1925f8bc2a517c051c44b29021300de2238489a2 (commit)
       via  741b7621b3c71406359d75098f9bdf8d3567662f (commit)
       via  1f661e87a6a8304edb77bd30b546e5d113477c59 (commit)
      from  d30e66c0e3e078fe43aa85db09449260226611db (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1925f8bc2a517c051c44b29021300de2238489a2
commit 1925f8bc2a517c051c44b29021300de2238489a2
Merge: d30e66c 741b762
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Feb 22 10:40:48 2017 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Feb 22 10:40:48 2017 -0500

    Merge topic 'update-libuv' into next
    
    741b7621 Merge branch 'upstream-libuv' into update-libuv
    1f661e87 libuv 2017-02-21 (52ae8264)


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=741b7621b3c71406359d75098f9bdf8d3567662f
commit 741b7621b3c71406359d75098f9bdf8d3567662f
Merge: 3ccad39 1f661e8
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Feb 21 19:38:46 2017 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Feb 21 19:40:27 2017 -0500

    Merge branch 'upstream-libuv' into update-libuv
    
    * upstream-libuv:
      libuv 2017-02-21 (52ae8264)

diff --cc Utilities/cmlibuv/include/uv-win.h
index 89ee09a,0000000..d3e32a5
mode 100644,000000..100644
--- a/Utilities/cmlibuv/include/uv-win.h
+++ b/Utilities/cmlibuv/include/uv-win.h
@@@ -1,660 -1,0 +1,661 @@@
 +/* 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   0x0502
 +#endif
 +
 +#if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED)
 +typedef intptr_t ssize_t;
 +# define _SSIZE_T_
 +# define _SSIZE_T_DEFINED
 +#endif
 +
 +#include <winsock2.h>
 +
 +#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 <mswsock.h>
 +#include <ws2tcpip.h>
 +#include <windows.h>
 +
 +#include <process.h>
 +#include <signal.h>
++#include <fcntl.h>
 +#include <sys/stat.h>
 +
 +#if defined(_MSC_VER) && _MSC_VER < 1600
 +# include "stdint-msvc2008.h"
 +#else
 +# include <stdint.h>
 +#endif
 +
 +#include "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}}
 +#endif
 +
 +#ifndef WSAID_CONNECTEX
 +# define WSAID_CONNECTEX                                                      \
 +         {0x25a207b9, 0xddf3, 0x4660,                                         \
 +         {0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}}
 +#endif
 +
 +#ifndef WSAID_GETACCEPTEXSOCKADDRS
 +# define WSAID_GETACCEPTEXSOCKADDRS                                           \
 +         {0xb5367df2, 0xcbac, 0x11cf,                                         \
 +         {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}}
 +#endif
 +
 +#ifndef WSAID_DISCONNECTEX
 +# define WSAID_DISCONNECTEX                                                   \
 +         {0x7fda2e11, 0x8630, 0x436f,                                         \
 +         {0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}}
 +#endif
 +
 +#ifndef WSAID_TRANSMITFILE
 +# define WSAID_TRANSMITFILE                                                   \
 +         {0xb5367df0, 0xcbac, 0x11cf,                                         \
 +         {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}}
 +#endif
 +
 +#if (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)) \
 + || (defined(_MSC_VER) && _MSC_VER < 1500)
 +  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 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;
 +  } fallback;
 +} 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;
 +
 +RB_HEAD(uv_timer_tree_s, uv_timer_s);
 +
 +#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;                                               \
 +  /* The head of the timers tree */                                           \
 +  struct uv_timer_tree_s timers;                                              \
 +    /* 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 ipc_header;                                                             \
 +  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 ipc_header_write_req;                                            \
 +  int ipc_pid;                                                                \
 +  uint64_t remaining_ipc_rawdata_bytes;                                       \
 +  struct {                                                                    \
 +    void* queue[2];                                                           \
 +    int queue_len;                                                            \
 +  } pending_ipc_info;                                                         \
 +  uv_write_t* non_overlapped_writes_tail;                                     \
 +  uv_mutex_t readfile_mutex;                                                  \
 +  volatile HANDLE readfile_thread;
 +
 +#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                                               \
 +  RB_ENTRY(uv_timer_s) tree_entry;                                            \
 +  uint64_t due;                                                               \
 +  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
diff --cc Utilities/cmlibuv/include/uv.h
index e3e20dc,0000000..5879764
mode 100644,000000..100644
--- a/Utilities/cmlibuv/include/uv.h
+++ b/Utilities/cmlibuv/include/uv.h
@@@ -1,1499 -1,0 +1,1501 @@@
 +/* 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
 +
 +/* Include KWSys Large File Support configuration. */
 +#include <cmsys/Configure.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 <stddef.h>
 +#include <stdio.h>
 +
 +#if defined(_MSC_VER) && _MSC_VER < 1600
 +# include "stdint-msvc2008.h"
 +#else
 +# include <stdint.h>
 +#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")                                               \
 +
 +#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_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 const char* uv_err_name(int err);
 +
 +
 +#define UV_REQ_FIELDS                                                         \
 +  /* public */                                                                \
 +  void* data;                                                                 \
 +  /* read-only */                                                             \
 +  uv_req_type type;                                                           \
 +  /* private */                                                               \
 +  void* active_queue[2];                                                      \
 +  void* reserved[4];                                                          \
 +  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 size_t uv_req_size(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 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;
 +  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_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<uv_tty_mode_t>(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);
 +
 +
 +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_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
 +} 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_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_info_s {
 +  char* model;
 +  int speed;
 +  struct uv_cpu_times_s {
 +    uint64_t user;
 +    uint64_t nice;
 +    uint64_t sys;
 +    uint64_t idle;
 +    uint64_t irq;
 +  } 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);
 +
 +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 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);
 +
 +
 +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_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 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);
 +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);
 +
 +
 +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_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);
 +
 +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 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];
 +  void* active_reqs[2];
 +  /* Internal flag to signal loop stop. */
 +  unsigned int stop_flag;
 +  UV_LOOP_PRIVATE_FIELDS
 +};
 +
 +
 +/* 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
 +
 +#ifdef __cplusplus
 +}
 +#endif
 +#endif /* UV_H */
diff --cc Utilities/cmlibuv/src/unix/os390-syscalls.c
index 0000000,2bf3b73..2bf3b73
mode 000000,100644..100644
--- a/Utilities/cmlibuv/src/unix/os390-syscalls.c
+++ b/Utilities/cmlibuv/src/unix/os390-syscalls.c
diff --cc Utilities/cmlibuv/src/unix/os390-syscalls.h
index 0000000,61a7cee..61a7cee
mode 000000,100644..100644
--- a/Utilities/cmlibuv/src/unix/os390-syscalls.h
+++ b/Utilities/cmlibuv/src/unix/os390-syscalls.h
diff --cc Utilities/cmlibuv/src/win/winapi.h
index 597a93d,0000000..4b0eeca
mode 100644,000000..100644
--- a/Utilities/cmlibuv/src/win/winapi.h
+++ b/Utilities/cmlibuv/src/win/winapi.h
@@@ -1,4757 -1,0 +1,4761 @@@
 +/* 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_WIN_WINAPI_H_
 +#define UV_WIN_WINAPI_H_
 +
 +#include <windows.h>
 +
 +
 +/*
 + * Ntdll headers
 + */
 +#ifndef STATUS_SEVERITY_SUCCESS
 +# define STATUS_SEVERITY_SUCCESS 0x0
 +#endif
 +
 +#ifndef STATUS_SEVERITY_INFORMATIONAL
 +# define STATUS_SEVERITY_INFORMATIONAL 0x1
 +#endif
 +
 +#ifndef STATUS_SEVERITY_WARNING
 +# define STATUS_SEVERITY_WARNING 0x2
 +#endif
 +
 +#ifndef STATUS_SEVERITY_ERROR
 +# define STATUS_SEVERITY_ERROR 0x3
 +#endif
 +
 +#ifndef FACILITY_NTWIN32
 +# define FACILITY_NTWIN32 0x7
 +#endif
 +
 +#ifndef NT_SUCCESS
 +# define NT_SUCCESS(status) (((NTSTATUS) (status)) >= 0)
 +#endif
 +
 +#ifndef NT_INFORMATION
 +# define NT_INFORMATION(status) ((((ULONG) (status)) >> 30) == 1)
 +#endif
 +
 +#ifndef NT_WARNING
 +# define NT_WARNING(status) ((((ULONG) (status)) >> 30) == 2)
 +#endif
 +
 +#ifndef NT_ERROR
 +# define NT_ERROR(status) ((((ULONG) (status)) >> 30) == 3)
 +#endif
 +
 +#ifndef STATUS_SUCCESS
 +# define STATUS_SUCCESS ((NTSTATUS) 0x00000000L)
 +#endif
 +
 +#ifndef STATUS_WAIT_0
 +# define STATUS_WAIT_0 ((NTSTATUS) 0x00000000L)
 +#endif
 +
 +#ifndef STATUS_WAIT_1
 +# define STATUS_WAIT_1 ((NTSTATUS) 0x00000001L)
 +#endif
 +
 +#ifndef STATUS_WAIT_2
 +# define STATUS_WAIT_2 ((NTSTATUS) 0x00000002L)
 +#endif
 +
 +#ifndef STATUS_WAIT_3
 +# define STATUS_WAIT_3 ((NTSTATUS) 0x00000003L)
 +#endif
 +
 +#ifndef STATUS_WAIT_63
 +# define STATUS_WAIT_63 ((NTSTATUS) 0x0000003FL)
 +#endif
 +
 +#ifndef STATUS_ABANDONED
 +# define STATUS_ABANDONED ((NTSTATUS) 0x00000080L)
 +#endif
 +
 +#ifndef STATUS_ABANDONED_WAIT_0
 +# define STATUS_ABANDONED_WAIT_0 ((NTSTATUS) 0x00000080L)
 +#endif
 +
 +#ifndef STATUS_ABANDONED_WAIT_63
 +# define STATUS_ABANDONED_WAIT_63 ((NTSTATUS) 0x000000BFL)
 +#endif
 +
 +#ifndef STATUS_USER_APC
 +# define STATUS_USER_APC ((NTSTATUS) 0x000000C0L)
 +#endif
 +
 +#ifndef STATUS_KERNEL_APC
 +# define STATUS_KERNEL_APC ((NTSTATUS) 0x00000100L)
 +#endif
 +
 +#ifndef STATUS_ALERTED
 +# define STATUS_ALERTED ((NTSTATUS) 0x00000101L)
 +#endif
 +
 +#ifndef STATUS_TIMEOUT
 +# define STATUS_TIMEOUT ((NTSTATUS) 0x00000102L)
 +#endif
 +
 +#ifndef STATUS_PENDING
 +# define STATUS_PENDING ((NTSTATUS) 0x00000103L)
 +#endif
 +
 +#ifndef STATUS_REPARSE
 +# define STATUS_REPARSE ((NTSTATUS) 0x00000104L)
 +#endif
 +
 +#ifndef STATUS_MORE_ENTRIES
 +# define STATUS_MORE_ENTRIES ((NTSTATUS) 0x00000105L)
 +#endif
 +
 +#ifndef STATUS_NOT_ALL_ASSIGNED
 +# define STATUS_NOT_ALL_ASSIGNED ((NTSTATUS) 0x00000106L)
 +#endif
 +
 +#ifndef STATUS_SOME_NOT_MAPPED
 +# define STATUS_SOME_NOT_MAPPED ((NTSTATUS) 0x00000107L)
 +#endif
 +
 +#ifndef STATUS_OPLOCK_BREAK_IN_PROGRESS
 +# define STATUS_OPLOCK_BREAK_IN_PROGRESS ((NTSTATUS) 0x00000108L)
 +#endif
 +
 +#ifndef STATUS_VOLUME_MOUNTED
 +# define STATUS_VOLUME_MOUNTED ((NTSTATUS) 0x00000109L)
 +#endif
 +
 +#ifndef STATUS_RXACT_COMMITTED
 +# define STATUS_RXACT_COMMITTED ((NTSTATUS) 0x0000010AL)
 +#endif
 +
 +#ifndef STATUS_NOTIFY_CLEANUP
 +# define STATUS_NOTIFY_CLEANUP ((NTSTATUS) 0x0000010BL)
 +#endif
 +
 +#ifndef STATUS_NOTIFY_ENUM_DIR
 +# define STATUS_NOTIFY_ENUM_DIR ((NTSTATUS) 0x0000010CL)
 +#endif
 +
 +#ifndef STATUS_NO_QUOTAS_FOR_ACCOUNT
 +# define STATUS_NO_QUOTAS_FOR_ACCOUNT ((NTSTATUS) 0x0000010DL)
 +#endif
 +
 +#ifndef STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED
 +# define STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED ((NTSTATUS) 0x0000010EL)
 +#endif
 +
 +#ifndef STATUS_PAGE_FAULT_TRANSITION
 +# define STATUS_PAGE_FAULT_TRANSITION ((NTSTATUS) 0x00000110L)
 +#endif
 +
 +#ifndef STATUS_PAGE_FAULT_DEMAND_ZERO
 +# define STATUS_PAGE_FAULT_DEMAND_ZERO ((NTSTATUS) 0x00000111L)
 +#endif
 +
 +#ifndef STATUS_PAGE_FAULT_COPY_ON_WRITE
 +# define STATUS_PAGE_FAULT_COPY_ON_WRITE ((NTSTATUS) 0x00000112L)
 +#endif
 +
 +#ifndef STATUS_PAGE_FAULT_GUARD_PAGE
 +# define STATUS_PAGE_FAULT_GUARD_PAGE ((NTSTATUS) 0x00000113L)
 +#endif
 +
 +#ifndef STATUS_PAGE_FAULT_PAGING_FILE
 +# define STATUS_PAGE_FAULT_PAGING_FILE ((NTSTATUS) 0x00000114L)
 +#endif
 +
 +#ifndef STATUS_CACHE_PAGE_LOCKED
 +# define STATUS_CACHE_PAGE_LOCKED ((NTSTATUS) 0x00000115L)
 +#endif
 +
 +#ifndef STATUS_CRASH_DUMP
 +# define STATUS_CRASH_DUMP ((NTSTATUS) 0x00000116L)
 +#endif
 +
 +#ifndef STATUS_BUFFER_ALL_ZEROS
 +# define STATUS_BUFFER_ALL_ZEROS ((NTSTATUS) 0x00000117L)
 +#endif
 +
 +#ifndef STATUS_REPARSE_OBJECT
 +# define STATUS_REPARSE_OBJECT ((NTSTATUS) 0x00000118L)
 +#endif
 +
 +#ifndef STATUS_RESOURCE_REQUIREMENTS_CHANGED
 +# define STATUS_RESOURCE_REQUIREMENTS_CHANGED ((NTSTATUS) 0x00000119L)
 +#endif
 +
 +#ifndef STATUS_TRANSLATION_COMPLETE
 +# define STATUS_TRANSLATION_COMPLETE ((NTSTATUS) 0x00000120L)
 +#endif
 +
 +#ifndef STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY
 +# define STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY ((NTSTATUS) 0x00000121L)
 +#endif
 +
 +#ifndef STATUS_NOTHING_TO_TERMINATE
 +# define STATUS_NOTHING_TO_TERMINATE ((NTSTATUS) 0x00000122L)
 +#endif
 +
 +#ifndef STATUS_PROCESS_NOT_IN_JOB
 +# define STATUS_PROCESS_NOT_IN_JOB ((NTSTATUS) 0x00000123L)
 +#endif
 +
 +#ifndef STATUS_PROCESS_IN_JOB
 +# define STATUS_PROCESS_IN_JOB ((NTSTATUS) 0x00000124L)
 +#endif
 +
 +#ifndef STATUS_VOLSNAP_HIBERNATE_READY
 +# define STATUS_VOLSNAP_HIBERNATE_READY ((NTSTATUS) 0x00000125L)
 +#endif
 +
 +#ifndef STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY
 +# define STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY ((NTSTATUS) 0x00000126L)
 +#endif
 +
 +#ifndef STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED
 +# define STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED ((NTSTATUS) 0x00000127L)
 +#endif
 +
 +#ifndef STATUS_INTERRUPT_STILL_CONNECTED
 +# define STATUS_INTERRUPT_STILL_CONNECTED ((NTSTATUS) 0x00000128L)
 +#endif
 +
 +#ifndef STATUS_PROCESS_CLONED
 +# define STATUS_PROCESS_CLONED ((NTSTATUS) 0x00000129L)
 +#endif
 +
 +#ifndef STATUS_FILE_LOCKED_WITH_ONLY_READERS
 +# define STATUS_FILE_LOCKED_WITH_ONLY_READERS ((NTSTATUS) 0x0000012AL)
 +#endif
 +
 +#ifndef STATUS_FILE_LOCKED_WITH_WRITERS
 +# define STATUS_FILE_LOCKED_WITH_WRITERS ((NTSTATUS) 0x0000012BL)
 +#endif
 +
 +#ifndef STATUS_RESOURCEMANAGER_READ_ONLY
 +# define STATUS_RESOURCEMANAGER_READ_ONLY ((NTSTATUS) 0x00000202L)
 +#endif
 +
 +#ifndef STATUS_RING_PREVIOUSLY_EMPTY
 +# define STATUS_RING_PREVIOUSLY_EMPTY ((NTSTATUS) 0x00000210L)
 +#endif
 +
 +#ifndef STATUS_RING_PREVIOUSLY_FULL
 +# define STATUS_RING_PREVIOUSLY_FULL ((NTSTATUS) 0x00000211L)
 +#endif
 +
 +#ifndef STATUS_RING_PREVIOUSLY_ABOVE_QUOTA
 +# define STATUS_RING_PREVIOUSLY_ABOVE_QUOTA ((NTSTATUS) 0x00000212L)
 +#endif
 +
 +#ifndef STATUS_RING_NEWLY_EMPTY
 +# define STATUS_RING_NEWLY_EMPTY ((NTSTATUS) 0x00000213L)
 +#endif
 +
 +#ifndef STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT
 +# define STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT ((NTSTATUS) 0x00000214L)
 +#endif
 +
 +#ifndef STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE
 +# define STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE ((NTSTATUS) 0x00000215L)
 +#endif
 +
 +#ifndef STATUS_OPLOCK_HANDLE_CLOSED
 +# define STATUS_OPLOCK_HANDLE_CLOSED ((NTSTATUS) 0x00000216L)
 +#endif
 +
 +#ifndef STATUS_WAIT_FOR_OPLOCK
 +# define STATUS_WAIT_FOR_OPLOCK ((NTSTATUS) 0x00000367L)
 +#endif
 +
 +#ifndef STATUS_OBJECT_NAME_EXISTS
 +# define STATUS_OBJECT_NAME_EXISTS ((NTSTATUS) 0x40000000L)
 +#endif
 +
 +#ifndef STATUS_THREAD_WAS_SUSPENDED
 +# define STATUS_THREAD_WAS_SUSPENDED ((NTSTATUS) 0x40000001L)
 +#endif
 +
 +#ifndef STATUS_WORKING_SET_LIMIT_RANGE
 +# define STATUS_WORKING_SET_LIMIT_RANGE ((NTSTATUS) 0x40000002L)
 +#endif
 +
 +#ifndef STATUS_IMAGE_NOT_AT_BASE
 +# define STATUS_IMAGE_NOT_AT_BASE ((NTSTATUS) 0x40000003L)
 +#endif
 +
 +#ifndef STATUS_RXACT_STATE_CREATED
 +# define STATUS_RXACT_STATE_CREATED ((NTSTATUS) 0x40000004L)
 +#endif
 +
 +#ifndef STATUS_SEGMENT_NOTIFICATION
 +# define STATUS_SEGMENT_NOTIFICATION ((NTSTATUS) 0x40000005L)
 +#endif
 +
 +#ifndef STATUS_LOCAL_USER_SESSION_KEY
 +# define STATUS_LOCAL_USER_SESSION_KEY ((NTSTATUS) 0x40000006L)
 +#endif
 +
 +#ifndef STATUS_BAD_CURRENT_DIRECTORY
 +# define STATUS_BAD_CURRENT_DIRECTORY ((NTSTATUS) 0x40000007L)
 +#endif
 +
 +#ifndef STATUS_SERIAL_MORE_WRITES
 +# define STATUS_SERIAL_MORE_WRITES ((NTSTATUS) 0x40000008L)
 +#endif
 +
 +#ifndef STATUS_REGISTRY_RECOVERED
 +# define STATUS_REGISTRY_RECOVERED ((NTSTATUS) 0x40000009L)
 +#endif
 +
 +#ifndef STATUS_FT_READ_RECOVERY_FROM_BACKUP
 +# define STATUS_FT_READ_RECOVERY_FROM_BACKUP ((NTSTATUS) 0x4000000AL)
 +#endif
 +
 +#ifndef STATUS_FT_WRITE_RECOVERY
 +# define STATUS_FT_WRITE_RECOVERY ((NTSTATUS) 0x4000000BL)
 +#endif
 +
 +#ifndef STATUS_SERIAL_COUNTER_TIMEOUT
 +# define STATUS_SERIAL_COUNTER_TIMEOUT ((NTSTATUS) 0x4000000CL)
 +#endif
 +
 +#ifndef STATUS_NULL_LM_PASSWORD
 +# define STATUS_NULL_LM_PASSWORD ((NTSTATUS) 0x4000000DL)
 +#endif
 +
 +#ifndef STATUS_IMAGE_MACHINE_TYPE_MISMATCH
 +# define STATUS_IMAGE_MACHINE_TYPE_MISMATCH ((NTSTATUS) 0x4000000EL)
 +#endif
 +
 +#ifndef STATUS_RECEIVE_PARTIAL
 +# define STATUS_RECEIVE_PARTIAL ((NTSTATUS) 0x4000000FL)
 +#endif
 +
 +#ifndef STATUS_RECEIVE_EXPEDITED
 +# define STATUS_RECEIVE_EXPEDITED ((NTSTATUS) 0x40000010L)
 +#endif
 +
 +#ifndef STATUS_RECEIVE_PARTIAL_EXPEDITED
 +# define STATUS_RECEIVE_PARTIAL_EXPEDITED ((NTSTATUS) 0x40000011L)
 +#endif
 +
 +#ifndef STATUS_EVENT_DONE
 +# define STATUS_EVENT_DONE ((NTSTATUS) 0x40000012L)
 +#endif
 +
 +#ifndef STATUS_EVENT_PENDING
 +# define STATUS_EVENT_PENDING ((NTSTATUS) 0x40000013L)
 +#endif
 +
 +#ifndef STATUS_CHECKING_FILE_SYSTEM
 +# define STATUS_CHECKING_FILE_SYSTEM ((NTSTATUS) 0x40000014L)
 +#endif
 +
 +#ifndef STATUS_FATAL_APP_EXIT
 +# define STATUS_FATAL_APP_EXIT ((NTSTATUS) 0x40000015L)
 +#endif
 +
 +#ifndef STATUS_PREDEFINED_HANDLE
 +# define STATUS_PREDEFINED_HANDLE ((NTSTATUS) 0x40000016L)
 +#endif
 +
 +#ifndef STATUS_WAS_UNLOCKED
 +# define STATUS_WAS_UNLOCKED ((NTSTATUS) 0x40000017L)
 +#endif
 +
 +#ifndef STATUS_SERVICE_NOTIFICATION
 +# define STATUS_SERVICE_NOTIFICATION ((NTSTATUS) 0x40000018L)
 +#endif
 +
 +#ifndef STATUS_WAS_LOCKED
 +# define STATUS_WAS_LOCKED ((NTSTATUS) 0x40000019L)
 +#endif
 +
 +#ifndef STATUS_LOG_HARD_ERROR
 +# define STATUS_LOG_HARD_ERROR ((NTSTATUS) 0x4000001AL)
 +#endif
 +
 +#ifndef STATUS_ALREADY_WIN32
 +# define STATUS_ALREADY_WIN32 ((NTSTATUS) 0x4000001BL)
 +#endif
 +
 +#ifndef STATUS_WX86_UNSIMULATE
 +# define STATUS_WX86_UNSIMULATE ((NTSTATUS) 0x4000001CL)
 +#endif
 +
 +#ifndef STATUS_WX86_CONTINUE
 +# define STATUS_WX86_CONTINUE ((NTSTATUS) 0x4000001DL)
 +#endif
 +
 +#ifndef STATUS_WX86_SINGLE_STEP
 +# define STATUS_WX86_SINGLE_STEP ((NTSTATUS) 0x4000001EL)
 +#endif
 +
 +#ifndef STATUS_WX86_BREAKPOINT
 +# define STATUS_WX86_BREAKPOINT ((NTSTATUS) 0x4000001FL)
 +#endif
 +
 +#ifndef STATUS_WX86_EXCEPTION_CONTINUE
 +# define STATUS_WX86_EXCEPTION_CONTINUE ((NTSTATUS) 0x40000020L)
 +#endif
 +
 +#ifndef STATUS_WX86_EXCEPTION_LASTCHANCE
 +# define STATUS_WX86_EXCEPTION_LASTCHANCE ((NTSTATUS) 0x40000021L)
 +#endif
 +
 +#ifndef STATUS_WX86_EXCEPTION_CHAIN
 +# define STATUS_WX86_EXCEPTION_CHAIN ((NTSTATUS) 0x40000022L)
 +#endif
 +
 +#ifndef STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE
 +# define STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE ((NTSTATUS) 0x40000023L)
 +#endif
 +
 +#ifndef STATUS_NO_YIELD_PERFORMED
 +# define STATUS_NO_YIELD_PERFORMED ((NTSTATUS) 0x40000024L)
 +#endif
 +
 +#ifndef STATUS_TIMER_RESUME_IGNORED
 +# define STATUS_TIMER_RESUME_IGNORED ((NTSTATUS) 0x40000025L)
 +#endif
 +
 +#ifndef STATUS_ARBITRATION_UNHANDLED
 +# define STATUS_ARBITRATION_UNHANDLED ((NTSTATUS) 0x40000026L)
 +#endif
 +
 +#ifndef STATUS_CARDBUS_NOT_SUPPORTED
 +# define STATUS_CARDBUS_NOT_SUPPORTED ((NTSTATUS) 0x40000027L)
 +#endif
 +
 +#ifndef STATUS_WX86_CREATEWX86TIB
 +# define STATUS_WX86_CREATEWX86TIB ((NTSTATUS) 0x40000028L)
 +#endif
 +
 +#ifndef STATUS_MP_PROCESSOR_MISMATCH
 +# define STATUS_MP_PROCESSOR_MISMATCH ((NTSTATUS) 0x40000029L)
 +#endif
 +
 +#ifndef STATUS_HIBERNATED
 +# define STATUS_HIBERNATED ((NTSTATUS) 0x4000002AL)
 +#endif
 +
 +#ifndef STATUS_RESUME_HIBERNATION
 +# define STATUS_RESUME_HIBERNATION ((NTSTATUS) 0x4000002BL)
 +#endif
 +
 +#ifndef STATUS_FIRMWARE_UPDATED
 +# define STATUS_FIRMWARE_UPDATED ((NTSTATUS) 0x4000002CL)
 +#endif
 +
 +#ifndef STATUS_DRIVERS_LEAKING_LOCKED_PAGES
 +# define STATUS_DRIVERS_LEAKING_LOCKED_PAGES ((NTSTATUS) 0x4000002DL)
 +#endif
 +
 +#ifndef STATUS_MESSAGE_RETRIEVED
 +# define STATUS_MESSAGE_RETRIEVED ((NTSTATUS) 0x4000002EL)
 +#endif
 +
 +#ifndef STATUS_SYSTEM_POWERSTATE_TRANSITION
 +# define STATUS_SYSTEM_POWERSTATE_TRANSITION ((NTSTATUS) 0x4000002FL)
 +#endif
 +
 +#ifndef STATUS_ALPC_CHECK_COMPLETION_LIST
 +# define STATUS_ALPC_CHECK_COMPLETION_LIST ((NTSTATUS) 0x40000030L)
 +#endif
 +
 +#ifndef STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION
 +# define STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION ((NTSTATUS) 0x40000031L)
 +#endif
 +
 +#ifndef STATUS_ACCESS_AUDIT_BY_POLICY
 +# define STATUS_ACCESS_AUDIT_BY_POLICY ((NTSTATUS) 0x40000032L)
 +#endif
 +
 +#ifndef STATUS_ABANDON_HIBERFILE
 +# define STATUS_ABANDON_HIBERFILE ((NTSTATUS) 0x40000033L)
 +#endif
 +
 +#ifndef STATUS_BIZRULES_NOT_ENABLED
 +# define STATUS_BIZRULES_NOT_ENABLED ((NTSTATUS) 0x40000034L)
 +#endif
 +
 +#ifndef STATUS_GUARD_PAGE_VIOLATION
 +# define STATUS_GUARD_PAGE_VIOLATION ((NTSTATUS) 0x80000001L)
 +#endif
 +
 +#ifndef STATUS_DATATYPE_MISALIGNMENT
 +# define STATUS_DATATYPE_MISALIGNMENT ((NTSTATUS) 0x80000002L)
 +#endif
 +
 +#ifndef STATUS_BREAKPOINT
 +# define STATUS_BREAKPOINT ((NTSTATUS) 0x80000003L)
 +#endif
 +
 +#ifndef STATUS_SINGLE_STEP
 +# define STATUS_SINGLE_STEP ((NTSTATUS) 0x80000004L)
 +#endif
 +
 +#ifndef STATUS_BUFFER_OVERFLOW
 +# define STATUS_BUFFER_OVERFLOW ((NTSTATUS) 0x80000005L)
 +#endif
 +
 +#ifndef STATUS_NO_MORE_FILES
 +# define STATUS_NO_MORE_FILES ((NTSTATUS) 0x80000006L)
 +#endif
 +
 +#ifndef STATUS_WAKE_SYSTEM_DEBUGGER
 +# define STATUS_WAKE_SYSTEM_DEBUGGER ((NTSTATUS) 0x80000007L)
 +#endif
 +
 +#ifndef STATUS_HANDLES_CLOSED
 +# define STATUS_HANDLES_CLOSED ((NTSTATUS) 0x8000000AL)
 +#endif
 +
 +#ifndef STATUS_NO_INHERITANCE
 +# define STATUS_NO_INHERITANCE ((NTSTATUS) 0x8000000BL)
 +#endif
 +
 +#ifndef STATUS_GUID_SUBSTITUTION_MADE
 +# define STATUS_GUID_SUBSTITUTION_MADE ((NTSTATUS) 0x8000000CL)
 +#endif
 +
 +#ifndef STATUS_PARTIAL_COPY
 +# define STATUS_PARTIAL_COPY ((NTSTATUS) 0x8000000DL)
 +#endif
 +
 +#ifndef STATUS_DEVICE_PAPER_EMPTY
 +# define STATUS_DEVICE_PAPER_EMPTY ((NTSTATUS) 0x8000000EL)
 +#endif
 +
 +#ifndef STATUS_DEVICE_POWERED_OFF
 +# define STATUS_DEVICE_POWERED_OFF ((NTSTATUS) 0x8000000FL)
 +#endif
 +
 +#ifndef STATUS_DEVICE_OFF_LINE
 +# define STATUS_DEVICE_OFF_LINE ((NTSTATUS) 0x80000010L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_BUSY
 +# define STATUS_DEVICE_BUSY ((NTSTATUS) 0x80000011L)
 +#endif
 +
 +#ifndef STATUS_NO_MORE_EAS
 +# define STATUS_NO_MORE_EAS ((NTSTATUS) 0x80000012L)
 +#endif
 +
 +#ifndef STATUS_INVALID_EA_NAME
 +# define STATUS_INVALID_EA_NAME ((NTSTATUS) 0x80000013L)
 +#endif
 +
 +#ifndef STATUS_EA_LIST_INCONSISTENT
 +# define STATUS_EA_LIST_INCONSISTENT ((NTSTATUS) 0x80000014L)
 +#endif
 +
 +#ifndef STATUS_INVALID_EA_FLAG
 +# define STATUS_INVALID_EA_FLAG ((NTSTATUS) 0x80000015L)
 +#endif
 +
 +#ifndef STATUS_VERIFY_REQUIRED
 +# define STATUS_VERIFY_REQUIRED ((NTSTATUS) 0x80000016L)
 +#endif
 +
 +#ifndef STATUS_EXTRANEOUS_INFORMATION
 +# define STATUS_EXTRANEOUS_INFORMATION ((NTSTATUS) 0x80000017L)
 +#endif
 +
 +#ifndef STATUS_RXACT_COMMIT_NECESSARY
 +# define STATUS_RXACT_COMMIT_NECESSARY ((NTSTATUS) 0x80000018L)
 +#endif
 +
 +#ifndef STATUS_NO_MORE_ENTRIES
 +# define STATUS_NO_MORE_ENTRIES ((NTSTATUS) 0x8000001AL)
 +#endif
 +
 +#ifndef STATUS_FILEMARK_DETECTED
 +# define STATUS_FILEMARK_DETECTED ((NTSTATUS) 0x8000001BL)
 +#endif
 +
 +#ifndef STATUS_MEDIA_CHANGED
 +# define STATUS_MEDIA_CHANGED ((NTSTATUS) 0x8000001CL)
 +#endif
 +
 +#ifndef STATUS_BUS_RESET
 +# define STATUS_BUS_RESET ((NTSTATUS) 0x8000001DL)
 +#endif
 +
 +#ifndef STATUS_END_OF_MEDIA
 +# define STATUS_END_OF_MEDIA ((NTSTATUS) 0x8000001EL)
 +#endif
 +
 +#ifndef STATUS_BEGINNING_OF_MEDIA
 +# define STATUS_BEGINNING_OF_MEDIA ((NTSTATUS) 0x8000001FL)
 +#endif
 +
 +#ifndef STATUS_MEDIA_CHECK
 +# define STATUS_MEDIA_CHECK ((NTSTATUS) 0x80000020L)
 +#endif
 +
 +#ifndef STATUS_SETMARK_DETECTED
 +# define STATUS_SETMARK_DETECTED ((NTSTATUS) 0x80000021L)
 +#endif
 +
 +#ifndef STATUS_NO_DATA_DETECTED
 +# define STATUS_NO_DATA_DETECTED ((NTSTATUS) 0x80000022L)
 +#endif
 +
 +#ifndef STATUS_REDIRECTOR_HAS_OPEN_HANDLES
 +# define STATUS_REDIRECTOR_HAS_OPEN_HANDLES ((NTSTATUS) 0x80000023L)
 +#endif
 +
 +#ifndef STATUS_SERVER_HAS_OPEN_HANDLES
 +# define STATUS_SERVER_HAS_OPEN_HANDLES ((NTSTATUS) 0x80000024L)
 +#endif
 +
 +#ifndef STATUS_ALREADY_DISCONNECTED
 +# define STATUS_ALREADY_DISCONNECTED ((NTSTATUS) 0x80000025L)
 +#endif
 +
 +#ifndef STATUS_LONGJUMP
 +# define STATUS_LONGJUMP ((NTSTATUS) 0x80000026L)
 +#endif
 +
 +#ifndef STATUS_CLEANER_CARTRIDGE_INSTALLED
 +# define STATUS_CLEANER_CARTRIDGE_INSTALLED ((NTSTATUS) 0x80000027L)
 +#endif
 +
 +#ifndef STATUS_PLUGPLAY_QUERY_VETOED
 +# define STATUS_PLUGPLAY_QUERY_VETOED ((NTSTATUS) 0x80000028L)
 +#endif
 +
 +#ifndef STATUS_UNWIND_CONSOLIDATE
 +# define STATUS_UNWIND_CONSOLIDATE ((NTSTATUS) 0x80000029L)
 +#endif
 +
 +#ifndef STATUS_REGISTRY_HIVE_RECOVERED
 +# define STATUS_REGISTRY_HIVE_RECOVERED ((NTSTATUS) 0x8000002AL)
 +#endif
 +
 +#ifndef STATUS_DLL_MIGHT_BE_INSECURE
 +# define STATUS_DLL_MIGHT_BE_INSECURE ((NTSTATUS) 0x8000002BL)
 +#endif
 +
 +#ifndef STATUS_DLL_MIGHT_BE_INCOMPATIBLE
 +# define STATUS_DLL_MIGHT_BE_INCOMPATIBLE ((NTSTATUS) 0x8000002CL)
 +#endif
 +
 +#ifndef STATUS_STOPPED_ON_SYMLINK
 +# define STATUS_STOPPED_ON_SYMLINK ((NTSTATUS) 0x8000002DL)
 +#endif
 +
 +#ifndef STATUS_CANNOT_GRANT_REQUESTED_OPLOCK
 +# define STATUS_CANNOT_GRANT_REQUESTED_OPLOCK ((NTSTATUS) 0x8000002EL)
 +#endif
 +
 +#ifndef STATUS_NO_ACE_CONDITION
 +# define STATUS_NO_ACE_CONDITION ((NTSTATUS) 0x8000002FL)
 +#endif
 +
 +#ifndef STATUS_UNSUCCESSFUL
 +# define STATUS_UNSUCCESSFUL ((NTSTATUS) 0xC0000001L)
 +#endif
 +
 +#ifndef STATUS_NOT_IMPLEMENTED
 +# define STATUS_NOT_IMPLEMENTED ((NTSTATUS) 0xC0000002L)
 +#endif
 +
 +#ifndef STATUS_INVALID_INFO_CLASS
 +# define STATUS_INVALID_INFO_CLASS ((NTSTATUS) 0xC0000003L)
 +#endif
 +
 +#ifndef STATUS_INFO_LENGTH_MISMATCH
 +# define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS) 0xC0000004L)
 +#endif
 +
 +#ifndef STATUS_ACCESS_VIOLATION
 +# define STATUS_ACCESS_VIOLATION ((NTSTATUS) 0xC0000005L)
 +#endif
 +
 +#ifndef STATUS_IN_PAGE_ERROR
 +# define STATUS_IN_PAGE_ERROR ((NTSTATUS) 0xC0000006L)
 +#endif
 +
 +#ifndef STATUS_PAGEFILE_QUOTA
 +# define STATUS_PAGEFILE_QUOTA ((NTSTATUS) 0xC0000007L)
 +#endif
 +
 +#ifndef STATUS_INVALID_HANDLE
 +# define STATUS_INVALID_HANDLE ((NTSTATUS) 0xC0000008L)
 +#endif
 +
 +#ifndef STATUS_BAD_INITIAL_STACK
 +# define STATUS_BAD_INITIAL_STACK ((NTSTATUS) 0xC0000009L)
 +#endif
 +
 +#ifndef STATUS_BAD_INITIAL_PC
 +# define STATUS_BAD_INITIAL_PC ((NTSTATUS) 0xC000000AL)
 +#endif
 +
 +#ifndef STATUS_INVALID_CID
 +# define STATUS_INVALID_CID ((NTSTATUS) 0xC000000BL)
 +#endif
 +
 +#ifndef STATUS_TIMER_NOT_CANCELED
 +# define STATUS_TIMER_NOT_CANCELED ((NTSTATUS) 0xC000000CL)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER
 +# define STATUS_INVALID_PARAMETER ((NTSTATUS) 0xC000000DL)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_DEVICE
 +# define STATUS_NO_SUCH_DEVICE ((NTSTATUS) 0xC000000EL)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_FILE
 +# define STATUS_NO_SUCH_FILE ((NTSTATUS) 0xC000000FL)
 +#endif
 +
 +#ifndef STATUS_INVALID_DEVICE_REQUEST
 +# define STATUS_INVALID_DEVICE_REQUEST ((NTSTATUS) 0xC0000010L)
 +#endif
 +
 +#ifndef STATUS_END_OF_FILE
 +# define STATUS_END_OF_FILE ((NTSTATUS) 0xC0000011L)
 +#endif
 +
 +#ifndef STATUS_WRONG_VOLUME
 +# define STATUS_WRONG_VOLUME ((NTSTATUS) 0xC0000012L)
 +#endif
 +
 +#ifndef STATUS_NO_MEDIA_IN_DEVICE
 +# define STATUS_NO_MEDIA_IN_DEVICE ((NTSTATUS) 0xC0000013L)
 +#endif
 +
 +#ifndef STATUS_UNRECOGNIZED_MEDIA
 +# define STATUS_UNRECOGNIZED_MEDIA ((NTSTATUS) 0xC0000014L)
 +#endif
 +
 +#ifndef STATUS_NONEXISTENT_SECTOR
 +# define STATUS_NONEXISTENT_SECTOR ((NTSTATUS) 0xC0000015L)
 +#endif
 +
 +#ifndef STATUS_MORE_PROCESSING_REQUIRED
 +# define STATUS_MORE_PROCESSING_REQUIRED ((NTSTATUS) 0xC0000016L)
 +#endif
 +
 +#ifndef STATUS_NO_MEMORY
 +# define STATUS_NO_MEMORY ((NTSTATUS) 0xC0000017L)
 +#endif
 +
 +#ifndef STATUS_CONFLICTING_ADDRESSES
 +# define STATUS_CONFLICTING_ADDRESSES ((NTSTATUS) 0xC0000018L)
 +#endif
 +
 +#ifndef STATUS_NOT_MAPPED_VIEW
 +# define STATUS_NOT_MAPPED_VIEW ((NTSTATUS) 0xC0000019L)
 +#endif
 +
 +#ifndef STATUS_UNABLE_TO_FREE_VM
 +# define STATUS_UNABLE_TO_FREE_VM ((NTSTATUS) 0xC000001AL)
 +#endif
 +
 +#ifndef STATUS_UNABLE_TO_DELETE_SECTION
 +# define STATUS_UNABLE_TO_DELETE_SECTION ((NTSTATUS) 0xC000001BL)
 +#endif
 +
 +#ifndef STATUS_INVALID_SYSTEM_SERVICE
 +# define STATUS_INVALID_SYSTEM_SERVICE ((NTSTATUS) 0xC000001CL)
 +#endif
 +
 +#ifndef STATUS_ILLEGAL_INSTRUCTION
 +# define STATUS_ILLEGAL_INSTRUCTION ((NTSTATUS) 0xC000001DL)
 +#endif
 +
 +#ifndef STATUS_INVALID_LOCK_SEQUENCE
 +# define STATUS_INVALID_LOCK_SEQUENCE ((NTSTATUS) 0xC000001EL)
 +#endif
 +
 +#ifndef STATUS_INVALID_VIEW_SIZE
 +# define STATUS_INVALID_VIEW_SIZE ((NTSTATUS) 0xC000001FL)
 +#endif
 +
 +#ifndef STATUS_INVALID_FILE_FOR_SECTION
 +# define STATUS_INVALID_FILE_FOR_SECTION ((NTSTATUS) 0xC0000020L)
 +#endif
 +
 +#ifndef STATUS_ALREADY_COMMITTED
 +# define STATUS_ALREADY_COMMITTED ((NTSTATUS) 0xC0000021L)
 +#endif
 +
 +#ifndef STATUS_ACCESS_DENIED
 +# define STATUS_ACCESS_DENIED ((NTSTATUS) 0xC0000022L)
 +#endif
 +
 +#ifndef STATUS_BUFFER_TOO_SMALL
 +# define STATUS_BUFFER_TOO_SMALL ((NTSTATUS) 0xC0000023L)
 +#endif
 +
 +#ifndef STATUS_OBJECT_TYPE_MISMATCH
 +# define STATUS_OBJECT_TYPE_MISMATCH ((NTSTATUS) 0xC0000024L)
 +#endif
 +
 +#ifndef STATUS_NONCONTINUABLE_EXCEPTION
 +# define STATUS_NONCONTINUABLE_EXCEPTION ((NTSTATUS) 0xC0000025L)
 +#endif
 +
 +#ifndef STATUS_INVALID_DISPOSITION
 +# define STATUS_INVALID_DISPOSITION ((NTSTATUS) 0xC0000026L)
 +#endif
 +
 +#ifndef STATUS_UNWIND
 +# define STATUS_UNWIND ((NTSTATUS) 0xC0000027L)
 +#endif
 +
 +#ifndef STATUS_BAD_STACK
 +# define STATUS_BAD_STACK ((NTSTATUS) 0xC0000028L)
 +#endif
 +
 +#ifndef STATUS_INVALID_UNWIND_TARGET
 +# define STATUS_INVALID_UNWIND_TARGET ((NTSTATUS) 0xC0000029L)
 +#endif
 +
 +#ifndef STATUS_NOT_LOCKED
 +# define STATUS_NOT_LOCKED ((NTSTATUS) 0xC000002AL)
 +#endif
 +
 +#ifndef STATUS_PARITY_ERROR
 +# define STATUS_PARITY_ERROR ((NTSTATUS) 0xC000002BL)
 +#endif
 +
 +#ifndef STATUS_UNABLE_TO_DECOMMIT_VM
 +# define STATUS_UNABLE_TO_DECOMMIT_VM ((NTSTATUS) 0xC000002CL)
 +#endif
 +
 +#ifndef STATUS_NOT_COMMITTED
 +# define STATUS_NOT_COMMITTED ((NTSTATUS) 0xC000002DL)
 +#endif
 +
 +#ifndef STATUS_INVALID_PORT_ATTRIBUTES
 +# define STATUS_INVALID_PORT_ATTRIBUTES ((NTSTATUS) 0xC000002EL)
 +#endif
 +
 +#ifndef STATUS_PORT_MESSAGE_TOO_LONG
 +# define STATUS_PORT_MESSAGE_TOO_LONG ((NTSTATUS) 0xC000002FL)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_MIX
 +# define STATUS_INVALID_PARAMETER_MIX ((NTSTATUS) 0xC0000030L)
 +#endif
 +
 +#ifndef STATUS_INVALID_QUOTA_LOWER
 +# define STATUS_INVALID_QUOTA_LOWER ((NTSTATUS) 0xC0000031L)
 +#endif
 +
 +#ifndef STATUS_DISK_CORRUPT_ERROR
 +# define STATUS_DISK_CORRUPT_ERROR ((NTSTATUS) 0xC0000032L)
 +#endif
 +
 +#ifndef STATUS_OBJECT_NAME_INVALID
 +# define STATUS_OBJECT_NAME_INVALID ((NTSTATUS) 0xC0000033L)
 +#endif
 +
 +#ifndef STATUS_OBJECT_NAME_NOT_FOUND
 +# define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS) 0xC0000034L)
 +#endif
 +
 +#ifndef STATUS_OBJECT_NAME_COLLISION
 +# define STATUS_OBJECT_NAME_COLLISION ((NTSTATUS) 0xC0000035L)
 +#endif
 +
 +#ifndef STATUS_PORT_DISCONNECTED
 +# define STATUS_PORT_DISCONNECTED ((NTSTATUS) 0xC0000037L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_ALREADY_ATTACHED
 +# define STATUS_DEVICE_ALREADY_ATTACHED ((NTSTATUS) 0xC0000038L)
 +#endif
 +
 +#ifndef STATUS_OBJECT_PATH_INVALID
 +# define STATUS_OBJECT_PATH_INVALID ((NTSTATUS) 0xC0000039L)
 +#endif
 +
 +#ifndef STATUS_OBJECT_PATH_NOT_FOUND
 +# define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS) 0xC000003AL)
 +#endif
 +
 +#ifndef STATUS_OBJECT_PATH_SYNTAX_BAD
 +# define STATUS_OBJECT_PATH_SYNTAX_BAD ((NTSTATUS) 0xC000003BL)
 +#endif
 +
 +#ifndef STATUS_DATA_OVERRUN
 +# define STATUS_DATA_OVERRUN ((NTSTATUS) 0xC000003CL)
 +#endif
 +
 +#ifndef STATUS_DATA_LATE_ERROR
 +# define STATUS_DATA_LATE_ERROR ((NTSTATUS) 0xC000003DL)
 +#endif
 +
 +#ifndef STATUS_DATA_ERROR
 +# define STATUS_DATA_ERROR ((NTSTATUS) 0xC000003EL)
 +#endif
 +
 +#ifndef STATUS_CRC_ERROR
 +# define STATUS_CRC_ERROR ((NTSTATUS) 0xC000003FL)
 +#endif
 +
 +#ifndef STATUS_SECTION_TOO_BIG
 +# define STATUS_SECTION_TOO_BIG ((NTSTATUS) 0xC0000040L)
 +#endif
 +
 +#ifndef STATUS_PORT_CONNECTION_REFUSED
 +# define STATUS_PORT_CONNECTION_REFUSED ((NTSTATUS) 0xC0000041L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PORT_HANDLE
 +# define STATUS_INVALID_PORT_HANDLE ((NTSTATUS) 0xC0000042L)
 +#endif
 +
 +#ifndef STATUS_SHARING_VIOLATION
 +# define STATUS_SHARING_VIOLATION ((NTSTATUS) 0xC0000043L)
 +#endif
 +
 +#ifndef STATUS_QUOTA_EXCEEDED
 +# define STATUS_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000044L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PAGE_PROTECTION
 +# define STATUS_INVALID_PAGE_PROTECTION ((NTSTATUS) 0xC0000045L)
 +#endif
 +
 +#ifndef STATUS_MUTANT_NOT_OWNED
 +# define STATUS_MUTANT_NOT_OWNED ((NTSTATUS) 0xC0000046L)
 +#endif
 +
 +#ifndef STATUS_SEMAPHORE_LIMIT_EXCEEDED
 +# define STATUS_SEMAPHORE_LIMIT_EXCEEDED ((NTSTATUS) 0xC0000047L)
 +#endif
 +
 +#ifndef STATUS_PORT_ALREADY_SET
 +# define STATUS_PORT_ALREADY_SET ((NTSTATUS) 0xC0000048L)
 +#endif
 +
 +#ifndef STATUS_SECTION_NOT_IMAGE
 +# define STATUS_SECTION_NOT_IMAGE ((NTSTATUS) 0xC0000049L)
 +#endif
 +
 +#ifndef STATUS_SUSPEND_COUNT_EXCEEDED
 +# define STATUS_SUSPEND_COUNT_EXCEEDED ((NTSTATUS) 0xC000004AL)
 +#endif
 +
 +#ifndef STATUS_THREAD_IS_TERMINATING
 +# define STATUS_THREAD_IS_TERMINATING ((NTSTATUS) 0xC000004BL)
 +#endif
 +
 +#ifndef STATUS_BAD_WORKING_SET_LIMIT
 +# define STATUS_BAD_WORKING_SET_LIMIT ((NTSTATUS) 0xC000004CL)
 +#endif
 +
 +#ifndef STATUS_INCOMPATIBLE_FILE_MAP
 +# define STATUS_INCOMPATIBLE_FILE_MAP ((NTSTATUS) 0xC000004DL)
 +#endif
 +
 +#ifndef STATUS_SECTION_PROTECTION
 +# define STATUS_SECTION_PROTECTION ((NTSTATUS) 0xC000004EL)
 +#endif
 +
 +#ifndef STATUS_EAS_NOT_SUPPORTED
 +# define STATUS_EAS_NOT_SUPPORTED ((NTSTATUS) 0xC000004FL)
 +#endif
 +
 +#ifndef STATUS_EA_TOO_LARGE
 +# define STATUS_EA_TOO_LARGE ((NTSTATUS) 0xC0000050L)
 +#endif
 +
 +#ifndef STATUS_NONEXISTENT_EA_ENTRY
 +# define STATUS_NONEXISTENT_EA_ENTRY ((NTSTATUS) 0xC0000051L)
 +#endif
 +
 +#ifndef STATUS_NO_EAS_ON_FILE
 +# define STATUS_NO_EAS_ON_FILE ((NTSTATUS) 0xC0000052L)
 +#endif
 +
 +#ifndef STATUS_EA_CORRUPT_ERROR
 +# define STATUS_EA_CORRUPT_ERROR ((NTSTATUS) 0xC0000053L)
 +#endif
 +
 +#ifndef STATUS_FILE_LOCK_CONFLICT
 +# define STATUS_FILE_LOCK_CONFLICT ((NTSTATUS) 0xC0000054L)
 +#endif
 +
 +#ifndef STATUS_LOCK_NOT_GRANTED
 +# define STATUS_LOCK_NOT_GRANTED ((NTSTATUS) 0xC0000055L)
 +#endif
 +
 +#ifndef STATUS_DELETE_PENDING
 +# define STATUS_DELETE_PENDING ((NTSTATUS) 0xC0000056L)
 +#endif
 +
 +#ifndef STATUS_CTL_FILE_NOT_SUPPORTED
 +# define STATUS_CTL_FILE_NOT_SUPPORTED ((NTSTATUS) 0xC0000057L)
 +#endif
 +
 +#ifndef STATUS_UNKNOWN_REVISION
 +# define STATUS_UNKNOWN_REVISION ((NTSTATUS) 0xC0000058L)
 +#endif
 +
 +#ifndef STATUS_REVISION_MISMATCH
 +# define STATUS_REVISION_MISMATCH ((NTSTATUS) 0xC0000059L)
 +#endif
 +
 +#ifndef STATUS_INVALID_OWNER
 +# define STATUS_INVALID_OWNER ((NTSTATUS) 0xC000005AL)
 +#endif
 +
 +#ifndef STATUS_INVALID_PRIMARY_GROUP
 +# define STATUS_INVALID_PRIMARY_GROUP ((NTSTATUS) 0xC000005BL)
 +#endif
 +
 +#ifndef STATUS_NO_IMPERSONATION_TOKEN
 +# define STATUS_NO_IMPERSONATION_TOKEN ((NTSTATUS) 0xC000005CL)
 +#endif
 +
 +#ifndef STATUS_CANT_DISABLE_MANDATORY
 +# define STATUS_CANT_DISABLE_MANDATORY ((NTSTATUS) 0xC000005DL)
 +#endif
 +
 +#ifndef STATUS_NO_LOGON_SERVERS
 +# define STATUS_NO_LOGON_SERVERS ((NTSTATUS) 0xC000005EL)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_LOGON_SESSION
 +# define STATUS_NO_SUCH_LOGON_SESSION ((NTSTATUS) 0xC000005FL)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_PRIVILEGE
 +# define STATUS_NO_SUCH_PRIVILEGE ((NTSTATUS) 0xC0000060L)
 +#endif
 +
 +#ifndef STATUS_PRIVILEGE_NOT_HELD
 +# define STATUS_PRIVILEGE_NOT_HELD ((NTSTATUS) 0xC0000061L)
 +#endif
 +
 +#ifndef STATUS_INVALID_ACCOUNT_NAME
 +# define STATUS_INVALID_ACCOUNT_NAME ((NTSTATUS) 0xC0000062L)
 +#endif
 +
 +#ifndef STATUS_USER_EXISTS
 +# define STATUS_USER_EXISTS ((NTSTATUS) 0xC0000063L)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_USER
 +# define STATUS_NO_SUCH_USER ((NTSTATUS) 0xC0000064L)
 +#endif
 +
 +#ifndef STATUS_GROUP_EXISTS
 +# define STATUS_GROUP_EXISTS ((NTSTATUS) 0xC0000065L)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_GROUP
 +# define STATUS_NO_SUCH_GROUP ((NTSTATUS) 0xC0000066L)
 +#endif
 +
 +#ifndef STATUS_MEMBER_IN_GROUP
 +# define STATUS_MEMBER_IN_GROUP ((NTSTATUS) 0xC0000067L)
 +#endif
 +
 +#ifndef STATUS_MEMBER_NOT_IN_GROUP
 +# define STATUS_MEMBER_NOT_IN_GROUP ((NTSTATUS) 0xC0000068L)
 +#endif
 +
 +#ifndef STATUS_LAST_ADMIN
 +# define STATUS_LAST_ADMIN ((NTSTATUS) 0xC0000069L)
 +#endif
 +
 +#ifndef STATUS_WRONG_PASSWORD
 +# define STATUS_WRONG_PASSWORD ((NTSTATUS) 0xC000006AL)
 +#endif
 +
 +#ifndef STATUS_ILL_FORMED_PASSWORD
 +# define STATUS_ILL_FORMED_PASSWORD ((NTSTATUS) 0xC000006BL)
 +#endif
 +
 +#ifndef STATUS_PASSWORD_RESTRICTION
 +# define STATUS_PASSWORD_RESTRICTION ((NTSTATUS) 0xC000006CL)
 +#endif
 +
 +#ifndef STATUS_LOGON_FAILURE
 +# define STATUS_LOGON_FAILURE ((NTSTATUS) 0xC000006DL)
 +#endif
 +
 +#ifndef STATUS_ACCOUNT_RESTRICTION
 +# define STATUS_ACCOUNT_RESTRICTION ((NTSTATUS) 0xC000006EL)
 +#endif
 +
 +#ifndef STATUS_INVALID_LOGON_HOURS
 +# define STATUS_INVALID_LOGON_HOURS ((NTSTATUS) 0xC000006FL)
 +#endif
 +
 +#ifndef STATUS_INVALID_WORKSTATION
 +# define STATUS_INVALID_WORKSTATION ((NTSTATUS) 0xC0000070L)
 +#endif
 +
 +#ifndef STATUS_PASSWORD_EXPIRED
 +# define STATUS_PASSWORD_EXPIRED ((NTSTATUS) 0xC0000071L)
 +#endif
 +
 +#ifndef STATUS_ACCOUNT_DISABLED
 +# define STATUS_ACCOUNT_DISABLED ((NTSTATUS) 0xC0000072L)
 +#endif
 +
 +#ifndef STATUS_NONE_MAPPED
 +# define STATUS_NONE_MAPPED ((NTSTATUS) 0xC0000073L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_LUIDS_REQUESTED
 +# define STATUS_TOO_MANY_LUIDS_REQUESTED ((NTSTATUS) 0xC0000074L)
 +#endif
 +
 +#ifndef STATUS_LUIDS_EXHAUSTED
 +# define STATUS_LUIDS_EXHAUSTED ((NTSTATUS) 0xC0000075L)
 +#endif
 +
 +#ifndef STATUS_INVALID_SUB_AUTHORITY
 +# define STATUS_INVALID_SUB_AUTHORITY ((NTSTATUS) 0xC0000076L)
 +#endif
 +
 +#ifndef STATUS_INVALID_ACL
 +# define STATUS_INVALID_ACL ((NTSTATUS) 0xC0000077L)
 +#endif
 +
 +#ifndef STATUS_INVALID_SID
 +# define STATUS_INVALID_SID ((NTSTATUS) 0xC0000078L)
 +#endif
 +
 +#ifndef STATUS_INVALID_SECURITY_DESCR
 +# define STATUS_INVALID_SECURITY_DESCR ((NTSTATUS) 0xC0000079L)
 +#endif
 +
 +#ifndef STATUS_PROCEDURE_NOT_FOUND
 +# define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS) 0xC000007AL)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_FORMAT
 +# define STATUS_INVALID_IMAGE_FORMAT ((NTSTATUS) 0xC000007BL)
 +#endif
 +
 +#ifndef STATUS_NO_TOKEN
 +# define STATUS_NO_TOKEN ((NTSTATUS) 0xC000007CL)
 +#endif
 +
 +#ifndef STATUS_BAD_INHERITANCE_ACL
 +# define STATUS_BAD_INHERITANCE_ACL ((NTSTATUS) 0xC000007DL)
 +#endif
 +
 +#ifndef STATUS_RANGE_NOT_LOCKED
 +# define STATUS_RANGE_NOT_LOCKED ((NTSTATUS) 0xC000007EL)
 +#endif
 +
 +#ifndef STATUS_DISK_FULL
 +# define STATUS_DISK_FULL ((NTSTATUS) 0xC000007FL)
 +#endif
 +
 +#ifndef STATUS_SERVER_DISABLED
 +# define STATUS_SERVER_DISABLED ((NTSTATUS) 0xC0000080L)
 +#endif
 +
 +#ifndef STATUS_SERVER_NOT_DISABLED
 +# define STATUS_SERVER_NOT_DISABLED ((NTSTATUS) 0xC0000081L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_GUIDS_REQUESTED
 +# define STATUS_TOO_MANY_GUIDS_REQUESTED ((NTSTATUS) 0xC0000082L)
 +#endif
 +
 +#ifndef STATUS_GUIDS_EXHAUSTED
 +# define STATUS_GUIDS_EXHAUSTED ((NTSTATUS) 0xC0000083L)
 +#endif
 +
 +#ifndef STATUS_INVALID_ID_AUTHORITY
 +# define STATUS_INVALID_ID_AUTHORITY ((NTSTATUS) 0xC0000084L)
 +#endif
 +
 +#ifndef STATUS_AGENTS_EXHAUSTED
 +# define STATUS_AGENTS_EXHAUSTED ((NTSTATUS) 0xC0000085L)
 +#endif
 +
 +#ifndef STATUS_INVALID_VOLUME_LABEL
 +# define STATUS_INVALID_VOLUME_LABEL ((NTSTATUS) 0xC0000086L)
 +#endif
 +
 +#ifndef STATUS_SECTION_NOT_EXTENDED
 +# define STATUS_SECTION_NOT_EXTENDED ((NTSTATUS) 0xC0000087L)
 +#endif
 +
 +#ifndef STATUS_NOT_MAPPED_DATA
 +# define STATUS_NOT_MAPPED_DATA ((NTSTATUS) 0xC0000088L)
 +#endif
 +
 +#ifndef STATUS_RESOURCE_DATA_NOT_FOUND
 +# define STATUS_RESOURCE_DATA_NOT_FOUND ((NTSTATUS) 0xC0000089L)
 +#endif
 +
 +#ifndef STATUS_RESOURCE_TYPE_NOT_FOUND
 +# define STATUS_RESOURCE_TYPE_NOT_FOUND ((NTSTATUS) 0xC000008AL)
 +#endif
 +
 +#ifndef STATUS_RESOURCE_NAME_NOT_FOUND
 +# define STATUS_RESOURCE_NAME_NOT_FOUND ((NTSTATUS) 0xC000008BL)
 +#endif
 +
 +#ifndef STATUS_ARRAY_BOUNDS_EXCEEDED
 +# define STATUS_ARRAY_BOUNDS_EXCEEDED ((NTSTATUS) 0xC000008CL)
 +#endif
 +
 +#ifndef STATUS_FLOAT_DENORMAL_OPERAND
 +# define STATUS_FLOAT_DENORMAL_OPERAND ((NTSTATUS) 0xC000008DL)
 +#endif
 +
 +#ifndef STATUS_FLOAT_DIVIDE_BY_ZERO
 +# define STATUS_FLOAT_DIVIDE_BY_ZERO ((NTSTATUS) 0xC000008EL)
 +#endif
 +
 +#ifndef STATUS_FLOAT_INEXACT_RESULT
 +# define STATUS_FLOAT_INEXACT_RESULT ((NTSTATUS) 0xC000008FL)
 +#endif
 +
 +#ifndef STATUS_FLOAT_INVALID_OPERATION
 +# define STATUS_FLOAT_INVALID_OPERATION ((NTSTATUS) 0xC0000090L)
 +#endif
 +
 +#ifndef STATUS_FLOAT_OVERFLOW
 +# define STATUS_FLOAT_OVERFLOW ((NTSTATUS) 0xC0000091L)
 +#endif
 +
 +#ifndef STATUS_FLOAT_STACK_CHECK
 +# define STATUS_FLOAT_STACK_CHECK ((NTSTATUS) 0xC0000092L)
 +#endif
 +
 +#ifndef STATUS_FLOAT_UNDERFLOW
 +# define STATUS_FLOAT_UNDERFLOW ((NTSTATUS) 0xC0000093L)
 +#endif
 +
 +#ifndef STATUS_INTEGER_DIVIDE_BY_ZERO
 +# define STATUS_INTEGER_DIVIDE_BY_ZERO ((NTSTATUS) 0xC0000094L)
 +#endif
 +
 +#ifndef STATUS_INTEGER_OVERFLOW
 +# define STATUS_INTEGER_OVERFLOW ((NTSTATUS) 0xC0000095L)
 +#endif
 +
 +#ifndef STATUS_PRIVILEGED_INSTRUCTION
 +# define STATUS_PRIVILEGED_INSTRUCTION ((NTSTATUS) 0xC0000096L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_PAGING_FILES
 +# define STATUS_TOO_MANY_PAGING_FILES ((NTSTATUS) 0xC0000097L)
 +#endif
 +
 +#ifndef STATUS_FILE_INVALID
 +# define STATUS_FILE_INVALID ((NTSTATUS) 0xC0000098L)
 +#endif
 +
 +#ifndef STATUS_ALLOTTED_SPACE_EXCEEDED
 +# define STATUS_ALLOTTED_SPACE_EXCEEDED ((NTSTATUS) 0xC0000099L)
 +#endif
 +
 +#ifndef STATUS_INSUFFICIENT_RESOURCES
 +# define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS) 0xC000009AL)
 +#endif
 +
 +#ifndef STATUS_DFS_EXIT_PATH_FOUND
 +# define STATUS_DFS_EXIT_PATH_FOUND ((NTSTATUS) 0xC000009BL)
 +#endif
 +
 +#ifndef STATUS_DEVICE_DATA_ERROR
 +# define STATUS_DEVICE_DATA_ERROR ((NTSTATUS) 0xC000009CL)
 +#endif
 +
 +#ifndef STATUS_DEVICE_NOT_CONNECTED
 +# define STATUS_DEVICE_NOT_CONNECTED ((NTSTATUS) 0xC000009DL)
 +#endif
 +
 +#ifndef STATUS_DEVICE_POWER_FAILURE
 +# define STATUS_DEVICE_POWER_FAILURE ((NTSTATUS) 0xC000009EL)
 +#endif
 +
 +#ifndef STATUS_FREE_VM_NOT_AT_BASE
 +# define STATUS_FREE_VM_NOT_AT_BASE ((NTSTATUS) 0xC000009FL)
 +#endif
 +
 +#ifndef STATUS_MEMORY_NOT_ALLOCATED
 +# define STATUS_MEMORY_NOT_ALLOCATED ((NTSTATUS) 0xC00000A0L)
 +#endif
 +
 +#ifndef STATUS_WORKING_SET_QUOTA
 +# define STATUS_WORKING_SET_QUOTA ((NTSTATUS) 0xC00000A1L)
 +#endif
 +
 +#ifndef STATUS_MEDIA_WRITE_PROTECTED
 +# define STATUS_MEDIA_WRITE_PROTECTED ((NTSTATUS) 0xC00000A2L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_NOT_READY
 +# define STATUS_DEVICE_NOT_READY ((NTSTATUS) 0xC00000A3L)
 +#endif
 +
 +#ifndef STATUS_INVALID_GROUP_ATTRIBUTES
 +# define STATUS_INVALID_GROUP_ATTRIBUTES ((NTSTATUS) 0xC00000A4L)
 +#endif
 +
 +#ifndef STATUS_BAD_IMPERSONATION_LEVEL
 +# define STATUS_BAD_IMPERSONATION_LEVEL ((NTSTATUS) 0xC00000A5L)
 +#endif
 +
 +#ifndef STATUS_CANT_OPEN_ANONYMOUS
 +# define STATUS_CANT_OPEN_ANONYMOUS ((NTSTATUS) 0xC00000A6L)
 +#endif
 +
 +#ifndef STATUS_BAD_VALIDATION_CLASS
 +# define STATUS_BAD_VALIDATION_CLASS ((NTSTATUS) 0xC00000A7L)
 +#endif
 +
 +#ifndef STATUS_BAD_TOKEN_TYPE
 +# define STATUS_BAD_TOKEN_TYPE ((NTSTATUS) 0xC00000A8L)
 +#endif
 +
 +#ifndef STATUS_BAD_MASTER_BOOT_RECORD
 +# define STATUS_BAD_MASTER_BOOT_RECORD ((NTSTATUS) 0xC00000A9L)
 +#endif
 +
 +#ifndef STATUS_INSTRUCTION_MISALIGNMENT
 +# define STATUS_INSTRUCTION_MISALIGNMENT ((NTSTATUS) 0xC00000AAL)
 +#endif
 +
 +#ifndef STATUS_INSTANCE_NOT_AVAILABLE
 +# define STATUS_INSTANCE_NOT_AVAILABLE ((NTSTATUS) 0xC00000ABL)
 +#endif
 +
 +#ifndef STATUS_PIPE_NOT_AVAILABLE
 +# define STATUS_PIPE_NOT_AVAILABLE ((NTSTATUS) 0xC00000ACL)
 +#endif
 +
 +#ifndef STATUS_INVALID_PIPE_STATE
 +# define STATUS_INVALID_PIPE_STATE ((NTSTATUS) 0xC00000ADL)
 +#endif
 +
 +#ifndef STATUS_PIPE_BUSY
 +# define STATUS_PIPE_BUSY ((NTSTATUS) 0xC00000AEL)
 +#endif
 +
 +#ifndef STATUS_ILLEGAL_FUNCTION
 +# define STATUS_ILLEGAL_FUNCTION ((NTSTATUS) 0xC00000AFL)
 +#endif
 +
 +#ifndef STATUS_PIPE_DISCONNECTED
 +# define STATUS_PIPE_DISCONNECTED ((NTSTATUS) 0xC00000B0L)
 +#endif
 +
 +#ifndef STATUS_PIPE_CLOSING
 +# define STATUS_PIPE_CLOSING ((NTSTATUS) 0xC00000B1L)
 +#endif
 +
 +#ifndef STATUS_PIPE_CONNECTED
 +# define STATUS_PIPE_CONNECTED ((NTSTATUS) 0xC00000B2L)
 +#endif
 +
 +#ifndef STATUS_PIPE_LISTENING
 +# define STATUS_PIPE_LISTENING ((NTSTATUS) 0xC00000B3L)
 +#endif
 +
 +#ifndef STATUS_INVALID_READ_MODE
 +# define STATUS_INVALID_READ_MODE ((NTSTATUS) 0xC00000B4L)
 +#endif
 +
 +#ifndef STATUS_IO_TIMEOUT
 +# define STATUS_IO_TIMEOUT ((NTSTATUS) 0xC00000B5L)
 +#endif
 +
 +#ifndef STATUS_FILE_FORCED_CLOSED
 +# define STATUS_FILE_FORCED_CLOSED ((NTSTATUS) 0xC00000B6L)
 +#endif
 +
 +#ifndef STATUS_PROFILING_NOT_STARTED
 +# define STATUS_PROFILING_NOT_STARTED ((NTSTATUS) 0xC00000B7L)
 +#endif
 +
 +#ifndef STATUS_PROFILING_NOT_STOPPED
 +# define STATUS_PROFILING_NOT_STOPPED ((NTSTATUS) 0xC00000B8L)
 +#endif
 +
 +#ifndef STATUS_COULD_NOT_INTERPRET
 +# define STATUS_COULD_NOT_INTERPRET ((NTSTATUS) 0xC00000B9L)
 +#endif
 +
 +#ifndef STATUS_FILE_IS_A_DIRECTORY
 +# define STATUS_FILE_IS_A_DIRECTORY ((NTSTATUS) 0xC00000BAL)
 +#endif
 +
 +#ifndef STATUS_NOT_SUPPORTED
 +# define STATUS_NOT_SUPPORTED ((NTSTATUS) 0xC00000BBL)
 +#endif
 +
 +#ifndef STATUS_REMOTE_NOT_LISTENING
 +# define STATUS_REMOTE_NOT_LISTENING ((NTSTATUS) 0xC00000BCL)
 +#endif
 +
 +#ifndef STATUS_DUPLICATE_NAME
 +# define STATUS_DUPLICATE_NAME ((NTSTATUS) 0xC00000BDL)
 +#endif
 +
 +#ifndef STATUS_BAD_NETWORK_PATH
 +# define STATUS_BAD_NETWORK_PATH ((NTSTATUS) 0xC00000BEL)
 +#endif
 +
 +#ifndef STATUS_NETWORK_BUSY
 +# define STATUS_NETWORK_BUSY ((NTSTATUS) 0xC00000BFL)
 +#endif
 +
 +#ifndef STATUS_DEVICE_DOES_NOT_EXIST
 +# define STATUS_DEVICE_DOES_NOT_EXIST ((NTSTATUS) 0xC00000C0L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_COMMANDS
 +# define STATUS_TOO_MANY_COMMANDS ((NTSTATUS) 0xC00000C1L)
 +#endif
 +
 +#ifndef STATUS_ADAPTER_HARDWARE_ERROR
 +# define STATUS_ADAPTER_HARDWARE_ERROR ((NTSTATUS) 0xC00000C2L)
 +#endif
 +
 +#ifndef STATUS_INVALID_NETWORK_RESPONSE
 +# define STATUS_INVALID_NETWORK_RESPONSE ((NTSTATUS) 0xC00000C3L)
 +#endif
 +
 +#ifndef STATUS_UNEXPECTED_NETWORK_ERROR
 +# define STATUS_UNEXPECTED_NETWORK_ERROR ((NTSTATUS) 0xC00000C4L)
 +#endif
 +
 +#ifndef STATUS_BAD_REMOTE_ADAPTER
 +# define STATUS_BAD_REMOTE_ADAPTER ((NTSTATUS) 0xC00000C5L)
 +#endif
 +
 +#ifndef STATUS_PRINT_QUEUE_FULL
 +# define STATUS_PRINT_QUEUE_FULL ((NTSTATUS) 0xC00000C6L)
 +#endif
 +
 +#ifndef STATUS_NO_SPOOL_SPACE
 +# define STATUS_NO_SPOOL_SPACE ((NTSTATUS) 0xC00000C7L)
 +#endif
 +
 +#ifndef STATUS_PRINT_CANCELLED
 +# define STATUS_PRINT_CANCELLED ((NTSTATUS) 0xC00000C8L)
 +#endif
 +
 +#ifndef STATUS_NETWORK_NAME_DELETED
 +# define STATUS_NETWORK_NAME_DELETED ((NTSTATUS) 0xC00000C9L)
 +#endif
 +
 +#ifndef STATUS_NETWORK_ACCESS_DENIED
 +# define STATUS_NETWORK_ACCESS_DENIED ((NTSTATUS) 0xC00000CAL)
 +#endif
 +
 +#ifndef STATUS_BAD_DEVICE_TYPE
 +# define STATUS_BAD_DEVICE_TYPE ((NTSTATUS) 0xC00000CBL)
 +#endif
 +
 +#ifndef STATUS_BAD_NETWORK_NAME
 +# define STATUS_BAD_NETWORK_NAME ((NTSTATUS) 0xC00000CCL)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_NAMES
 +# define STATUS_TOO_MANY_NAMES ((NTSTATUS) 0xC00000CDL)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_SESSIONS
 +# define STATUS_TOO_MANY_SESSIONS ((NTSTATUS) 0xC00000CEL)
 +#endif
 +
 +#ifndef STATUS_SHARING_PAUSED
 +# define STATUS_SHARING_PAUSED ((NTSTATUS) 0xC00000CFL)
 +#endif
 +
 +#ifndef STATUS_REQUEST_NOT_ACCEPTED
 +# define STATUS_REQUEST_NOT_ACCEPTED ((NTSTATUS) 0xC00000D0L)
 +#endif
 +
 +#ifndef STATUS_REDIRECTOR_PAUSED
 +# define STATUS_REDIRECTOR_PAUSED ((NTSTATUS) 0xC00000D1L)
 +#endif
 +
 +#ifndef STATUS_NET_WRITE_FAULT
 +# define STATUS_NET_WRITE_FAULT ((NTSTATUS) 0xC00000D2L)
 +#endif
 +
 +#ifndef STATUS_PROFILING_AT_LIMIT
 +# define STATUS_PROFILING_AT_LIMIT ((NTSTATUS) 0xC00000D3L)
 +#endif
 +
 +#ifndef STATUS_NOT_SAME_DEVICE
 +# define STATUS_NOT_SAME_DEVICE ((NTSTATUS) 0xC00000D4L)
 +#endif
 +
 +#ifndef STATUS_FILE_RENAMED
 +# define STATUS_FILE_RENAMED ((NTSTATUS) 0xC00000D5L)
 +#endif
 +
 +#ifndef STATUS_VIRTUAL_CIRCUIT_CLOSED
 +# define STATUS_VIRTUAL_CIRCUIT_CLOSED ((NTSTATUS) 0xC00000D6L)
 +#endif
 +
 +#ifndef STATUS_NO_SECURITY_ON_OBJECT
 +# define STATUS_NO_SECURITY_ON_OBJECT ((NTSTATUS) 0xC00000D7L)
 +#endif
 +
 +#ifndef STATUS_CANT_WAIT
 +# define STATUS_CANT_WAIT ((NTSTATUS) 0xC00000D8L)
 +#endif
 +
 +#ifndef STATUS_PIPE_EMPTY
 +# define STATUS_PIPE_EMPTY ((NTSTATUS) 0xC00000D9L)
 +#endif
 +
 +#ifndef STATUS_CANT_ACCESS_DOMAIN_INFO
 +# define STATUS_CANT_ACCESS_DOMAIN_INFO ((NTSTATUS) 0xC00000DAL)
 +#endif
 +
 +#ifndef STATUS_CANT_TERMINATE_SELF
 +# define STATUS_CANT_TERMINATE_SELF ((NTSTATUS) 0xC00000DBL)
 +#endif
 +
 +#ifndef STATUS_INVALID_SERVER_STATE
 +# define STATUS_INVALID_SERVER_STATE ((NTSTATUS) 0xC00000DCL)
 +#endif
 +
 +#ifndef STATUS_INVALID_DOMAIN_STATE
 +# define STATUS_INVALID_DOMAIN_STATE ((NTSTATUS) 0xC00000DDL)
 +#endif
 +
 +#ifndef STATUS_INVALID_DOMAIN_ROLE
 +# define STATUS_INVALID_DOMAIN_ROLE ((NTSTATUS) 0xC00000DEL)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_DOMAIN
 +# define STATUS_NO_SUCH_DOMAIN ((NTSTATUS) 0xC00000DFL)
 +#endif
 +
 +#ifndef STATUS_DOMAIN_EXISTS
 +# define STATUS_DOMAIN_EXISTS ((NTSTATUS) 0xC00000E0L)
 +#endif
 +
 +#ifndef STATUS_DOMAIN_LIMIT_EXCEEDED
 +# define STATUS_DOMAIN_LIMIT_EXCEEDED ((NTSTATUS) 0xC00000E1L)
 +#endif
 +
 +#ifndef STATUS_OPLOCK_NOT_GRANTED
 +# define STATUS_OPLOCK_NOT_GRANTED ((NTSTATUS) 0xC00000E2L)
 +#endif
 +
 +#ifndef STATUS_INVALID_OPLOCK_PROTOCOL
 +# define STATUS_INVALID_OPLOCK_PROTOCOL ((NTSTATUS) 0xC00000E3L)
 +#endif
 +
 +#ifndef STATUS_INTERNAL_DB_CORRUPTION
 +# define STATUS_INTERNAL_DB_CORRUPTION ((NTSTATUS) 0xC00000E4L)
 +#endif
 +
 +#ifndef STATUS_INTERNAL_ERROR
 +# define STATUS_INTERNAL_ERROR ((NTSTATUS) 0xC00000E5L)
 +#endif
 +
 +#ifndef STATUS_GENERIC_NOT_MAPPED
 +# define STATUS_GENERIC_NOT_MAPPED ((NTSTATUS) 0xC00000E6L)
 +#endif
 +
 +#ifndef STATUS_BAD_DESCRIPTOR_FORMAT
 +# define STATUS_BAD_DESCRIPTOR_FORMAT ((NTSTATUS) 0xC00000E7L)
 +#endif
 +
 +#ifndef STATUS_INVALID_USER_BUFFER
 +# define STATUS_INVALID_USER_BUFFER ((NTSTATUS) 0xC00000E8L)
 +#endif
 +
 +#ifndef STATUS_UNEXPECTED_IO_ERROR
 +# define STATUS_UNEXPECTED_IO_ERROR ((NTSTATUS) 0xC00000E9L)
 +#endif
 +
 +#ifndef STATUS_UNEXPECTED_MM_CREATE_ERR
 +# define STATUS_UNEXPECTED_MM_CREATE_ERR ((NTSTATUS) 0xC00000EAL)
 +#endif
 +
 +#ifndef STATUS_UNEXPECTED_MM_MAP_ERROR
 +# define STATUS_UNEXPECTED_MM_MAP_ERROR ((NTSTATUS) 0xC00000EBL)
 +#endif
 +
 +#ifndef STATUS_UNEXPECTED_MM_EXTEND_ERR
 +# define STATUS_UNEXPECTED_MM_EXTEND_ERR ((NTSTATUS) 0xC00000ECL)
 +#endif
 +
 +#ifndef STATUS_NOT_LOGON_PROCESS
 +# define STATUS_NOT_LOGON_PROCESS ((NTSTATUS) 0xC00000EDL)
 +#endif
 +
 +#ifndef STATUS_LOGON_SESSION_EXISTS
 +# define STATUS_LOGON_SESSION_EXISTS ((NTSTATUS) 0xC00000EEL)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_1
 +# define STATUS_INVALID_PARAMETER_1 ((NTSTATUS) 0xC00000EFL)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_2
 +# define STATUS_INVALID_PARAMETER_2 ((NTSTATUS) 0xC00000F0L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_3
 +# define STATUS_INVALID_PARAMETER_3 ((NTSTATUS) 0xC00000F1L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_4
 +# define STATUS_INVALID_PARAMETER_4 ((NTSTATUS) 0xC00000F2L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_5
 +# define STATUS_INVALID_PARAMETER_5 ((NTSTATUS) 0xC00000F3L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_6
 +# define STATUS_INVALID_PARAMETER_6 ((NTSTATUS) 0xC00000F4L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_7
 +# define STATUS_INVALID_PARAMETER_7 ((NTSTATUS) 0xC00000F5L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_8
 +# define STATUS_INVALID_PARAMETER_8 ((NTSTATUS) 0xC00000F6L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_9
 +# define STATUS_INVALID_PARAMETER_9 ((NTSTATUS) 0xC00000F7L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_10
 +# define STATUS_INVALID_PARAMETER_10 ((NTSTATUS) 0xC00000F8L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_11
 +# define STATUS_INVALID_PARAMETER_11 ((NTSTATUS) 0xC00000F9L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PARAMETER_12
 +# define STATUS_INVALID_PARAMETER_12 ((NTSTATUS) 0xC00000FAL)
 +#endif
 +
 +#ifndef STATUS_REDIRECTOR_NOT_STARTED
 +# define STATUS_REDIRECTOR_NOT_STARTED ((NTSTATUS) 0xC00000FBL)
 +#endif
 +
 +#ifndef STATUS_REDIRECTOR_STARTED
 +# define STATUS_REDIRECTOR_STARTED ((NTSTATUS) 0xC00000FCL)
 +#endif
 +
 +#ifndef STATUS_STACK_OVERFLOW
 +# define STATUS_STACK_OVERFLOW ((NTSTATUS) 0xC00000FDL)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_PACKAGE
 +# define STATUS_NO_SUCH_PACKAGE ((NTSTATUS) 0xC00000FEL)
 +#endif
 +
 +#ifndef STATUS_BAD_FUNCTION_TABLE
 +# define STATUS_BAD_FUNCTION_TABLE ((NTSTATUS) 0xC00000FFL)
 +#endif
 +
 +#ifndef STATUS_VARIABLE_NOT_FOUND
 +# define STATUS_VARIABLE_NOT_FOUND ((NTSTATUS) 0xC0000100L)
 +#endif
 +
 +#ifndef STATUS_DIRECTORY_NOT_EMPTY
 +# define STATUS_DIRECTORY_NOT_EMPTY ((NTSTATUS) 0xC0000101L)
 +#endif
 +
 +#ifndef STATUS_FILE_CORRUPT_ERROR
 +# define STATUS_FILE_CORRUPT_ERROR ((NTSTATUS) 0xC0000102L)
 +#endif
 +
 +#ifndef STATUS_NOT_A_DIRECTORY
 +# define STATUS_NOT_A_DIRECTORY ((NTSTATUS) 0xC0000103L)
 +#endif
 +
 +#ifndef STATUS_BAD_LOGON_SESSION_STATE
 +# define STATUS_BAD_LOGON_SESSION_STATE ((NTSTATUS) 0xC0000104L)
 +#endif
 +
 +#ifndef STATUS_LOGON_SESSION_COLLISION
 +# define STATUS_LOGON_SESSION_COLLISION ((NTSTATUS) 0xC0000105L)
 +#endif
 +
 +#ifndef STATUS_NAME_TOO_LONG
 +# define STATUS_NAME_TOO_LONG ((NTSTATUS) 0xC0000106L)
 +#endif
 +
 +#ifndef STATUS_FILES_OPEN
 +# define STATUS_FILES_OPEN ((NTSTATUS) 0xC0000107L)
 +#endif
 +
 +#ifndef STATUS_CONNECTION_IN_USE
 +# define STATUS_CONNECTION_IN_USE ((NTSTATUS) 0xC0000108L)
 +#endif
 +
 +#ifndef STATUS_MESSAGE_NOT_FOUND
 +# define STATUS_MESSAGE_NOT_FOUND ((NTSTATUS) 0xC0000109L)
 +#endif
 +
 +#ifndef STATUS_PROCESS_IS_TERMINATING
 +# define STATUS_PROCESS_IS_TERMINATING ((NTSTATUS) 0xC000010AL)
 +#endif
 +
 +#ifndef STATUS_INVALID_LOGON_TYPE
 +# define STATUS_INVALID_LOGON_TYPE ((NTSTATUS) 0xC000010BL)
 +#endif
 +
 +#ifndef STATUS_NO_GUID_TRANSLATION
 +# define STATUS_NO_GUID_TRANSLATION ((NTSTATUS) 0xC000010CL)
 +#endif
 +
 +#ifndef STATUS_CANNOT_IMPERSONATE
 +# define STATUS_CANNOT_IMPERSONATE ((NTSTATUS) 0xC000010DL)
 +#endif
 +
 +#ifndef STATUS_IMAGE_ALREADY_LOADED
 +# define STATUS_IMAGE_ALREADY_LOADED ((NTSTATUS) 0xC000010EL)
 +#endif
 +
 +#ifndef STATUS_ABIOS_NOT_PRESENT
 +# define STATUS_ABIOS_NOT_PRESENT ((NTSTATUS) 0xC000010FL)
 +#endif
 +
 +#ifndef STATUS_ABIOS_LID_NOT_EXIST
 +# define STATUS_ABIOS_LID_NOT_EXIST ((NTSTATUS) 0xC0000110L)
 +#endif
 +
 +#ifndef STATUS_ABIOS_LID_ALREADY_OWNED
 +# define STATUS_ABIOS_LID_ALREADY_OWNED ((NTSTATUS) 0xC0000111L)
 +#endif
 +
 +#ifndef STATUS_ABIOS_NOT_LID_OWNER
 +# define STATUS_ABIOS_NOT_LID_OWNER ((NTSTATUS) 0xC0000112L)
 +#endif
 +
 +#ifndef STATUS_ABIOS_INVALID_COMMAND
 +# define STATUS_ABIOS_INVALID_COMMAND ((NTSTATUS) 0xC0000113L)
 +#endif
 +
 +#ifndef STATUS_ABIOS_INVALID_LID
 +# define STATUS_ABIOS_INVALID_LID ((NTSTATUS) 0xC0000114L)
 +#endif
 +
 +#ifndef STATUS_ABIOS_SELECTOR_NOT_AVAILABLE
 +# define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE ((NTSTATUS) 0xC0000115L)
 +#endif
 +
 +#ifndef STATUS_ABIOS_INVALID_SELECTOR
 +# define STATUS_ABIOS_INVALID_SELECTOR ((NTSTATUS) 0xC0000116L)
 +#endif
 +
 +#ifndef STATUS_NO_LDT
 +# define STATUS_NO_LDT ((NTSTATUS) 0xC0000117L)
 +#endif
 +
 +#ifndef STATUS_INVALID_LDT_SIZE
 +# define STATUS_INVALID_LDT_SIZE ((NTSTATUS) 0xC0000118L)
 +#endif
 +
 +#ifndef STATUS_INVALID_LDT_OFFSET
 +# define STATUS_INVALID_LDT_OFFSET ((NTSTATUS) 0xC0000119L)
 +#endif
 +
 +#ifndef STATUS_INVALID_LDT_DESCRIPTOR
 +# define STATUS_INVALID_LDT_DESCRIPTOR ((NTSTATUS) 0xC000011AL)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_NE_FORMAT
 +# define STATUS_INVALID_IMAGE_NE_FORMAT ((NTSTATUS) 0xC000011BL)
 +#endif
 +
 +#ifndef STATUS_RXACT_INVALID_STATE
 +# define STATUS_RXACT_INVALID_STATE ((NTSTATUS) 0xC000011CL)
 +#endif
 +
 +#ifndef STATUS_RXACT_COMMIT_FAILURE
 +# define STATUS_RXACT_COMMIT_FAILURE ((NTSTATUS) 0xC000011DL)
 +#endif
 +
 +#ifndef STATUS_MAPPED_FILE_SIZE_ZERO
 +# define STATUS_MAPPED_FILE_SIZE_ZERO ((NTSTATUS) 0xC000011EL)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_OPENED_FILES
 +# define STATUS_TOO_MANY_OPENED_FILES ((NTSTATUS) 0xC000011FL)
 +#endif
 +
 +#ifndef STATUS_CANCELLED
 +# define STATUS_CANCELLED ((NTSTATUS) 0xC0000120L)
 +#endif
 +
 +#ifndef STATUS_CANNOT_DELETE
 +# define STATUS_CANNOT_DELETE ((NTSTATUS) 0xC0000121L)
 +#endif
 +
 +#ifndef STATUS_INVALID_COMPUTER_NAME
 +# define STATUS_INVALID_COMPUTER_NAME ((NTSTATUS) 0xC0000122L)
 +#endif
 +
 +#ifndef STATUS_FILE_DELETED
 +# define STATUS_FILE_DELETED ((NTSTATUS) 0xC0000123L)
 +#endif
 +
 +#ifndef STATUS_SPECIAL_ACCOUNT
 +# define STATUS_SPECIAL_ACCOUNT ((NTSTATUS) 0xC0000124L)
 +#endif
 +
 +#ifndef STATUS_SPECIAL_GROUP
 +# define STATUS_SPECIAL_GROUP ((NTSTATUS) 0xC0000125L)
 +#endif
 +
 +#ifndef STATUS_SPECIAL_USER
 +# define STATUS_SPECIAL_USER ((NTSTATUS) 0xC0000126L)
 +#endif
 +
 +#ifndef STATUS_MEMBERS_PRIMARY_GROUP
 +# define STATUS_MEMBERS_PRIMARY_GROUP ((NTSTATUS) 0xC0000127L)
 +#endif
 +
 +#ifndef STATUS_FILE_CLOSED
 +# define STATUS_FILE_CLOSED ((NTSTATUS) 0xC0000128L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_THREADS
 +# define STATUS_TOO_MANY_THREADS ((NTSTATUS) 0xC0000129L)
 +#endif
 +
 +#ifndef STATUS_THREAD_NOT_IN_PROCESS
 +# define STATUS_THREAD_NOT_IN_PROCESS ((NTSTATUS) 0xC000012AL)
 +#endif
 +
 +#ifndef STATUS_TOKEN_ALREADY_IN_USE
 +# define STATUS_TOKEN_ALREADY_IN_USE ((NTSTATUS) 0xC000012BL)
 +#endif
 +
 +#ifndef STATUS_PAGEFILE_QUOTA_EXCEEDED
 +# define STATUS_PAGEFILE_QUOTA_EXCEEDED ((NTSTATUS) 0xC000012CL)
 +#endif
 +
 +#ifndef STATUS_COMMITMENT_LIMIT
 +# define STATUS_COMMITMENT_LIMIT ((NTSTATUS) 0xC000012DL)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_LE_FORMAT
 +# define STATUS_INVALID_IMAGE_LE_FORMAT ((NTSTATUS) 0xC000012EL)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_NOT_MZ
 +# define STATUS_INVALID_IMAGE_NOT_MZ ((NTSTATUS) 0xC000012FL)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_PROTECT
 +# define STATUS_INVALID_IMAGE_PROTECT ((NTSTATUS) 0xC0000130L)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_WIN_16
 +# define STATUS_INVALID_IMAGE_WIN_16 ((NTSTATUS) 0xC0000131L)
 +#endif
 +
 +#ifndef STATUS_LOGON_SERVER_CONFLICT
 +# define STATUS_LOGON_SERVER_CONFLICT ((NTSTATUS) 0xC0000132L)
 +#endif
 +
 +#ifndef STATUS_TIME_DIFFERENCE_AT_DC
 +# define STATUS_TIME_DIFFERENCE_AT_DC ((NTSTATUS) 0xC0000133L)
 +#endif
 +
 +#ifndef STATUS_SYNCHRONIZATION_REQUIRED
 +# define STATUS_SYNCHRONIZATION_REQUIRED ((NTSTATUS) 0xC0000134L)
 +#endif
 +
 +#ifndef STATUS_DLL_NOT_FOUND
 +# define STATUS_DLL_NOT_FOUND ((NTSTATUS) 0xC0000135L)
 +#endif
 +
 +#ifndef STATUS_OPEN_FAILED
 +# define STATUS_OPEN_FAILED ((NTSTATUS) 0xC0000136L)
 +#endif
 +
 +#ifndef STATUS_IO_PRIVILEGE_FAILED
 +# define STATUS_IO_PRIVILEGE_FAILED ((NTSTATUS) 0xC0000137L)
 +#endif
 +
 +#ifndef STATUS_ORDINAL_NOT_FOUND
 +# define STATUS_ORDINAL_NOT_FOUND ((NTSTATUS) 0xC0000138L)
 +#endif
 +
 +#ifndef STATUS_ENTRYPOINT_NOT_FOUND
 +# define STATUS_ENTRYPOINT_NOT_FOUND ((NTSTATUS) 0xC0000139L)
 +#endif
 +
 +#ifndef STATUS_CONTROL_C_EXIT
 +# define STATUS_CONTROL_C_EXIT ((NTSTATUS) 0xC000013AL)
 +#endif
 +
 +#ifndef STATUS_LOCAL_DISCONNECT
 +# define STATUS_LOCAL_DISCONNECT ((NTSTATUS) 0xC000013BL)
 +#endif
 +
 +#ifndef STATUS_REMOTE_DISCONNECT
 +# define STATUS_REMOTE_DISCONNECT ((NTSTATUS) 0xC000013CL)
 +#endif
 +
 +#ifndef STATUS_REMOTE_RESOURCES
 +# define STATUS_REMOTE_RESOURCES ((NTSTATUS) 0xC000013DL)
 +#endif
 +
 +#ifndef STATUS_LINK_FAILED
 +# define STATUS_LINK_FAILED ((NTSTATUS) 0xC000013EL)
 +#endif
 +
 +#ifndef STATUS_LINK_TIMEOUT
 +# define STATUS_LINK_TIMEOUT ((NTSTATUS) 0xC000013FL)
 +#endif
 +
 +#ifndef STATUS_INVALID_CONNECTION
 +# define STATUS_INVALID_CONNECTION ((NTSTATUS) 0xC0000140L)
 +#endif
 +
 +#ifndef STATUS_INVALID_ADDRESS
 +# define STATUS_INVALID_ADDRESS ((NTSTATUS) 0xC0000141L)
 +#endif
 +
 +#ifndef STATUS_DLL_INIT_FAILED
 +# define STATUS_DLL_INIT_FAILED ((NTSTATUS) 0xC0000142L)
 +#endif
 +
 +#ifndef STATUS_MISSING_SYSTEMFILE
 +# define STATUS_MISSING_SYSTEMFILE ((NTSTATUS) 0xC0000143L)
 +#endif
 +
 +#ifndef STATUS_UNHANDLED_EXCEPTION
 +# define STATUS_UNHANDLED_EXCEPTION ((NTSTATUS) 0xC0000144L)
 +#endif
 +
 +#ifndef STATUS_APP_INIT_FAILURE
 +# define STATUS_APP_INIT_FAILURE ((NTSTATUS) 0xC0000145L)
 +#endif
 +
 +#ifndef STATUS_PAGEFILE_CREATE_FAILED
 +# define STATUS_PAGEFILE_CREATE_FAILED ((NTSTATUS) 0xC0000146L)
 +#endif
 +
 +#ifndef STATUS_NO_PAGEFILE
 +# define STATUS_NO_PAGEFILE ((NTSTATUS) 0xC0000147L)
 +#endif
 +
 +#ifndef STATUS_INVALID_LEVEL
 +# define STATUS_INVALID_LEVEL ((NTSTATUS) 0xC0000148L)
 +#endif
 +
 +#ifndef STATUS_WRONG_PASSWORD_CORE
 +# define STATUS_WRONG_PASSWORD_CORE ((NTSTATUS) 0xC0000149L)
 +#endif
 +
 +#ifndef STATUS_ILLEGAL_FLOAT_CONTEXT
 +# define STATUS_ILLEGAL_FLOAT_CONTEXT ((NTSTATUS) 0xC000014AL)
 +#endif
 +
 +#ifndef STATUS_PIPE_BROKEN
 +# define STATUS_PIPE_BROKEN ((NTSTATUS) 0xC000014BL)
 +#endif
 +
 +#ifndef STATUS_REGISTRY_CORRUPT
 +# define STATUS_REGISTRY_CORRUPT ((NTSTATUS) 0xC000014CL)
 +#endif
 +
 +#ifndef STATUS_REGISTRY_IO_FAILED
 +# define STATUS_REGISTRY_IO_FAILED ((NTSTATUS) 0xC000014DL)
 +#endif
 +
 +#ifndef STATUS_NO_EVENT_PAIR
 +# define STATUS_NO_EVENT_PAIR ((NTSTATUS) 0xC000014EL)
 +#endif
 +
 +#ifndef STATUS_UNRECOGNIZED_VOLUME
 +# define STATUS_UNRECOGNIZED_VOLUME ((NTSTATUS) 0xC000014FL)
 +#endif
 +
 +#ifndef STATUS_SERIAL_NO_DEVICE_INITED
 +# define STATUS_SERIAL_NO_DEVICE_INITED ((NTSTATUS) 0xC0000150L)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_ALIAS
 +# define STATUS_NO_SUCH_ALIAS ((NTSTATUS) 0xC0000151L)
 +#endif
 +
 +#ifndef STATUS_MEMBER_NOT_IN_ALIAS
 +# define STATUS_MEMBER_NOT_IN_ALIAS ((NTSTATUS) 0xC0000152L)
 +#endif
 +
 +#ifndef STATUS_MEMBER_IN_ALIAS
 +# define STATUS_MEMBER_IN_ALIAS ((NTSTATUS) 0xC0000153L)
 +#endif
 +
 +#ifndef STATUS_ALIAS_EXISTS
 +# define STATUS_ALIAS_EXISTS ((NTSTATUS) 0xC0000154L)
 +#endif
 +
 +#ifndef STATUS_LOGON_NOT_GRANTED
 +# define STATUS_LOGON_NOT_GRANTED ((NTSTATUS) 0xC0000155L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_SECRETS
 +# define STATUS_TOO_MANY_SECRETS ((NTSTATUS) 0xC0000156L)
 +#endif
 +
 +#ifndef STATUS_SECRET_TOO_LONG
 +# define STATUS_SECRET_TOO_LONG ((NTSTATUS) 0xC0000157L)
 +#endif
 +
 +#ifndef STATUS_INTERNAL_DB_ERROR
 +# define STATUS_INTERNAL_DB_ERROR ((NTSTATUS) 0xC0000158L)
 +#endif
 +
 +#ifndef STATUS_FULLSCREEN_MODE
 +# define STATUS_FULLSCREEN_MODE ((NTSTATUS) 0xC0000159L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_CONTEXT_IDS
 +# define STATUS_TOO_MANY_CONTEXT_IDS ((NTSTATUS) 0xC000015AL)
 +#endif
 +
 +#ifndef STATUS_LOGON_TYPE_NOT_GRANTED
 +# define STATUS_LOGON_TYPE_NOT_GRANTED ((NTSTATUS) 0xC000015BL)
 +#endif
 +
 +#ifndef STATUS_NOT_REGISTRY_FILE
 +# define STATUS_NOT_REGISTRY_FILE ((NTSTATUS) 0xC000015CL)
 +#endif
 +
 +#ifndef STATUS_NT_CROSS_ENCRYPTION_REQUIRED
 +# define STATUS_NT_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS) 0xC000015DL)
 +#endif
 +
 +#ifndef STATUS_DOMAIN_CTRLR_CONFIG_ERROR
 +# define STATUS_DOMAIN_CTRLR_CONFIG_ERROR ((NTSTATUS) 0xC000015EL)
 +#endif
 +
 +#ifndef STATUS_FT_MISSING_MEMBER
 +# define STATUS_FT_MISSING_MEMBER ((NTSTATUS) 0xC000015FL)
 +#endif
 +
 +#ifndef STATUS_ILL_FORMED_SERVICE_ENTRY
 +# define STATUS_ILL_FORMED_SERVICE_ENTRY ((NTSTATUS) 0xC0000160L)
 +#endif
 +
 +#ifndef STATUS_ILLEGAL_CHARACTER
 +# define STATUS_ILLEGAL_CHARACTER ((NTSTATUS) 0xC0000161L)
 +#endif
 +
 +#ifndef STATUS_UNMAPPABLE_CHARACTER
 +# define STATUS_UNMAPPABLE_CHARACTER ((NTSTATUS) 0xC0000162L)
 +#endif
 +
 +#ifndef STATUS_UNDEFINED_CHARACTER
 +# define STATUS_UNDEFINED_CHARACTER ((NTSTATUS) 0xC0000163L)
 +#endif
 +
 +#ifndef STATUS_FLOPPY_VOLUME
 +# define STATUS_FLOPPY_VOLUME ((NTSTATUS) 0xC0000164L)
 +#endif
 +
 +#ifndef STATUS_FLOPPY_ID_MARK_NOT_FOUND
 +# define STATUS_FLOPPY_ID_MARK_NOT_FOUND ((NTSTATUS) 0xC0000165L)
 +#endif
 +
 +#ifndef STATUS_FLOPPY_WRONG_CYLINDER
 +# define STATUS_FLOPPY_WRONG_CYLINDER ((NTSTATUS) 0xC0000166L)
 +#endif
 +
 +#ifndef STATUS_FLOPPY_UNKNOWN_ERROR
 +# define STATUS_FLOPPY_UNKNOWN_ERROR ((NTSTATUS) 0xC0000167L)
 +#endif
 +
 +#ifndef STATUS_FLOPPY_BAD_REGISTERS
 +# define STATUS_FLOPPY_BAD_REGISTERS ((NTSTATUS) 0xC0000168L)
 +#endif
 +
 +#ifndef STATUS_DISK_RECALIBRATE_FAILED
 +# define STATUS_DISK_RECALIBRATE_FAILED ((NTSTATUS) 0xC0000169L)
 +#endif
 +
 +#ifndef STATUS_DISK_OPERATION_FAILED
 +# define STATUS_DISK_OPERATION_FAILED ((NTSTATUS) 0xC000016AL)
 +#endif
 +
 +#ifndef STATUS_DISK_RESET_FAILED
 +# define STATUS_DISK_RESET_FAILED ((NTSTATUS) 0xC000016BL)
 +#endif
 +
 +#ifndef STATUS_SHARED_IRQ_BUSY
 +# define STATUS_SHARED_IRQ_BUSY ((NTSTATUS) 0xC000016CL)
 +#endif
 +
 +#ifndef STATUS_FT_ORPHANING
 +# define STATUS_FT_ORPHANING ((NTSTATUS) 0xC000016DL)
 +#endif
 +
 +#ifndef STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT
 +# define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT ((NTSTATUS) 0xC000016EL)
 +#endif
 +
 +#ifndef STATUS_PARTITION_FAILURE
 +# define STATUS_PARTITION_FAILURE ((NTSTATUS) 0xC0000172L)
 +#endif
 +
 +#ifndef STATUS_INVALID_BLOCK_LENGTH
 +# define STATUS_INVALID_BLOCK_LENGTH ((NTSTATUS) 0xC0000173L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_NOT_PARTITIONED
 +# define STATUS_DEVICE_NOT_PARTITIONED ((NTSTATUS) 0xC0000174L)
 +#endif
 +
 +#ifndef STATUS_UNABLE_TO_LOCK_MEDIA
 +# define STATUS_UNABLE_TO_LOCK_MEDIA ((NTSTATUS) 0xC0000175L)
 +#endif
 +
 +#ifndef STATUS_UNABLE_TO_UNLOAD_MEDIA
 +# define STATUS_UNABLE_TO_UNLOAD_MEDIA ((NTSTATUS) 0xC0000176L)
 +#endif
 +
 +#ifndef STATUS_EOM_OVERFLOW
 +# define STATUS_EOM_OVERFLOW ((NTSTATUS) 0xC0000177L)
 +#endif
 +
 +#ifndef STATUS_NO_MEDIA
 +# define STATUS_NO_MEDIA ((NTSTATUS) 0xC0000178L)
 +#endif
 +
 +#ifndef STATUS_NO_SUCH_MEMBER
 +# define STATUS_NO_SUCH_MEMBER ((NTSTATUS) 0xC000017AL)
 +#endif
 +
 +#ifndef STATUS_INVALID_MEMBER
 +# define STATUS_INVALID_MEMBER ((NTSTATUS) 0xC000017BL)
 +#endif
 +
 +#ifndef STATUS_KEY_DELETED
 +# define STATUS_KEY_DELETED ((NTSTATUS) 0xC000017CL)
 +#endif
 +
 +#ifndef STATUS_NO_LOG_SPACE
 +# define STATUS_NO_LOG_SPACE ((NTSTATUS) 0xC000017DL)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_SIDS
 +# define STATUS_TOO_MANY_SIDS ((NTSTATUS) 0xC000017EL)
 +#endif
 +
 +#ifndef STATUS_LM_CROSS_ENCRYPTION_REQUIRED
 +# define STATUS_LM_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS) 0xC000017FL)
 +#endif
 +
 +#ifndef STATUS_KEY_HAS_CHILDREN
 +# define STATUS_KEY_HAS_CHILDREN ((NTSTATUS) 0xC0000180L)
 +#endif
 +
 +#ifndef STATUS_CHILD_MUST_BE_VOLATILE
 +# define STATUS_CHILD_MUST_BE_VOLATILE ((NTSTATUS) 0xC0000181L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_CONFIGURATION_ERROR
 +# define STATUS_DEVICE_CONFIGURATION_ERROR ((NTSTATUS) 0xC0000182L)
 +#endif
 +
 +#ifndef STATUS_DRIVER_INTERNAL_ERROR
 +# define STATUS_DRIVER_INTERNAL_ERROR ((NTSTATUS) 0xC0000183L)
 +#endif
 +
 +#ifndef STATUS_INVALID_DEVICE_STATE
 +# define STATUS_INVALID_DEVICE_STATE ((NTSTATUS) 0xC0000184L)
 +#endif
 +
 +#ifndef STATUS_IO_DEVICE_ERROR
 +# define STATUS_IO_DEVICE_ERROR ((NTSTATUS) 0xC0000185L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_PROTOCOL_ERROR
 +# define STATUS_DEVICE_PROTOCOL_ERROR ((NTSTATUS) 0xC0000186L)
 +#endif
 +
 +#ifndef STATUS_BACKUP_CONTROLLER
 +# define STATUS_BACKUP_CONTROLLER ((NTSTATUS) 0xC0000187L)
 +#endif
 +
 +#ifndef STATUS_LOG_FILE_FULL
 +# define STATUS_LOG_FILE_FULL ((NTSTATUS) 0xC0000188L)
 +#endif
 +
 +#ifndef STATUS_TOO_LATE
 +# define STATUS_TOO_LATE ((NTSTATUS) 0xC0000189L)
 +#endif
 +
 +#ifndef STATUS_NO_TRUST_LSA_SECRET
 +# define STATUS_NO_TRUST_LSA_SECRET ((NTSTATUS) 0xC000018AL)
 +#endif
 +
 +#ifndef STATUS_NO_TRUST_SAM_ACCOUNT
 +# define STATUS_NO_TRUST_SAM_ACCOUNT ((NTSTATUS) 0xC000018BL)
 +#endif
 +
 +#ifndef STATUS_TRUSTED_DOMAIN_FAILURE
 +# define STATUS_TRUSTED_DOMAIN_FAILURE ((NTSTATUS) 0xC000018CL)
 +#endif
 +
 +#ifndef STATUS_TRUSTED_RELATIONSHIP_FAILURE
 +# define STATUS_TRUSTED_RELATIONSHIP_FAILURE ((NTSTATUS) 0xC000018DL)
 +#endif
 +
 +#ifndef STATUS_EVENTLOG_FILE_CORRUPT
 +# define STATUS_EVENTLOG_FILE_CORRUPT ((NTSTATUS) 0xC000018EL)
 +#endif
 +
 +#ifndef STATUS_EVENTLOG_CANT_START
 +# define STATUS_EVENTLOG_CANT_START ((NTSTATUS) 0xC000018FL)
 +#endif
 +
 +#ifndef STATUS_TRUST_FAILURE
 +# define STATUS_TRUST_FAILURE ((NTSTATUS) 0xC0000190L)
 +#endif
 +
 +#ifndef STATUS_MUTANT_LIMIT_EXCEEDED
 +# define STATUS_MUTANT_LIMIT_EXCEEDED ((NTSTATUS) 0xC0000191L)
 +#endif
 +
 +#ifndef STATUS_NETLOGON_NOT_STARTED
 +# define STATUS_NETLOGON_NOT_STARTED ((NTSTATUS) 0xC0000192L)
 +#endif
 +
 +#ifndef STATUS_ACCOUNT_EXPIRED
 +# define STATUS_ACCOUNT_EXPIRED ((NTSTATUS) 0xC0000193L)
 +#endif
 +
 +#ifndef STATUS_POSSIBLE_DEADLOCK
 +# define STATUS_POSSIBLE_DEADLOCK ((NTSTATUS) 0xC0000194L)
 +#endif
 +
 +#ifndef STATUS_NETWORK_CREDENTIAL_CONFLICT
 +# define STATUS_NETWORK_CREDENTIAL_CONFLICT ((NTSTATUS) 0xC0000195L)
 +#endif
 +
 +#ifndef STATUS_REMOTE_SESSION_LIMIT
 +# define STATUS_REMOTE_SESSION_LIMIT ((NTSTATUS) 0xC0000196L)
 +#endif
 +
 +#ifndef STATUS_EVENTLOG_FILE_CHANGED
 +# define STATUS_EVENTLOG_FILE_CHANGED ((NTSTATUS) 0xC0000197L)
 +#endif
 +
 +#ifndef STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT
 +# define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT ((NTSTATUS) 0xC0000198L)
 +#endif
 +
 +#ifndef STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT
 +# define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT ((NTSTATUS) 0xC0000199L)
 +#endif
 +
 +#ifndef STATUS_NOLOGON_SERVER_TRUST_ACCOUNT
 +# define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT ((NTSTATUS) 0xC000019AL)
 +#endif
 +
 +#ifndef STATUS_DOMAIN_TRUST_INCONSISTENT
 +# define STATUS_DOMAIN_TRUST_INCONSISTENT ((NTSTATUS) 0xC000019BL)
 +#endif
 +
 +#ifndef STATUS_FS_DRIVER_REQUIRED
 +# define STATUS_FS_DRIVER_REQUIRED ((NTSTATUS) 0xC000019CL)
 +#endif
 +
 +#ifndef STATUS_IMAGE_ALREADY_LOADED_AS_DLL
 +# define STATUS_IMAGE_ALREADY_LOADED_AS_DLL ((NTSTATUS) 0xC000019DL)
 +#endif
 +
 +#ifndef STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING
 +# define STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING ((NTSTATUS) 0xC000019EL)
 +#endif
 +
 +#ifndef STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME
 +# define STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME ((NTSTATUS) 0xC000019FL)
 +#endif
 +
 +#ifndef STATUS_SECURITY_STREAM_IS_INCONSISTENT
 +# define STATUS_SECURITY_STREAM_IS_INCONSISTENT ((NTSTATUS) 0xC00001A0L)
 +#endif
 +
 +#ifndef STATUS_INVALID_LOCK_RANGE
 +# define STATUS_INVALID_LOCK_RANGE ((NTSTATUS) 0xC00001A1L)
 +#endif
 +
 +#ifndef STATUS_INVALID_ACE_CONDITION
 +# define STATUS_INVALID_ACE_CONDITION ((NTSTATUS) 0xC00001A2L)
 +#endif
 +
 +#ifndef STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT
 +# define STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT ((NTSTATUS) 0xC00001A3L)
 +#endif
 +
 +#ifndef STATUS_NOTIFICATION_GUID_ALREADY_DEFINED
 +# define STATUS_NOTIFICATION_GUID_ALREADY_DEFINED ((NTSTATUS) 0xC00001A4L)
 +#endif
 +
 +#ifndef STATUS_NETWORK_OPEN_RESTRICTION
 +# define STATUS_NETWORK_OPEN_RESTRICTION ((NTSTATUS) 0xC0000201L)
 +#endif
 +
 +#ifndef STATUS_NO_USER_SESSION_KEY
 +# define STATUS_NO_USER_SESSION_KEY ((NTSTATUS) 0xC0000202L)
 +#endif
 +
 +#ifndef STATUS_USER_SESSION_DELETED
 +# define STATUS_USER_SESSION_DELETED ((NTSTATUS) 0xC0000203L)
 +#endif
 +
 +#ifndef STATUS_RESOURCE_LANG_NOT_FOUND
 +# define STATUS_RESOURCE_LANG_NOT_FOUND ((NTSTATUS) 0xC0000204L)
 +#endif
 +
 +#ifndef STATUS_INSUFF_SERVER_RESOURCES
 +# define STATUS_INSUFF_SERVER_RESOURCES ((NTSTATUS) 0xC0000205L)
 +#endif
 +
 +#ifndef STATUS_INVALID_BUFFER_SIZE
 +# define STATUS_INVALID_BUFFER_SIZE ((NTSTATUS) 0xC0000206L)
 +#endif
 +
 +#ifndef STATUS_INVALID_ADDRESS_COMPONENT
 +# define STATUS_INVALID_ADDRESS_COMPONENT ((NTSTATUS) 0xC0000207L)
 +#endif
 +
 +#ifndef STATUS_INVALID_ADDRESS_WILDCARD
 +# define STATUS_INVALID_ADDRESS_WILDCARD ((NTSTATUS) 0xC0000208L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_ADDRESSES
 +# define STATUS_TOO_MANY_ADDRESSES ((NTSTATUS) 0xC0000209L)
 +#endif
 +
 +#ifndef STATUS_ADDRESS_ALREADY_EXISTS
 +# define STATUS_ADDRESS_ALREADY_EXISTS ((NTSTATUS) 0xC000020AL)
 +#endif
 +
 +#ifndef STATUS_ADDRESS_CLOSED
 +# define STATUS_ADDRESS_CLOSED ((NTSTATUS) 0xC000020BL)
 +#endif
 +
 +#ifndef STATUS_CONNECTION_DISCONNECTED
 +# define STATUS_CONNECTION_DISCONNECTED ((NTSTATUS) 0xC000020CL)
 +#endif
 +
 +#ifndef STATUS_CONNECTION_RESET
 +# define STATUS_CONNECTION_RESET ((NTSTATUS) 0xC000020DL)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_NODES
 +# define STATUS_TOO_MANY_NODES ((NTSTATUS) 0xC000020EL)
 +#endif
 +
 +#ifndef STATUS_TRANSACTION_ABORTED
 +# define STATUS_TRANSACTION_ABORTED ((NTSTATUS) 0xC000020FL)
 +#endif
 +
 +#ifndef STATUS_TRANSACTION_TIMED_OUT
 +# define STATUS_TRANSACTION_TIMED_OUT ((NTSTATUS) 0xC0000210L)
 +#endif
 +
 +#ifndef STATUS_TRANSACTION_NO_RELEASE
 +# define STATUS_TRANSACTION_NO_RELEASE ((NTSTATUS) 0xC0000211L)
 +#endif
 +
 +#ifndef STATUS_TRANSACTION_NO_MATCH
 +# define STATUS_TRANSACTION_NO_MATCH ((NTSTATUS) 0xC0000212L)
 +#endif
 +
 +#ifndef STATUS_TRANSACTION_RESPONDED
 +# define STATUS_TRANSACTION_RESPONDED ((NTSTATUS) 0xC0000213L)
 +#endif
 +
 +#ifndef STATUS_TRANSACTION_INVALID_ID
 +# define STATUS_TRANSACTION_INVALID_ID ((NTSTATUS) 0xC0000214L)
 +#endif
 +
 +#ifndef STATUS_TRANSACTION_INVALID_TYPE
 +# define STATUS_TRANSACTION_INVALID_TYPE ((NTSTATUS) 0xC0000215L)
 +#endif
 +
 +#ifndef STATUS_NOT_SERVER_SESSION
 +# define STATUS_NOT_SERVER_SESSION ((NTSTATUS) 0xC0000216L)
 +#endif
 +
 +#ifndef STATUS_NOT_CLIENT_SESSION
 +# define STATUS_NOT_CLIENT_SESSION ((NTSTATUS) 0xC0000217L)
 +#endif
 +
 +#ifndef STATUS_CANNOT_LOAD_REGISTRY_FILE
 +# define STATUS_CANNOT_LOAD_REGISTRY_FILE ((NTSTATUS) 0xC0000218L)
 +#endif
 +
 +#ifndef STATUS_DEBUG_ATTACH_FAILED
 +# define STATUS_DEBUG_ATTACH_FAILED ((NTSTATUS) 0xC0000219L)
 +#endif
 +
 +#ifndef STATUS_SYSTEM_PROCESS_TERMINATED
 +# define STATUS_SYSTEM_PROCESS_TERMINATED ((NTSTATUS) 0xC000021AL)
 +#endif
 +
 +#ifndef STATUS_DATA_NOT_ACCEPTED
 +# define STATUS_DATA_NOT_ACCEPTED ((NTSTATUS) 0xC000021BL)
 +#endif
 +
 +#ifndef STATUS_NO_BROWSER_SERVERS_FOUND
 +# define STATUS_NO_BROWSER_SERVERS_FOUND ((NTSTATUS) 0xC000021CL)
 +#endif
 +
 +#ifndef STATUS_VDM_HARD_ERROR
 +# define STATUS_VDM_HARD_ERROR ((NTSTATUS) 0xC000021DL)
 +#endif
 +
 +#ifndef STATUS_DRIVER_CANCEL_TIMEOUT
 +# define STATUS_DRIVER_CANCEL_TIMEOUT ((NTSTATUS) 0xC000021EL)
 +#endif
 +
 +#ifndef STATUS_REPLY_MESSAGE_MISMATCH
 +# define STATUS_REPLY_MESSAGE_MISMATCH ((NTSTATUS) 0xC000021FL)
 +#endif
 +
 +#ifndef STATUS_MAPPED_ALIGNMENT
 +# define STATUS_MAPPED_ALIGNMENT ((NTSTATUS) 0xC0000220L)
 +#endif
 +
 +#ifndef STATUS_IMAGE_CHECKSUM_MISMATCH
 +# define STATUS_IMAGE_CHECKSUM_MISMATCH ((NTSTATUS) 0xC0000221L)
 +#endif
 +
 +#ifndef STATUS_LOST_WRITEBEHIND_DATA
 +# define STATUS_LOST_WRITEBEHIND_DATA ((NTSTATUS) 0xC0000222L)
 +#endif
 +
 +#ifndef STATUS_CLIENT_SERVER_PARAMETERS_INVALID
 +# define STATUS_CLIENT_SERVER_PARAMETERS_INVALID ((NTSTATUS) 0xC0000223L)
 +#endif
 +
 +#ifndef STATUS_PASSWORD_MUST_CHANGE
 +# define STATUS_PASSWORD_MUST_CHANGE ((NTSTATUS) 0xC0000224L)
 +#endif
 +
 +#ifndef STATUS_NOT_FOUND
 +# define STATUS_NOT_FOUND ((NTSTATUS) 0xC0000225L)
 +#endif
 +
 +#ifndef STATUS_NOT_TINY_STREAM
 +# define STATUS_NOT_TINY_STREAM ((NTSTATUS) 0xC0000226L)
 +#endif
 +
 +#ifndef STATUS_RECOVERY_FAILURE
 +# define STATUS_RECOVERY_FAILURE ((NTSTATUS) 0xC0000227L)
 +#endif
 +
 +#ifndef STATUS_STACK_OVERFLOW_READ
 +# define STATUS_STACK_OVERFLOW_READ ((NTSTATUS) 0xC0000228L)
 +#endif
 +
 +#ifndef STATUS_FAIL_CHECK
 +# define STATUS_FAIL_CHECK ((NTSTATUS) 0xC0000229L)
 +#endif
 +
 +#ifndef STATUS_DUPLICATE_OBJECTID
 +# define STATUS_DUPLICATE_OBJECTID ((NTSTATUS) 0xC000022AL)
 +#endif
 +
 +#ifndef STATUS_OBJECTID_EXISTS
 +# define STATUS_OBJECTID_EXISTS ((NTSTATUS) 0xC000022BL)
 +#endif
 +
 +#ifndef STATUS_CONVERT_TO_LARGE
 +# define STATUS_CONVERT_TO_LARGE ((NTSTATUS) 0xC000022CL)
 +#endif
 +
 +#ifndef STATUS_RETRY
 +# define STATUS_RETRY ((NTSTATUS) 0xC000022DL)
 +#endif
 +
 +#ifndef STATUS_FOUND_OUT_OF_SCOPE
 +# define STATUS_FOUND_OUT_OF_SCOPE ((NTSTATUS) 0xC000022EL)
 +#endif
 +
 +#ifndef STATUS_ALLOCATE_BUCKET
 +# define STATUS_ALLOCATE_BUCKET ((NTSTATUS) 0xC000022FL)
 +#endif
 +
 +#ifndef STATUS_PROPSET_NOT_FOUND
 +# define STATUS_PROPSET_NOT_FOUND ((NTSTATUS) 0xC0000230L)
 +#endif
 +
 +#ifndef STATUS_MARSHALL_OVERFLOW
 +# define STATUS_MARSHALL_OVERFLOW ((NTSTATUS) 0xC0000231L)
 +#endif
 +
 +#ifndef STATUS_INVALID_VARIANT
 +# define STATUS_INVALID_VARIANT ((NTSTATUS) 0xC0000232L)
 +#endif
 +
 +#ifndef STATUS_DOMAIN_CONTROLLER_NOT_FOUND
 +# define STATUS_DOMAIN_CONTROLLER_NOT_FOUND ((NTSTATUS) 0xC0000233L)
 +#endif
 +
 +#ifndef STATUS_ACCOUNT_LOCKED_OUT
 +# define STATUS_ACCOUNT_LOCKED_OUT ((NTSTATUS) 0xC0000234L)
 +#endif
 +
 +#ifndef STATUS_HANDLE_NOT_CLOSABLE
 +# define STATUS_HANDLE_NOT_CLOSABLE ((NTSTATUS) 0xC0000235L)
 +#endif
 +
 +#ifndef STATUS_CONNECTION_REFUSED
 +# define STATUS_CONNECTION_REFUSED ((NTSTATUS) 0xC0000236L)
 +#endif
 +
 +#ifndef STATUS_GRACEFUL_DISCONNECT
 +# define STATUS_GRACEFUL_DISCONNECT ((NTSTATUS) 0xC0000237L)
 +#endif
 +
 +#ifndef STATUS_ADDRESS_ALREADY_ASSOCIATED
 +# define STATUS_ADDRESS_ALREADY_ASSOCIATED ((NTSTATUS) 0xC0000238L)
 +#endif
 +
 +#ifndef STATUS_ADDRESS_NOT_ASSOCIATED
 +# define STATUS_ADDRESS_NOT_ASSOCIATED ((NTSTATUS) 0xC0000239L)
 +#endif
 +
 +#ifndef STATUS_CONNECTION_INVALID
 +# define STATUS_CONNECTION_INVALID ((NTSTATUS) 0xC000023AL)
 +#endif
 +
 +#ifndef STATUS_CONNECTION_ACTIVE
 +# define STATUS_CONNECTION_ACTIVE ((NTSTATUS) 0xC000023BL)
 +#endif
 +
 +#ifndef STATUS_NETWORK_UNREACHABLE
 +# define STATUS_NETWORK_UNREACHABLE ((NTSTATUS) 0xC000023CL)
 +#endif
 +
 +#ifndef STATUS_HOST_UNREACHABLE
 +# define STATUS_HOST_UNREACHABLE ((NTSTATUS) 0xC000023DL)
 +#endif
 +
 +#ifndef STATUS_PROTOCOL_UNREACHABLE
 +# define STATUS_PROTOCOL_UNREACHABLE ((NTSTATUS) 0xC000023EL)
 +#endif
 +
 +#ifndef STATUS_PORT_UNREACHABLE
 +# define STATUS_PORT_UNREACHABLE ((NTSTATUS) 0xC000023FL)
 +#endif
 +
 +#ifndef STATUS_REQUEST_ABORTED
 +# define STATUS_REQUEST_ABORTED ((NTSTATUS) 0xC0000240L)
 +#endif
 +
 +#ifndef STATUS_CONNECTION_ABORTED
 +# define STATUS_CONNECTION_ABORTED ((NTSTATUS) 0xC0000241L)
 +#endif
 +
 +#ifndef STATUS_BAD_COMPRESSION_BUFFER
 +# define STATUS_BAD_COMPRESSION_BUFFER ((NTSTATUS) 0xC0000242L)
 +#endif
 +
 +#ifndef STATUS_USER_MAPPED_FILE
 +# define STATUS_USER_MAPPED_FILE ((NTSTATUS) 0xC0000243L)
 +#endif
 +
 +#ifndef STATUS_AUDIT_FAILED
 +# define STATUS_AUDIT_FAILED ((NTSTATUS) 0xC0000244L)
 +#endif
 +
 +#ifndef STATUS_TIMER_RESOLUTION_NOT_SET
 +# define STATUS_TIMER_RESOLUTION_NOT_SET ((NTSTATUS) 0xC0000245L)
 +#endif
 +
 +#ifndef STATUS_CONNECTION_COUNT_LIMIT
 +# define STATUS_CONNECTION_COUNT_LIMIT ((NTSTATUS) 0xC0000246L)
 +#endif
 +
 +#ifndef STATUS_LOGIN_TIME_RESTRICTION
 +# define STATUS_LOGIN_TIME_RESTRICTION ((NTSTATUS) 0xC0000247L)
 +#endif
 +
 +#ifndef STATUS_LOGIN_WKSTA_RESTRICTION
 +# define STATUS_LOGIN_WKSTA_RESTRICTION ((NTSTATUS) 0xC0000248L)
 +#endif
 +
 +#ifndef STATUS_IMAGE_MP_UP_MISMATCH
 +# define STATUS_IMAGE_MP_UP_MISMATCH ((NTSTATUS) 0xC0000249L)
 +#endif
 +
 +#ifndef STATUS_INSUFFICIENT_LOGON_INFO
 +# define STATUS_INSUFFICIENT_LOGON_INFO ((NTSTATUS) 0xC0000250L)
 +#endif
 +
 +#ifndef STATUS_BAD_DLL_ENTRYPOINT
 +# define STATUS_BAD_DLL_ENTRYPOINT ((NTSTATUS) 0xC0000251L)
 +#endif
 +
 +#ifndef STATUS_BAD_SERVICE_ENTRYPOINT
 +# define STATUS_BAD_SERVICE_ENTRYPOINT ((NTSTATUS) 0xC0000252L)
 +#endif
 +
 +#ifndef STATUS_LPC_REPLY_LOST
 +# define STATUS_LPC_REPLY_LOST ((NTSTATUS) 0xC0000253L)
 +#endif
 +
 +#ifndef STATUS_IP_ADDRESS_CONFLICT1
 +# define STATUS_IP_ADDRESS_CONFLICT1 ((NTSTATUS) 0xC0000254L)
 +#endif
 +
 +#ifndef STATUS_IP_ADDRESS_CONFLICT2
 +# define STATUS_IP_ADDRESS_CONFLICT2 ((NTSTATUS) 0xC0000255L)
 +#endif
 +
 +#ifndef STATUS_REGISTRY_QUOTA_LIMIT
 +# define STATUS_REGISTRY_QUOTA_LIMIT ((NTSTATUS) 0xC0000256L)
 +#endif
 +
 +#ifndef STATUS_PATH_NOT_COVERED
 +# define STATUS_PATH_NOT_COVERED ((NTSTATUS) 0xC0000257L)
 +#endif
 +
 +#ifndef STATUS_NO_CALLBACK_ACTIVE
 +# define STATUS_NO_CALLBACK_ACTIVE ((NTSTATUS) 0xC0000258L)
 +#endif
 +
 +#ifndef STATUS_LICENSE_QUOTA_EXCEEDED
 +# define STATUS_LICENSE_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000259L)
 +#endif
 +
 +#ifndef STATUS_PWD_TOO_SHORT
 +# define STATUS_PWD_TOO_SHORT ((NTSTATUS) 0xC000025AL)
 +#endif
 +
 +#ifndef STATUS_PWD_TOO_RECENT
 +# define STATUS_PWD_TOO_RECENT ((NTSTATUS) 0xC000025BL)
 +#endif
 +
 +#ifndef STATUS_PWD_HISTORY_CONFLICT
 +# define STATUS_PWD_HISTORY_CONFLICT ((NTSTATUS) 0xC000025CL)
 +#endif
 +
 +#ifndef STATUS_PLUGPLAY_NO_DEVICE
 +# define STATUS_PLUGPLAY_NO_DEVICE ((NTSTATUS) 0xC000025EL)
 +#endif
 +
 +#ifndef STATUS_UNSUPPORTED_COMPRESSION
 +# define STATUS_UNSUPPORTED_COMPRESSION ((NTSTATUS) 0xC000025FL)
 +#endif
 +
 +#ifndef STATUS_INVALID_HW_PROFILE
 +# define STATUS_INVALID_HW_PROFILE ((NTSTATUS) 0xC0000260L)
 +#endif
 +
 +#ifndef STATUS_INVALID_PLUGPLAY_DEVICE_PATH
 +# define STATUS_INVALID_PLUGPLAY_DEVICE_PATH ((NTSTATUS) 0xC0000261L)
 +#endif
 +
 +#ifndef STATUS_DRIVER_ORDINAL_NOT_FOUND
 +# define STATUS_DRIVER_ORDINAL_NOT_FOUND ((NTSTATUS) 0xC0000262L)
 +#endif
 +
 +#ifndef STATUS_DRIVER_ENTRYPOINT_NOT_FOUND
 +# define STATUS_DRIVER_ENTRYPOINT_NOT_FOUND ((NTSTATUS) 0xC0000263L)
 +#endif
 +
 +#ifndef STATUS_RESOURCE_NOT_OWNED
 +# define STATUS_RESOURCE_NOT_OWNED ((NTSTATUS) 0xC0000264L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_LINKS
 +# define STATUS_TOO_MANY_LINKS ((NTSTATUS) 0xC0000265L)
 +#endif
 +
 +#ifndef STATUS_QUOTA_LIST_INCONSISTENT
 +# define STATUS_QUOTA_LIST_INCONSISTENT ((NTSTATUS) 0xC0000266L)
 +#endif
 +
 +#ifndef STATUS_FILE_IS_OFFLINE
 +# define STATUS_FILE_IS_OFFLINE ((NTSTATUS) 0xC0000267L)
 +#endif
 +
 +#ifndef STATUS_EVALUATION_EXPIRATION
 +# define STATUS_EVALUATION_EXPIRATION ((NTSTATUS) 0xC0000268L)
 +#endif
 +
 +#ifndef STATUS_ILLEGAL_DLL_RELOCATION
 +# define STATUS_ILLEGAL_DLL_RELOCATION ((NTSTATUS) 0xC0000269L)
 +#endif
 +
 +#ifndef STATUS_LICENSE_VIOLATION
 +# define STATUS_LICENSE_VIOLATION ((NTSTATUS) 0xC000026AL)
 +#endif
 +
 +#ifndef STATUS_DLL_INIT_FAILED_LOGOFF
 +# define STATUS_DLL_INIT_FAILED_LOGOFF ((NTSTATUS) 0xC000026BL)
 +#endif
 +
 +#ifndef STATUS_DRIVER_UNABLE_TO_LOAD
 +# define STATUS_DRIVER_UNABLE_TO_LOAD ((NTSTATUS) 0xC000026CL)
 +#endif
 +
 +#ifndef STATUS_DFS_UNAVAILABLE
 +# define STATUS_DFS_UNAVAILABLE ((NTSTATUS) 0xC000026DL)
 +#endif
 +
 +#ifndef STATUS_VOLUME_DISMOUNTED
 +# define STATUS_VOLUME_DISMOUNTED ((NTSTATUS) 0xC000026EL)
 +#endif
 +
 +#ifndef STATUS_WX86_INTERNAL_ERROR
 +# define STATUS_WX86_INTERNAL_ERROR ((NTSTATUS) 0xC000026FL)
 +#endif
 +
 +#ifndef STATUS_WX86_FLOAT_STACK_CHECK
 +# define STATUS_WX86_FLOAT_STACK_CHECK ((NTSTATUS) 0xC0000270L)
 +#endif
 +
 +#ifndef STATUS_VALIDATE_CONTINUE
 +# define STATUS_VALIDATE_CONTINUE ((NTSTATUS) 0xC0000271L)
 +#endif
 +
 +#ifndef STATUS_NO_MATCH
 +# define STATUS_NO_MATCH ((NTSTATUS) 0xC0000272L)
 +#endif
 +
 +#ifndef STATUS_NO_MORE_MATCHES
 +# define STATUS_NO_MORE_MATCHES ((NTSTATUS) 0xC0000273L)
 +#endif
 +
 +#ifndef STATUS_NOT_A_REPARSE_POINT
 +# define STATUS_NOT_A_REPARSE_POINT ((NTSTATUS) 0xC0000275L)
 +#endif
 +
 +#ifndef STATUS_IO_REPARSE_TAG_INVALID
 +# define STATUS_IO_REPARSE_TAG_INVALID ((NTSTATUS) 0xC0000276L)
 +#endif
 +
 +#ifndef STATUS_IO_REPARSE_TAG_MISMATCH
 +# define STATUS_IO_REPARSE_TAG_MISMATCH ((NTSTATUS) 0xC0000277L)
 +#endif
 +
 +#ifndef STATUS_IO_REPARSE_DATA_INVALID
 +# define STATUS_IO_REPARSE_DATA_INVALID ((NTSTATUS) 0xC0000278L)
 +#endif
 +
 +#ifndef STATUS_IO_REPARSE_TAG_NOT_HANDLED
 +# define STATUS_IO_REPARSE_TAG_NOT_HANDLED ((NTSTATUS) 0xC0000279L)
 +#endif
 +
 +#ifndef STATUS_REPARSE_POINT_NOT_RESOLVED
 +# define STATUS_REPARSE_POINT_NOT_RESOLVED ((NTSTATUS) 0xC0000280L)
 +#endif
 +
 +#ifndef STATUS_DIRECTORY_IS_A_REPARSE_POINT
 +# define STATUS_DIRECTORY_IS_A_REPARSE_POINT ((NTSTATUS) 0xC0000281L)
 +#endif
 +
 +#ifndef STATUS_RANGE_LIST_CONFLICT
 +# define STATUS_RANGE_LIST_CONFLICT ((NTSTATUS) 0xC0000282L)
 +#endif
 +
 +#ifndef STATUS_SOURCE_ELEMENT_EMPTY
 +# define STATUS_SOURCE_ELEMENT_EMPTY ((NTSTATUS) 0xC0000283L)
 +#endif
 +
 +#ifndef STATUS_DESTINATION_ELEMENT_FULL
 +# define STATUS_DESTINATION_ELEMENT_FULL ((NTSTATUS) 0xC0000284L)
 +#endif
 +
 +#ifndef STATUS_ILLEGAL_ELEMENT_ADDRESS
 +# define STATUS_ILLEGAL_ELEMENT_ADDRESS ((NTSTATUS) 0xC0000285L)
 +#endif
 +
 +#ifndef STATUS_MAGAZINE_NOT_PRESENT
 +# define STATUS_MAGAZINE_NOT_PRESENT ((NTSTATUS) 0xC0000286L)
 +#endif
 +
 +#ifndef STATUS_REINITIALIZATION_NEEDED
 +# define STATUS_REINITIALIZATION_NEEDED ((NTSTATUS) 0xC0000287L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_REQUIRES_CLEANING
 +# define STATUS_DEVICE_REQUIRES_CLEANING ((NTSTATUS) 0x80000288L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_DOOR_OPEN
 +# define STATUS_DEVICE_DOOR_OPEN ((NTSTATUS) 0x80000289L)
 +#endif
 +
 +#ifndef STATUS_ENCRYPTION_FAILED
 +# define STATUS_ENCRYPTION_FAILED ((NTSTATUS) 0xC000028AL)
 +#endif
 +
 +#ifndef STATUS_DECRYPTION_FAILED
 +# define STATUS_DECRYPTION_FAILED ((NTSTATUS) 0xC000028BL)
 +#endif
 +
 +#ifndef STATUS_RANGE_NOT_FOUND
 +# define STATUS_RANGE_NOT_FOUND ((NTSTATUS) 0xC000028CL)
 +#endif
 +
 +#ifndef STATUS_NO_RECOVERY_POLICY
 +# define STATUS_NO_RECOVERY_POLICY ((NTSTATUS) 0xC000028DL)
 +#endif
 +
 +#ifndef STATUS_NO_EFS
 +# define STATUS_NO_EFS ((NTSTATUS) 0xC000028EL)
 +#endif
 +
 +#ifndef STATUS_WRONG_EFS
 +# define STATUS_WRONG_EFS ((NTSTATUS) 0xC000028FL)
 +#endif
 +
 +#ifndef STATUS_NO_USER_KEYS
 +# define STATUS_NO_USER_KEYS ((NTSTATUS) 0xC0000290L)
 +#endif
 +
 +#ifndef STATUS_FILE_NOT_ENCRYPTED
 +# define STATUS_FILE_NOT_ENCRYPTED ((NTSTATUS) 0xC0000291L)
 +#endif
 +
 +#ifndef STATUS_NOT_EXPORT_FORMAT
 +# define STATUS_NOT_EXPORT_FORMAT ((NTSTATUS) 0xC0000292L)
 +#endif
 +
 +#ifndef STATUS_FILE_ENCRYPTED
 +# define STATUS_FILE_ENCRYPTED ((NTSTATUS) 0xC0000293L)
 +#endif
 +
 +#ifndef STATUS_WAKE_SYSTEM
 +# define STATUS_WAKE_SYSTEM ((NTSTATUS) 0x40000294L)
 +#endif
 +
 +#ifndef STATUS_WMI_GUID_NOT_FOUND
 +# define STATUS_WMI_GUID_NOT_FOUND ((NTSTATUS) 0xC0000295L)
 +#endif
 +
 +#ifndef STATUS_WMI_INSTANCE_NOT_FOUND
 +# define STATUS_WMI_INSTANCE_NOT_FOUND ((NTSTATUS) 0xC0000296L)
 +#endif
 +
 +#ifndef STATUS_WMI_ITEMID_NOT_FOUND
 +# define STATUS_WMI_ITEMID_NOT_FOUND ((NTSTATUS) 0xC0000297L)
 +#endif
 +
 +#ifndef STATUS_WMI_TRY_AGAIN
 +# define STATUS_WMI_TRY_AGAIN ((NTSTATUS) 0xC0000298L)
 +#endif
 +
 +#ifndef STATUS_SHARED_POLICY
 +# define STATUS_SHARED_POLICY ((NTSTATUS) 0xC0000299L)
 +#endif
 +
 +#ifndef STATUS_POLICY_OBJECT_NOT_FOUND
 +# define STATUS_POLICY_OBJECT_NOT_FOUND ((NTSTATUS) 0xC000029AL)
 +#endif
 +
 +#ifndef STATUS_POLICY_ONLY_IN_DS
 +# define STATUS_POLICY_ONLY_IN_DS ((NTSTATUS) 0xC000029BL)
 +#endif
 +
 +#ifndef STATUS_VOLUME_NOT_UPGRADED
 +# define STATUS_VOLUME_NOT_UPGRADED ((NTSTATUS) 0xC000029CL)
 +#endif
 +
 +#ifndef STATUS_REMOTE_STORAGE_NOT_ACTIVE
 +# define STATUS_REMOTE_STORAGE_NOT_ACTIVE ((NTSTATUS) 0xC000029DL)
 +#endif
 +
 +#ifndef STATUS_REMOTE_STORAGE_MEDIA_ERROR
 +# define STATUS_REMOTE_STORAGE_MEDIA_ERROR ((NTSTATUS) 0xC000029EL)
 +#endif
 +
 +#ifndef STATUS_NO_TRACKING_SERVICE
 +# define STATUS_NO_TRACKING_SERVICE ((NTSTATUS) 0xC000029FL)
 +#endif
 +
 +#ifndef STATUS_SERVER_SID_MISMATCH
 +# define STATUS_SERVER_SID_MISMATCH ((NTSTATUS) 0xC00002A0L)
 +#endif
 +
 +#ifndef STATUS_DS_NO_ATTRIBUTE_OR_VALUE
 +# define STATUS_DS_NO_ATTRIBUTE_OR_VALUE ((NTSTATUS) 0xC00002A1L)
 +#endif
 +
 +#ifndef STATUS_DS_INVALID_ATTRIBUTE_SYNTAX
 +# define STATUS_DS_INVALID_ATTRIBUTE_SYNTAX ((NTSTATUS) 0xC00002A2L)
 +#endif
 +
 +#ifndef STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED
 +# define STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED ((NTSTATUS) 0xC00002A3L)
 +#endif
 +
 +#ifndef STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS
 +# define STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS ((NTSTATUS) 0xC00002A4L)
 +#endif
 +
 +#ifndef STATUS_DS_BUSY
 +# define STATUS_DS_BUSY ((NTSTATUS) 0xC00002A5L)
 +#endif
 +
 +#ifndef STATUS_DS_UNAVAILABLE
 +# define STATUS_DS_UNAVAILABLE ((NTSTATUS) 0xC00002A6L)
 +#endif
 +
 +#ifndef STATUS_DS_NO_RIDS_ALLOCATED
 +# define STATUS_DS_NO_RIDS_ALLOCATED ((NTSTATUS) 0xC00002A7L)
 +#endif
 +
 +#ifndef STATUS_DS_NO_MORE_RIDS
 +# define STATUS_DS_NO_MORE_RIDS ((NTSTATUS) 0xC00002A8L)
 +#endif
 +
 +#ifndef STATUS_DS_INCORRECT_ROLE_OWNER
 +# define STATUS_DS_INCORRECT_ROLE_OWNER ((NTSTATUS) 0xC00002A9L)
 +#endif
 +
 +#ifndef STATUS_DS_RIDMGR_INIT_ERROR
 +# define STATUS_DS_RIDMGR_INIT_ERROR ((NTSTATUS) 0xC00002AAL)
 +#endif
 +
 +#ifndef STATUS_DS_OBJ_CLASS_VIOLATION
 +# define STATUS_DS_OBJ_CLASS_VIOLATION ((NTSTATUS) 0xC00002ABL)
 +#endif
 +
 +#ifndef STATUS_DS_CANT_ON_NON_LEAF
 +# define STATUS_DS_CANT_ON_NON_LEAF ((NTSTATUS) 0xC00002ACL)
 +#endif
 +
 +#ifndef STATUS_DS_CANT_ON_RDN
 +# define STATUS_DS_CANT_ON_RDN ((NTSTATUS) 0xC00002ADL)
 +#endif
 +
 +#ifndef STATUS_DS_CANT_MOD_OBJ_CLASS
 +# define STATUS_DS_CANT_MOD_OBJ_CLASS ((NTSTATUS) 0xC00002AEL)
 +#endif
 +
 +#ifndef STATUS_DS_CROSS_DOM_MOVE_FAILED
 +# define STATUS_DS_CROSS_DOM_MOVE_FAILED ((NTSTATUS) 0xC00002AFL)
 +#endif
 +
 +#ifndef STATUS_DS_GC_NOT_AVAILABLE
 +# define STATUS_DS_GC_NOT_AVAILABLE ((NTSTATUS) 0xC00002B0L)
 +#endif
 +
 +#ifndef STATUS_DIRECTORY_SERVICE_REQUIRED
 +# define STATUS_DIRECTORY_SERVICE_REQUIRED ((NTSTATUS) 0xC00002B1L)
 +#endif
 +
 +#ifndef STATUS_REPARSE_ATTRIBUTE_CONFLICT
 +# define STATUS_REPARSE_ATTRIBUTE_CONFLICT ((NTSTATUS) 0xC00002B2L)
 +#endif
 +
 +#ifndef STATUS_CANT_ENABLE_DENY_ONLY
 +# define STATUS_CANT_ENABLE_DENY_ONLY ((NTSTATUS) 0xC00002B3L)
 +#endif
 +
 +#ifndef STATUS_FLOAT_MULTIPLE_FAULTS
 +# define STATUS_FLOAT_MULTIPLE_FAULTS ((NTSTATUS) 0xC00002B4L)
 +#endif
 +
 +#ifndef STATUS_FLOAT_MULTIPLE_TRAPS
 +# define STATUS_FLOAT_MULTIPLE_TRAPS ((NTSTATUS) 0xC00002B5L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_REMOVED
 +# define STATUS_DEVICE_REMOVED ((NTSTATUS) 0xC00002B6L)
 +#endif
 +
 +#ifndef STATUS_JOURNAL_DELETE_IN_PROGRESS
 +# define STATUS_JOURNAL_DELETE_IN_PROGRESS ((NTSTATUS) 0xC00002B7L)
 +#endif
 +
 +#ifndef STATUS_JOURNAL_NOT_ACTIVE
 +# define STATUS_JOURNAL_NOT_ACTIVE ((NTSTATUS) 0xC00002B8L)
 +#endif
 +
 +#ifndef STATUS_NOINTERFACE
 +# define STATUS_NOINTERFACE ((NTSTATUS) 0xC00002B9L)
 +#endif
 +
 +#ifndef STATUS_DS_ADMIN_LIMIT_EXCEEDED
 +# define STATUS_DS_ADMIN_LIMIT_EXCEEDED ((NTSTATUS) 0xC00002C1L)
 +#endif
 +
 +#ifndef STATUS_DRIVER_FAILED_SLEEP
 +# define STATUS_DRIVER_FAILED_SLEEP ((NTSTATUS) 0xC00002C2L)
 +#endif
 +
 +#ifndef STATUS_MUTUAL_AUTHENTICATION_FAILED
 +# define STATUS_MUTUAL_AUTHENTICATION_FAILED ((NTSTATUS) 0xC00002C3L)
 +#endif
 +
 +#ifndef STATUS_CORRUPT_SYSTEM_FILE
 +# define STATUS_CORRUPT_SYSTEM_FILE ((NTSTATUS) 0xC00002C4L)
 +#endif
 +
 +#ifndef STATUS_DATATYPE_MISALIGNMENT_ERROR
 +# define STATUS_DATATYPE_MISALIGNMENT_ERROR ((NTSTATUS) 0xC00002C5L)
 +#endif
 +
 +#ifndef STATUS_WMI_READ_ONLY
 +# define STATUS_WMI_READ_ONLY ((NTSTATUS) 0xC00002C6L)
 +#endif
 +
 +#ifndef STATUS_WMI_SET_FAILURE
 +# define STATUS_WMI_SET_FAILURE ((NTSTATUS) 0xC00002C7L)
 +#endif
 +
 +#ifndef STATUS_COMMITMENT_MINIMUM
 +# define STATUS_COMMITMENT_MINIMUM ((NTSTATUS) 0xC00002C8L)
 +#endif
 +
 +#ifndef STATUS_REG_NAT_CONSUMPTION
 +# define STATUS_REG_NAT_CONSUMPTION ((NTSTATUS) 0xC00002C9L)
 +#endif
 +
 +#ifndef STATUS_TRANSPORT_FULL
 +# define STATUS_TRANSPORT_FULL ((NTSTATUS) 0xC00002CAL)
 +#endif
 +
 +#ifndef STATUS_DS_SAM_INIT_FAILURE
 +# define STATUS_DS_SAM_INIT_FAILURE ((NTSTATUS) 0xC00002CBL)
 +#endif
 +
 +#ifndef STATUS_ONLY_IF_CONNECTED
 +# define STATUS_ONLY_IF_CONNECTED ((NTSTATUS) 0xC00002CCL)
 +#endif
 +
 +#ifndef STATUS_DS_SENSITIVE_GROUP_VIOLATION
 +# define STATUS_DS_SENSITIVE_GROUP_VIOLATION ((NTSTATUS) 0xC00002CDL)
 +#endif
 +
 +#ifndef STATUS_PNP_RESTART_ENUMERATION
 +# define STATUS_PNP_RESTART_ENUMERATION ((NTSTATUS) 0xC00002CEL)
 +#endif
 +
 +#ifndef STATUS_JOURNAL_ENTRY_DELETED
 +# define STATUS_JOURNAL_ENTRY_DELETED ((NTSTATUS) 0xC00002CFL)
 +#endif
 +
 +#ifndef STATUS_DS_CANT_MOD_PRIMARYGROUPID
 +# define STATUS_DS_CANT_MOD_PRIMARYGROUPID ((NTSTATUS) 0xC00002D0L)
 +#endif
 +
 +#ifndef STATUS_SYSTEM_IMAGE_BAD_SIGNATURE
 +# define STATUS_SYSTEM_IMAGE_BAD_SIGNATURE ((NTSTATUS) 0xC00002D1L)
 +#endif
 +
 +#ifndef STATUS_PNP_REBOOT_REQUIRED
 +# define STATUS_PNP_REBOOT_REQUIRED ((NTSTATUS) 0xC00002D2L)
 +#endif
 +
 +#ifndef STATUS_POWER_STATE_INVALID
 +# define STATUS_POWER_STATE_INVALID ((NTSTATUS) 0xC00002D3L)
 +#endif
 +
 +#ifndef STATUS_DS_INVALID_GROUP_TYPE
 +# define STATUS_DS_INVALID_GROUP_TYPE ((NTSTATUS) 0xC00002D4L)
 +#endif
 +
 +#ifndef STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN
 +# define STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN ((NTSTATUS) 0xC00002D5L)
 +#endif
 +
 +#ifndef STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN
 +# define STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN ((NTSTATUS) 0xC00002D6L)
 +#endif
 +
 +#ifndef STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER
 +# define STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS) 0xC00002D7L)
 +#endif
 +
 +#ifndef STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER
 +# define STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS) 0xC00002D8L)
 +#endif
 +
 +#ifndef STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER
 +# define STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS) 0xC00002D9L)
 +#endif
 +
 +#ifndef STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER
 +# define STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER ((NTSTATUS) 0xC00002DAL)
 +#endif
 +
 +#ifndef STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER
 +# define STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER ((NTSTATUS) 0xC00002DBL)
 +#endif
 +
 +#ifndef STATUS_DS_HAVE_PRIMARY_MEMBERS
 +# define STATUS_DS_HAVE_PRIMARY_MEMBERS ((NTSTATUS) 0xC00002DCL)
 +#endif
 +
 +#ifndef STATUS_WMI_NOT_SUPPORTED
 +# define STATUS_WMI_NOT_SUPPORTED ((NTSTATUS) 0xC00002DDL)
 +#endif
 +
 +#ifndef STATUS_INSUFFICIENT_POWER
 +# define STATUS_INSUFFICIENT_POWER ((NTSTATUS) 0xC00002DEL)
 +#endif
 +
 +#ifndef STATUS_SAM_NEED_BOOTKEY_PASSWORD
 +# define STATUS_SAM_NEED_BOOTKEY_PASSWORD ((NTSTATUS) 0xC00002DFL)
 +#endif
 +
 +#ifndef STATUS_SAM_NEED_BOOTKEY_FLOPPY
 +# define STATUS_SAM_NEED_BOOTKEY_FLOPPY ((NTSTATUS) 0xC00002E0L)
 +#endif
 +
 +#ifndef STATUS_DS_CANT_START
 +# define STATUS_DS_CANT_START ((NTSTATUS) 0xC00002E1L)
 +#endif
 +
 +#ifndef STATUS_DS_INIT_FAILURE
 +# define STATUS_DS_INIT_FAILURE ((NTSTATUS) 0xC00002E2L)
 +#endif
 +
 +#ifndef STATUS_SAM_INIT_FAILURE
 +# define STATUS_SAM_INIT_FAILURE ((NTSTATUS) 0xC00002E3L)
 +#endif
 +
 +#ifndef STATUS_DS_GC_REQUIRED
 +# define STATUS_DS_GC_REQUIRED ((NTSTATUS) 0xC00002E4L)
 +#endif
 +
 +#ifndef STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY
 +# define STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY ((NTSTATUS) 0xC00002E5L)
 +#endif
 +
 +#ifndef STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS
 +# define STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS ((NTSTATUS) 0xC00002E6L)
 +#endif
 +
 +#ifndef STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED
 +# define STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED ((NTSTATUS) 0xC00002E7L)
 +#endif
 +
 +#ifndef STATUS_MULTIPLE_FAULT_VIOLATION
 +# define STATUS_MULTIPLE_FAULT_VIOLATION ((NTSTATUS) 0xC00002E8L)
 +#endif
 +
 +#ifndef STATUS_CURRENT_DOMAIN_NOT_ALLOWED
 +# define STATUS_CURRENT_DOMAIN_NOT_ALLOWED ((NTSTATUS) 0xC00002E9L)
 +#endif
 +
 +#ifndef STATUS_CANNOT_MAKE
 +# define STATUS_CANNOT_MAKE ((NTSTATUS) 0xC00002EAL)
 +#endif
 +
 +#ifndef STATUS_SYSTEM_SHUTDOWN
 +# define STATUS_SYSTEM_SHUTDOWN ((NTSTATUS) 0xC00002EBL)
 +#endif
 +
 +#ifndef STATUS_DS_INIT_FAILURE_CONSOLE
 +# define STATUS_DS_INIT_FAILURE_CONSOLE ((NTSTATUS) 0xC00002ECL)
 +#endif
 +
 +#ifndef STATUS_DS_SAM_INIT_FAILURE_CONSOLE
 +# define STATUS_DS_SAM_INIT_FAILURE_CONSOLE ((NTSTATUS) 0xC00002EDL)
 +#endif
 +
 +#ifndef STATUS_UNFINISHED_CONTEXT_DELETED
 +# define STATUS_UNFINISHED_CONTEXT_DELETED ((NTSTATUS) 0xC00002EEL)
 +#endif
 +
 +#ifndef STATUS_NO_TGT_REPLY
 +# define STATUS_NO_TGT_REPLY ((NTSTATUS) 0xC00002EFL)
 +#endif
 +
 +#ifndef STATUS_OBJECTID_NOT_FOUND
 +# define STATUS_OBJECTID_NOT_FOUND ((NTSTATUS) 0xC00002F0L)
 +#endif
 +
 +#ifndef STATUS_NO_IP_ADDRESSES
 +# define STATUS_NO_IP_ADDRESSES ((NTSTATUS) 0xC00002F1L)
 +#endif
 +
 +#ifndef STATUS_WRONG_CREDENTIAL_HANDLE
 +# define STATUS_WRONG_CREDENTIAL_HANDLE ((NTSTATUS) 0xC00002F2L)
 +#endif
 +
 +#ifndef STATUS_CRYPTO_SYSTEM_INVALID
 +# define STATUS_CRYPTO_SYSTEM_INVALID ((NTSTATUS) 0xC00002F3L)
 +#endif
 +
 +#ifndef STATUS_MAX_REFERRALS_EXCEEDED
 +# define STATUS_MAX_REFERRALS_EXCEEDED ((NTSTATUS) 0xC00002F4L)
 +#endif
 +
 +#ifndef STATUS_MUST_BE_KDC
 +# define STATUS_MUST_BE_KDC ((NTSTATUS) 0xC00002F5L)
 +#endif
 +
 +#ifndef STATUS_STRONG_CRYPTO_NOT_SUPPORTED
 +# define STATUS_STRONG_CRYPTO_NOT_SUPPORTED ((NTSTATUS) 0xC00002F6L)
 +#endif
 +
 +#ifndef STATUS_TOO_MANY_PRINCIPALS
 +# define STATUS_TOO_MANY_PRINCIPALS ((NTSTATUS) 0xC00002F7L)
 +#endif
 +
 +#ifndef STATUS_NO_PA_DATA
 +# define STATUS_NO_PA_DATA ((NTSTATUS) 0xC00002F8L)
 +#endif
 +
 +#ifndef STATUS_PKINIT_NAME_MISMATCH
 +# define STATUS_PKINIT_NAME_MISMATCH ((NTSTATUS) 0xC00002F9L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_LOGON_REQUIRED
 +# define STATUS_SMARTCARD_LOGON_REQUIRED ((NTSTATUS) 0xC00002FAL)
 +#endif
 +
 +#ifndef STATUS_KDC_INVALID_REQUEST
 +# define STATUS_KDC_INVALID_REQUEST ((NTSTATUS) 0xC00002FBL)
 +#endif
 +
 +#ifndef STATUS_KDC_UNABLE_TO_REFER
 +# define STATUS_KDC_UNABLE_TO_REFER ((NTSTATUS) 0xC00002FCL)
 +#endif
 +
 +#ifndef STATUS_KDC_UNKNOWN_ETYPE
 +# define STATUS_KDC_UNKNOWN_ETYPE ((NTSTATUS) 0xC00002FDL)
 +#endif
 +
 +#ifndef STATUS_SHUTDOWN_IN_PROGRESS
 +# define STATUS_SHUTDOWN_IN_PROGRESS ((NTSTATUS) 0xC00002FEL)
 +#endif
 +
 +#ifndef STATUS_SERVER_SHUTDOWN_IN_PROGRESS
 +# define STATUS_SERVER_SHUTDOWN_IN_PROGRESS ((NTSTATUS) 0xC00002FFL)
 +#endif
 +
 +#ifndef STATUS_NOT_SUPPORTED_ON_SBS
 +# define STATUS_NOT_SUPPORTED_ON_SBS ((NTSTATUS) 0xC0000300L)
 +#endif
 +
 +#ifndef STATUS_WMI_GUID_DISCONNECTED
 +# define STATUS_WMI_GUID_DISCONNECTED ((NTSTATUS) 0xC0000301L)
 +#endif
 +
 +#ifndef STATUS_WMI_ALREADY_DISABLED
 +# define STATUS_WMI_ALREADY_DISABLED ((NTSTATUS) 0xC0000302L)
 +#endif
 +
 +#ifndef STATUS_WMI_ALREADY_ENABLED
 +# define STATUS_WMI_ALREADY_ENABLED ((NTSTATUS) 0xC0000303L)
 +#endif
 +
 +#ifndef STATUS_MFT_TOO_FRAGMENTED
 +# define STATUS_MFT_TOO_FRAGMENTED ((NTSTATUS) 0xC0000304L)
 +#endif
 +
 +#ifndef STATUS_COPY_PROTECTION_FAILURE
 +# define STATUS_COPY_PROTECTION_FAILURE ((NTSTATUS) 0xC0000305L)
 +#endif
 +
 +#ifndef STATUS_CSS_AUTHENTICATION_FAILURE
 +# define STATUS_CSS_AUTHENTICATION_FAILURE ((NTSTATUS) 0xC0000306L)
 +#endif
 +
 +#ifndef STATUS_CSS_KEY_NOT_PRESENT
 +# define STATUS_CSS_KEY_NOT_PRESENT ((NTSTATUS) 0xC0000307L)
 +#endif
 +
 +#ifndef STATUS_CSS_KEY_NOT_ESTABLISHED
 +# define STATUS_CSS_KEY_NOT_ESTABLISHED ((NTSTATUS) 0xC0000308L)
 +#endif
 +
 +#ifndef STATUS_CSS_SCRAMBLED_SECTOR
 +# define STATUS_CSS_SCRAMBLED_SECTOR ((NTSTATUS) 0xC0000309L)
 +#endif
 +
 +#ifndef STATUS_CSS_REGION_MISMATCH
 +# define STATUS_CSS_REGION_MISMATCH ((NTSTATUS) 0xC000030AL)
 +#endif
 +
 +#ifndef STATUS_CSS_RESETS_EXHAUSTED
 +# define STATUS_CSS_RESETS_EXHAUSTED ((NTSTATUS) 0xC000030BL)
 +#endif
 +
 +#ifndef STATUS_PKINIT_FAILURE
 +# define STATUS_PKINIT_FAILURE ((NTSTATUS) 0xC0000320L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_SUBSYSTEM_FAILURE
 +# define STATUS_SMARTCARD_SUBSYSTEM_FAILURE ((NTSTATUS) 0xC0000321L)
 +#endif
 +
 +#ifndef STATUS_NO_KERB_KEY
 +# define STATUS_NO_KERB_KEY ((NTSTATUS) 0xC0000322L)
 +#endif
 +
 +#ifndef STATUS_HOST_DOWN
 +# define STATUS_HOST_DOWN ((NTSTATUS) 0xC0000350L)
 +#endif
 +
 +#ifndef STATUS_UNSUPPORTED_PREAUTH
 +# define STATUS_UNSUPPORTED_PREAUTH ((NTSTATUS) 0xC0000351L)
 +#endif
 +
 +#ifndef STATUS_EFS_ALG_BLOB_TOO_BIG
 +# define STATUS_EFS_ALG_BLOB_TOO_BIG ((NTSTATUS) 0xC0000352L)
 +#endif
 +
 +#ifndef STATUS_PORT_NOT_SET
 +# define STATUS_PORT_NOT_SET ((NTSTATUS) 0xC0000353L)
 +#endif
 +
 +#ifndef STATUS_DEBUGGER_INACTIVE
 +# define STATUS_DEBUGGER_INACTIVE ((NTSTATUS) 0xC0000354L)
 +#endif
 +
 +#ifndef STATUS_DS_VERSION_CHECK_FAILURE
 +# define STATUS_DS_VERSION_CHECK_FAILURE ((NTSTATUS) 0xC0000355L)
 +#endif
 +
 +#ifndef STATUS_AUDITING_DISABLED
 +# define STATUS_AUDITING_DISABLED ((NTSTATUS) 0xC0000356L)
 +#endif
 +
 +#ifndef STATUS_PRENT4_MACHINE_ACCOUNT
 +# define STATUS_PRENT4_MACHINE_ACCOUNT ((NTSTATUS) 0xC0000357L)
 +#endif
 +
 +#ifndef STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER
 +# define STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS) 0xC0000358L)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_WIN_32
 +# define STATUS_INVALID_IMAGE_WIN_32 ((NTSTATUS) 0xC0000359L)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_WIN_64
 +# define STATUS_INVALID_IMAGE_WIN_64 ((NTSTATUS) 0xC000035AL)
 +#endif
 +
 +#ifndef STATUS_BAD_BINDINGS
 +# define STATUS_BAD_BINDINGS ((NTSTATUS) 0xC000035BL)
 +#endif
 +
 +#ifndef STATUS_NETWORK_SESSION_EXPIRED
 +# define STATUS_NETWORK_SESSION_EXPIRED ((NTSTATUS) 0xC000035CL)
 +#endif
 +
 +#ifndef STATUS_APPHELP_BLOCK
 +# define STATUS_APPHELP_BLOCK ((NTSTATUS) 0xC000035DL)
 +#endif
 +
 +#ifndef STATUS_ALL_SIDS_FILTERED
 +# define STATUS_ALL_SIDS_FILTERED ((NTSTATUS) 0xC000035EL)
 +#endif
 +
 +#ifndef STATUS_NOT_SAFE_MODE_DRIVER
 +# define STATUS_NOT_SAFE_MODE_DRIVER ((NTSTATUS) 0xC000035FL)
 +#endif
 +
 +#ifndef STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT
 +# define STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT ((NTSTATUS) 0xC0000361L)
 +#endif
 +
 +#ifndef STATUS_ACCESS_DISABLED_BY_POLICY_PATH
 +# define STATUS_ACCESS_DISABLED_BY_POLICY_PATH ((NTSTATUS) 0xC0000362L)
 +#endif
 +
 +#ifndef STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER
 +# define STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER ((NTSTATUS) 0xC0000363L)
 +#endif
 +
 +#ifndef STATUS_ACCESS_DISABLED_BY_POLICY_OTHER
 +# define STATUS_ACCESS_DISABLED_BY_POLICY_OTHER ((NTSTATUS) 0xC0000364L)
 +#endif
 +
 +#ifndef STATUS_FAILED_DRIVER_ENTRY
 +# define STATUS_FAILED_DRIVER_ENTRY ((NTSTATUS) 0xC0000365L)
 +#endif
 +
 +#ifndef STATUS_DEVICE_ENUMERATION_ERROR
 +# define STATUS_DEVICE_ENUMERATION_ERROR ((NTSTATUS) 0xC0000366L)
 +#endif
 +
 +#ifndef STATUS_MOUNT_POINT_NOT_RESOLVED
 +# define STATUS_MOUNT_POINT_NOT_RESOLVED ((NTSTATUS) 0xC0000368L)
 +#endif
 +
 +#ifndef STATUS_INVALID_DEVICE_OBJECT_PARAMETER
 +# define STATUS_INVALID_DEVICE_OBJECT_PARAMETER ((NTSTATUS) 0xC0000369L)
 +#endif
 +
 +#ifndef STATUS_MCA_OCCURED
 +# define STATUS_MCA_OCCURED ((NTSTATUS) 0xC000036AL)
 +#endif
 +
 +#ifndef STATUS_DRIVER_BLOCKED_CRITICAL
 +# define STATUS_DRIVER_BLOCKED_CRITICAL ((NTSTATUS) 0xC000036BL)
 +#endif
 +
 +#ifndef STATUS_DRIVER_BLOCKED
 +# define STATUS_DRIVER_BLOCKED ((NTSTATUS) 0xC000036CL)
 +#endif
 +
 +#ifndef STATUS_DRIVER_DATABASE_ERROR
 +# define STATUS_DRIVER_DATABASE_ERROR ((NTSTATUS) 0xC000036DL)
 +#endif
 +
 +#ifndef STATUS_SYSTEM_HIVE_TOO_LARGE
 +# define STATUS_SYSTEM_HIVE_TOO_LARGE ((NTSTATUS) 0xC000036EL)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMPORT_OF_NON_DLL
 +# define STATUS_INVALID_IMPORT_OF_NON_DLL ((NTSTATUS) 0xC000036FL)
 +#endif
 +
 +#ifndef STATUS_DS_SHUTTING_DOWN
 +# define STATUS_DS_SHUTTING_DOWN ((NTSTATUS) 0x40000370L)
 +#endif
 +
 +#ifndef STATUS_NO_SECRETS
 +# define STATUS_NO_SECRETS ((NTSTATUS) 0xC0000371L)
 +#endif
 +
 +#ifndef STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY
 +# define STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY ((NTSTATUS) 0xC0000372L)
 +#endif
 +
 +#ifndef STATUS_FAILED_STACK_SWITCH
 +# define STATUS_FAILED_STACK_SWITCH ((NTSTATUS) 0xC0000373L)
 +#endif
 +
 +#ifndef STATUS_HEAP_CORRUPTION
 +# define STATUS_HEAP_CORRUPTION ((NTSTATUS) 0xC0000374L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_WRONG_PIN
 +# define STATUS_SMARTCARD_WRONG_PIN ((NTSTATUS) 0xC0000380L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_CARD_BLOCKED
 +# define STATUS_SMARTCARD_CARD_BLOCKED ((NTSTATUS) 0xC0000381L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED
 +# define STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED ((NTSTATUS) 0xC0000382L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_NO_CARD
 +# define STATUS_SMARTCARD_NO_CARD ((NTSTATUS) 0xC0000383L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_NO_KEY_CONTAINER
 +# define STATUS_SMARTCARD_NO_KEY_CONTAINER ((NTSTATUS) 0xC0000384L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_NO_CERTIFICATE
 +# define STATUS_SMARTCARD_NO_CERTIFICATE ((NTSTATUS) 0xC0000385L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_NO_KEYSET
 +# define STATUS_SMARTCARD_NO_KEYSET ((NTSTATUS) 0xC0000386L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_IO_ERROR
 +# define STATUS_SMARTCARD_IO_ERROR ((NTSTATUS) 0xC0000387L)
 +#endif
 +
 +#ifndef STATUS_DOWNGRADE_DETECTED
 +# define STATUS_DOWNGRADE_DETECTED ((NTSTATUS) 0xC0000388L)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_CERT_REVOKED
 +# define STATUS_SMARTCARD_CERT_REVOKED ((NTSTATUS) 0xC0000389L)
 +#endif
 +
 +#ifndef STATUS_ISSUING_CA_UNTRUSTED
 +# define STATUS_ISSUING_CA_UNTRUSTED ((NTSTATUS) 0xC000038AL)
 +#endif
 +
 +#ifndef STATUS_REVOCATION_OFFLINE_C
 +# define STATUS_REVOCATION_OFFLINE_C ((NTSTATUS) 0xC000038BL)
 +#endif
 +
 +#ifndef STATUS_PKINIT_CLIENT_FAILURE
 +# define STATUS_PKINIT_CLIENT_FAILURE ((NTSTATUS) 0xC000038CL)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_CERT_EXPIRED
 +# define STATUS_SMARTCARD_CERT_EXPIRED ((NTSTATUS) 0xC000038DL)
 +#endif
 +
 +#ifndef STATUS_DRIVER_FAILED_PRIOR_UNLOAD
 +# define STATUS_DRIVER_FAILED_PRIOR_UNLOAD ((NTSTATUS) 0xC000038EL)
 +#endif
 +
 +#ifndef STATUS_SMARTCARD_SILENT_CONTEXT
 +# define STATUS_SMARTCARD_SILENT_CONTEXT ((NTSTATUS) 0xC000038FL)
 +#endif
 +
 +#ifndef STATUS_PER_USER_TRUST_QUOTA_EXCEEDED
 +# define STATUS_PER_USER_TRUST_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000401L)
 +#endif
 +
 +#ifndef STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED
 +# define STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000402L)
 +#endif
 +
 +#ifndef STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED
 +# define STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000403L)
 +#endif
 +
 +#ifndef STATUS_DS_NAME_NOT_UNIQUE
 +# define STATUS_DS_NAME_NOT_UNIQUE ((NTSTATUS) 0xC0000404L)
 +#endif
 +
 +#ifndef STATUS_DS_DUPLICATE_ID_FOUND
 +# define STATUS_DS_DUPLICATE_ID_FOUND ((NTSTATUS) 0xC0000405L)
 +#endif
 +
 +#ifndef STATUS_DS_GROUP_CONVERSION_ERROR
 +# define STATUS_DS_GROUP_CONVERSION_ERROR ((NTSTATUS) 0xC0000406L)
 +#endif
 +
 +#ifndef STATUS_VOLSNAP_PREPARE_HIBERNATE
 +# define STATUS_VOLSNAP_PREPARE_HIBERNATE ((NTSTATUS) 0xC0000407L)
 +#endif
 +
 +#ifndef STATUS_USER2USER_REQUIRED
 +# define STATUS_USER2USER_REQUIRED ((NTSTATUS) 0xC0000408L)
 +#endif
 +
 +#ifndef STATUS_STACK_BUFFER_OVERRUN
 +# define STATUS_STACK_BUFFER_OVERRUN ((NTSTATUS) 0xC0000409L)
 +#endif
 +
 +#ifndef STATUS_NO_S4U_PROT_SUPPORT
 +# define STATUS_NO_S4U_PROT_SUPPORT ((NTSTATUS) 0xC000040AL)
 +#endif
 +
 +#ifndef STATUS_CROSSREALM_DELEGATION_FAILURE
 +# define STATUS_CROSSREALM_DELEGATION_FAILURE ((NTSTATUS) 0xC000040BL)
 +#endif
 +
 +#ifndef STATUS_REVOCATION_OFFLINE_KDC
 +# define STATUS_REVOCATION_OFFLINE_KDC ((NTSTATUS) 0xC000040CL)
 +#endif
 +
 +#ifndef STATUS_ISSUING_CA_UNTRUSTED_KDC
 +# define STATUS_ISSUING_CA_UNTRUSTED_KDC ((NTSTATUS) 0xC000040DL)
 +#endif
 +
 +#ifndef STATUS_KDC_CERT_EXPIRED
 +# define STATUS_KDC_CERT_EXPIRED ((NTSTATUS) 0xC000040EL)
 +#endif
 +
 +#ifndef STATUS_KDC_CERT_REVOKED
 +# define STATUS_KDC_CERT_REVOKED ((NTSTATUS) 0xC000040FL)
 +#endif
 +
 +#ifndef STATUS_PARAMETER_QUOTA_EXCEEDED
 +# define STATUS_PARAMETER_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000410L)
 +#endif
 +
 +#ifndef STATUS_HIBERNATION_FAILURE
 +# define STATUS_HIBERNATION_FAILURE ((NTSTATUS) 0xC0000411L)
 +#endif
 +
 +#ifndef STATUS_DELAY_LOAD_FAILED
 +# define STATUS_DELAY_LOAD_FAILED ((NTSTATUS) 0xC0000412L)
 +#endif
 +
 +#ifndef STATUS_AUTHENTICATION_FIREWALL_FAILED
 +# define STATUS_AUTHENTICATION_FIREWALL_FAILED ((NTSTATUS) 0xC0000413L)
 +#endif
 +
 +#ifndef STATUS_VDM_DISALLOWED
 +# define STATUS_VDM_DISALLOWED ((NTSTATUS) 0xC0000414L)
 +#endif
 +
 +#ifndef STATUS_HUNG_DISPLAY_DRIVER_THREAD
 +# define STATUS_HUNG_DISPLAY_DRIVER_THREAD ((NTSTATUS) 0xC0000415L)
 +#endif
 +
 +#ifndef STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE
 +# define STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE ((NTSTATUS) 0xC0000416L)
 +#endif
 +
 +#ifndef STATUS_INVALID_CRUNTIME_PARAMETER
 +# define STATUS_INVALID_CRUNTIME_PARAMETER ((NTSTATUS) 0xC0000417L)
 +#endif
 +
 +#ifndef STATUS_NTLM_BLOCKED
 +# define STATUS_NTLM_BLOCKED ((NTSTATUS) 0xC0000418L)
 +#endif
 +
 +#ifndef STATUS_DS_SRC_SID_EXISTS_IN_FOREST
 +# define STATUS_DS_SRC_SID_EXISTS_IN_FOREST ((NTSTATUS) 0xC0000419L)
 +#endif
 +
 +#ifndef STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST
 +# define STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST ((NTSTATUS) 0xC000041AL)
 +#endif
 +
 +#ifndef STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST
 +# define STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST ((NTSTATUS) 0xC000041BL)
 +#endif
 +
 +#ifndef STATUS_INVALID_USER_PRINCIPAL_NAME
 +# define STATUS_INVALID_USER_PRINCIPAL_NAME ((NTSTATUS) 0xC000041CL)
 +#endif
 +
 +#ifndef STATUS_FATAL_USER_CALLBACK_EXCEPTION
 +# define STATUS_FATAL_USER_CALLBACK_EXCEPTION ((NTSTATUS) 0xC000041DL)
 +#endif
 +
 +#ifndef STATUS_ASSERTION_FAILURE
 +# define STATUS_ASSERTION_FAILURE ((NTSTATUS) 0xC0000420L)
 +#endif
 +
 +#ifndef STATUS_VERIFIER_STOP
 +# define STATUS_VERIFIER_STOP ((NTSTATUS) 0xC0000421L)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_POP_STACK
 +# define STATUS_CALLBACK_POP_STACK ((NTSTATUS) 0xC0000423L)
 +#endif
 +
 +#ifndef STATUS_INCOMPATIBLE_DRIVER_BLOCKED
 +# define STATUS_INCOMPATIBLE_DRIVER_BLOCKED ((NTSTATUS) 0xC0000424L)
 +#endif
 +
 +#ifndef STATUS_HIVE_UNLOADED
 +# define STATUS_HIVE_UNLOADED ((NTSTATUS) 0xC0000425L)
 +#endif
 +
 +#ifndef STATUS_COMPRESSION_DISABLED
 +# define STATUS_COMPRESSION_DISABLED ((NTSTATUS) 0xC0000426L)
 +#endif
 +
 +#ifndef STATUS_FILE_SYSTEM_LIMITATION
 +# define STATUS_FILE_SYSTEM_LIMITATION ((NTSTATUS) 0xC0000427L)
 +#endif
 +
 +#ifndef STATUS_INVALID_IMAGE_HASH
 +# define STATUS_INVALID_IMAGE_HASH ((NTSTATUS) 0xC0000428L)
 +#endif
 +
 +#ifndef STATUS_NOT_CAPABLE
 +# define STATUS_NOT_CAPABLE ((NTSTATUS) 0xC0000429L)
 +#endif
 +
 +#ifndef STATUS_REQUEST_OUT_OF_SEQUENCE
 +# define STATUS_REQUEST_OUT_OF_SEQUENCE ((NTSTATUS) 0xC000042AL)
 +#endif
 +
 +#ifndef STATUS_IMPLEMENTATION_LIMIT
 +# define STATUS_IMPLEMENTATION_LIMIT ((NTSTATUS) 0xC000042BL)
 +#endif
 +
 +#ifndef STATUS_ELEVATION_REQUIRED
 +# define STATUS_ELEVATION_REQUIRED ((NTSTATUS) 0xC000042CL)
 +#endif
 +
 +#ifndef STATUS_NO_SECURITY_CONTEXT
 +# define STATUS_NO_SECURITY_CONTEXT ((NTSTATUS) 0xC000042DL)
 +#endif
 +
 +#ifndef STATUS_PKU2U_CERT_FAILURE
 +# define STATUS_PKU2U_CERT_FAILURE ((NTSTATUS) 0xC000042FL)
 +#endif
 +
 +#ifndef STATUS_BEYOND_VDL
 +# define STATUS_BEYOND_VDL ((NTSTATUS) 0xC0000432L)
 +#endif
 +
 +#ifndef STATUS_ENCOUNTERED_WRITE_IN_PROGRESS
 +# define STATUS_ENCOUNTERED_WRITE_IN_PROGRESS ((NTSTATUS) 0xC0000433L)
 +#endif
 +
 +#ifndef STATUS_PTE_CHANGED
 +# define STATUS_PTE_CHANGED ((NTSTATUS) 0xC0000434L)
 +#endif
 +
 +#ifndef STATUS_PURGE_FAILED
 +# define STATUS_PURGE_FAILED ((NTSTATUS) 0xC0000435L)
 +#endif
 +
 +#ifndef STATUS_CRED_REQUIRES_CONFIRMATION
 +# define STATUS_CRED_REQUIRES_CONFIRMATION ((NTSTATUS) 0xC0000440L)
 +#endif
 +
 +#ifndef STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE
 +# define STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE ((NTSTATUS) 0xC0000441L)
 +#endif
 +
 +#ifndef STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER
 +# define STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER ((NTSTATUS) 0xC0000442L)
 +#endif
 +
 +#ifndef STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE
 +# define STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE ((NTSTATUS) 0xC0000443L)
 +#endif
 +
 +#ifndef STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE
 +# define STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE ((NTSTATUS) 0xC0000444L)
 +#endif
 +
 +#ifndef STATUS_CS_ENCRYPTION_FILE_NOT_CSE
 +# define STATUS_CS_ENCRYPTION_FILE_NOT_CSE ((NTSTATUS) 0xC0000445L)
 +#endif
 +
 +#ifndef STATUS_INVALID_LABEL
 +# define STATUS_INVALID_LABEL ((NTSTATUS) 0xC0000446L)
 +#endif
 +
 +#ifndef STATUS_DRIVER_PROCESS_TERMINATED
 +# define STATUS_DRIVER_PROCESS_TERMINATED ((NTSTATUS) 0xC0000450L)
 +#endif
 +
 +#ifndef STATUS_AMBIGUOUS_SYSTEM_DEVICE
 +# define STATUS_AMBIGUOUS_SYSTEM_DEVICE ((NTSTATUS) 0xC0000451L)
 +#endif
 +
 +#ifndef STATUS_SYSTEM_DEVICE_NOT_FOUND
 +# define STATUS_SYSTEM_DEVICE_NOT_FOUND ((NTSTATUS) 0xC0000452L)
 +#endif
 +
 +#ifndef STATUS_RESTART_BOOT_APPLICATION
 +# define STATUS_RESTART_BOOT_APPLICATION ((NTSTATUS) 0xC0000453L)
 +#endif
 +
 +#ifndef STATUS_INSUFFICIENT_NVRAM_RESOURCES
 +# define STATUS_INSUFFICIENT_NVRAM_RESOURCES ((NTSTATUS) 0xC0000454L)
 +#endif
 +
 +#ifndef STATUS_INVALID_TASK_NAME
 +# define STATUS_INVALID_TASK_NAME ((NTSTATUS) 0xC0000500L)
 +#endif
 +
 +#ifndef STATUS_INVALID_TASK_INDEX
 +# define STATUS_INVALID_TASK_INDEX ((NTSTATUS) 0xC0000501L)
 +#endif
 +
 +#ifndef STATUS_THREAD_ALREADY_IN_TASK
 +# define STATUS_THREAD_ALREADY_IN_TASK ((NTSTATUS) 0xC0000502L)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_BYPASS
 +# define STATUS_CALLBACK_BYPASS ((NTSTATUS) 0xC0000503L)
 +#endif
 +
 +#ifndef STATUS_FAIL_FAST_EXCEPTION
 +# define STATUS_FAIL_FAST_EXCEPTION ((NTSTATUS) 0xC0000602L)
 +#endif
 +
 +#ifndef STATUS_IMAGE_CERT_REVOKED
 +# define STATUS_IMAGE_CERT_REVOKED ((NTSTATUS) 0xC0000603L)
 +#endif
 +
 +#ifndef STATUS_PORT_CLOSED
 +# define STATUS_PORT_CLOSED ((NTSTATUS) 0xC0000700L)
 +#endif
 +
 +#ifndef STATUS_MESSAGE_LOST
 +# define STATUS_MESSAGE_LOST ((NTSTATUS) 0xC0000701L)
 +#endif
 +
 +#ifndef STATUS_INVALID_MESSAGE
 +# define STATUS_INVALID_MESSAGE ((NTSTATUS) 0xC0000702L)
 +#endif
 +
 +#ifndef STATUS_REQUEST_CANCELED
 +# define STATUS_REQUEST_CANCELED ((NTSTATUS) 0xC0000703L)
 +#endif
 +
 +#ifndef STATUS_RECURSIVE_DISPATCH
 +# define STATUS_RECURSIVE_DISPATCH ((NTSTATUS) 0xC0000704L)
 +#endif
 +
 +#ifndef STATUS_LPC_RECEIVE_BUFFER_EXPECTED
 +# define STATUS_LPC_RECEIVE_BUFFER_EXPECTED ((NTSTATUS) 0xC0000705L)
 +#endif
 +
 +#ifndef STATUS_LPC_INVALID_CONNECTION_USAGE
 +# define STATUS_LPC_INVALID_CONNECTION_USAGE ((NTSTATUS) 0xC0000706L)
 +#endif
 +
 +#ifndef STATUS_LPC_REQUESTS_NOT_ALLOWED
 +# define STATUS_LPC_REQUESTS_NOT_ALLOWED ((NTSTATUS) 0xC0000707L)
 +#endif
 +
 +#ifndef STATUS_RESOURCE_IN_USE
 +# define STATUS_RESOURCE_IN_USE ((NTSTATUS) 0xC0000708L)
 +#endif
 +
 +#ifndef STATUS_HARDWARE_MEMORY_ERROR
 +# define STATUS_HARDWARE_MEMORY_ERROR ((NTSTATUS) 0xC0000709L)
 +#endif
 +
 +#ifndef STATUS_THREADPOOL_HANDLE_EXCEPTION
 +# define STATUS_THREADPOOL_HANDLE_EXCEPTION ((NTSTATUS) 0xC000070AL)
 +#endif
 +
 +#ifndef STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED
 +# define STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED ((NTSTATUS) 0xC000070BL)
 +#endif
 +
 +#ifndef STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED
 +# define STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED ((NTSTATUS) 0xC000070CL)
 +#endif
 +
 +#ifndef STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED
 +# define STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED ((NTSTATUS) 0xC000070DL)
 +#endif
 +
 +#ifndef STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED
 +# define STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED ((NTSTATUS) 0xC000070EL)
 +#endif
 +
 +#ifndef STATUS_THREADPOOL_RELEASED_DURING_OPERATION
 +# define STATUS_THREADPOOL_RELEASED_DURING_OPERATION ((NTSTATUS) 0xC000070FL)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING
 +# define STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING ((NTSTATUS) 0xC0000710L)
 +#endif
 +
 +#ifndef STATUS_APC_RETURNED_WHILE_IMPERSONATING
 +# define STATUS_APC_RETURNED_WHILE_IMPERSONATING ((NTSTATUS) 0xC0000711L)
 +#endif
 +
 +#ifndef STATUS_PROCESS_IS_PROTECTED
 +# define STATUS_PROCESS_IS_PROTECTED ((NTSTATUS) 0xC0000712L)
 +#endif
 +
 +#ifndef STATUS_MCA_EXCEPTION
 +# define STATUS_MCA_EXCEPTION ((NTSTATUS) 0xC0000713L)
 +#endif
 +
 +#ifndef STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE
 +# define STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE ((NTSTATUS) 0xC0000714L)
 +#endif
 +
 +#ifndef STATUS_SYMLINK_CLASS_DISABLED
 +# define STATUS_SYMLINK_CLASS_DISABLED ((NTSTATUS) 0xC0000715L)
 +#endif
 +
 +#ifndef STATUS_INVALID_IDN_NORMALIZATION
 +# define STATUS_INVALID_IDN_NORMALIZATION ((NTSTATUS) 0xC0000716L)
 +#endif
 +
 +#ifndef STATUS_NO_UNICODE_TRANSLATION
 +# define STATUS_NO_UNICODE_TRANSLATION ((NTSTATUS) 0xC0000717L)
 +#endif
 +
 +#ifndef STATUS_ALREADY_REGISTERED
 +# define STATUS_ALREADY_REGISTERED ((NTSTATUS) 0xC0000718L)
 +#endif
 +
 +#ifndef STATUS_CONTEXT_MISMATCH
 +# define STATUS_CONTEXT_MISMATCH ((NTSTATUS) 0xC0000719L)
 +#endif
 +
 +#ifndef STATUS_PORT_ALREADY_HAS_COMPLETION_LIST
 +# define STATUS_PORT_ALREADY_HAS_COMPLETION_LIST ((NTSTATUS) 0xC000071AL)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_RETURNED_THREAD_PRIORITY
 +# define STATUS_CALLBACK_RETURNED_THREAD_PRIORITY ((NTSTATUS) 0xC000071BL)
 +#endif
 +
 +#ifndef STATUS_INVALID_THREAD
 +# define STATUS_INVALID_THREAD ((NTSTATUS) 0xC000071CL)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_RETURNED_TRANSACTION
 +# define STATUS_CALLBACK_RETURNED_TRANSACTION ((NTSTATUS) 0xC000071DL)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_RETURNED_LDR_LOCK
 +# define STATUS_CALLBACK_RETURNED_LDR_LOCK ((NTSTATUS) 0xC000071EL)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_RETURNED_LANG
 +# define STATUS_CALLBACK_RETURNED_LANG ((NTSTATUS) 0xC000071FL)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_RETURNED_PRI_BACK
 +# define STATUS_CALLBACK_RETURNED_PRI_BACK ((NTSTATUS) 0xC0000720L)
 +#endif
 +
 +#ifndef STATUS_CALLBACK_RETURNED_THREAD_AFFINITY
 +# define STATUS_CALLBACK_RETURNED_THREAD_AFFINITY ((NTSTATUS) 0xC0000721L)
 +#endif
 +
 +#ifndef STATUS_DISK_REPAIR_DISABLED
 +# define STATUS_DISK_REPAIR_DISABLED ((NTSTATUS) 0xC0000800L)
 +#endif
 +
 +#ifndef STATUS_DS_DOMAIN_RENAME_IN_PROGRESS
 +# define STATUS_DS_DOMAIN_RENAME_IN_PROGRESS ((NTSTATUS) 0xC0000801L)
 +#endif
 +
 +#ifndef STATUS_DISK_QUOTA_EXCEEDED
 +# define STATUS_DISK_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000802L)
 +#endif
 +
 +#ifndef STATUS_DATA_LOST_REPAIR
 +# define STATUS_DATA_LOST_REPAIR ((NTSTATUS) 0x80000803L)
 +#endif
 +
 +#ifndef STATUS_CONTENT_BLOCKED
 +# define STATUS_CONTENT_BLOCKED ((NTSTATUS) 0xC0000804L)
 +#endif
 +
 +#ifndef STATUS_BAD_CLUSTERS
 +# define STATUS_BAD_CLUSTERS ((NTSTATUS) 0xC0000805L)
 +#endif
 +
 +#ifndef STATUS_VOLUME_DIRTY
 +# define STATUS_VOLUME_DIRTY ((NTSTATUS) 0xC0000806L)
 +#endif
 +
 +#ifndef STATUS_FILE_CHECKED_OUT
 +# define STATUS_FILE_CHECKED_OUT ((NTSTATUS) 0xC0000901L)
 +#endif
 +
 +#ifndef STATUS_CHECKOUT_REQUIRED
 +# define STATUS_CHECKOUT_REQUIRED ((NTSTATUS) 0xC0000902L)
 +#endif
 +
 +#ifndef STATUS_BAD_FILE_TYPE
 +# define STATUS_BAD_FILE_TYPE ((NTSTATUS) 0xC0000903L)
 +#endif
 +
 +#ifndef STATUS_FILE_TOO_LARGE
 +# define STATUS_FILE_TOO_LARGE ((NTSTATUS) 0xC0000904L)
 +#endif
 +
 +#ifndef STATUS_FORMS_AUTH_REQUIRED
 +# define STATUS_FORMS_AUTH_REQUIRED ((NTSTATUS) 0xC0000905L)
 +#endif
 +
 +#ifndef STATUS_VIRUS_INFECTED
 +# define STATUS_VIRUS_INFECTED ((NTSTATUS) 0xC0000906L)
 +#endif
 +
 +#ifndef STATUS_VIRUS_DELETED
 +# define STATUS_VIRUS_DELETED ((NTSTATUS) 0xC0000907L)
 +#endif
 +
 +#ifndef STATUS_BAD_MCFG_TABLE
 +# define STATUS_BAD_MCFG_TABLE ((NTSTATUS) 0xC0000908L)
 +#endif
 +
 +#ifndef STATUS_CANNOT_BREAK_OPLOCK
 +# define STATUS_CANNOT_BREAK_OPLOCK ((NTSTATUS) 0xC0000909L)
 +#endif
 +
 +#ifndef STATUS_WOW_ASSERTION
 +# define STATUS_WOW_ASSERTION ((NTSTATUS) 0xC0009898L)
 +#endif
 +
 +#ifndef STATUS_INVALID_SIGNATURE
 +# define STATUS_INVALID_SIGNATURE ((NTSTATUS) 0xC000A000L)
 +#endif
 +
 +#ifndef STATUS_HMAC_NOT_SUPPORTED
 +# define STATUS_HMAC_NOT_SUPPORTED ((NTSTATUS) 0xC000A001L)
 +#endif
 +
 +#ifndef STATUS_AUTH_TAG_MISMATCH
 +# define STATUS_AUTH_TAG_MISMATCH ((NTSTATUS) 0xC000A002L)
 +#endif
 +
 +#ifndef STATUS_IPSEC_QUEUE_OVERFLOW
 +# define STATUS_IPSEC_QUEUE_OVERFLOW ((NTSTATUS) 0xC000A010L)
 +#endif
 +
 +#ifndef STATUS_ND_QUEUE_OVERFLOW
 +# define STATUS_ND_QUEUE_OVERFLOW ((NTSTATUS) 0xC000A011L)
 +#endif
 +
 +#ifndef STATUS_HOPLIMIT_EXCEEDED
 +# define STATUS_HOPLIMIT_EXCEEDED ((NTSTATUS) 0xC000A012L)
 +#endif
 +
 +#ifndef STATUS_PROTOCOL_NOT_SUPPORTED
 +# define STATUS_PROTOCOL_NOT_SUPPORTED ((NTSTATUS) 0xC000A013L)
 +#endif
 +
 +#ifndef STATUS_FASTPATH_REJECTED
 +# define STATUS_FASTPATH_REJECTED ((NTSTATUS) 0xC000A014L)
 +#endif
 +
 +#ifndef STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED
 +# define STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED ((NTSTATUS) 0xC000A080L)
 +#endif
 +
 +#ifndef STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR
 +# define STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR ((NTSTATUS) 0xC000A081L)
 +#endif
 +
 +#ifndef STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR
 +# define STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR ((NTSTATUS) 0xC000A082L)
 +#endif
 +
 +#ifndef STATUS_XML_PARSE_ERROR
 +# define STATUS_XML_PARSE_ERROR ((NTSTATUS) 0xC000A083L)
 +#endif
 +
 +#ifndef STATUS_XMLDSIG_ERROR
 +# define STATUS_XMLDSIG_ERROR ((NTSTATUS) 0xC000A084L)
 +#endif
 +
 +#ifndef STATUS_WRONG_COMPARTMENT
 +# define STATUS_WRONG_COMPARTMENT ((NTSTATUS) 0xC000A085L)
 +#endif
 +
 +#ifndef STATUS_AUTHIP_FAILURE
 +# define STATUS_AUTHIP_FAILURE ((NTSTATUS) 0xC000A086L)
 +#endif
 +
 +#ifndef STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS
 +# define STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS ((NTSTATUS) 0xC000A087L)
 +#endif
 +
 +#ifndef STATUS_DS_OID_NOT_FOUND
 +# define STATUS_DS_OID_NOT_FOUND ((NTSTATUS) 0xC000A088L)
 +#endif
 +
 +#ifndef STATUS_HASH_NOT_SUPPORTED
 +# define STATUS_HASH_NOT_SUPPORTED ((NTSTATUS) 0xC000A100L)
 +#endif
 +
 +#ifndef STATUS_HASH_NOT_PRESENT
 +# define STATUS_HASH_NOT_PRESENT ((NTSTATUS) 0xC000A101L)
 +#endif
 +
 +/* This is not the NTSTATUS_FROM_WIN32 that the DDK provides, because the */
 +/* DDK got it wrong! */
 +#ifdef NTSTATUS_FROM_WIN32
 +# undef NTSTATUS_FROM_WIN32
 +#endif
 +#define NTSTATUS_FROM_WIN32(error) ((NTSTATUS) (error) <= 0 ? \
 +        ((NTSTATUS) (error)) : ((NTSTATUS) (((error) & 0x0000FFFF) | \
 +        (FACILITY_NTWIN32 << 16) | ERROR_SEVERITY_WARNING)))
 +
 +#ifndef JOB_OBJECT_LIMIT_PROCESS_MEMORY
 +# define JOB_OBJECT_LIMIT_PROCESS_MEMORY             0x00000100
 +#endif
 +#ifndef JOB_OBJECT_LIMIT_JOB_MEMORY
 +# define JOB_OBJECT_LIMIT_JOB_MEMORY                 0x00000200
 +#endif
 +#ifndef JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION
 +# define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION 0x00000400
 +#endif
 +#ifndef JOB_OBJECT_LIMIT_BREAKAWAY_OK
 +# define JOB_OBJECT_LIMIT_BREAKAWAY_OK               0x00000800
 +#endif
 +#ifndef JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK
 +# define JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK        0x00001000
 +#endif
 +#ifndef JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
 +# define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE          0x00002000
 +#endif
 +
 +/* from winternl.h */
 +typedef struct _UNICODE_STRING {
 +  USHORT Length;
 +  USHORT MaximumLength;
 +  PWSTR  Buffer;
 +} UNICODE_STRING, *PUNICODE_STRING;
 +
 +typedef const UNICODE_STRING *PCUNICODE_STRING;
 +
 +/* from ntifs.h */
 +#ifndef DEVICE_TYPE
 +# define DEVICE_TYPE DWORD
 +#endif
 +
 +#ifndef VOLUME_NAME_DOS
 +# define VOLUME_NAME_DOS 0x0
 +#endif
 +
 +#ifndef MAPVK_VK_TO_VSC
 +# define MAPVK_VK_TO_VSC (0)
 +#endif
 +
 +/* MinGW already has a definition for REPARSE_DATA_BUFFER, but mingw-w64 does
 + * not.
 + */
 +#if defined(_MSC_VER) || defined(__MINGW64_VERSION_MAJOR)
 +  typedef struct _REPARSE_DATA_BUFFER {
 +    ULONG  ReparseTag;
 +    USHORT ReparseDataLength;
 +    USHORT Reserved;
 +    union {
 +      struct {
 +        USHORT SubstituteNameOffset;
 +        USHORT SubstituteNameLength;
 +        USHORT PrintNameOffset;
 +        USHORT PrintNameLength;
 +        ULONG Flags;
 +        WCHAR PathBuffer[1];
 +      } SymbolicLinkReparseBuffer;
 +      struct {
 +        USHORT SubstituteNameOffset;
 +        USHORT SubstituteNameLength;
 +        USHORT PrintNameOffset;
 +        USHORT PrintNameLength;
 +        WCHAR PathBuffer[1];
 +      } MountPointReparseBuffer;
 +      struct {
 +        UCHAR  DataBuffer[1];
 +      } GenericReparseBuffer;
 +    };
 +  } REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
 +#endif
 +
 +typedef struct _IO_STATUS_BLOCK {
 +  union {
 +    NTSTATUS Status;
 +    PVOID Pointer;
 +  };
 +  ULONG_PTR Information;
 +} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
 +
 +typedef enum _FILE_INFORMATION_CLASS {
 +  FileDirectoryInformation = 1,
 +  FileFullDirectoryInformation,
 +  FileBothDirectoryInformation,
 +  FileBasicInformation,
 +  FileStandardInformation,
 +  FileInternalInformation,
 +  FileEaInformation,
 +  FileAccessInformation,
 +  FileNameInformation,
 +  FileRenameInformation,
 +  FileLinkInformation,
 +  FileNamesInformation,
 +  FileDispositionInformation,
 +  FilePositionInformation,
 +  FileFullEaInformation,
 +  FileModeInformation,
 +  FileAlignmentInformation,
 +  FileAllInformation,
 +  FileAllocationInformation,
 +  FileEndOfFileInformation,
 +  FileAlternateNameInformation,
 +  FileStreamInformation,
 +  FilePipeInformation,
 +  FilePipeLocalInformation,
 +  FilePipeRemoteInformation,
 +  FileMailslotQueryInformation,
 +  FileMailslotSetInformation,
 +  FileCompressionInformation,
 +  FileObjectIdInformation,
 +  FileCompletionInformation,
 +  FileMoveClusterInformation,
 +  FileQuotaInformation,
 +  FileReparsePointInformation,
 +  FileNetworkOpenInformation,
 +  FileAttributeTagInformation,
 +  FileTrackingInformation,
 +  FileIdBothDirectoryInformation,
 +  FileIdFullDirectoryInformation,
 +  FileValidDataLengthInformation,
 +  FileShortNameInformation,
 +  FileIoCompletionNotificationInformation,
 +  FileIoStatusBlockRangeInformation,
 +  FileIoPriorityHintInformation,
 +  FileSfioReserveInformation,
 +  FileSfioVolumeInformation,
 +  FileHardLinkInformation,
 +  FileProcessIdsUsingFileInformation,
 +  FileNormalizedNameInformation,
 +  FileNetworkPhysicalNameInformation,
 +  FileIdGlobalTxDirectoryInformation,
 +  FileIsRemoteDeviceInformation,
 +  FileAttributeCacheInformation,
 +  FileNumaNodeInformation,
 +  FileStandardLinkInformation,
 +  FileRemoteProtocolInformation,
 +  FileMaximumInformation
 +} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
 +
 +typedef struct _FILE_DIRECTORY_INFORMATION {
 +  ULONG NextEntryOffset;
 +  ULONG FileIndex;
 +  LARGE_INTEGER CreationTime;
 +  LARGE_INTEGER LastAccessTime;
 +  LARGE_INTEGER LastWriteTime;
 +  LARGE_INTEGER ChangeTime;
 +  LARGE_INTEGER EndOfFile;
 +  LARGE_INTEGER AllocationSize;
 +  ULONG FileAttributes;
 +  ULONG FileNameLength;
 +  WCHAR FileName[1];
 +} FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;
 +
 +typedef struct _FILE_BOTH_DIR_INFORMATION {
 +  ULONG NextEntryOffset;
 +  ULONG FileIndex;
 +  LARGE_INTEGER CreationTime;
 +  LARGE_INTEGER LastAccessTime;
 +  LARGE_INTEGER LastWriteTime;
 +  LARGE_INTEGER ChangeTime;
 +  LARGE_INTEGER EndOfFile;
 +  LARGE_INTEGER AllocationSize;
 +  ULONG FileAttributes;
 +  ULONG FileNameLength;
 +  ULONG EaSize;
 +  CCHAR ShortNameLength;
 +  WCHAR ShortName[12];
 +  WCHAR FileName[1];
 +} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
 +
 +typedef struct _FILE_BASIC_INFORMATION {
 +  LARGE_INTEGER CreationTime;
 +  LARGE_INTEGER LastAccessTime;
 +  LARGE_INTEGER LastWriteTime;
 +  LARGE_INTEGER ChangeTime;
 +  DWORD FileAttributes;
 +} FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION;
 +
 +typedef struct _FILE_STANDARD_INFORMATION {
 +  LARGE_INTEGER AllocationSize;
 +  LARGE_INTEGER EndOfFile;
 +  ULONG         NumberOfLinks;
 +  BOOLEAN       DeletePending;
 +  BOOLEAN       Directory;
 +} FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION;
 +
 +typedef struct _FILE_INTERNAL_INFORMATION {
 +  LARGE_INTEGER IndexNumber;
 +} FILE_INTERNAL_INFORMATION, *PFILE_INTERNAL_INFORMATION;
 +
 +typedef struct _FILE_EA_INFORMATION {
 +  ULONG EaSize;
 +} FILE_EA_INFORMATION, *PFILE_EA_INFORMATION;
 +
 +typedef struct _FILE_ACCESS_INFORMATION {
 +  ACCESS_MASK AccessFlags;
 +} FILE_ACCESS_INFORMATION, *PFILE_ACCESS_INFORMATION;
 +
 +typedef struct _FILE_POSITION_INFORMATION {
 +  LARGE_INTEGER CurrentByteOffset;
 +} FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;
 +
 +typedef struct _FILE_MODE_INFORMATION {
 +  ULONG Mode;
 +} FILE_MODE_INFORMATION, *PFILE_MODE_INFORMATION;
 +
 +typedef struct _FILE_ALIGNMENT_INFORMATION {
 +  ULONG AlignmentRequirement;
 +} FILE_ALIGNMENT_INFORMATION, *PFILE_ALIGNMENT_INFORMATION;
 +
 +typedef struct _FILE_NAME_INFORMATION {
 +  ULONG FileNameLength;
 +  WCHAR FileName[1];
 +} FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
 +
 +typedef struct _FILE_END_OF_FILE_INFORMATION {
 +  LARGE_INTEGER  EndOfFile;
 +} FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION;
 +
 +typedef struct _FILE_ALL_INFORMATION {
 +  FILE_BASIC_INFORMATION     BasicInformation;
 +  FILE_STANDARD_INFORMATION  StandardInformation;
 +  FILE_INTERNAL_INFORMATION  InternalInformation;
 +  FILE_EA_INFORMATION        EaInformation;
 +  FILE_ACCESS_INFORMATION    AccessInformation;
 +  FILE_POSITION_INFORMATION  PositionInformation;
 +  FILE_MODE_INFORMATION      ModeInformation;
 +  FILE_ALIGNMENT_INFORMATION AlignmentInformation;
 +  FILE_NAME_INFORMATION      NameInformation;
 +} FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION;
 +
 +typedef struct _FILE_DISPOSITION_INFORMATION {
 +  BOOLEAN DeleteFile;
 +} FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
 +
 +typedef struct _FILE_PIPE_LOCAL_INFORMATION {
 +  ULONG NamedPipeType;
 +  ULONG NamedPipeConfiguration;
 +  ULONG MaximumInstances;
 +  ULONG CurrentInstances;
 +  ULONG InboundQuota;
 +  ULONG ReadDataAvailable;
 +  ULONG OutboundQuota;
 +  ULONG WriteQuotaAvailable;
 +  ULONG NamedPipeState;
 +  ULONG NamedPipeEnd;
 +} FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION;
 +
 +#define FILE_SYNCHRONOUS_IO_ALERT               0x00000010
 +#define FILE_SYNCHRONOUS_IO_NONALERT            0x00000020
 +
 +typedef enum _FS_INFORMATION_CLASS {
 +  FileFsVolumeInformation       = 1,
 +  FileFsLabelInformation        = 2,
 +  FileFsSizeInformation         = 3,
 +  FileFsDeviceInformation       = 4,
 +  FileFsAttributeInformation    = 5,
 +  FileFsControlInformation      = 6,
 +  FileFsFullSizeInformation     = 7,
 +  FileFsObjectIdInformation     = 8,
 +  FileFsDriverPathInformation   = 9,
 +  FileFsVolumeFlagsInformation  = 10,
 +  FileFsSectorSizeInformation   = 11
 +} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
 +
 +typedef struct _FILE_FS_VOLUME_INFORMATION {
 +  LARGE_INTEGER VolumeCreationTime;
 +  ULONG         VolumeSerialNumber;
 +  ULONG         VolumeLabelLength;
 +  BOOLEAN       SupportsObjects;
 +  WCHAR         VolumeLabel[1];
 +} FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION;
 +
 +typedef struct _FILE_FS_LABEL_INFORMATION {
 +  ULONG VolumeLabelLength;
 +  WCHAR VolumeLabel[1];
 +} FILE_FS_LABEL_INFORMATION, *PFILE_FS_LABEL_INFORMATION;
 +
 +typedef struct _FILE_FS_SIZE_INFORMATION {
 +  LARGE_INTEGER TotalAllocationUnits;
 +  LARGE_INTEGER AvailableAllocationUnits;
 +  ULONG         SectorsPerAllocationUnit;
 +  ULONG         BytesPerSector;
 +} FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION;
 +
 +typedef struct _FILE_FS_DEVICE_INFORMATION {
 +  DEVICE_TYPE DeviceType;
 +  ULONG       Characteristics;
 +} FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;
 +
 +typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
 +  ULONG FileSystemAttributes;
 +  LONG  MaximumComponentNameLength;
 +  ULONG FileSystemNameLength;
 +  WCHAR FileSystemName[1];
 +} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
 +
 +typedef struct _FILE_FS_CONTROL_INFORMATION {
 +  LARGE_INTEGER FreeSpaceStartFiltering;
 +  LARGE_INTEGER FreeSpaceThreshold;
 +  LARGE_INTEGER FreeSpaceStopFiltering;
 +  LARGE_INTEGER DefaultQuotaThreshold;
 +  LARGE_INTEGER DefaultQuotaLimit;
 +  ULONG         FileSystemControlFlags;
 +} FILE_FS_CONTROL_INFORMATION, *PFILE_FS_CONTROL_INFORMATION;
 +
 +typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
 +  LARGE_INTEGER TotalAllocationUnits;
 +  LARGE_INTEGER CallerAvailableAllocationUnits;
 +  LARGE_INTEGER ActualAvailableAllocationUnits;
 +  ULONG         SectorsPerAllocationUnit;
 +  ULONG         BytesPerSector;
 +} FILE_FS_FULL_SIZE_INFORMATION, *PFILE_FS_FULL_SIZE_INFORMATION;
 +
 +typedef struct _FILE_FS_OBJECTID_INFORMATION {
 +  UCHAR ObjectId[16];
 +  UCHAR ExtendedInfo[48];
 +} FILE_FS_OBJECTID_INFORMATION, *PFILE_FS_OBJECTID_INFORMATION;
 +
 +typedef struct _FILE_FS_DRIVER_PATH_INFORMATION {
 +  BOOLEAN DriverInPath;
 +  ULONG   DriverNameLength;
 +  WCHAR   DriverName[1];
 +} FILE_FS_DRIVER_PATH_INFORMATION, *PFILE_FS_DRIVER_PATH_INFORMATION;
 +
 +typedef struct _FILE_FS_VOLUME_FLAGS_INFORMATION {
 +  ULONG Flags;
 +} FILE_FS_VOLUME_FLAGS_INFORMATION, *PFILE_FS_VOLUME_FLAGS_INFORMATION;
 +
 +typedef struct _FILE_FS_SECTOR_SIZE_INFORMATION {
 +  ULONG LogicalBytesPerSector;
 +  ULONG PhysicalBytesPerSectorForAtomicity;
 +  ULONG PhysicalBytesPerSectorForPerformance;
 +  ULONG FileSystemEffectivePhysicalBytesPerSectorForAtomicity;
 +  ULONG Flags;
 +  ULONG ByteOffsetForSectorAlignment;
 +  ULONG ByteOffsetForPartitionAlignment;
 +} FILE_FS_SECTOR_SIZE_INFORMATION, *PFILE_FS_SECTOR_SIZE_INFORMATION;
 +
 +typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION {
 +    LARGE_INTEGER IdleTime;
 +    LARGE_INTEGER KernelTime;
 +    LARGE_INTEGER UserTime;
 +    LARGE_INTEGER DpcTime;
 +    LARGE_INTEGER InterruptTime;
 +    ULONG InterruptCount;
 +} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
 +
 +#ifndef SystemProcessorPerformanceInformation
 +# define SystemProcessorPerformanceInformation 8
 +#endif
 +
 +#ifndef FILE_DEVICE_FILE_SYSTEM
 +# define FILE_DEVICE_FILE_SYSTEM 0x00000009
 +#endif
 +
 +#ifndef FILE_DEVICE_NETWORK
 +# define FILE_DEVICE_NETWORK 0x00000012
 +#endif
 +
 +#ifndef METHOD_BUFFERED
 +# define METHOD_BUFFERED 0
 +#endif
 +
 +#ifndef METHOD_IN_DIRECT
 +# define METHOD_IN_DIRECT 1
 +#endif
 +
 +#ifndef METHOD_OUT_DIRECT
 +# define METHOD_OUT_DIRECT 2
 +#endif
 +
 +#ifndef METHOD_NEITHER
 +#define METHOD_NEITHER 3
 +#endif
 +
 +#ifndef METHOD_DIRECT_TO_HARDWARE
 +# define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT
 +#endif
 +
 +#ifndef METHOD_DIRECT_FROM_HARDWARE
 +# define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT
 +#endif
 +
 +#ifndef FILE_ANY_ACCESS
 +# define FILE_ANY_ACCESS 0
 +#endif
 +
 +#ifndef FILE_SPECIAL_ACCESS
 +# define FILE_SPECIAL_ACCESS (FILE_ANY_ACCESS)
 +#endif
 +
 +#ifndef FILE_READ_ACCESS
 +# define FILE_READ_ACCESS 0x0001
 +#endif
 +
 +#ifndef FILE_WRITE_ACCESS
 +# define FILE_WRITE_ACCESS 0x0002
 +#endif
 +
 +#ifndef CTL_CODE
 +# define CTL_CODE(device_type, function, method, access)                      \
 +    (((device_type) << 16) | ((access) << 14) | ((function) << 2) | (method))
 +#endif
 +
 +#ifndef FSCTL_SET_REPARSE_POINT
 +# define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM,            \
 +                                          41,                                 \
 +                                          METHOD_BUFFERED,                    \
 +                                          FILE_SPECIAL_ACCESS)
 +#endif
 +
 +#ifndef FSCTL_GET_REPARSE_POINT
 +# define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM,            \
 +                                          42,                                 \
 +                                          METHOD_BUFFERED,                    \
 +                                          FILE_ANY_ACCESS)
 +#endif
 +
 +#ifndef FSCTL_DELETE_REPARSE_POINT
 +# define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM,         \
 +                                             43,                              \
 +                                             METHOD_BUFFERED,                 \
 +                                             FILE_SPECIAL_ACCESS)
 +#endif
 +
 +#ifndef IO_REPARSE_TAG_SYMLINK
 +# define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
 +#endif
 +
 +typedef VOID (NTAPI *PIO_APC_ROUTINE)
 +             (PVOID ApcContext,
 +              PIO_STATUS_BLOCK IoStatusBlock,
 +              ULONG Reserved);
 +
 +typedef ULONG (NTAPI *sRtlNtStatusToDosError)
 +              (NTSTATUS Status);
 +
 +typedef NTSTATUS (NTAPI *sNtDeviceIoControlFile)
 +                 (HANDLE FileHandle,
 +                  HANDLE Event,
 +                  PIO_APC_ROUTINE ApcRoutine,
 +                  PVOID ApcContext,
 +                  PIO_STATUS_BLOCK IoStatusBlock,
 +                  ULONG IoControlCode,
 +                  PVOID InputBuffer,
 +                  ULONG InputBufferLength,
 +                  PVOID OutputBuffer,
 +                  ULONG OutputBufferLength);
 +
 +typedef NTSTATUS (NTAPI *sNtQueryInformationFile)
 +                 (HANDLE FileHandle,
 +                  PIO_STATUS_BLOCK IoStatusBlock,
 +                  PVOID FileInformation,
 +                  ULONG Length,
 +                  FILE_INFORMATION_CLASS FileInformationClass);
 +
 +typedef NTSTATUS (NTAPI *sNtSetInformationFile)
 +                 (HANDLE FileHandle,
 +                  PIO_STATUS_BLOCK IoStatusBlock,
 +                  PVOID FileInformation,
 +                  ULONG Length,
 +                  FILE_INFORMATION_CLASS FileInformationClass);
 +
 +typedef NTSTATUS (NTAPI *sNtQueryVolumeInformationFile)
 +                 (HANDLE FileHandle,
 +                  PIO_STATUS_BLOCK IoStatusBlock,
 +                  PVOID FsInformation,
 +                  ULONG Length,
 +                  FS_INFORMATION_CLASS FsInformationClass);
 +
 +typedef NTSTATUS (NTAPI *sNtQuerySystemInformation)
 +                 (UINT SystemInformationClass,
 +                  PVOID SystemInformation,
 +                  ULONG SystemInformationLength,
 +                  PULONG ReturnLength);
 +
 +typedef NTSTATUS (NTAPI *sNtQueryDirectoryFile)
 +                 (HANDLE FileHandle,
 +                  HANDLE Event,
 +                  PIO_APC_ROUTINE ApcRoutine,
 +                  PVOID ApcContext,
 +                  PIO_STATUS_BLOCK IoStatusBlock,
 +                  PVOID FileInformation,
 +                  ULONG Length,
 +                  FILE_INFORMATION_CLASS FileInformationClass,
 +                  BOOLEAN ReturnSingleEntry,
 +                  PUNICODE_STRING FileName,
 +                  BOOLEAN RestartScan
 +                );
 +
 +/*
 + * Kernel32 headers
 + */
 +#ifndef FILE_SKIP_COMPLETION_PORT_ON_SUCCESS
 +# define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1
 +#endif
 +
 +#ifndef FILE_SKIP_SET_EVENT_ON_HANDLE
 +# define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2
 +#endif
 +
 +#ifndef SYMBOLIC_LINK_FLAG_DIRECTORY
 +# define SYMBOLIC_LINK_FLAG_DIRECTORY 0x1
 +#endif
 +
 +#if (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)) \
 + || (defined(_MSC_VER) && _MSC_VER < 1500)
 +  typedef struct _OVERLAPPED_ENTRY {
 +      ULONG_PTR lpCompletionKey;
 +      LPOVERLAPPED lpOverlapped;
 +      ULONG_PTR Internal;
 +      DWORD dwNumberOfBytesTransferred;
 +  } OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
 +#endif
 +
 +/* from wincon.h */
 +#ifndef ENABLE_INSERT_MODE
 +# define ENABLE_INSERT_MODE 0x20
 +#endif
 +
 +#ifndef ENABLE_QUICK_EDIT_MODE
 +# define ENABLE_QUICK_EDIT_MODE 0x40
 +#endif
 +
 +#ifndef ENABLE_EXTENDED_FLAGS
 +# define ENABLE_EXTENDED_FLAGS 0x80
 +#endif
 +
 +/* from winerror.h */
++#ifndef ERROR_ELEVATION_REQUIRED
++# define ERROR_ELEVATION_REQUIRED 740
++#endif
++
 +#ifndef ERROR_SYMLINK_NOT_SUPPORTED
 +# define ERROR_SYMLINK_NOT_SUPPORTED 1464
 +#endif
 +
 +#ifndef ERROR_MUI_FILE_NOT_FOUND
 +# define ERROR_MUI_FILE_NOT_FOUND 15100
 +#endif
 +
 +#ifndef ERROR_MUI_INVALID_FILE
 +# define ERROR_MUI_INVALID_FILE 15101
 +#endif
 +
 +#ifndef ERROR_MUI_INVALID_RC_CONFIG
 +# define ERROR_MUI_INVALID_RC_CONFIG 15102
 +#endif
 +
 +#ifndef ERROR_MUI_INVALID_LOCALE_NAME
 +# define ERROR_MUI_INVALID_LOCALE_NAME 15103
 +#endif
 +
 +#ifndef ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME
 +# define ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME 15104
 +#endif
 +
 +#ifndef ERROR_MUI_FILE_NOT_LOADED
 +# define ERROR_MUI_FILE_NOT_LOADED 15105
 +#endif
 +
 +typedef BOOL (WINAPI *sGetQueuedCompletionStatusEx)
 +             (HANDLE CompletionPort,
 +              LPOVERLAPPED_ENTRY lpCompletionPortEntries,
 +              ULONG ulCount,
 +              PULONG ulNumEntriesRemoved,
 +              DWORD dwMilliseconds,
 +              BOOL fAlertable);
 +
 +typedef BOOL (WINAPI* sSetFileCompletionNotificationModes)
 +             (HANDLE FileHandle,
 +              UCHAR Flags);
 +
 +typedef BOOLEAN (WINAPI* sCreateSymbolicLinkW)
 +                (LPCWSTR lpSymlinkFileName,
 +                 LPCWSTR lpTargetFileName,
 +                 DWORD dwFlags);
 +
 +typedef BOOL (WINAPI* sCancelIoEx)
 +             (HANDLE hFile,
 +              LPOVERLAPPED lpOverlapped);
 +
 +typedef VOID (WINAPI* sInitializeConditionVariable)
 +             (PCONDITION_VARIABLE ConditionVariable);
 +
 +typedef BOOL (WINAPI* sSleepConditionVariableCS)
 +             (PCONDITION_VARIABLE ConditionVariable,
 +              PCRITICAL_SECTION CriticalSection,
 +              DWORD dwMilliseconds);
 +
 +typedef BOOL (WINAPI* sSleepConditionVariableSRW)
 +             (PCONDITION_VARIABLE ConditionVariable,
 +              PSRWLOCK SRWLock,
 +              DWORD dwMilliseconds,
 +              ULONG Flags);
 +
 +typedef VOID (WINAPI* sWakeAllConditionVariable)
 +             (PCONDITION_VARIABLE ConditionVariable);
 +
 +typedef VOID (WINAPI* sWakeConditionVariable)
 +             (PCONDITION_VARIABLE ConditionVariable);
 +
 +typedef BOOL (WINAPI* sCancelSynchronousIo)
 +             (HANDLE hThread);
 +
 +typedef DWORD (WINAPI* sGetFinalPathNameByHandleW)
 +             (HANDLE hFile,
 +              LPWSTR lpszFilePath,
 +              DWORD cchFilePath,
 +              DWORD dwFlags);
 +
 +/* from powerbase.h */
 +#ifndef DEVICE_NOTIFY_CALLBACK
 +# define DEVICE_NOTIFY_CALLBACK 2
 +#endif
 +
 +#ifndef PBT_APMRESUMEAUTOMATIC
 +# define PBT_APMRESUMEAUTOMATIC 18
 +#endif
 +
 +#ifndef PBT_APMRESUMESUSPEND
 +# define PBT_APMRESUMESUSPEND 7
 +#endif
 +
 +typedef ULONG CALLBACK _DEVICE_NOTIFY_CALLBACK_ROUTINE(
 +  PVOID Context,
 +  ULONG Type,
 +  PVOID Setting
 +);
 +typedef _DEVICE_NOTIFY_CALLBACK_ROUTINE* _PDEVICE_NOTIFY_CALLBACK_ROUTINE;
 +
 +typedef struct _DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS {
 +  _PDEVICE_NOTIFY_CALLBACK_ROUTINE Callback;
 +  PVOID Context;
 +} _DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS, *_PDEVICE_NOTIFY_SUBSCRIBE_PARAMETERS;
 +
 +typedef PVOID _HPOWERNOTIFY;
 +typedef _HPOWERNOTIFY *_PHPOWERNOTIFY;
 +
 +typedef DWORD (WINAPI *sPowerRegisterSuspendResumeNotification)
 +              (DWORD         Flags,
 +               HANDLE        Recipient,
 +               _PHPOWERNOTIFY RegistrationHandle);
 +
 +
 +/* Ntdll function pointers */
 +extern sRtlNtStatusToDosError pRtlNtStatusToDosError;
 +extern sNtDeviceIoControlFile pNtDeviceIoControlFile;
 +extern sNtQueryInformationFile pNtQueryInformationFile;
 +extern sNtSetInformationFile pNtSetInformationFile;
 +extern sNtQueryVolumeInformationFile pNtQueryVolumeInformationFile;
 +extern sNtQueryDirectoryFile pNtQueryDirectoryFile;
 +extern sNtQuerySystemInformation pNtQuerySystemInformation;
 +
 +
 +/* Kernel32 function pointers */
 +extern sGetQueuedCompletionStatusEx pGetQueuedCompletionStatusEx;
 +extern sSetFileCompletionNotificationModes pSetFileCompletionNotificationModes;
 +extern sCreateSymbolicLinkW pCreateSymbolicLinkW;
 +extern sCancelIoEx pCancelIoEx;
 +extern sInitializeConditionVariable pInitializeConditionVariable;
 +extern sSleepConditionVariableCS pSleepConditionVariableCS;
 +extern sSleepConditionVariableSRW pSleepConditionVariableSRW;
 +extern sWakeAllConditionVariable pWakeAllConditionVariable;
 +extern sWakeConditionVariable pWakeConditionVariable;
 +extern sCancelSynchronousIo pCancelSynchronousIo;
 +extern sGetFinalPathNameByHandleW pGetFinalPathNameByHandleW;
 +
 +
 +/* Powrprof.dll function pointer */
 +extern sPowerRegisterSuspendResumeNotification pPowerRegisterSuspendResumeNotification;
 +
 +#endif /* UV_WIN_WINAPI_H_ */

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1f661e87a6a8304edb77bd30b546e5d113477c59
commit 1f661e87a6a8304edb77bd30b546e5d113477c59
Author:     libuv upstream <libuv at googlegroups.com>
AuthorDate: Tue Feb 21 15:36:43 2017 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Feb 21 19:36:08 2017 -0500

    libuv 2017-02-21 (52ae8264)
    
    Code extracted from:
    
        https://github.com/libuv/libuv.git
    
    at commit 52ae826492f50f151138ed115faa5e0ac8c803ce (v1.x).

diff --git a/include/pthread-barrier.h b/include/pthread-barrier.h
index 3e01705..900ebed 100644
--- a/include/pthread-barrier.h
+++ b/include/pthread-barrier.h
@@ -18,7 +18,9 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #define _UV_PTHREAD_BARRIER_
 #include <errno.h>
 #include <pthread.h>
+#if !defined(__MVS__)
 #include <semaphore.h> /* sem_t */
+#endif
 
 #define PTHREAD_BARRIER_SERIAL_THREAD  0x12345
 
diff --git a/include/uv-os390.h b/include/uv-os390.h
index b0b068f..58f9261 100644
--- a/include/uv-os390.h
+++ b/include/uv-os390.h
@@ -24,4 +24,7 @@
 
 #define UV_PLATFORM_SEM_T int
 
+#define UV_PLATFORM_LOOP_FIELDS                                               \
+  void* ep;                                                                   \
+
 #endif /* UV_MVS_H */
diff --git a/include/uv-unix.h b/include/uv-unix.h
index bca2714..3030f71 100644
--- a/include/uv-unix.h
+++ b/include/uv-unix.h
@@ -36,7 +36,9 @@
 #include <termios.h>
 #include <pwd.h>
 
+#if !defined(__MVS__)
 #include <semaphore.h>
+#endif
 #include <pthread.h>
 #include <signal.h>
 
@@ -44,6 +46,8 @@
 
 #if defined(__linux__)
 # include "uv-linux.h"
+#elif defined (__MVS__)
+# include "uv-os390.h"
 #elif defined(_AIX)
 # include "uv-aix.h"
 #elif defined(__sun)
diff --git a/include/uv-version.h b/include/uv-version.h
index 3cb9b5f..e165809 100644
--- a/include/uv-version.h
+++ b/include/uv-version.h
@@ -31,8 +31,8 @@
  */
 
 #define UV_VERSION_MAJOR 1
-#define UV_VERSION_MINOR 9
-#define UV_VERSION_PATCH 2
+#define UV_VERSION_MINOR 11
+#define UV_VERSION_PATCH 1
 #define UV_VERSION_IS_RELEASE 0
 #define UV_VERSION_SUFFIX "dev"
 
diff --git a/include/uv-win.h b/include/uv-win.h
index a75dba8..9677ff1 100644
--- a/include/uv-win.h
+++ b/include/uv-win.h
@@ -49,6 +49,7 @@ typedef struct pollfd {
 
 #include <process.h>
 #include <signal.h>
+#include <fcntl.h>
 #include <sys/stat.h>
 
 #if defined(_MSC_VER) && _MSC_VER < 1600
@@ -116,7 +117,7 @@ typedef struct pollfd {
          {0xb5367df0, 0xcbac, 0x11cf,                                         \
          {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}}
 
-  typedef BOOL PASCAL (*LPFN_ACCEPTEX)
+  typedef BOOL (PASCAL *LPFN_ACCEPTEX)
                       (SOCKET sListenSocket,
                        SOCKET sAcceptSocket,
                        PVOID lpOutputBuffer,
@@ -126,7 +127,7 @@ typedef struct pollfd {
                        LPDWORD lpdwBytesReceived,
                        LPOVERLAPPED lpOverlapped);
 
-  typedef BOOL PASCAL (*LPFN_CONNECTEX)
+  typedef BOOL (PASCAL *LPFN_CONNECTEX)
                       (SOCKET s,
                        const struct sockaddr* name,
                        int namelen,
@@ -135,7 +136,7 @@ typedef struct pollfd {
                        LPDWORD lpdwBytesSent,
                        LPOVERLAPPED lpOverlapped);
 
-  typedef void PASCAL (*LPFN_GETACCEPTEXSOCKADDRS)
+  typedef void (PASCAL *LPFN_GETACCEPTEXSOCKADDRS)
                       (PVOID lpOutputBuffer,
                        DWORD dwReceiveDataLength,
                        DWORD dwLocalAddressLength,
@@ -145,13 +146,13 @@ typedef struct pollfd {
                        LPSOCKADDR* RemoteSockaddr,
                        LPINT RemoteSockaddrLength);
 
-  typedef BOOL PASCAL (*LPFN_DISCONNECTEX)
+  typedef BOOL (PASCAL *LPFN_DISCONNECTEX)
                       (SOCKET hSocket,
                        LPOVERLAPPED lpOverlapped,
                        DWORD dwFlags,
                        DWORD reserved);
 
-  typedef BOOL PASCAL (*LPFN_TRANSMITFILE)
+  typedef BOOL (PASCAL *LPFN_TRANSMITFILE)
                       (SOCKET hSocket,
                        HANDLE hFile,
                        DWORD nNumberOfBytesToWrite,
diff --git a/include/uv.h b/include/uv.h
index baa0b28..31f09f0 100644
--- a/include/uv.h
+++ b/include/uv.h
@@ -363,6 +363,8 @@ typedef enum {
 } uv_membership;
 
 
+UV_EXTERN int uv_translate_sys_error(int sys_errno);
+
 UV_EXTERN const char* uv_strerror(int err);
 UV_EXTERN const char* uv_err_name(int err);
 
diff --git a/src/unix/aix.c b/src/unix/aix.c
index 652cd98..1d2cd4a 100644
--- a/src/unix/aix.c
+++ b/src/unix/aix.c
@@ -64,6 +64,11 @@
 #define RDWR_BUF_SIZE   4096
 #define EQ(a,b)         (strcmp(a,b) == 0)
 
+static void* args_mem = NULL;
+static char** process_argv = NULL;
+static int process_argc = 0;
+static char* process_title_ptr = NULL;
+
 int uv__platform_loop_init(uv_loop_t* loop) {
   loop->fs_fd = -1;
 
@@ -753,6 +758,13 @@ static void uv__ahafs_event(uv_loop_t* loop, uv__io_t* event_watch, unsigned int
 
   assert((bytes >= 0) && "uv__ahafs_event - Error reading monitor file");
 
+  /* In file / directory move cases, AIX Event infrastructure
+   * produces a second event with no data.
+   * Ignore it and return gracefully.
+   */
+  if(bytes == 0)
+    return;
+
   /* Parse the data */
   if(bytes > 0)
     rc = uv__parse_data(result_data, &events, handle);
@@ -881,24 +893,94 @@ void uv__fs_event_close(uv_fs_event_t* handle) {
 
 
 char** uv_setup_args(int argc, char** argv) {
-  return argv;
+  char** new_argv;
+  size_t size;
+  char* s;
+  int i;
+
+  if (argc <= 0)
+    return argv;
+
+  /* Save the original pointer to argv.
+   * AIX uses argv to read the process name.
+   * (Not the memory pointed to by argv[0..n] as on Linux.)
+   */
+  process_argv = argv;
+  process_argc = argc;
+
+  /* Calculate how much memory we need for the argv strings. */
+  size = 0;
+  for (i = 0; i < argc; i++)
+    size += strlen(argv[i]) + 1;
+
+  /* Add space for the argv pointers. */
+  size += (argc + 1) * sizeof(char*);
+
+  new_argv = uv__malloc(size);
+  if (new_argv == NULL)
+    return argv;
+  args_mem = new_argv;
+
+  /* Copy over the strings and set up the pointer table. */
+  s = (char*) &new_argv[argc + 1];
+  for (i = 0; i < argc; i++) {
+    size = strlen(argv[i]) + 1;
+    memcpy(s, argv[i], size);
+    new_argv[i] = s;
+    s += size;
+  }
+  new_argv[i] = NULL;
+
+  return new_argv;
 }
 
 
 int uv_set_process_title(const char* title) {
+  char* new_title;
+
+  /* We cannot free this pointer when libuv shuts down,
+   * the process may still be using it.
+   */
+  new_title = uv__strdup(title);
+  if (new_title == NULL)
+    return -ENOMEM;
+
+  /* If this is the first time this is set,
+   * don't free and set argv[1] to NULL.
+   */
+  if (process_title_ptr != NULL)
+    uv__free(process_title_ptr);
+
+  process_title_ptr = new_title;
+
+  process_argv[0] = process_title_ptr;
+  if (process_argc > 1)
+     process_argv[1] = NULL;
+
   return 0;
 }
 
 
 int uv_get_process_title(char* buffer, size_t size) {
+  size_t len;
+  len = strlen(process_argv[0]);
   if (buffer == NULL || size == 0)
     return -EINVAL;
+  else if (size <= len)
+    return -ENOBUFS;
+
+  memcpy(buffer, process_argv[0], len + 1);
 
-  buffer[0] = '\0';
   return 0;
 }
 
 
+UV_DESTRUCTOR(static void free_args_mem(void)) {
+  uv__free(args_mem);  /* Keep valgrind happy. */
+  args_mem = NULL;
+}
+
+
 int uv_resident_set_memory(size_t* rss) {
   char pp[64];
   psinfo_t psinfo;
diff --git a/src/unix/atomic-ops.h b/src/unix/atomic-ops.h
index 815e355..9dac255 100644
--- a/src/unix/atomic-ops.h
+++ b/src/unix/atomic-ops.h
@@ -43,8 +43,12 @@ UV_UNUSED(static int cmpxchgi(int* ptr, int oldval, int newval)) {
   __compare_and_swap(ptr, &oldval, newval);
   return out;
 #elif defined(__MVS__)
-  return __plo_CS(ptr, (unsigned int*) ptr,
-                  oldval, (unsigned int*) &newval);
+  unsigned int op4;
+  if (__plo_CSST(ptr, (unsigned int*) &oldval, newval,
+                (unsigned int*) ptr, *ptr, &op4))
+    return oldval;
+  else
+    return op4;
 #else
   return __sync_val_compare_and_swap(ptr, oldval, newval);
 #endif
@@ -67,13 +71,18 @@ UV_UNUSED(static long cmpxchgl(long* ptr, long oldval, long newval)) {
 # endif /* if defined(__64BIT__) */
   return out;
 #elif defined (__MVS__)
-# ifdef _LP64
-  return __plo_CSGR(ptr, (unsigned long long*) ptr,
-                    oldval, (unsigned long long*) &newval);
-# else
-  return __plo_CS(ptr, (unsigned int*) ptr,
-                  oldval, (unsigned int*) &newval);
-# endif
+#ifdef _LP64
+  unsigned long long op4;
+  if (__plo_CSSTGR(ptr, (unsigned long long*) &oldval, newval,
+                  (unsigned long long*) ptr, *ptr, &op4))
+#else
+  unsigned long op4;
+  if (__plo_CSST(ptr, (unsigned int*) &oldval, newval,
+                (unsigned int*) ptr, *ptr, &op4))
+#endif
+    return oldval;
+  else
+    return op4;
 #else
   return __sync_val_compare_and_swap(ptr, oldval, newval);
 #endif
diff --git a/src/unix/core.c b/src/unix/core.c
index d88fc1d..9ef7134 100644
--- a/src/unix/core.c
+++ b/src/unix/core.c
@@ -98,7 +98,7 @@ uint64_t uv_hrtime(void) {
 
 
 void uv_close(uv_handle_t* handle, uv_close_cb close_cb) {
-  assert(!(handle->flags & (UV_CLOSING | UV_CLOSED)));
+  assert(!uv__is_closing(handle));
 
   handle->flags |= UV_CLOSING;
   handle->close_cb = close_cb;
@@ -517,6 +517,9 @@ int uv__close_nocheckstdio(int fd) {
 
 int uv__close(int fd) {
   assert(fd > STDERR_FILENO);  /* Catch stdio close bugs. */
+#if defined(__MVS__)
+  epoll_file_close(fd);
+#endif
   return uv__close_nocheckstdio(fd);
 }
 
@@ -836,13 +839,8 @@ void uv__io_start(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
    * every tick of the event loop but the other backends allow us to
    * short-circuit here if the event mask is unchanged.
    */
-  if (w->events == w->pevents) {
-    if (w->events == 0 && !QUEUE_EMPTY(&w->watcher_queue)) {
-      QUEUE_REMOVE(&w->watcher_queue);
-      QUEUE_INIT(&w->watcher_queue);
-    }
+  if (w->events == w->pevents)
     return;
-  }
 #endif
 
   if (QUEUE_EMPTY(&w->watcher_queue))
@@ -1236,3 +1234,9 @@ void uv_os_free_passwd(uv_passwd_t* pwd) {
 int uv_os_get_passwd(uv_passwd_t* pwd) {
   return uv__getpwuid_r(pwd);
 }
+
+
+int uv_translate_sys_error(int sys_errno) {
+  /* If < 0 then it's already a libuv error. */
+  return sys_errno <= 0 ? sys_errno : -sys_errno;
+}
diff --git a/src/unix/fs.c b/src/unix/fs.c
index 3d478b7..f9513ea 100644
--- a/src/unix/fs.c
+++ b/src/unix/fs.c
@@ -129,8 +129,23 @@
 static ssize_t uv__fs_fdatasync(uv_fs_t* req) {
 #if defined(__linux__) || defined(__sun) || defined(__NetBSD__)
   return fdatasync(req->file);
-#elif defined(__APPLE__) && defined(SYS_fdatasync)
-  return syscall(SYS_fdatasync, req->file);
+#elif defined(__APPLE__)
+  /* Apple's fdatasync and fsync explicitly do NOT flush the drive write cache
+   * to the drive platters. This is in contrast to Linux's fdatasync and fsync
+   * which do, according to recent man pages. F_FULLFSYNC is Apple's equivalent
+   * for flushing buffered data to permanent storage.
+   */
+  return fcntl(req->file, F_FULLFSYNC);
+#else
+  return fsync(req->file);
+#endif
+}
+
+
+static ssize_t uv__fs_fsync(uv_fs_t* req) {
+#if defined(__APPLE__)
+  /* See the comment in uv__fs_fdatasync. */
+  return fcntl(req->file, F_FULLFSYNC);
 #else
   return fsync(req->file);
 #endif
@@ -365,7 +380,6 @@ static int uv__fs_scandir_sort(UV_CONST_DIRENT** a, UV_CONST_DIRENT** b) {
 
 static ssize_t uv__fs_scandir(uv_fs_t* req) {
   uv__dirent_t **dents;
-  int saved_errno;
   int n;
 
   dents = NULL;
@@ -374,28 +388,17 @@ static ssize_t uv__fs_scandir(uv_fs_t* req) {
   /* NOTE: We will use nbufs as an index field */
   req->nbufs = 0;
 
-  if (n == 0)
-    goto out; /* osx still needs to deallocate some memory */
-  else if (n == -1)
-    return n;
-
-  req->ptr = dents;
-
-  return n;
-
-out:
-  saved_errno = errno;
-  if (dents != NULL) {
-    int i;
-
-    /* Memory was allocated using the system allocator, so use free() here. */
-    for (i = 0; i < n; i++)
-      free(dents[i]);
+  if (n == 0) {
+    /* OS X still needs to deallocate some memory.
+     * Memory was allocated using the system allocator, so use free() here.
+     */
     free(dents);
+    dents = NULL;
+  } else if (n == -1) {
+    return n;
   }
-  errno = saved_errno;
 
-  req->ptr = NULL;
+  req->ptr = dents;
 
   return n;
 }
@@ -798,6 +801,10 @@ static void uv__to_stat(struct stat* src, uv_stat_t* dst) {
   dst->st_flags = 0;
   dst->st_gen = 0;
 #elif !defined(_AIX) && (       \
+    defined(__DragonFly__)   || \
+    defined(__FreeBSD__)     || \
+    defined(__OpenBSD__)     || \
+    defined(__NetBSD__)      || \
     defined(_GNU_SOURCE)     || \
     defined(_BSD_SOURCE)     || \
     defined(_SVID_SOURCE)    || \
@@ -809,9 +816,7 @@ static void uv__to_stat(struct stat* src, uv_stat_t* dst) {
   dst->st_mtim.tv_nsec = src->st_mtim.tv_nsec;
   dst->st_ctim.tv_sec = src->st_ctim.tv_sec;
   dst->st_ctim.tv_nsec = src->st_ctim.tv_nsec;
-# if defined(__DragonFly__)  || \
-     defined(__FreeBSD__)    || \
-     defined(__OpenBSD__)    || \
+# if defined(__FreeBSD__)    || \
      defined(__NetBSD__)
   dst->st_birthtim.tv_sec = src->st_birthtim.tv_sec;
   dst->st_birthtim.tv_nsec = src->st_birthtim.tv_nsec;
@@ -945,7 +950,7 @@ static void uv__fs_work(struct uv__work* w) {
     X(FCHOWN, fchown(req->file, req->uid, req->gid));
     X(FDATASYNC, uv__fs_fdatasync(req));
     X(FSTAT, uv__fs_fstat(req->file, &req->statbuf));
-    X(FSYNC, fsync(req->file));
+    X(FSYNC, uv__fs_fsync(req));
     X(FTRUNCATE, ftruncate(req->file, req->off));
     X(FUTIME, uv__fs_futime(req));
     X(LSTAT, uv__fs_lstat(req->path, &req->statbuf));
diff --git a/src/unix/internal.h b/src/unix/internal.h
index c7b6019..b48f8fa 100644
--- a/src/unix/internal.h
+++ b/src/unix/internal.h
@@ -38,6 +38,10 @@
 # include "linux-syscalls.h"
 #endif /* __linux__ */
 
+#if defined(__MVS__)
+# include "os390-syscalls.h"
+#endif /* __MVS__ */
+
 #if defined(__sun)
 # include <sys/port.h>
 # include <port.h>
@@ -52,7 +56,7 @@
 #endif /* _AIX */
 
 #if defined(__APPLE__) && !TARGET_OS_IPHONE
-# include <CoreServices/CoreServices.h>
+# include <AvailabilityMacros.h>
 #endif
 
 #if defined(__ANDROID__)
@@ -158,7 +162,8 @@ struct uv__stream_queued_fds_s {
     defined(__DragonFly__) || \
     defined(__FreeBSD__) || \
     defined(__FreeBSD_kernel__) || \
-    defined(__linux__)
+    defined(__linux__) || \
+    defined(__OpenBSD__)
 #define uv__cloexec uv__cloexec_ioctl
 #define uv__nonblock uv__nonblock_ioctl
 #else
diff --git a/src/unix/openbsd.c b/src/unix/openbsd.c
index 909288c..ac28b69 100644
--- a/src/unix/openbsd.c
+++ b/src/unix/openbsd.c
@@ -163,7 +163,7 @@ char** uv_setup_args(int argc, char** argv) {
 int uv_set_process_title(const char* title) {
   uv__free(process_title);
   process_title = uv__strdup(title);
-  setproctitle(title);
+  setproctitle("%s", title);
   return 0;
 }
 
diff --git a/src/unix/os390-syscalls.c b/src/unix/os390-syscalls.c
new file mode 100644
index 0000000..2bf3b73
--- /dev/null
+++ b/src/unix/os390-syscalls.c
@@ -0,0 +1,334 @@
+/* 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.
+ */
+
+
+#include "os390-syscalls.h"
+#include <errno.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <search.h>
+
+#define CW_CONDVAR 32
+
+#pragma linkage(BPX4CTW, OS)
+#pragma linkage(BPX1CTW, OS)
+
+static int number_of_epolls;
+static QUEUE global_epoll_queue;
+static uv_mutex_t global_epoll_lock;
+static uv_once_t once = UV_ONCE_INIT;
+
+int scandir(const char* maindir, struct dirent*** namelist,
+            int (*filter)(const struct dirent*),
+            int (*compar)(const struct dirent**,
+            const struct dirent **)) {
+  struct dirent** nl;
+  struct dirent* dirent;
+  unsigned count;
+  size_t allocated;
+  DIR* mdir;
+
+  nl = NULL;
+  count = 0;
+  allocated = 0;
+  mdir = opendir(maindir);
+  if (!mdir)
+    return -1;
+
+  while (1) {
+    dirent = readdir(mdir);
+    if (!dirent)
+      break;
+    if (!filter || filter(dirent)) {
+      struct dirent* copy;
+      copy = uv__malloc(sizeof(*copy));
+      if (!copy) {
+        while (count) {
+          dirent = nl[--count];
+          uv__free(dirent);
+        }
+        uv__free(nl);
+        closedir(mdir);
+        errno = ENOMEM;
+        return -1;
+      }
+      memcpy(copy, dirent, sizeof(*copy));
+
+      nl = uv__realloc(nl, sizeof(*copy) * (count + 1));
+      nl[count++] = copy;
+    }
+  }
+
+  qsort(nl, count, sizeof(struct dirent *),
+       (int (*)(const void *, const void *)) compar);
+
+  closedir(mdir);
+
+  *namelist = nl;
+  return count;
+}
+
+
+static unsigned int next_power_of_two(unsigned int val) {
+  val -= 1;
+  val |= val >> 1;
+  val |= val >> 2;
+  val |= val >> 4;
+  val |= val >> 8;
+  val |= val >> 16;
+  val += 1;
+  return val;
+}
+
+
+static void maybe_resize(uv__os390_epoll* lst, unsigned int len) {
+  unsigned int newsize;
+  unsigned int i;
+  struct pollfd* newlst;
+
+  if (len <= lst->size)
+    return;
+
+  newsize = next_power_of_two(len);
+  newlst = uv__realloc(lst->items, newsize * sizeof(lst->items[0]));
+
+  if (newlst == NULL)
+    abort();
+  for (i = lst->size; i < newsize; ++i)
+    newlst[i].fd = -1;
+
+  lst->items = newlst;
+  lst->size = newsize;
+}
+
+
+static void epoll_init() {
+  QUEUE_INIT(&global_epoll_queue);
+  if (uv_mutex_init(&global_epoll_lock))
+    abort();
+}
+
+
+uv__os390_epoll* epoll_create1(int flags) {
+  uv__os390_epoll* lst;
+
+  uv_once(&once, epoll_init);
+  uv_mutex_lock(&global_epoll_lock);
+  lst = uv__malloc(sizeof(*lst));
+  if (lst == -1)
+    return NULL;
+  QUEUE_INSERT_TAIL(&global_epoll_queue, &lst->member);
+  uv_mutex_unlock(&global_epoll_lock);
+
+  /* initialize list */
+  lst->size = 0;
+  lst->items = NULL;
+  return lst;
+}
+
+
+int epoll_ctl(uv__os390_epoll* lst,
+              int op,
+              int fd,
+              struct epoll_event *event) {
+  if(op == EPOLL_CTL_DEL) {
+    if (fd >= lst->size || lst->items[fd].fd == -1) {
+      errno = ENOENT;
+      return -1;
+    }
+    lst->items[fd].fd = -1;
+  } else if(op == EPOLL_CTL_ADD) {
+    maybe_resize(lst, fd + 1);
+    if (lst->items[fd].fd != -1) {
+      errno = EEXIST;
+      return -1;
+    }
+    lst->items[fd].fd = fd;
+    lst->items[fd].events = event->events;
+  } else if(op == EPOLL_CTL_MOD) {
+    if (fd >= lst->size || lst->items[fd].fd == -1) {
+      errno = ENOENT;
+      return -1;
+    }
+    lst->items[fd].events = event->events;
+  } else
+    abort();
+
+  return 0;
+}
+
+
+int epoll_wait(uv__os390_epoll* lst, struct epoll_event* events,
+               int maxevents, int timeout) {
+  size_t size;
+  struct pollfd* pfds;
+  int pollret;
+  int reventcount;
+
+  uv_mutex_lock(&global_epoll_lock);
+  uv_mutex_unlock(&global_epoll_lock);
+  size = lst->size;
+  pfds = lst->items;
+  pollret = poll(pfds, size, timeout);
+  if(pollret == -1)
+    return pollret;
+
+  reventcount = 0;
+  for (int i = 0; i < lst->size && i < maxevents; ++i) {
+    struct epoll_event ev;
+
+    ev.events = 0;
+    ev.fd = pfds[i].fd;
+    if(!pfds[i].revents)
+      continue;
+
+    if(pfds[i].revents & POLLRDNORM)
+      ev.events = ev.events | POLLIN;
+
+    if(pfds[i].revents & POLLWRNORM)
+      ev.events = ev.events | POLLOUT;
+
+    if(pfds[i].revents & POLLHUP)
+      ev.events = ev.events | POLLHUP;
+
+    pfds[i].revents = 0;
+    events[reventcount++] = ev;
+  }
+
+  return reventcount;
+}
+
+
+int epoll_file_close(int fd) {
+  QUEUE* q;
+
+  uv_once(&once, epoll_init);
+  uv_mutex_lock(&global_epoll_lock);
+  QUEUE_FOREACH(q, &global_epoll_queue) {
+    uv__os390_epoll* lst;
+
+    lst = QUEUE_DATA(q, uv__os390_epoll, member);
+    if (fd < lst->size && lst->items != NULL && lst->items[fd].fd != -1)
+      lst->items[fd].fd = -1;
+  }
+
+  uv_mutex_unlock(&global_epoll_lock);
+  return 0;
+}
+
+void epoll_queue_close(uv__os390_epoll* lst) {
+  uv_mutex_lock(&global_epoll_lock);
+  QUEUE_REMOVE(&lst->member);
+  uv_mutex_unlock(&global_epoll_lock);
+  uv__free(lst->items);
+  lst->items = NULL;
+}
+
+
+int nanosleep(const struct timespec* req, struct timespec* rem) {
+  unsigned nano;
+  unsigned seconds;
+  unsigned events;
+  unsigned secrem;
+  unsigned nanorem;
+  int rv;
+  int rc;
+  int rsn;
+
+  nano = (int)req->tv_nsec;
+  seconds = req->tv_sec;
+  events = CW_CONDVAR;
+
+#if defined(_LP64)
+  BPX4CTW(&seconds, &nano, &events, &secrem, &nanorem, &rv, &rc, &rsn);
+#else
+  BPX1CTW(&seconds, &nano, &events, &secrem, &nanorem, &rv, &rc, &rsn);
+#endif
+
+  assert(rv == -1 && errno == EAGAIN);
+
+  if(rem != NULL) {
+    rem->tv_nsec = nanorem;
+    rem->tv_sec = secrem;
+  }
+
+  return 0;
+}
+
+
+char* mkdtemp(char* path) {
+  static const char* tempchars =
+    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+  static const size_t num_chars = 62;
+  static const size_t num_x = 6;
+  char *ep, *cp;
+  unsigned int tries, i;
+  size_t len;
+  uint64_t v;
+  int fd;
+  int retval;
+  int saved_errno;
+
+  len = strlen(path);
+  ep = path + len;
+  if (len < num_x || strncmp(ep - num_x, "XXXXXX", num_x)) {
+    errno = EINVAL;
+    return NULL;
+  }
+
+  fd = open("/dev/urandom", O_RDONLY);
+  if (fd == -1)
+    return NULL;
+
+  tries = TMP_MAX;
+  retval = -1;
+  do {
+    if (read(fd, &v, sizeof(v)) != sizeof(v))
+      break;
+
+    cp = ep - num_x;
+    for (i = 0; i < num_x; i++) {
+      *cp++ = tempchars[v % num_chars];
+      v /= num_chars;
+    }
+
+    if (mkdir(path, S_IRWXU) == 0) {
+      retval = 0;
+      break;
+    }
+    else if (errno != EEXIST)
+      break;
+  } while (--tries);
+
+  saved_errno = errno;
+  uv__close(fd);
+  if (tries == 0) {
+    errno = EEXIST;
+    return NULL;
+  }
+
+  if (retval == -1) {
+    errno = saved_errno;
+    return NULL;
+  }
+
+  return path;
+}
diff --git a/src/unix/os390-syscalls.h b/src/unix/os390-syscalls.h
new file mode 100644
index 0000000..61a7cee
--- /dev/null
+++ b/src/unix/os390-syscalls.h
@@ -0,0 +1,69 @@
+/* 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_OS390_SYSCALL_H_
+#define UV_OS390_SYSCALL_H_
+
+#include "uv.h"
+#include "internal.h"
+#include <dirent.h>
+#include <poll.h>
+#include <pthread.h>
+
+#define EPOLL_CTL_ADD             1
+#define EPOLL_CTL_DEL             2
+#define EPOLL_CTL_MOD             3
+#define MAX_EPOLL_INSTANCES       256
+#define MAX_ITEMS_PER_EPOLL       1024
+
+#define UV__O_CLOEXEC             0x80000
+#define UV__EPOLL_CLOEXEC         UV__O_CLOEXEC
+#define UV__EPOLL_CTL_ADD         EPOLL_CTL_ADD
+#define UV__EPOLL_CTL_DEL         EPOLL_CTL_DEL
+#define UV__EPOLL_CTL_MOD         EPOLL_CTL_MOD
+
+struct epoll_event {
+  int events;
+  int fd;
+};
+
+typedef struct {
+  QUEUE member;
+  struct pollfd* items;
+  unsigned long size;
+} uv__os390_epoll;
+
+/* epoll api */
+uv__os390_epoll* epoll_create1(int flags);
+int epoll_ctl(uv__os390_epoll* ep, int op, int fd, struct epoll_event *event);
+int epoll_wait(uv__os390_epoll* ep, struct epoll_event *events, int maxevents, int timeout);
+int epoll_file_close(int fd);
+
+/* utility functions */
+int nanosleep(const struct timespec* req, struct timespec* rem);
+int scandir(const char* maindir, struct dirent*** namelist,
+            int (*filter)(const struct dirent *),
+            int (*compar)(const struct dirent **,
+            const struct dirent **));
+char *mkdtemp(char* path);
+
+#endif /* UV_OS390_SYSCALL_H_ */
diff --git a/src/unix/os390.c b/src/unix/os390.c
index bcdbc4b..be325a9 100644
--- a/src/unix/os390.c
+++ b/src/unix/os390.c
@@ -20,6 +20,628 @@
  */
 
 #include "internal.h"
+#include <sys/ioctl.h>
+#include <net/if.h>
+#include <utmpx.h>
+#include <unistd.h>
+#include <sys/ps.h>
+#if defined(__clang__)
+#include "csrsic.h"
+#else
+#include "//'SYS1.SAMPLIB(CSRSIC)'"
+#endif
+
+#define CVT_PTR           0x10
+#define CSD_OFFSET        0x294
+
+/*
+    Long-term average CPU service used by this logical partition,
+    in millions of service units per hour. If this value is above
+    the partition's defined capacity, the partition will be capped.
+    It is calculated using the physical CPU adjustment factor
+    (RCTPCPUA) so it may not match other measures of service which
+    are based on the logical CPU adjustment factor. It is available
+    if the hardware supports LPAR cluster.
+*/
+#define RCTLACS_OFFSET    0xC4
+
+/* 32-bit count of alive CPUs. This includes both CPs and IFAs */
+#define CSD_NUMBER_ONLINE_CPUS        0xD4
+
+/* Address of system resources manager (SRM) control table */
+#define CVTOPCTP_OFFSET   0x25C
+
+/* Address of the RCT table */
+#define RMCTRCT_OFFSET    0xE4
+
+/* Address of the rsm control and enumeration area. */
+#define CVTRCEP_OFFSET    0x490
+
+/*
+    Number of frames currently available to system.
+    Excluded are frames backing perm storage, frames offline, and bad frames.
+*/
+#define RCEPOOL_OFFSET    0x004
+
+/* Total number of frames currently on all available frame queues. */
+#define RCEAFC_OFFSET     0x088
+
+/* CPC model length from the CSRSI Service. */
+#define CPCMODEL_LENGTH   16
+
+/* Thread Entry constants */
+#define PGTH_CURRENT  1
+#define PGTH_LEN      26
+#define PGTHAPATH     0x20
+#pragma linkage(BPX4GTH, OS)
+#pragma linkage(BPX1GTH, OS)
+
+typedef unsigned data_area_ptr_assign_type;
+
+typedef union {
+  struct {
+#if defined(_LP64)
+    data_area_ptr_assign_type lower;
+#endif
+    data_area_ptr_assign_type assign;
+  };
+  char* deref;
+} data_area_ptr;
+
+
+void uv_loadavg(double avg[3]) {
+  /* TODO: implement the following */
+  avg[0] = 0;
+  avg[1] = 0;
+  avg[2] = 0;
+}
+
+
+int uv__platform_loop_init(uv_loop_t* loop) {
+  uv__os390_epoll* ep;
+
+  ep = epoll_create1(UV__EPOLL_CLOEXEC);
+  loop->ep = ep;
+  if (ep == NULL)
+    return -errno;
+
+  return 0;
+}
+
+
+void uv__platform_loop_delete(uv_loop_t* loop) {
+  if (loop->ep != NULL) {
+    epoll_queue_close(loop->ep);
+    loop->ep = NULL;
+  }
+}
+
+
+uint64_t uv__hrtime(uv_clocktype_t type) {
+  struct timeval time;
+  gettimeofday(&time, NULL);
+  return (uint64_t) time.tv_sec * 1e9 + time.tv_usec * 1e3;
+}
+
+
+/*
+    Get the exe path using the thread entry information
+    in the address space.
+*/
+static int getexe(const int pid, char* buf, size_t len) {
+  struct {
+    int pid;
+    int thid[2];
+    char accesspid;
+    char accessthid;
+    char asid[2];
+    char loginname[8];
+    char flag;
+    char len;
+  } Input_data;
+
+  union {
+    struct {
+      char gthb[4];
+      int pid;
+      int thid[2];
+      char accesspid;
+      char accessthid[3];
+      int lenused;
+      int offsetProcess;
+      int offsetConTTY;
+      int offsetPath;
+      int offsetCommand;
+      int offsetFileData;
+      int offsetThread;
+    } Output_data;
+    char buf[2048];
+  } Output_buf;
+
+  struct Output_path_type {
+    char gthe[4];
+    short int len;
+    char path[1024];
+  };
+
+  int Input_length;
+  int Output_length;
+  void* Input_address;
+  void* Output_address;
+  struct Output_path_type* Output_path;
+  int rv;
+  int rc;
+  int rsn;
+
+  Input_length = PGTH_LEN;
+  Output_length = sizeof(Output_buf);
+  Output_address = &Output_buf;
+  Input_address = &Input_data;
+  memset(&Input_data, 0, sizeof Input_data);
+  Input_data.flag |= PGTHAPATH;
+  Input_data.pid = pid;
+  Input_data.accesspid = PGTH_CURRENT;
+
+#ifdef _LP64
+  BPX4GTH(&Input_length,
+          &Input_address,
+          &Output_length,
+          &Output_address,
+          &rv,
+          &rc,
+          &rsn);
+#else
+  BPX1GTH(&Input_length,
+          &Input_address,
+          &Output_length,
+          &Output_address,
+          &rv,
+          &rc,
+          &rsn);
+#endif
+
+  if (rv == -1) {
+    errno = rc;
+    return -1;
+  }
+
+  /* Check highest byte to ensure data availability */
+  assert(((Output_buf.Output_data.offsetPath >>24) & 0xFF) == 'A');
+
+  /* Get the offset from the lowest 3 bytes */
+  Output_path = (char*)(&Output_buf) +
+                (Output_buf.Output_data.offsetPath & 0x00FFFFFF);
+
+  if (Output_path->len >= len) {
+    errno = ENOBUFS;
+    return -1;
+  }
+
+  strncpy(buf, Output_path->path, len);
+
+  return 0;
+}
+
+
+/*
+ * We could use a static buffer for the path manipulations that we need outside
+ * of the function, but this function could be called by multiple consumers and
+ * we don't want to potentially create a race condition in the use of snprintf.
+ * There is no direct way of getting the exe path in zOS - either through /procfs
+ * or through some libc APIs. The below approach is to parse the argv[0]'s pattern
+ * and use it in conjunction with PATH environment variable to craft one.
+ */
+int uv_exepath(char* buffer, size_t* size) {
+  int res;
+  char args[PATH_MAX];
+  char abspath[PATH_MAX];
+  size_t abspath_size;
+  int pid;
+
+  if (buffer == NULL || size == NULL || *size == 0)
+    return -EINVAL;
+
+  pid = getpid();
+  res = getexe(pid, args, sizeof(args));
+  if (res < 0)
+    return -EINVAL;
+
+  /*
+   * Possibilities for args:
+   * i) an absolute path such as: /home/user/myprojects/nodejs/node
+   * ii) a relative path such as: ./node or ../myprojects/nodejs/node
+   * iii) a bare filename such as "node", after exporting PATH variable
+   *     to its location.
+   */
+
+  /* Case i) and ii) absolute or relative paths */
+  if (strchr(args, '/') != NULL) {
+    if (realpath(args, abspath) != abspath)
+      return -errno;
+
+    abspath_size = strlen(abspath);
+
+    *size -= 1;
+    if (*size > abspath_size)
+      *size = abspath_size;
+
+    memcpy(buffer, abspath, *size);
+    buffer[*size] = '\0';
+
+    return 0;
+  } else {
+    /* Case iii). Search PATH environment variable */
+    char trypath[PATH_MAX];
+    char* clonedpath = NULL;
+    char* token = NULL;
+    char* path = getenv("PATH");
+
+    if (path == NULL)
+      return -EINVAL;
+
+    clonedpath = uv__strdup(path);
+    if (clonedpath == NULL)
+      return -ENOMEM;
+
+    token = strtok(clonedpath, ":");
+    while (token != NULL) {
+      snprintf(trypath, sizeof(trypath) - 1, "%s/%s", token, args);
+      if (realpath(trypath, abspath) == abspath) {
+        /* Check the match is executable */
+        if (access(abspath, X_OK) == 0) {
+          abspath_size = strlen(abspath);
+
+          *size -= 1;
+          if (*size > abspath_size)
+            *size = abspath_size;
+
+          memcpy(buffer, abspath, *size);
+          buffer[*size] = '\0';
+
+          uv__free(clonedpath);
+          return 0;
+        }
+      }
+      token = strtok(NULL, ":");
+    }
+    uv__free(clonedpath);
+
+    /* Out of tokens (path entries), and no match found */
+    return -EINVAL;
+  }
+}
+
+
+uint64_t uv_get_free_memory(void) {
+  uint64_t freeram;
+
+  data_area_ptr cvt = {0};
+  data_area_ptr rcep = {0};
+  cvt.assign = *(data_area_ptr_assign_type*)(CVT_PTR);
+  rcep.assign = *(data_area_ptr_assign_type*)(cvt.deref + CVTRCEP_OFFSET);
+  freeram = *((uint64_t*)(rcep.deref + RCEAFC_OFFSET)) * 4;
+  return freeram;
+}
+
+
+uint64_t uv_get_total_memory(void) {
+  uint64_t totalram;
+
+  data_area_ptr cvt = {0};
+  data_area_ptr rcep = {0};
+  cvt.assign = *(data_area_ptr_assign_type*)(CVT_PTR);
+  rcep.assign = *(data_area_ptr_assign_type*)(cvt.deref + CVTRCEP_OFFSET);
+  totalram = *((uint64_t*)(rcep.deref + RCEPOOL_OFFSET)) * 4;
+  return totalram;
+}
+
+
+int uv_resident_set_memory(size_t* rss) {
+  W_PSPROC buf;
+
+  memset(&buf, 0, sizeof(buf));
+  if (w_getpsent(0, &buf, sizeof(W_PSPROC)) == -1)
+    return -EINVAL;
+
+  *rss = buf.ps_size;
+  return 0;
+}
+
+
+int uv_uptime(double* uptime) {
+  struct utmpx u ;
+  struct utmpx *v;
+  time64_t t;
+
+  u.ut_type = BOOT_TIME;
+  v = getutxid(&u);
+  if (v == NULL)
+    return -1;
+  *uptime = difftime64(time64(&t), v->ut_tv.tv_sec);
+  return 0;
+}
+
+
+int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) {
+  uv_cpu_info_t* cpu_info;
+  int result;
+  int idx;
+  siv1v2 info;
+  data_area_ptr cvt = {0};
+  data_area_ptr csd = {0};
+  data_area_ptr rmctrct = {0};
+  data_area_ptr cvtopctp = {0};
+  int cpu_usage_avg;
+
+  cvt.assign = *(data_area_ptr_assign_type*)(CVT_PTR);
+
+  csd.assign = *((data_area_ptr_assign_type *) (cvt.deref + CSD_OFFSET));
+  cvtopctp.assign = *((data_area_ptr_assign_type *) (cvt.deref + CVTOPCTP_OFFSET));
+  rmctrct.assign = *((data_area_ptr_assign_type *) (cvtopctp.deref + RMCTRCT_OFFSET));
+
+  *count = *((int*) (csd.deref + CSD_NUMBER_ONLINE_CPUS));
+  cpu_usage_avg = *((unsigned short int*) (rmctrct.deref + RCTLACS_OFFSET));
+
+  *cpu_infos = uv__malloc(*count * sizeof(uv_cpu_info_t));
+  if (!*cpu_infos)
+    return -ENOMEM;
+
+  cpu_info = *cpu_infos;
+  idx = 0;
+  while (idx < *count) {
+    cpu_info->speed = *(int*)(info.siv1v2si22v1.si22v1cpucapability);
+    cpu_info->model = uv__malloc(CPCMODEL_LENGTH + 1);
+    memset(cpu_info->model, '\0', CPCMODEL_LENGTH + 1);
+    memcpy(cpu_info->model, info.siv1v2si11v1.si11v1cpcmodel, CPCMODEL_LENGTH);
+    cpu_info->cpu_times.user = cpu_usage_avg;
+    /* TODO: implement the following */
+    cpu_info->cpu_times.sys = 0;
+    cpu_info->cpu_times.idle = 0;
+    cpu_info->cpu_times.irq = 0;
+    cpu_info->cpu_times.nice = 0;
+    ++cpu_info;
+    ++idx;
+  }
+
+  return 0;
+}
+
+
+void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count) {
+  for (int i = 0; i < count; ++i)
+    uv__free(cpu_infos[i].model);
+  uv__free(cpu_infos);
+}
+
+
+static int uv__interface_addresses_v6(uv_interface_address_t** addresses,
+                                      int* count) {
+  uv_interface_address_t* address;
+  int sockfd;
+  int maxsize;
+  __net_ifconf6header_t ifc;
+  __net_ifconf6entry_t* ifr;
+  __net_ifconf6entry_t* p;
+  __net_ifconf6entry_t flg;
+
+  *count = 0;
+  /* Assume maximum buffer size allowable */
+  maxsize = 16384;
+
+  if (0 > (sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP)))
+    return -errno;
+
+  ifc.__nif6h_version = 1;
+  ifc.__nif6h_buflen = maxsize;
+  ifc.__nif6h_buffer = uv__calloc(1, maxsize);;
+
+  if (ioctl(sockfd, SIOCGIFCONF6, &ifc) == -1) {
+    uv__close(sockfd);
+    return -errno;
+  }
+
+
+  *count = 0;
+  ifr = (__net_ifconf6entry_t*)(ifc.__nif6h_buffer);
+  while ((char*)ifr < (char*)ifc.__nif6h_buffer + ifc.__nif6h_buflen) {
+    p = ifr;
+    ifr = (__net_ifconf6entry_t*)((char*)ifr + ifc.__nif6h_entrylen);
+
+    if (!(p->__nif6e_addr.sin6_family == AF_INET6 ||
+          p->__nif6e_addr.sin6_family == AF_INET))
+      continue;
+
+    if (!(p->__nif6e_flags & _NIF6E_FLAGS_ON_LINK_ACTIVE))
+      continue;
+
+    ++(*count);
+  }
+
+  /* Alloc the return interface structs */
+  *addresses = uv__malloc(*count * sizeof(uv_interface_address_t));
+  if (!(*addresses)) {
+    uv__close(sockfd);
+    return -ENOMEM;
+  }
+  address = *addresses;
+
+  ifr = (__net_ifconf6entry_t*)(ifc.__nif6h_buffer);
+  while ((char*)ifr < (char*)ifc.__nif6h_buffer + ifc.__nif6h_buflen) {
+    p = ifr;
+    ifr = (__net_ifconf6entry_t*)((char*)ifr + ifc.__nif6h_entrylen);
+
+    if (!(p->__nif6e_addr.sin6_family == AF_INET6 ||
+          p->__nif6e_addr.sin6_family == AF_INET))
+      continue;
+
+    if (!(p->__nif6e_flags & _NIF6E_FLAGS_ON_LINK_ACTIVE))
+      continue;
+
+    /* All conditions above must match count loop */
+
+    address->name = uv__strdup(p->__nif6e_name);
+
+    if (p->__nif6e_addr.sin6_family == AF_INET6)
+      address->address.address6 = *((struct sockaddr_in6*) &p->__nif6e_addr);
+    else
+      address->address.address4 = *((struct sockaddr_in*) &p->__nif6e_addr);
+
+    /* TODO: Retrieve netmask using SIOCGIFNETMASK ioctl */
+
+    address->is_internal = flg.__nif6e_flags & _NIF6E_FLAGS_LOOPBACK ? 1 : 0;
+
+    address++;
+  }
+
+  uv__close(sockfd);
+  return 0;
+}
+
+
+int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
+  uv_interface_address_t* address;
+  int sockfd;
+  int maxsize;
+  struct ifconf ifc;
+  struct ifreq flg;
+  struct ifreq* ifr;
+  struct ifreq* p;
+  int count_v6;
+
+  /* get the ipv6 addresses first */
+  uv_interface_address_t* addresses_v6;
+  uv__interface_addresses_v6(&addresses_v6, &count_v6);
+
+  /* now get the ipv4 addresses */
+  *count = 0;
+
+  /* Assume maximum buffer size allowable */
+  maxsize = 16384;
+
+  sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
+  if (0 > sockfd)
+    return -errno;
+
+  ifc.ifc_req = uv__calloc(1, maxsize);
+  ifc.ifc_len = maxsize;
+  if (ioctl(sockfd, SIOCGIFCONF, &ifc) == -1) {
+    uv__close(sockfd);
+    return -errno;
+  }
+
+#define MAX(a,b) (((a)>(b))?(a):(b))
+#define ADDR_SIZE(p) MAX((p).sa_len, sizeof(p))
+
+  /* Count all up and running ipv4/ipv6 addresses */
+  ifr = ifc.ifc_req;
+  while ((char*)ifr < (char*)ifc.ifc_req + ifc.ifc_len) {
+    p = ifr;
+    ifr = (struct ifreq*)
+      ((char*)ifr + sizeof(ifr->ifr_name) + ADDR_SIZE(ifr->ifr_addr));
+
+    if (!(p->ifr_addr.sa_family == AF_INET6 ||
+          p->ifr_addr.sa_family == AF_INET))
+      continue;
+
+    memcpy(flg.ifr_name, p->ifr_name, sizeof(flg.ifr_name));
+    if (ioctl(sockfd, SIOCGIFFLAGS, &flg) == -1) {
+      uv__close(sockfd);
+      return -errno;
+    }
+
+    if (!(flg.ifr_flags & IFF_UP && flg.ifr_flags & IFF_RUNNING))
+      continue;
+
+    (*count)++;
+  }
+
+  /* Alloc the return interface structs */
+  *addresses = uv__malloc((*count + count_v6) *
+                          sizeof(uv_interface_address_t));
+
+  if (!(*addresses)) {
+    uv__close(sockfd);
+    return -ENOMEM;
+  }
+  address = *addresses;
+
+  /* copy over the ipv6 addresses */
+  memcpy(address, addresses_v6, count_v6 * sizeof(uv_interface_address_t));
+  address += count_v6;
+  *count += count_v6;
+  uv__free(addresses_v6);
+
+  ifr = ifc.ifc_req;
+  while ((char*)ifr < (char*)ifc.ifc_req + ifc.ifc_len) {
+    p = ifr;
+    ifr = (struct ifreq*)
+      ((char*)ifr + sizeof(ifr->ifr_name) + ADDR_SIZE(ifr->ifr_addr));
+
+    if (!(p->ifr_addr.sa_family == AF_INET6 ||
+          p->ifr_addr.sa_family == AF_INET))
+      continue;
+
+    memcpy(flg.ifr_name, p->ifr_name, sizeof(flg.ifr_name));
+    if (ioctl(sockfd, SIOCGIFFLAGS, &flg) == -1) {
+      uv__close(sockfd);
+      return -ENOSYS;
+    }
+
+    if (!(flg.ifr_flags & IFF_UP && flg.ifr_flags & IFF_RUNNING))
+      continue;
+
+    /* All conditions above must match count loop */
+
+    address->name = uv__strdup(p->ifr_name);
+
+    if (p->ifr_addr.sa_family == AF_INET6) {
+      address->address.address6 = *((struct sockaddr_in6*) &p->ifr_addr);
+    } else {
+      address->address.address4 = *((struct sockaddr_in*) &p->ifr_addr);
+    }
+
+    address->is_internal = flg.ifr_flags & IFF_LOOPBACK ? 1 : 0;
+    address++;
+  }
+
+#undef ADDR_SIZE
+#undef MAX
+
+  uv__close(sockfd);
+  return 0;
+}
+
+
+void uv_free_interface_addresses(uv_interface_address_t* addresses,
+                                 int count) {
+  int i;
+  for (i = 0; i < count; ++i)
+    uv__free(addresses[i].name);
+  uv__free(addresses);
+}
+
+
+void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) {
+  struct epoll_event* events;
+  struct epoll_event dummy;
+  uintptr_t i;
+  uintptr_t nfds;
+
+  assert(loop->watchers != NULL);
+
+  events = (struct epoll_event*) loop->watchers[loop->nwatchers];
+  nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1];
+  if (events != NULL)
+    /* Invalidate events with same file descriptor */
+    for (i = 0; i < nfds; i++)
+      if ((int) events[i].fd == fd)
+        events[i].fd = -1;
+
+  /* Remove the file descriptor from the epoll. */
+  if (loop->ep != NULL)
+    epoll_ctl(loop->ep, UV__EPOLL_CTL_DEL, fd, &dummy);
+}
+
 
 int uv__io_check_fd(uv_loop_t* loop, int fd) {
   struct pollfd p[1];
@@ -40,3 +662,204 @@ int uv__io_check_fd(uv_loop_t* loop, int fd) {
 
   return 0;
 }
+
+
+void uv__fs_event_close(uv_fs_event_t* handle) {
+  UNREACHABLE();
+}
+
+
+int uv_fs_event_init(uv_loop_t* loop, uv_fs_event_t* handle) {
+  return -ENOSYS;
+}
+
+
+int uv_fs_event_start(uv_fs_event_t* handle, uv_fs_event_cb cb,
+                      const char* filename, unsigned int flags) {
+  return -ENOSYS;
+}
+
+
+int uv_fs_event_stop(uv_fs_event_t* handle) {
+  return -ENOSYS;
+}
+
+
+void uv__io_poll(uv_loop_t* loop, int timeout) {
+  static const int max_safe_timeout = 1789569;
+  struct epoll_event events[1024];
+  struct epoll_event* pe;
+  struct epoll_event e;
+  int real_timeout;
+  QUEUE* q;
+  uv__io_t* w;
+  uint64_t base;
+  int count;
+  int nfds;
+  int fd;
+  int op;
+  int i;
+
+  if (loop->nfds == 0) {
+    assert(QUEUE_EMPTY(&loop->watcher_queue));
+    return;
+  }
+
+  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
+    uv_stream_t* stream;
+
+    q = QUEUE_HEAD(&loop->watcher_queue);
+    QUEUE_REMOVE(q);
+    QUEUE_INIT(q);
+    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
+
+    assert(w->pevents != 0);
+    assert(w->fd >= 0);
+
+    stream= container_of(w, uv_stream_t, io_watcher);
+
+    assert(w->fd < (int) loop->nwatchers);
+
+    e.events = w->pevents;
+    e.fd = w->fd;
+
+    if (w->events == 0)
+      op = UV__EPOLL_CTL_ADD;
+    else
+      op = UV__EPOLL_CTL_MOD;
+
+    /* XXX Future optimization: do EPOLL_CTL_MOD lazily if we stop watching
+     * events, skip the syscall and squelch the events after epoll_wait().
+     */
+    if (epoll_ctl(loop->ep, op, w->fd, &e)) {
+      if (errno != EEXIST)
+        abort();
+
+      assert(op == UV__EPOLL_CTL_ADD);
+
+      /* We've reactivated a file descriptor that's been watched before. */
+      if (epoll_ctl(loop->ep, UV__EPOLL_CTL_MOD, w->fd, &e))
+        abort();
+    }
+
+    w->events = w->pevents;
+  }
+
+  assert(timeout >= -1);
+  base = loop->time;
+  count = 48; /* Benchmarks suggest this gives the best throughput. */
+  real_timeout = timeout;
+  int nevents = 0;
+
+  nfds = 0;
+  for (;;) {
+    if (sizeof(int32_t) == sizeof(long) && timeout >= max_safe_timeout)
+      timeout = max_safe_timeout;
+
+    nfds = epoll_wait(loop->ep, events,
+                      ARRAY_SIZE(events), timeout);
+
+    /* Update loop->time unconditionally. It's tempting to skip the update when
+     * timeout == 0 (i.e. non-blocking poll) but there is no guarantee that the
+     * operating system didn't reschedule our process while in the syscall.
+     */
+    base = loop->time;
+    SAVE_ERRNO(uv__update_time(loop));
+    if (nfds == 0) {
+      assert(timeout != -1);
+      timeout = real_timeout - timeout;
+      if (timeout > 0)
+        continue;
+
+      return;
+    }
+
+    if (nfds == -1) {
+
+      if (errno != EINTR)
+        abort();
+
+      if (timeout == -1)
+        continue;
+
+      if (timeout == 0)
+        return;
+
+      /* Interrupted by a signal. Update timeout and poll again. */
+      goto update_timeout;
+    }
+
+
+    assert(loop->watchers != NULL);
+    loop->watchers[loop->nwatchers] = (void*) events;
+    loop->watchers[loop->nwatchers + 1] = (void*) (uintptr_t) nfds;
+    for (i = 0; i < nfds; i++) {
+      pe = events + i;
+      fd = pe->fd;
+
+      /* Skip invalidated events, see uv__platform_invalidate_fd */
+      if (fd == -1)
+        continue;
+
+      assert(fd >= 0);
+      assert((unsigned) fd < loop->nwatchers);
+
+      w = loop->watchers[fd];
+
+      if (w == NULL) {
+        /* File descriptor that we've stopped watching, disarm it.
+         *
+         * Ignore all errors because we may be racing with another thread
+         * when the file descriptor is closed.
+         */
+        epoll_ctl(loop->ep, UV__EPOLL_CTL_DEL, fd, pe);
+        continue;
+      }
+
+      /* Give users only events they're interested in. Prevents spurious
+       * callbacks when previous callback invocation in this loop has stopped
+       * the current watcher. Also, filters out events that users has not
+       * requested us to watch.
+       */
+      pe->events &= w->pevents | POLLERR | POLLHUP;
+
+      if (pe->events == POLLERR || pe->events == POLLHUP)
+        pe->events |= w->pevents & (POLLIN | POLLOUT);
+
+      if (pe->events != 0) {
+        w->cb(loop, w, pe->events);
+        nevents++;
+      }
+    }
+    loop->watchers[loop->nwatchers] = NULL;
+    loop->watchers[loop->nwatchers + 1] = NULL;
+
+    if (nevents != 0) {
+      if (nfds == ARRAY_SIZE(events) && --count != 0) {
+        /* Poll for more events but don't block this time. */
+        timeout = 0;
+        continue;
+      }
+      return;
+    }
+
+    if (timeout == 0)
+      return;
+
+    if (timeout == -1)
+      continue;
+
+update_timeout:
+    assert(timeout > 0);
+
+    real_timeout -= (loop->time - base);
+    if (real_timeout <= 0)
+      return;
+
+    timeout = real_timeout;
+  }
+}
+
+void uv__set_process_title(const char* title) {
+  /* do nothing */
+}
diff --git a/src/unix/poll.c b/src/unix/poll.c
index 4c0d478..370994b 100644
--- a/src/unix/poll.c
+++ b/src/unix/poll.c
@@ -92,7 +92,7 @@ static void uv__poll_stop(uv_poll_t* handle) {
 
 
 int uv_poll_stop(uv_poll_t* handle) {
-  assert(!(handle->flags & (UV_CLOSING | UV_CLOSED)));
+  assert(!uv__is_closing(handle));
   uv__poll_stop(handle);
   return 0;
 }
@@ -102,7 +102,7 @@ int uv_poll_start(uv_poll_t* handle, int pevents, uv_poll_cb poll_cb) {
   int events;
 
   assert((pevents & ~(UV_READABLE | UV_WRITABLE | UV_DISCONNECT)) == 0);
-  assert(!(handle->flags & (UV_CLOSING | UV_CLOSED)));
+  assert(!uv__is_closing(handle));
 
   uv__poll_stop(handle);
 
diff --git a/src/unix/process.c b/src/unix/process.c
index 45f5b45..f2fe305 100644
--- a/src/unix/process.c
+++ b/src/unix/process.c
@@ -323,7 +323,7 @@ static void uv__process_child_init(const uv_process_options_t* options,
     }
 
     if (fd == use_fd)
-      uv__cloexec(use_fd, 0);
+      uv__cloexec_fcntl(use_fd, 0);
     else
       fd = dup2(use_fd, fd);
 
@@ -333,7 +333,7 @@ static void uv__process_child_init(const uv_process_options_t* options,
     }
 
     if (fd <= 2)
-      uv__nonblock(fd, 0);
+      uv__nonblock_fcntl(fd, 0);
 
     if (close_fd >= stdio_count)
       uv__close(close_fd);
diff --git a/src/unix/proctitle.c b/src/unix/proctitle.c
index 08d875f..9160f7e 100644
--- a/src/unix/proctitle.c
+++ b/src/unix/proctitle.c
@@ -48,9 +48,15 @@ char** uv_setup_args(int argc, char** argv) {
   for (i = 0; i < argc; i++)
     size += strlen(argv[i]) + 1;
 
+#if defined(__MVS__)
+  /* argv is not adjacent. So just use argv[0] */
+  process_title.str = argv[0];
+  process_title.len = strlen(argv[0]);
+#else
   process_title.str = argv[0];
   process_title.len = argv[argc - 1] + strlen(argv[argc - 1]) - argv[0];
   assert(process_title.len + 1 == size);  /* argv memory should be adjacent. */
+#endif
 
   /* Add space for the argv pointers. */
   size += (argc + 1) * sizeof(char*);
diff --git a/src/unix/pthread-barrier.c b/src/unix/pthread-barrier.c
index f57bf25..b6e604d 100644
--- a/src/unix/pthread-barrier.c
+++ b/src/unix/pthread-barrier.c
@@ -73,7 +73,8 @@ int pthread_barrier_wait(pthread_barrier_t* barrier) {
   if (++b->in == b->threshold) {
     b->in = 0;
     b->out = b->threshold - 1;
-    assert(pthread_cond_signal(&b->cond) == 0);
+    rc = pthread_cond_signal(&b->cond);
+    assert(rc == 0);
 
     pthread_mutex_unlock(&b->mutex);
     return PTHREAD_BARRIER_SERIAL_THREAD;
diff --git a/src/unix/signal.c b/src/unix/signal.c
index d82b9b7..dbd8f86 100644
--- a/src/unix/signal.c
+++ b/src/unix/signal.c
@@ -43,7 +43,7 @@ static int uv__signal_compare(uv_signal_t* w1, uv_signal_t* w2);
 static void uv__signal_stop(uv_signal_t* handle);
 
 
-static pthread_once_t uv__signal_global_init_guard = PTHREAD_ONCE_INIT;
+static uv_once_t uv__signal_global_init_guard = UV_ONCE_INIT;
 static struct uv__signal_tree_s uv__signal_tree =
     RB_INITIALIZER(uv__signal_tree);
 static int uv__signal_lock_pipefd[2];
@@ -64,7 +64,7 @@ static void uv__signal_global_init(void) {
 
 
 void uv__signal_global_once_init(void) {
-  pthread_once(&uv__signal_global_init_guard, uv__signal_global_init);
+  uv_once(&uv__signal_global_init_guard, uv__signal_global_init);
 }
 
 
@@ -290,7 +290,7 @@ int uv_signal_start(uv_signal_t* handle, uv_signal_cb signal_cb, int signum) {
   sigset_t saved_sigmask;
   int err;
 
-  assert(!(handle->flags & (UV_CLOSING | UV_CLOSED)));
+  assert(!uv__is_closing(handle));
 
   /* If the user supplies signum == 0, then return an error already. If the
    * signum is otherwise invalid then uv__signal_register will find out
@@ -434,7 +434,7 @@ static int uv__signal_compare(uv_signal_t* w1, uv_signal_t* w2) {
 
 
 int uv_signal_stop(uv_signal_t* handle) {
-  assert(!(handle->flags & (UV_CLOSING | UV_CLOSED)));
+  assert(!uv__is_closing(handle));
   uv__signal_stop(handle);
   return 0;
 }
diff --git a/src/unix/stream.c b/src/unix/stream.c
index d20d0bc..7059df1 100644
--- a/src/unix/stream.c
+++ b/src/unix/stream.c
@@ -390,7 +390,7 @@ failed_malloc:
 
 
 int uv__stream_open(uv_stream_t* stream, int fd, int flags) {
-#if defined(__APPLE__)
+#if defined(__APPLE__) || defined(__MVS__)
   int enable;
 #endif
 
@@ -409,7 +409,7 @@ int uv__stream_open(uv_stream_t* stream, int fd, int flags) {
       return -errno;
   }
 
-#if defined(__APPLE__)
+#if defined(__APPLE__) || defined(__MVS__)
   enable = 1;
   if (setsockopt(fd, SOL_SOCKET, SO_OOBINLINE, &enable, sizeof(enable)) &&
       errno != ENOTSOCK &&
@@ -1194,6 +1194,30 @@ static void uv__read(uv_stream_t* stream) {
           return;
         }
       }
+
+#if defined(__MVS__)
+      if (is_ipc && msg.msg_controllen > 0) {
+        uv_buf_t blankbuf;
+        int nread;
+        struct iovec *old;
+
+        blankbuf.base = 0;
+        blankbuf.len = 0;
+        old = msg.msg_iov;
+        msg.msg_iov = (struct iovec*) &blankbuf;
+        nread = 0;
+        do {
+          nread = uv__recvmsg(uv__stream_fd(stream), &msg, 0);
+          err = uv__stream_recv_cmsg(stream, &msg);
+          if (err != 0) {
+            stream->read_cb(stream, err, &buf);
+            msg.msg_iov = old;
+            return;
+          }
+        } while (nread == 0 && msg.msg_controllen > 0);
+        msg.msg_iov = old;
+      }
+#endif
       stream->read_cb(stream, nread, &buf);
 
       /* Return if we didn't fill the buffer, there is no more data to read. */
@@ -1221,8 +1245,7 @@ int uv_shutdown(uv_shutdown_t* req, uv_stream_t* stream, uv_shutdown_cb cb) {
   if (!(stream->flags & UV_STREAM_WRITABLE) ||
       stream->flags & UV_STREAM_SHUT ||
       stream->flags & UV_STREAM_SHUTTING ||
-      stream->flags & UV_CLOSED ||
-      stream->flags & UV_CLOSING) {
+      uv__is_closing(stream)) {
     return -ENOTCONN;
   }
 
diff --git a/src/unix/sunos.c b/src/unix/sunos.c
index 3e7a759..a43f7f1 100644
--- a/src/unix/sunos.c
+++ b/src/unix/sunos.c
@@ -695,6 +695,11 @@ void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count) {
   uv__free(cpu_infos);
 }
 
+#ifdef SUNOS_NO_IFADDRS
+int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
+  return -ENOSYS;
+}
+#else  /* SUNOS_NO_IFADDRS */
 /*
  * Inspired By:
  * https://blogs.oracle.com/paulie/entry/retrieving_mac_address_in_solaris
@@ -742,9 +747,6 @@ static int uv__set_phys_addr(uv_interface_address_t* address,
 }
 
 int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
-#ifdef SUNOS_NO_IFADDRS
-  return -ENOSYS;
-#else
   uv_interface_address_t* address;
   struct ifaddrs* addrs;
   struct ifaddrs* ent;
@@ -805,9 +807,8 @@ int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
   freeifaddrs(addrs);
 
   return 0;
-#endif  /* SUNOS_NO_IFADDRS */
 }
-
+#endif  /* SUNOS_NO_IFADDRS */
 
 void uv_free_interface_addresses(uv_interface_address_t* addresses,
   int count) {
diff --git a/src/unix/thread.c b/src/unix/thread.c
index 52989f7..a9b5e4c 100644
--- a/src/unix/thread.c
+++ b/src/unix/thread.c
@@ -40,28 +40,8 @@
 #undef NANOSEC
 #define NANOSEC ((uint64_t) 1e9)
 
-struct thread_ctx {
-  void (*entry)(void* arg);
-  void* arg;
-};
-
-
-static void* uv__thread_start(void *arg)
-{
-  struct thread_ctx *ctx_p;
-  struct thread_ctx ctx;
-
-  ctx_p = arg;
-  ctx = *ctx_p;
-  uv__free(ctx_p);
-  ctx.entry(ctx.arg);
-
-  return 0;
-}
-
 
 int uv_thread_create(uv_thread_t *tid, void (*entry)(void *arg), void *arg) {
-  struct thread_ctx* ctx;
   int err;
   pthread_attr_t* attr;
 #if defined(__APPLE__)
@@ -69,13 +49,6 @@ int uv_thread_create(uv_thread_t *tid, void (*entry)(void *arg), void *arg) {
   struct rlimit lim;
 #endif
 
-  ctx = uv__malloc(sizeof(*ctx));
-  if (ctx == NULL)
-    return UV_ENOMEM;
-
-  ctx->entry = entry;
-  ctx->arg = arg;
-
   /* On OSX threads other than the main thread are created with a reduced stack
    * size by default, adjust it to RLIMIT_STACK.
    */
@@ -99,14 +72,11 @@ int uv_thread_create(uv_thread_t *tid, void (*entry)(void *arg), void *arg) {
   attr = NULL;
 #endif
 
-  err = pthread_create(tid, attr, uv__thread_start, ctx);
+  err = pthread_create(tid, attr, (void*(*)(void*)) entry, arg);
 
   if (attr != NULL)
     pthread_attr_destroy(attr);
 
-  if (err)
-    uv__free(ctx);
-
   return -err;
 }
 
diff --git a/src/uv-common.c b/src/uv-common.c
index 434a502..bc7d137 100644
--- a/src/uv-common.c
+++ b/src/uv-common.c
@@ -512,8 +512,18 @@ void uv__fs_scandir_cleanup(uv_fs_t* req) {
 int uv_fs_scandir_next(uv_fs_t* req, uv_dirent_t* ent) {
   uv__dirent_t** dents;
   uv__dirent_t* dent;
+  unsigned int* nbufs;
 
-  unsigned int* nbufs = uv__get_nbufs(req);
+  /* Check to see if req passed */
+  if (req->result < 0)
+    return req->result;
+
+  /* Ptr will be null if req was canceled or no files found */
+  if (!req->ptr)
+    return UV_EOF;
+
+  nbufs = uv__get_nbufs(req);
+  assert(nbufs);
 
   dents = req->ptr;
 
@@ -613,7 +623,9 @@ uv_loop_t* uv_loop_new(void) {
 int uv_loop_close(uv_loop_t* loop) {
   QUEUE* q;
   uv_handle_t* h;
+#ifndef NDEBUG
   void* saved_data;
+#endif
 
   if (!QUEUE_EMPTY(&(loop)->active_reqs))
     return UV_EBUSY;
diff --git a/src/win/core.c b/src/win/core.c
index 9d00afc..e84186d 100644
--- a/src/win/core.c
+++ b/src/win/core.c
@@ -35,10 +35,6 @@
 #include "handle-inl.h"
 #include "req-inl.h"
 
-
-static uv_loop_t default_loop_struct;
-static uv_loop_t* default_loop_ptr;
-
 /* uv_once initialization guards */
 static uv_once_t uv_init_guard_ = UV_ONCE_INIT;
 
diff --git a/src/win/error.c b/src/win/error.c
index c512f35..642d111 100644
--- a/src/win/error.c
+++ b/src/win/error.c
@@ -71,6 +71,7 @@ int uv_translate_sys_error(int sys_errno) {
   switch (sys_errno) {
     case ERROR_NOACCESS:                    return UV_EACCES;
     case WSAEACCES:                         return UV_EACCES;
+    case ERROR_ELEVATION_REQUIRED:          return UV_EACCES;
     case ERROR_ADDRESS_ALREADY_ASSOCIATED:  return UV_EADDRINUSE;
     case WSAEADDRINUSE:                     return UV_EADDRINUSE;
     case WSAEADDRNOTAVAIL:                  return UV_EADDRNOTAVAIL;
diff --git a/src/win/fs-event.c b/src/win/fs-event.c
index 03e4adc..05fc1d0 100644
--- a/src/win/fs-event.c
+++ b/src/win/fs-event.c
@@ -188,7 +188,6 @@ int uv_fs_event_start(uv_fs_event_t* handle,
 
   if (is_path_dir) {
      /* path is a directory, so that's the directory that we will watch. */
-    handle->dirw = pathw;
     dir_to_watch = pathw;
   } else {
     /*
@@ -274,6 +273,8 @@ int uv_fs_event_start(uv_fs_event_t* handle,
     goto error;
   }
 
+  assert(is_path_dir ? pathw != NULL : pathw == NULL);
+  handle->dirw = pathw;
   handle->req_pending = 1;
   return 0;
 
diff --git a/src/win/fs.c b/src/win/fs.c
index f1711ac..6902d4f 100644
--- a/src/win/fs.c
+++ b/src/win/fs.c
@@ -123,7 +123,7 @@ INLINE static int fs__capture_path(uv_fs_t* req, const char* path,
     const char* new_path, const int copy_path) {
   char* buf;
   char* pos;
-  ssize_t buf_sz = 0, path_len, pathw_len = 0, new_pathw_len = 0;
+  ssize_t buf_sz = 0, path_len = 0, pathw_len = 0, new_pathw_len = 0;
 
   /* new_path can only be set if path is also set. */
   assert(new_path == NULL || path != NULL);
@@ -403,7 +403,6 @@ void fs__open(uv_fs_t* req) {
   switch (flags & (_O_RDONLY | _O_WRONLY | _O_RDWR)) {
   case _O_RDONLY:
     access = FILE_GENERIC_READ;
-    attributes |= FILE_FLAG_BACKUP_SEMANTICS;
     break;
   case _O_WRONLY:
     access = FILE_GENERIC_WRITE;
@@ -418,7 +417,6 @@ void fs__open(uv_fs_t* req) {
   if (flags & _O_APPEND) {
     access &= ~FILE_WRITE_DATA;
     access |= FILE_APPEND_DATA;
-    attributes &= ~FILE_FLAG_BACKUP_SEMANTICS;
   }
 
   /*
diff --git a/src/win/getaddrinfo.c b/src/win/getaddrinfo.c
index 744f8e0..c13bfec 100644
--- a/src/win/getaddrinfo.c
+++ b/src/win/getaddrinfo.c
@@ -262,8 +262,7 @@ int uv_getaddrinfo(uv_loop_t* loop,
   int err;
 
   if (req == NULL || (node == NULL && service == NULL)) {
-    err = WSAEINVAL;
-    goto error;
+    return UV_EINVAL;
   }
 
   uv_req_init(loop, (uv_req_t*)req);
diff --git a/src/win/process-stdio.c b/src/win/process-stdio.c
index e3c06f5..032e309 100644
--- a/src/win/process-stdio.c
+++ b/src/win/process-stdio.c
@@ -372,6 +372,7 @@ int uv__stdio_create(uv_loop_t* loop,
 
           case FILE_TYPE_PIPE:
             CHILD_STDIO_CRT_FLAGS(buffer, i) = FOPEN | FPIPE;
+            break;
 
           case FILE_TYPE_CHAR:
           case FILE_TYPE_REMOTE:
diff --git a/src/win/process.c b/src/win/process.c
index 855c374..bdf88d2 100644
--- a/src/win/process.c
+++ b/src/win/process.c
@@ -492,7 +492,7 @@ WCHAR* quote_cmd_arg(const WCHAR *source, WCHAR *target) {
    *   input : hello\\"world
    *   output: "hello\\\\\"world"
    *   input : hello world\
-   *   output: "hello world\"
+   *   output: "hello world\\"
    */
 
   *(target++) = L'"';
diff --git a/src/win/signal.c b/src/win/signal.c
index 2c64a55..af7974c 100644
--- a/src/win/signal.c
+++ b/src/win/signal.c
@@ -30,12 +30,14 @@
 RB_HEAD(uv_signal_tree_s, uv_signal_s);
 
 static struct uv_signal_tree_s uv__signal_tree = RB_INITIALIZER(uv__signal_tree);
-static ssize_t volatile uv__signal_control_handler_refs = 0;
 static CRITICAL_SECTION uv__signal_lock;
 
+static BOOL WINAPI uv__signal_control_handler(DWORD type);
 
 void uv_signals_init() {
   InitializeCriticalSection(&uv__signal_lock);
+  if (!SetConsoleCtrlHandler(uv__signal_control_handler, TRUE))
+    abort();
 }
 
 
@@ -125,102 +127,6 @@ static BOOL WINAPI uv__signal_control_handler(DWORD type) {
 }
 
 
-static int uv__signal_register_control_handler() {
-  /* When this function is called, the uv__signal_lock must be held. */
-
-  /* If the console control handler has already been hooked, just add a */
-  /* reference. */
-  if (uv__signal_control_handler_refs > 0) {
-    uv__signal_control_handler_refs++;
-    return 0;
-  }
-
-  if (!SetConsoleCtrlHandler(uv__signal_control_handler, TRUE))
-    return GetLastError();
-
-  uv__signal_control_handler_refs++;
-
-  return 0;
-}
-
-
-static void uv__signal_unregister_control_handler() {
-  /* When this function is called, the uv__signal_lock must be held. */
-  BOOL r;
-
-  /* Don't unregister if the number of console control handlers exceeds one. */
-  /* Just remove a reference in that case. */
-  if (uv__signal_control_handler_refs > 1) {
-    uv__signal_control_handler_refs--;
-    return;
-  }
-
-  assert(uv__signal_control_handler_refs == 1);
-
-  r = SetConsoleCtrlHandler(uv__signal_control_handler, FALSE);
-  /* This should never fail; if it does it is probably a bug in libuv. */
-  assert(r);
-
-  uv__signal_control_handler_refs--;
-}
-
-
-static int uv__signal_register(int signum) {
-  switch (signum) {
-    case SIGINT:
-    case SIGBREAK:
-    case SIGHUP:
-      return uv__signal_register_control_handler();
-
-    case SIGWINCH:
-      /* SIGWINCH is generated in tty.c. No need to register anything. */
-      return 0;
-
-    case SIGILL:
-    case SIGABRT_COMPAT:
-    case SIGFPE:
-    case SIGSEGV:
-    case SIGTERM:
-    case SIGABRT:
-      /* Signal is never raised. */
-      return 0;
-
-    default:
-      /* Invalid signal. */
-      return ERROR_INVALID_PARAMETER;
-  }
-}
-
-
-static void uv__signal_unregister(int signum) {
-  switch (signum) {
-    case SIGINT:
-    case SIGBREAK:
-    case SIGHUP:
-      uv__signal_unregister_control_handler();
-      return;
-
-    case SIGWINCH:
-      /* SIGWINCH is generated in tty.c. No need to unregister anything. */
-      return;
-
-    case SIGILL:
-    case SIGABRT_COMPAT:
-    case SIGFPE:
-    case SIGSEGV:
-    case SIGTERM:
-    case SIGABRT:
-      /* Nothing is registered for this signal. */
-      return;
-
-    default:
-      /* Libuv bug. */
-      assert(0 && "Invalid signum");
-      return;
-  }
-}
-
-
 int uv_signal_init(uv_loop_t* loop, uv_signal_t* handle) {
   uv_req_t* req;
 
@@ -247,8 +153,6 @@ int uv_signal_stop(uv_signal_t* handle) {
 
   EnterCriticalSection(&uv__signal_lock);
 
-  uv__signal_unregister(handle->signum);
-
   removed_handle = RB_REMOVE(uv_signal_tree_s, &uv__signal_tree, handle);
   assert(removed_handle == handle);
 
@@ -262,14 +166,9 @@ int uv_signal_stop(uv_signal_t* handle) {
 
 
 int uv_signal_start(uv_signal_t* handle, uv_signal_cb signal_cb, int signum) {
-  int err;
-
-  /* If the user supplies signum == 0, then return an error already. If the */
-  /* signum is otherwise invalid then uv__signal_register will find out */
-  /* eventually. */
-  if (signum == 0) {
+  /* Test for invalid signal values. */
+  if (signum != SIGWINCH && (signum <= 0 || signum >= NSIG))
     return UV_EINVAL;
-  }
 
   /* Short circuit: if the signal watcher is already watching {signum} don't */
   /* go through the process of deregistering and registering the handler. */
@@ -289,13 +188,6 @@ int uv_signal_start(uv_signal_t* handle, uv_signal_cb signal_cb, int signum) {
 
   EnterCriticalSection(&uv__signal_lock);
 
-  err = uv__signal_register(signum);
-  if (err) {
-    /* Uh-oh, didn't work. */
-    LeaveCriticalSection(&uv__signal_lock);
-    return uv_translate_sys_error(err);
-  }
-
   handle->signum = signum;
   RB_INSERT(uv_signal_tree_s, &uv__signal_tree, handle);
 
diff --git a/src/win/tty.c b/src/win/tty.c
index 18d68d0..1b7adf6 100644
--- a/src/win/tty.c
+++ b/src/win/tty.c
@@ -56,6 +56,7 @@
 #define ANSI_BACKSLASH_SEEN   0x80
 
 #define MAX_INPUT_BUFFER_LENGTH 8192
+#define MAX_CONSOLE_CHAR 8192
 
 #ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
 #define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
@@ -1003,6 +1004,9 @@ int uv_tty_read_start(uv_tty_t* handle, uv_alloc_cb alloc_cb,
   if (handle->tty.rd.last_key_len > 0) {
     SET_REQ_SUCCESS(&handle->read_req);
     uv_insert_pending_req(handle->loop, (uv_req_t*) &handle->read_req);
+    /* Make sure no attempt is made to insert it again until it's handled. */
+    handle->flags |= UV_HANDLE_READ_PENDING;
+    handle->reqs_pending++;
     return 0;
   }
 
@@ -1616,17 +1620,29 @@ static int uv_tty_write_bufs(uv_tty_t* handle,
                              DWORD* error) {
   /* We can only write 8k characters at a time. Windows can't handle */
   /* much more characters in a single console write anyway. */
-  WCHAR utf16_buf[8192];
+  WCHAR utf16_buf[MAX_CONSOLE_CHAR];
+  WCHAR* utf16_buffer;
   DWORD utf16_buf_used = 0;
-  unsigned int i;
-
-#define FLUSH_TEXT()                                                \
-  do {                                                              \
-    if (utf16_buf_used > 0) {                                       \
-      uv_tty_emit_text(handle, utf16_buf, utf16_buf_used, error);   \
-      utf16_buf_used = 0;                                           \
-    }                                                               \
-  } while (0)
+  unsigned int i, len, max_len, pos;
+  int allocate = 0;
+
+#define FLUSH_TEXT()                                                 \
+  do {                                                               \
+    pos = 0;                                                         \
+    do {                                                             \
+      len = utf16_buf_used - pos;                                    \
+      if (len > MAX_CONSOLE_CHAR)                                    \
+        len = MAX_CONSOLE_CHAR;                                      \
+      uv_tty_emit_text(handle, &utf16_buffer[pos], len, error);      \
+      pos += len;                                                    \
+    } while (pos < utf16_buf_used);                                  \
+    if (allocate) {                                                  \
+      uv__free(utf16_buffer);                                        \
+      allocate = 0;                                                  \
+      utf16_buffer = utf16_buf;                                      \
+    }                                                                \
+    utf16_buf_used = 0;                                              \
+ } while (0)
 
 #define ENSURE_BUFFER_SPACE(wchars_needed)                          \
   if (wchars_needed > ARRAY_SIZE(utf16_buf) - utf16_buf_used) {     \
@@ -1644,38 +1660,47 @@ static int uv_tty_write_bufs(uv_tty_t* handle,
   /* state. */
   *error = ERROR_SUCCESS;
 
+  utf16_buffer = utf16_buf;
+
   uv_sem_wait(&uv_tty_output_lock);
 
   for (i = 0; i < nbufs; i++) {
     uv_buf_t buf = bufs[i];
     unsigned int j;
 
-  if (uv__vterm_state == UV_SUPPORTED) {
-    utf16_buf_used = MultiByteToWideChar(CP_UTF8,
-                                         0,
-                                         buf.base,
-                                         buf.len,
-                                         NULL,
-                                         0);
+    if (uv__vterm_state == UV_SUPPORTED && buf.len > 0) {
+      utf16_buf_used = MultiByteToWideChar(CP_UTF8,
+                                           0,
+                                           buf.base,
+                                           buf.len,
+                                           NULL,
+                                           0);
+
+      if (utf16_buf_used == 0) {
+        *error = GetLastError();
+        break;
+      }
 
-    if (utf16_buf_used == 0) {
-      *error = GetLastError();
-      break;
-    }
+      max_len = (utf16_buf_used + 1) * sizeof(WCHAR);
+      allocate = max_len > MAX_CONSOLE_CHAR;
+      if (allocate)
+        utf16_buffer = uv__malloc(max_len);
+      if (!MultiByteToWideChar(CP_UTF8,
+                               0,
+                               buf.base,
+                               buf.len,
+                               utf16_buffer,
+                               utf16_buf_used)) {
+        if (allocate)
+          uv__free(utf16_buffer);
+        *error = GetLastError();
+        break;
+      }
 
-    if (!MultiByteToWideChar(CP_UTF8,
-                             0,
-                             buf.base,
-                             buf.len,
-                             utf16_buf,
-                             utf16_buf_used)) {
-      *error = GetLastError();
-      break;
-    }
+      FLUSH_TEXT();
 
-    FLUSH_TEXT();
-    continue;
-  }
+      continue;
+    }
 
     for (j = 0; j < buf.len; j++) {
       unsigned char c = buf.base[j];
diff --git a/src/win/winapi.h b/src/win/winapi.h
index 16d9365..9401676 100644
--- a/src/win/winapi.h
+++ b/src/win/winapi.h
@@ -4145,7 +4145,7 @@ typedef const UNICODE_STRING *PCUNICODE_STRING;
       struct {
         UCHAR  DataBuffer[1];
       } GenericReparseBuffer;
-    } DUMMYUNIONNAME;
+    };
   } REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
 #endif
 
@@ -4153,7 +4153,7 @@ typedef struct _IO_STATUS_BLOCK {
   union {
     NTSTATUS Status;
     PVOID Pointer;
-  } DUMMYUNIONNAME;
+  };
   ULONG_PTR Information;
 } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
 
@@ -4606,6 +4606,10 @@ typedef NTSTATUS (NTAPI *sNtQueryDirectoryFile)
 #endif
 
 /* from winerror.h */
+#ifndef ERROR_ELEVATION_REQUIRED
+# define ERROR_ELEVATION_REQUIRED 740
+#endif
+
 #ifndef ERROR_SYMLINK_NOT_SUPPORTED
 # define ERROR_SYMLINK_NOT_SUPPORTED 1464
 #endif

-----------------------------------------------------------------------

Summary of changes:
 Utilities/cmlibuv/include/pthread-barrier.h  |    2 +
 Utilities/cmlibuv/include/uv-os390.h         |    3 +
 Utilities/cmlibuv/include/uv-unix.h          |    4 +
 Utilities/cmlibuv/include/uv-version.h       |    4 +-
 Utilities/cmlibuv/include/uv-win.h           |    1 +
 Utilities/cmlibuv/include/uv.h               |    2 +
 Utilities/cmlibuv/src/unix/aix.c             |   86 ++-
 Utilities/cmlibuv/src/unix/atomic-ops.h      |   27 +-
 Utilities/cmlibuv/src/unix/core.c            |   18 +-
 Utilities/cmlibuv/src/unix/fs.c              |   57 +-
 Utilities/cmlibuv/src/unix/internal.h        |   12 +-
 Utilities/cmlibuv/src/unix/openbsd.c         |    2 +-
 Utilities/cmlibuv/src/unix/os390-syscalls.c  |  334 +++++++++++
 Utilities/cmlibuv/src/unix/os390-syscalls.h  |   69 +++
 Utilities/cmlibuv/src/unix/os390.c           |  823 ++++++++++++++++++++++++++
 Utilities/cmlibuv/src/unix/poll.c            |    4 +-
 Utilities/cmlibuv/src/unix/process.c         |    4 +-
 Utilities/cmlibuv/src/unix/proctitle.c       |    6 +
 Utilities/cmlibuv/src/unix/pthread-barrier.c |    3 +-
 Utilities/cmlibuv/src/unix/signal.c          |    8 +-
 Utilities/cmlibuv/src/unix/stream.c          |   31 +-
 Utilities/cmlibuv/src/unix/sunos.c           |   11 +-
 Utilities/cmlibuv/src/unix/thread.c          |   32 +-
 Utilities/cmlibuv/src/uv-common.c            |   12 +-
 Utilities/cmlibuv/src/win/core.c             |    4 -
 Utilities/cmlibuv/src/win/error.c            |    1 +
 Utilities/cmlibuv/src/win/fs-event.c         |    3 +-
 Utilities/cmlibuv/src/win/fs.c               |    4 +-
 Utilities/cmlibuv/src/win/getaddrinfo.c      |    3 +-
 Utilities/cmlibuv/src/win/process-stdio.c    |    1 +
 Utilities/cmlibuv/src/win/process.c          |    2 +-
 Utilities/cmlibuv/src/win/signal.c           |  118 +---
 Utilities/cmlibuv/src/win/tty.c              |   91 +--
 Utilities/cmlibuv/src/win/winapi.h           |    4 +
 34 files changed, 1530 insertions(+), 256 deletions(-)
 create mode 100644 Utilities/cmlibuv/src/unix/os390-syscalls.c
 create mode 100644 Utilities/cmlibuv/src/unix/os390-syscalls.h


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list