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

1.1     ! misho       1: 
        !             2: /*
        !             3:  * Copyright (C) Igor Sysoev
        !             4:  * Copyright (C) Nginx, Inc.
        !             5:  */
        !             6: 
        !             7: 
        !             8: #include <ngx_config.h>
        !             9: #include <ngx_core.h>
        !            10: 
        !            11: 
        !            12: #ifndef _NGX_OPEN_FILE_CACHE_H_INCLUDED_
        !            13: #define _NGX_OPEN_FILE_CACHE_H_INCLUDED_
        !            14: 
        !            15: 
        !            16: #define NGX_OPEN_FILE_DIRECTIO_OFF  NGX_MAX_OFF_T_VALUE
        !            17: 
        !            18: 
        !            19: typedef struct {
        !            20:     ngx_fd_t                 fd;
        !            21:     ngx_file_uniq_t          uniq;
        !            22:     time_t                   mtime;
        !            23:     off_t                    size;
        !            24:     off_t                    fs_size;
        !            25:     off_t                    directio;
        !            26:     size_t                   read_ahead;
        !            27: 
        !            28:     ngx_err_t                err;
        !            29:     char                    *failed;
        !            30: 
        !            31:     time_t                   valid;
        !            32: 
        !            33:     ngx_uint_t               min_uses;
        !            34: 
        !            35: #if (NGX_HAVE_OPENAT)
        !            36:     size_t                   disable_symlinks_from;
        !            37:     unsigned                 disable_symlinks:2;
        !            38: #endif
        !            39: 
        !            40:     unsigned                 test_dir:1;
        !            41:     unsigned                 test_only:1;
        !            42:     unsigned                 log:1;
        !            43:     unsigned                 errors:1;
        !            44:     unsigned                 events:1;
        !            45: 
        !            46:     unsigned                 is_dir:1;
        !            47:     unsigned                 is_file:1;
        !            48:     unsigned                 is_link:1;
        !            49:     unsigned                 is_exec:1;
        !            50:     unsigned                 is_directio:1;
        !            51: } ngx_open_file_info_t;
        !            52: 
        !            53: 
        !            54: typedef struct ngx_cached_open_file_s  ngx_cached_open_file_t;
        !            55: 
        !            56: struct ngx_cached_open_file_s {
        !            57:     ngx_rbtree_node_t        node;
        !            58:     ngx_queue_t              queue;
        !            59: 
        !            60:     u_char                  *name;
        !            61:     time_t                   created;
        !            62:     time_t                   accessed;
        !            63: 
        !            64:     ngx_fd_t                 fd;
        !            65:     ngx_file_uniq_t          uniq;
        !            66:     time_t                   mtime;
        !            67:     off_t                    size;
        !            68:     ngx_err_t                err;
        !            69: 
        !            70:     uint32_t                 uses;
        !            71: 
        !            72: #if (NGX_HAVE_OPENAT)
        !            73:     size_t                   disable_symlinks_from;
        !            74:     unsigned                 disable_symlinks:2;
        !            75: #endif
        !            76: 
        !            77:     unsigned                 count:24;
        !            78:     unsigned                 close:1;
        !            79:     unsigned                 use_event:1;
        !            80: 
        !            81:     unsigned                 is_dir:1;
        !            82:     unsigned                 is_file:1;
        !            83:     unsigned                 is_link:1;
        !            84:     unsigned                 is_exec:1;
        !            85:     unsigned                 is_directio:1;
        !            86: 
        !            87:     ngx_event_t             *event;
        !            88: };
        !            89: 
        !            90: 
        !            91: typedef struct {
        !            92:     ngx_rbtree_t             rbtree;
        !            93:     ngx_rbtree_node_t        sentinel;
        !            94:     ngx_queue_t              expire_queue;
        !            95: 
        !            96:     ngx_uint_t               current;
        !            97:     ngx_uint_t               max;
        !            98:     time_t                   inactive;
        !            99: } ngx_open_file_cache_t;
        !           100: 
        !           101: 
        !           102: typedef struct {
        !           103:     ngx_open_file_cache_t   *cache;
        !           104:     ngx_cached_open_file_t  *file;
        !           105:     ngx_uint_t               min_uses;
        !           106:     ngx_log_t               *log;
        !           107: } ngx_open_file_cache_cleanup_t;
        !           108: 
        !           109: 
        !           110: typedef struct {
        !           111: 
        !           112:     /* ngx_connection_t stub to allow use c->fd as event ident */
        !           113:     void                    *data;
        !           114:     ngx_event_t             *read;
        !           115:     ngx_event_t             *write;
        !           116:     ngx_fd_t                 fd;
        !           117: 
        !           118:     ngx_cached_open_file_t  *file;
        !           119:     ngx_open_file_cache_t   *cache;
        !           120: } ngx_open_file_cache_event_t;
        !           121: 
        !           122: 
        !           123: ngx_open_file_cache_t *ngx_open_file_cache_init(ngx_pool_t *pool,
        !           124:     ngx_uint_t max, time_t inactive);
        !           125: ngx_int_t ngx_open_cached_file(ngx_open_file_cache_t *cache, ngx_str_t *name,
        !           126:     ngx_open_file_info_t *of, ngx_pool_t *pool);
        !           127: 
        !           128: 
        !           129: #endif /* _NGX_OPEN_FILE_CACHE_H_INCLUDED_ */

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