Annotation of embedaddon/nginx/src/core/ngx_file.h, revision 1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>