3 * Copyright (C) Igor Sysoev
7 #include <ngx_config.h>
11 #ifndef _NGX_OPEN_FILE_CACHE_H_INCLUDED_
12 #define _NGX_OPEN_FILE_CACHE_H_INCLUDED_
15 #define NGX_OPEN_FILE_DIRECTIO_OFF NGX_MAX_OFF_T_VALUE
39 unsigned is_directio:1;
40 } ngx_open_file_info_t;
43 typedef struct ngx_cached_open_file_s ngx_cached_open_file_t;
45 struct ngx_cached_open_file_s {
46 ngx_rbtree_node_t node;
69 unsigned is_directio:1;
77 ngx_rbtree_node_t sentinel;
78 ngx_queue_t expire_queue;
83 } ngx_open_file_cache_t;
87 ngx_open_file_cache_t *cache;
88 ngx_cached_open_file_t *file;
91 } ngx_open_file_cache_cleanup_t;
96 /* ngx_connection_t stub to allow use c->fd as event ident */
102 ngx_cached_open_file_t *file;
103 ngx_open_file_cache_t *cache;
104 } ngx_open_file_cache_event_t;
107 ngx_open_file_cache_t *ngx_open_file_cache_init(ngx_pool_t *pool,
108 ngx_uint_t max, time_t inactive);
109 ngx_int_t ngx_open_cached_file(ngx_open_file_cache_t *cache, ngx_str_t *name,
110 ngx_open_file_info_t *of, ngx_pool_t *pool);
113 #endif /* _NGX_OPEN_FILE_CACHE_H_INCLUDED_ */