blob: 91b50db8c2b50749bd2be8b8d9f22747e8daf26f [file] [log] [blame]
Igor Sysoevd90282d2004-09-28 08:34:51 +00001
2/*
Igor Sysoevff8da912004-09-29 16:00:49 +00003 * Copyright (C) Igor Sysoev
Maxim Konovalovf8d59e32012-01-18 15:07:43 +00004 * Copyright (C) Nginx, Inc.
Igor Sysoevd90282d2004-09-28 08:34:51 +00005 */
6
7
Igor Sysoev6de5c2c2002-08-06 16:39:45 +00008#ifndef _NGX_ERRNO_H_INCLUDED_
9#define _NGX_ERRNO_H_INCLUDED_
10
11
12#include <ngx_config.h>
Igor Sysoev1c104622003-06-03 15:42:58 +000013#include <ngx_core.h>
Igor Sysoev6de5c2c2002-08-06 16:39:45 +000014
Igor Sysoev1c104622003-06-03 15:42:58 +000015
16typedef DWORD ngx_err_t;
Igor Sysoev6de5c2c2002-08-06 16:39:45 +000017
Igor Sysoeva58e3ca2002-09-02 14:48:24 +000018#define ngx_errno GetLastError()
Igor Sysoevf2e676a2003-11-16 21:49:42 +000019#define ngx_set_errno(err) SetLastError(err)
Igor Sysoeva58e3ca2002-09-02 14:48:24 +000020#define ngx_socket_errno WSAGetLastError()
21#define ngx_set_socket_errno(err) WSASetLastError(err)
Igor Sysoev6de5c2c2002-08-06 16:39:45 +000022
Igor Sysoev7bdb7202006-04-19 15:30:56 +000023#define NGX_EPERM ERROR_ACCESS_DENIED
Igor Sysoev1c104622003-06-03 15:42:58 +000024#define NGX_ENOENT ERROR_FILE_NOT_FOUND
Igor Sysoevc9538c02009-08-11 14:25:04 +000025#define NGX_ENOPATH ERROR_PATH_NOT_FOUND
Igor Sysoev67cd3362006-11-20 08:51:45 +000026#define NGX_ENOMEM ERROR_NOT_ENOUGH_MEMORY
Igor Sysoev1c104622003-06-03 15:42:58 +000027#define NGX_EACCES ERROR_ACCESS_DENIED
Igor Sysoev524f54f2008-12-10 14:53:45 +000028/* it's seems that ERROR_FILE_EXISTS is not appropriate error code */
Igor Sysoevd43bee82004-11-20 19:52:20 +000029#define NGX_EEXIST ERROR_ALREADY_EXISTS
Igor Sysoev524f54f2008-12-10 14:53:45 +000030/*
31 * could not found cross volume directory move error code,
32 * so use ERROR_WRONG_DISK as stub one
33 */
34#define NGX_EXDEV ERROR_WRONG_DISK
Igor Sysoev1c104622003-06-03 15:42:58 +000035#define NGX_ENOTDIR ERROR_PATH_NOT_FOUND
Igor Sysoev1765f472006-07-07 16:33:19 +000036#define NGX_EISDIR ERROR_CANNOT_MAKE
Igor Sysoev8a2b2fb2006-04-14 09:53:38 +000037#define NGX_ENOSPC ERROR_DISK_FULL
Igor Sysoeva5362982004-03-04 07:04:55 +000038#define NGX_EPIPE EPIPE
Igor Sysoev1c104622003-06-03 15:42:58 +000039#define NGX_EAGAIN WSAEWOULDBLOCK
40#define NGX_EINPROGRESS WSAEINPROGRESS
41#define NGX_EADDRINUSE WSAEADDRINUSE
Igor Sysoeva5362982004-03-04 07:04:55 +000042#define NGX_ECONNABORTED WSAECONNABORTED
43#define NGX_ECONNRESET WSAECONNRESET
44#define NGX_ENOTCONN WSAENOTCONN
Igor Sysoev1c104622003-06-03 15:42:58 +000045#define NGX_ETIMEDOUT WSAETIMEDOUT
Igor Sysoev3646a162004-03-14 20:46:25 +000046#define NGX_ECONNREFUSED WSAECONNREFUSED
Igor Sysoev31eb8c02005-09-23 11:02:22 +000047#define NGX_ENAMETOOLONG ERROR_BAD_PATHNAME
Igor Sysoev02d8e8e2008-01-25 14:57:35 +000048#define NGX_ENETDOWN WSAENETDOWN
49#define NGX_ENETUNREACH WSAENETUNREACH
50#define NGX_EHOSTDOWN WSAEHOSTDOWN
Igor Sysoev3646a162004-03-14 20:46:25 +000051#define NGX_EHOSTUNREACH WSAEHOSTUNREACH
Igor Sysoevf2e676a2003-11-16 21:49:42 +000052#define NGX_ENOMOREFILES ERROR_NO_MORE_FILES
Igor Sysoevfadc7a72009-03-30 14:51:51 +000053#define NGX_EILSEQ ERROR_NO_UNICODE_TRANSLATION
Igor Sysoevf2e676a2003-11-16 21:49:42 +000054
55#define NGX_EALREADY WSAEALREADY
56#define NGX_EINVAL WSAEINVAL
Igor Sysoev6de5c2c2002-08-06 16:39:45 +000057
Igor Sysoev7f31a202010-11-25 11:04:03 +000058
59u_char *ngx_strerror(ngx_err_t err, u_char *errstr, size_t size);
60ngx_uint_t ngx_strerror_init(void);
Igor Sysoev6de5c2c2002-08-06 16:39:45 +000061
62
63#endif /* _NGX_ERRNO_H_INCLUDED_ */