src/core/ngx_core.h - nginx source code

Data types defined

Macros defined

Source code


  1. /*
  2. * Copyright (C) Igor Sysoev
  3. * Copyright (C) Nginx, Inc.
  4. */


  5. #ifndef _NGX_CORE_H_INCLUDED_
  6. #define _NGX_CORE_H_INCLUDED_


  7. #include <ngx_config.h>


  8. typedef struct ngx_module_s          ngx_module_t;
  9. typedef struct ngx_conf_s            ngx_conf_t;
  10. typedef struct ngx_cycle_s           ngx_cycle_t;
  11. typedef struct ngx_pool_s            ngx_pool_t;
  12. typedef struct ngx_chain_s           ngx_chain_t;
  13. typedef struct ngx_log_s             ngx_log_t;
  14. typedef struct ngx_open_file_s       ngx_open_file_t;
  15. typedef struct ngx_command_s         ngx_command_t;
  16. typedef struct ngx_file_s            ngx_file_t;
  17. typedef struct ngx_event_s           ngx_event_t;
  18. typedef struct ngx_event_aio_s       ngx_event_aio_t;
  19. typedef struct ngx_connection_s      ngx_connection_t;
  20. typedef struct ngx_thread_task_s     ngx_thread_task_t;
  21. typedef struct ngx_ssl_s             ngx_ssl_t;
  22. typedef struct ngx_proxy_protocol_s  ngx_proxy_protocol_t;
  23. typedef struct ngx_quic_stream_s     ngx_quic_stream_t;
  24. typedef struct ngx_ssl_connection_s  ngx_ssl_connection_t;
  25. typedef struct ngx_udp_connection_s  ngx_udp_connection_t;

  26. typedef void (*ngx_event_handler_pt)(ngx_event_t *ev);
  27. typedef void (*ngx_connection_handler_pt)(ngx_connection_t *c);


  28. #define  NGX_OK          0
  29. #define  NGX_ERROR      -1
  30. #define  NGX_AGAIN      -2
  31. #define  NGX_BUSY       -3
  32. #define  NGX_DONE       -4
  33. #define  NGX_DECLINED   -5
  34. #define  NGX_ABORT      -6


  35. #include <ngx_errno.h>
  36. #include <ngx_atomic.h>
  37. #include <ngx_thread.h>
  38. #include <ngx_rbtree.h>
  39. #include <ngx_time.h>
  40. #include <ngx_socket.h>
  41. #include <ngx_string.h>
  42. #include <ngx_files.h>
  43. #include <ngx_shmem.h>
  44. #include <ngx_process.h>
  45. #include <ngx_user.h>
  46. #include <ngx_dlopen.h>
  47. #include <ngx_parse.h>
  48. #include <ngx_parse_time.h>
  49. #include <ngx_log.h>
  50. #include <ngx_alloc.h>
  51. #include <ngx_palloc.h>
  52. #include <ngx_buf.h>
  53. #include <ngx_queue.h>
  54. #include <ngx_array.h>
  55. #include <ngx_list.h>
  56. #include <ngx_hash.h>
  57. #include <ngx_file.h>
  58. #include <ngx_crc.h>
  59. #include <ngx_crc32.h>
  60. #include <ngx_murmurhash.h>
  61. #if (NGX_PCRE)
  62. #include <ngx_regex.h>
  63. #endif
  64. #include <ngx_radix_tree.h>
  65. #include <ngx_times.h>
  66. #include <ngx_rwlock.h>
  67. #include <ngx_shmtx.h>
  68. #include <ngx_slab.h>
  69. #include <ngx_inet.h>
  70. #include <ngx_cycle.h>
  71. #include <ngx_resolver.h>
  72. #if (NGX_OPENSSL)
  73. #include <ngx_event_openssl.h>
  74. #if (NGX_QUIC)
  75. #include <ngx_event_quic.h>
  76. #endif
  77. #endif
  78. #include <ngx_process_cycle.h>
  79. #include <ngx_conf_file.h>
  80. #include <ngx_module.h>
  81. #include <ngx_open_file_cache.h>
  82. #include <ngx_os.h>
  83. #include <ngx_connection.h>
  84. #include <ngx_syslog.h>
  85. #include <ngx_proxy_protocol.h>
  86. #if (NGX_HAVE_BPF)
  87. #include <ngx_bpf.h>
  88. #endif


  89. #define LF     (u_char) '\n'
  90. #define CR     (u_char) '\r'
  91. #define CRLF   "\r\n"


  92. #define ngx_abs(value)       (((value) >= 0) ? (value) : - (value))
  93. #define ngx_max(val1, val2)  ((val1 < val2) ? (val2) : (val1))
  94. #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))

  95. void ngx_cpuinfo(void);

  96. #if (NGX_HAVE_OPENAT)
  97. #define NGX_DISABLE_SYMLINKS_OFF        0
  98. #define NGX_DISABLE_SYMLINKS_ON         1
  99. #define NGX_DISABLE_SYMLINKS_NOTOWNER   2
  100. #endif

  101. #endif /* _NGX_CORE_H_INCLUDED_ */