1e18a033bSKonstantin Ananyev
2e18a033bSKonstantin Ananyev/*
3e18a033bSKonstantin Ananyev * Copyright (C) Igor Sysoev
4e18a033bSKonstantin Ananyev * Copyright (C) Nginx, Inc.
5e18a033bSKonstantin Ananyev */
6e18a033bSKonstantin Ananyev
7e18a033bSKonstantin Ananyev
8e18a033bSKonstantin Ananyev#ifndef _NGX_ERRNO_H_INCLUDED_
9e18a033bSKonstantin Ananyev#define _NGX_ERRNO_H_INCLUDED_
10e18a033bSKonstantin Ananyev
11e18a033bSKonstantin Ananyev
12e18a033bSKonstantin Ananyev#include <ngx_config.h>
13e18a033bSKonstantin Ananyev#include <ngx_core.h>
14e18a033bSKonstantin Ananyev
15e18a033bSKonstantin Ananyev
16e18a033bSKonstantin Ananyevtypedef int               ngx_err_t;
17e18a033bSKonstantin Ananyev
18e18a033bSKonstantin Ananyev#define NGX_EPERM         EPERM
19e18a033bSKonstantin Ananyev#define NGX_ENOENT        ENOENT
20e18a033bSKonstantin Ananyev#define NGX_ENOPATH       ENOENT
21e18a033bSKonstantin Ananyev#define NGX_ESRCH         ESRCH
22e18a033bSKonstantin Ananyev#define NGX_EINTR         EINTR
23e18a033bSKonstantin Ananyev#define NGX_ECHILD        ECHILD
24e18a033bSKonstantin Ananyev#define NGX_ENOMEM        ENOMEM
25e18a033bSKonstantin Ananyev#define NGX_EACCES        EACCES
26e18a033bSKonstantin Ananyev#define NGX_EBUSY         EBUSY
27e18a033bSKonstantin Ananyev#define NGX_EEXIST        EEXIST
28e18a033bSKonstantin Ananyev#define NGX_EEXIST_FILE   EEXIST
29e18a033bSKonstantin Ananyev#define NGX_EXDEV         EXDEV
30e18a033bSKonstantin Ananyev#define NGX_ENOTDIR       ENOTDIR
31e18a033bSKonstantin Ananyev#define NGX_EISDIR        EISDIR
32e18a033bSKonstantin Ananyev#define NGX_EINVAL        EINVAL
33e18a033bSKonstantin Ananyev#define NGX_ENFILE        ENFILE
34e18a033bSKonstantin Ananyev#define NGX_EMFILE        EMFILE
35e18a033bSKonstantin Ananyev#define NGX_ENOSPC        ENOSPC
36e18a033bSKonstantin Ananyev#define NGX_EPIPE         EPIPE
37e18a033bSKonstantin Ananyev#define NGX_EINPROGRESS   EINPROGRESS
38e18a033bSKonstantin Ananyev#define NGX_ENOPROTOOPT   ENOPROTOOPT
39e18a033bSKonstantin Ananyev#define NGX_EOPNOTSUPP    EOPNOTSUPP
40e18a033bSKonstantin Ananyev#define NGX_EADDRINUSE    EADDRINUSE
41e18a033bSKonstantin Ananyev#define NGX_ECONNABORTED  ECONNABORTED
42e18a033bSKonstantin Ananyev#define NGX_ECONNRESET    ECONNRESET
43e18a033bSKonstantin Ananyev#define NGX_ENOTCONN      ENOTCONN
44e18a033bSKonstantin Ananyev#define NGX_ETIMEDOUT     ETIMEDOUT
45e18a033bSKonstantin Ananyev#define NGX_ECONNREFUSED  ECONNREFUSED
46e18a033bSKonstantin Ananyev#define NGX_ENAMETOOLONG  ENAMETOOLONG
47e18a033bSKonstantin Ananyev#define NGX_ENETDOWN      ENETDOWN
48e18a033bSKonstantin Ananyev#define NGX_ENETUNREACH   ENETUNREACH
49e18a033bSKonstantin Ananyev#define NGX_EHOSTDOWN     EHOSTDOWN
50e18a033bSKonstantin Ananyev#define NGX_EHOSTUNREACH  EHOSTUNREACH
51e18a033bSKonstantin Ananyev#define NGX_ENOSYS        ENOSYS
52e18a033bSKonstantin Ananyev#define NGX_ECANCELED     ECANCELED
53e18a033bSKonstantin Ananyev#define NGX_EILSEQ        EILSEQ
54e18a033bSKonstantin Ananyev#define NGX_ENOMOREFILES  0
55e18a033bSKonstantin Ananyev#define NGX_ELOOP         ELOOP
56e18a033bSKonstantin Ananyev#define NGX_EBADF         EBADF
57e18a033bSKonstantin Ananyev
58e18a033bSKonstantin Ananyev#if (NGX_HAVE_OPENAT)
59e18a033bSKonstantin Ananyev#define NGX_EMLINK        EMLINK
60e18a033bSKonstantin Ananyev#endif
61e18a033bSKonstantin Ananyev
62e18a033bSKonstantin Ananyev#if (__hpux__)
63e18a033bSKonstantin Ananyev#define NGX_EAGAIN        EWOULDBLOCK
64e18a033bSKonstantin Ananyev#else
65e18a033bSKonstantin Ananyev#define NGX_EAGAIN        EAGAIN
66e18a033bSKonstantin Ananyev#endif
67e18a033bSKonstantin Ananyev
68e18a033bSKonstantin Ananyev
69e18a033bSKonstantin Ananyev#define ngx_errno                  errno
70e18a033bSKonstantin Ananyev#define ngx_socket_errno           errno
71e18a033bSKonstantin Ananyev#define ngx_set_errno(err)         errno = err
72e18a033bSKonstantin Ananyev#define ngx_set_socket_errno(err)  errno = err
73e18a033bSKonstantin Ananyev
74e18a033bSKonstantin Ananyev
75e18a033bSKonstantin Ananyevu_char *ngx_strerror(ngx_err_t err, u_char *errstr, size_t size);
76e18a033bSKonstantin Ananyevngx_int_t ngx_strerror_init(void);
77e18a033bSKonstantin Ananyev
78e18a033bSKonstantin Ananyev
79e18a033bSKonstantin Ananyev#endif /* _NGX_ERRNO_H_INCLUDED_ */
80