Mercurial > hg > nginx
diff src/core/ngx_hunk.h @ 67:5a7d1aaa1618
nginx-0.0.1-2003-03-11-23:38:13 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 11 Mar 2003 20:38:13 +0000 |
parents | 4f3e2abcc2c4 |
children | 4534060fde92 |
line wrap: on
line diff
--- a/src/core/ngx_hunk.h +++ b/src/core/ngx_hunk.h @@ -10,34 +10,34 @@ /* hunk type */ -/* temp means that hunk's content can be changed */ -/* other type means that hunk's content can not be changed */ -#define NGX_HUNK_TEMP 0x0001 -#define NGX_HUNK_MEMORY 0x0002 -#define NGX_HUNK_MMAP 0x0004 -#define NGX_HUNK_FILE 0x0008 +/* the hunk is in memory */ +#define NGX_HUNK_IN_MEMORY 0x0001 +/* the hunk's content can be changed */ +#define NGX_HUNK_TEMP 0x0002 +/* the hunk's content is in cache and can not be changed */ +#define NGX_HUNK_MEMORY 0x0004 +/* the hunk's content is mmap()ed and can not be changed */ +#define NGX_HUNK_MMAP 0x0008 + +#define NGX_HUNK_RECYCLED 0x0010 + +/* the hunk is in file */ +#define NGX_HUNK_FILE 0x0100 /* hunk flags */ /* in thread state flush means to write the hunk completely before return */ /* in event state flush means to start to write the hunk */ -#define NGX_HUNK_FLUSH 0x0100 +#define NGX_HUNK_FLUSH 0x1000 /* last hunk */ -#define NGX_HUNK_LAST 0x0200 -#if 0 -/* can be used with NGX_HUNK_LAST only */ -#define NGX_HUNK_SHUTDOWN 0x0400 / -#endif +#define NGX_HUNK_LAST 0x2000 -#define NGX_HUNK_RECYCLED 0x0800 - - -#define NGX_HUNK_IN_MEMORY (NGX_HUNK_TEMP|NGX_HUNK_MEMORY|NGX_HUNK_MMAP) typedef struct ngx_hunk_s ngx_hunk_t; struct ngx_hunk_s { +#if 0 union { char *mem; /* start of current data */ off_t file; @@ -46,6 +46,13 @@ struct ngx_hunk_s { char *mem; /* end of current data */ off_t file; } last; +#endif + + char *pos; + char *last; + off_t file_pos; + off_t file_last; + int type; char *start; /* start of hunk */ char *end; /* end of hunk */ @@ -67,6 +74,10 @@ struct ngx_chain_s { #define NGX_CHAIN_ERROR (ngx_chain_t *) NGX_ERROR +#define ngx_hunk_in_memory_only(h) \ + ((h->type & (NGX_HUNK_IN_MEMORY|NGX_HUNK_FILE)) == NGX_HUNK_IN_MEMORY) + + ngx_hunk_t *ngx_create_temp_hunk(ngx_pool_t *pool, int size, int before, int after);