|  |  | 
|  | /* | 
|  | * 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_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_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_ */ |