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

Linux Cross Reference
Nginx/core/ngx_file.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_FILE_H_INCLUDED_
  8 #define _NGX_FILE_H_INCLUDED_
  9 
 10 
 11 #include <ngx_config.h>
 12 #include <ngx_core.h>
 13 
 14 
 15 struct ngx_file_s {
 16     ngx_fd_t                   fd;
 17     ngx_str_t                  name;
 18     ngx_file_info_t            info;
 19 
 20     off_t                      offset;
 21     off_t                      sys_offset;
 22 
 23     ngx_log_t                 *log;
 24 
 25 #if (NGX_HAVE_FILE_AIO)
 26     ngx_event_aio_t           *aio;
 27 #endif
 28 
 29     unsigned                   valid_info:1;
 30     unsigned                   directio:1;
 31 };
 32 
 33 
 34 #define NGX_MAX_PATH_LEVEL  3
 35 
 36 
 37 typedef time_t (*ngx_path_manager_pt) (void *data);
 38 typedef void (*ngx_path_loader_pt) (void *data);
 39 
 40 
 41 typedef struct {
 42     ngx_str_t                  name;
 43     size_t                     len;
 44     size_t                     level[3];
 45 
 46     ngx_path_manager_pt        manager;
 47     ngx_path_loader_pt         loader;
 48     void                      *data;
 49 
 50     u_char                    *conf_file;
 51     ngx_uint_t                 line;
 52 } ngx_path_t;
 53 
 54 
 55 typedef struct {
 56     ngx_str_t                  name;
 57     size_t                     level[3];
 58 } ngx_path_init_t;
 59 
 60 
 61 typedef struct {
 62     ngx_file_t                 file;
 63     off_t                      offset;
 64     ngx_path_t                *path;
 65     ngx_pool_t                *pool;
 66     char                      *warn;
 67 
 68     ngx_uint_t                 access;
 69 
 70     unsigned                   log_level:8;
 71     unsigned                   persistent:1;
 72     unsigned                   clean:1;
 73 } ngx_temp_file_t;
 74 
 75 
 76 typedef struct {
 77     ngx_uint_t                 access;
 78     ngx_uint_t                 path_access;
 79     time_t                     time;
 80     ngx_fd_t                   fd;
 81 
 82     unsigned                   create_path:1;
 83     unsigned                   delete_file:1;
 84 
 85     ngx_log_t                 *log;
 86 } ngx_ext_rename_file_t;
 87 
 88 
 89 typedef struct {
 90     off_t                      size;
 91     size_t                     buf_size;
 92 
 93     ngx_uint_t                 access;
 94     time_t                     time;
 95 
 96     ngx_log_t                 *log;
 97 } ngx_copy_file_t;
 98 
 99 
100 typedef struct ngx_tree_ctx_s  ngx_tree_ctx_t;
101 
102 typedef ngx_int_t (*ngx_tree_init_handler_pt) (void *ctx, void *prev);
103 typedef ngx_int_t (*ngx_tree_handler_pt) (ngx_tree_ctx_t *ctx, ngx_str_t *name);
104 
105 struct ngx_tree_ctx_s {
106     off_t                      size;
107     ngx_uint_t                 access;
108     time_t                     mtime;
109 
110     ngx_tree_init_handler_pt   init_handler;
111     ngx_tree_handler_pt        file_handler;
112     ngx_tree_handler_pt        pre_tree_handler;
113     ngx_tree_handler_pt        post_tree_handler;
114     ngx_tree_handler_pt        spec_handler;
115 
116     void                      *data;
117     size_t                     alloc;
118 
119     ngx_log_t                 *log;
120 };
121 
122 
123 ssize_t ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain);
124 ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path,
125     ngx_pool_t *pool, ngx_uint_t persistent, ngx_uint_t clean,
126     ngx_uint_t access);
127 void ngx_create_hashed_filename(ngx_path_t *path, u_char *file, size_t len);
128 ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path);
129 ngx_err_t ngx_create_full_path(u_char *dir, ngx_uint_t access);
130 ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot);
131 ngx_int_t ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user);
132 ngx_int_t ngx_ext_rename_file(ngx_str_t *src, ngx_str_t *to,
133     ngx_ext_rename_file_t *ext);
134 ngx_int_t ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf);
135 ngx_int_t ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_str_t *tree);
136 
137 ngx_atomic_uint_t ngx_next_temp_number(ngx_uint_t collision);
138 
139 char *ngx_conf_set_path_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
140 char *ngx_conf_merge_path_value(ngx_conf_t *cf, ngx_path_t **path,
141     ngx_path_t *prev, ngx_path_init_t *init);
142 char *ngx_conf_set_access_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
143 
144 
145 extern ngx_atomic_t      *ngx_temp_number;
146 extern ngx_atomic_int_t   ngx_random_number;
147 
148 
149 #endif /* _NGX_FILE_H_INCLUDED_ */
150 

~ [ 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.