comparison src/core/ngx_buf.h @ 3052:6060225e9261

FreeBSD and Linux AIO support
author Igor Sysoev <igor@sysoev.ru>
date Fri, 28 Aug 2009 08:12:35 +0000
parents d2b183c39878
children 0d253659da12
comparison
equal deleted inserted replaced
3051:26dfc0fa22c8 3052:6060225e9261
65 ngx_int_t num; 65 ngx_int_t num;
66 size_t size; 66 size_t size;
67 } ngx_bufs_t; 67 } ngx_bufs_t;
68 68
69 69
70 typedef struct ngx_output_chain_ctx_s ngx_output_chain_ctx_t;
71
70 typedef ngx_int_t (*ngx_output_chain_filter_pt)(void *ctx, ngx_chain_t *in); 72 typedef ngx_int_t (*ngx_output_chain_filter_pt)(void *ctx, ngx_chain_t *in);
71 73
72 typedef struct { 74 #if (NGX_HAVE_FILE_AIO)
75 typedef void (*ngx_output_chain_aio_pt)(ngx_output_chain_ctx_t *ctx,
76 ngx_file_t *file);
77 #endif
78
79 struct ngx_output_chain_ctx_s {
73 ngx_buf_t *buf; 80 ngx_buf_t *buf;
74 ngx_chain_t *in; 81 ngx_chain_t *in;
75 ngx_chain_t *free; 82 ngx_chain_t *free;
76 ngx_chain_t *busy; 83 ngx_chain_t *busy;
77 84
88 ngx_bufs_t bufs; 95 ngx_bufs_t bufs;
89 ngx_buf_tag_t tag; 96 ngx_buf_tag_t tag;
90 97
91 ngx_output_chain_filter_pt output_filter; 98 ngx_output_chain_filter_pt output_filter;
92 void *filter_ctx; 99 void *filter_ctx;
93 } ngx_output_chain_ctx_t; 100
101 #if (NGX_HAVE_FILE_AIO)
102 ngx_output_chain_aio_pt aio;
103 #endif
104 };
94 105
95 106
96 typedef struct { 107 typedef struct {
97 ngx_chain_t *out; 108 ngx_chain_t *out;
98 ngx_chain_t **last; 109 ngx_chain_t **last;