~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Nginx/core/ngx_cycle.h

Version: ~ [ nginx-0.8.20 ] ~ [ nginx-0.7.62 ] ~ [ nginx-0.6.39 ] ~

  1 
  2 /*
  3  * Copyright (C) Igor Sysoev
  4  */
  5 
  6 
  7 #ifndef _NGX_CYCLE_H_INCLUDED_
  8 #define _NGX_CYCLE_H_INCLUDED_
  9 
 10 
 11 #include <ngx_config.h>
 12 #include <ngx_core.h>
 13 
 14 
 15 #ifndef NGX_CYCLE_POOL_SIZE
 16 #define NGX_CYCLE_POOL_SIZE     16384
 17 #endif
 18 
 19 
 20 #define NGX_DEBUG_POINTS_STOP   1
 21 #define NGX_DEBUG_POINTS_ABORT  2
 22 
 23 
 24 typedef struct ngx_shm_zone_s  ngx_shm_zone_t;
 25 
 26 typedef ngx_int_t (*ngx_shm_zone_init_pt) (ngx_shm_zone_t *zone, void *data);
 27 
 28 struct ngx_shm_zone_s {
 29     void                     *data;
 30     ngx_shm_t                 shm;
 31     ngx_shm_zone_init_pt      init;
 32     void                     *tag;
 33 };
 34 
 35 
 36 struct ngx_cycle_s {
 37     void                  ****conf_ctx;
 38     ngx_pool_t               *pool;
 39 
 40     ngx_log_t                *log;
 41     ngx_log_t                 new_log;
 42 
 43     ngx_connection_t        **files;
 44     ngx_connection_t         *free_connections;
 45     ngx_uint_t                free_connection_n;
 46 
 47     ngx_array_t               listening;
 48     ngx_array_t               pathes;
 49     ngx_list_t                open_files;
 50     ngx_list_t                shared_memory;
 51 
 52     ngx_uint_t                connection_n;
 53     ngx_uint_t                files_n;
 54 
 55     ngx_connection_t         *connections;
 56     ngx_event_t              *read_events;
 57     ngx_event_t              *write_events;
 58 
 59     ngx_cycle_t              *old_cycle;
 60 
 61     ngx_str_t                 conf_file;
 62     ngx_str_t                 conf_param;
 63     ngx_str_t                 conf_prefix;
 64     ngx_str_t                 prefix;
 65     ngx_str_t                 lock_file;
 66     ngx_str_t                 hostname;
 67 };
 68 
 69 
 70 typedef struct {
 71      ngx_flag_t               daemon;
 72      ngx_flag_t               master;
 73 
 74      ngx_msec_t               timer_resolution;
 75 
 76      ngx_int_t                worker_processes;
 77      ngx_int_t                debug_points;
 78 
 79      ngx_int_t                rlimit_nofile;
 80      ngx_int_t                rlimit_sigpending;
 81      size_t                   rlimit_core;
 82 
 83      int                      priority;
 84 
 85      ngx_uint_t               cpu_affinity_n;
 86      u_long                  *cpu_affinity;
 87 
 88      char                    *username;
 89      ngx_uid_t                user;
 90      ngx_gid_t                group;
 91 
 92      ngx_str_t                working_directory;
 93      ngx_str_t                lock_file;
 94 
 95      ngx_str_t                pid;
 96      ngx_str_t                oldpid;
 97 
 98      ngx_array_t              env;
 99      char                   **environment;
100 
101 #if (NGX_THREADS)
102      ngx_int_t                worker_threads;
103      size_t                   thread_stack_size;
104 #endif
105 
106 } ngx_core_conf_t;
107 
108 
109 typedef struct {
110      ngx_pool_t              *pool;   /* pcre's malloc() pool */
111 } ngx_core_tls_t;
112 
113 
114 #define ngx_is_init_cycle(cycle)  (cycle->conf_ctx == NULL)
115 
116 
117 ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle);
118 ngx_int_t ngx_create_pidfile(ngx_str_t *name, ngx_log_t *log);
119 void ngx_delete_pidfile(ngx_cycle_t *cycle);
120 ngx_int_t ngx_signal_process(ngx_cycle_t *cycle, char *sig);
121 void ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user);
122 char **ngx_set_environment(ngx_cycle_t *cycle, ngx_uint_t *last);
123 ngx_pid_t ngx_exec_new_binary(ngx_cycle_t *cycle, char *const *argv);
124 u_long ngx_get_cpu_affinity(ngx_uint_t n);
125 ngx_shm_zone_t *ngx_shared_memory_add(ngx_conf_t *cf, ngx_str_t *name,
126     size_t size, void *tag);
127 
128 
129 extern volatile ngx_cycle_t  *ngx_cycle;
130 extern ngx_array_t            ngx_old_cycles;
131 extern ngx_module_t           ngx_core_module;
132 extern ngx_uint_t             ngx_test_config;
133 #if (NGX_THREADS)
134 extern ngx_tls_key_t          ngx_core_tls_key;
135 #endif
136 
137 
138 #endif /* _NGX_CYCLE_H_INCLUDED_ */
139 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.