|  | 
 | /* | 
 |  * Copyright (C) Igor Sysoev | 
 |  * Copyright (C) Nginx, Inc. | 
 |  */ | 
 |  | 
 |  | 
 | #ifndef _NGX_ERRNO_H_INCLUDED_ | 
 | #define _NGX_ERRNO_H_INCLUDED_ | 
 |  | 
 |  | 
 | #include <ngx_config.h> | 
 | #include <ngx_core.h> | 
 |  | 
 |  | 
 | typedef DWORD                      ngx_err_t; | 
 |  | 
 | #define ngx_errno                  GetLastError() | 
 | #define ngx_set_errno(err)         SetLastError(err) | 
 | #define ngx_socket_errno           WSAGetLastError() | 
 | #define ngx_set_socket_errno(err)  WSASetLastError(err) | 
 |  | 
 | #define NGX_EPERM                  ERROR_ACCESS_DENIED | 
 | #define NGX_ENOENT                 ERROR_FILE_NOT_FOUND | 
 | #define NGX_ENOPATH                ERROR_PATH_NOT_FOUND | 
 | #define NGX_ENOMEM                 ERROR_NOT_ENOUGH_MEMORY | 
 | #define NGX_EACCES                 ERROR_ACCESS_DENIED | 
 | /* it's seems that ERROR_FILE_EXISTS is not appropriate error code */ | 
 | #define NGX_EEXIST                 ERROR_ALREADY_EXISTS | 
 | /* | 
 |  * could not found cross volume directory move error code, | 
 |  * so use ERROR_WRONG_DISK as stub one | 
 |  */ | 
 | #define NGX_EXDEV                  ERROR_WRONG_DISK | 
 | #define NGX_ENOTDIR                ERROR_PATH_NOT_FOUND | 
 | #define NGX_EISDIR                 ERROR_CANNOT_MAKE | 
 | #define NGX_ENOSPC                 ERROR_DISK_FULL | 
 | #define NGX_EPIPE                  EPIPE | 
 | #define NGX_EAGAIN                 WSAEWOULDBLOCK | 
 | #define NGX_EINPROGRESS            WSAEINPROGRESS | 
 | #define NGX_EOPNOTSUPP             WSAEOPNOTSUPP | 
 | #define NGX_EADDRINUSE             WSAEADDRINUSE | 
 | #define NGX_ECONNABORTED           WSAECONNABORTED | 
 | #define NGX_ECONNRESET             WSAECONNRESET | 
 | #define NGX_ENOTCONN               WSAENOTCONN | 
 | #define NGX_ETIMEDOUT              WSAETIMEDOUT | 
 | #define NGX_ECONNREFUSED           WSAECONNREFUSED | 
 | #define NGX_ENAMETOOLONG           ERROR_BAD_PATHNAME | 
 | #define NGX_ENETDOWN               WSAENETDOWN | 
 | #define NGX_ENETUNREACH            WSAENETUNREACH | 
 | #define NGX_EHOSTDOWN              WSAEHOSTDOWN | 
 | #define NGX_EHOSTUNREACH           WSAEHOSTUNREACH | 
 | #define NGX_ENOMOREFILES           ERROR_NO_MORE_FILES | 
 | #define NGX_EILSEQ                 ERROR_NO_UNICODE_TRANSLATION | 
 | #define NGX_ELOOP                  0 | 
 | #define NGX_EBADF                  WSAEBADF | 
 |  | 
 | #define NGX_EALREADY               WSAEALREADY | 
 | #define NGX_EINVAL                 WSAEINVAL | 
 | #define NGX_EMFILE                 WSAEMFILE | 
 | #define NGX_ENFILE                 WSAEMFILE | 
 |  | 
 |  | 
 | u_char *ngx_strerror(ngx_err_t err, u_char *errstr, size_t size); | 
 | ngx_int_t ngx_strerror_init(void); | 
 |  | 
 |  | 
 | #endif /* _NGX_ERRNO_H_INCLUDED_ */ |