3 * Copyright (C) Igor Sysoev
4 * Copyright (C) Nginx, Inc.
8 #include <ngx_config.h>
12 #ifndef _NGX_OPEN_FILE_CACHE_H_INCLUDED_
13 #define _NGX_OPEN_FILE_CACHE_H_INCLUDED_
16 #define NGX_OPEN_FILE_DIRECTIO_OFF NGX_MAX_OFF_T_VALUE
36 size_t disable_symlinks_from
;
37 unsigned disable_symlinks
:2;
50 unsigned is_directio
:1;
51 } ngx_open_file_info_t
;
54 typedef struct ngx_cached_open_file_s ngx_cached_open_file_t
;
56 struct ngx_cached_open_file_s
{
57 ngx_rbtree_node_t node
;
73 size_t disable_symlinks_from
;
74 unsigned disable_symlinks
:2;
85 unsigned is_directio
:1;
93 ngx_rbtree_node_t sentinel
;
94 ngx_queue_t expire_queue
;
99 } ngx_open_file_cache_t
;
103 ngx_open_file_cache_t
*cache
;
104 ngx_cached_open_file_t
*file
;
107 } ngx_open_file_cache_cleanup_t
;
112 /* ngx_connection_t stub to allow use c->fd as event ident */
118 ngx_cached_open_file_t
*file
;
119 ngx_open_file_cache_t
*cache
;
120 } ngx_open_file_cache_event_t
;
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
);
129 #endif /* _NGX_OPEN_FILE_CACHE_H_INCLUDED_ */