comparison src/core/ngx_hunk.c @ 8:708f8bb772ec

nginx-0.0.1-2002-09-02-18:48:24 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 02 Sep 2002 14:48:24 +0000
parents 669801705ab1
children 6ce4755737b4
comparison
equal deleted inserted replaced
7:b5481d6fbbd4 8:708f8bb772ec
1 1
2 #include <ngx_file.h>
3 #include <ngx_hunk.h> 2 #include <ngx_hunk.h>
4 3
5 4
6 ngx_hunk_t *ngx_get_hunk(ngx_pool_t *pool, int size, int before, int after) 5 ngx_hunk_t *ngx_create_temp_hunk(ngx_pool_t *pool, int size,
6 int before, int after)
7 { 7 {
8 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t)); 8 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t));
9 9
10 #ifndef OFF_EQUAL_PTR 10 #if !(HAVE_OFFSET_EQUAL_PTR)
11 h->pos.file = h->last.file = 0; 11 h->pos.file = h->last.file = 0;
12 #endif 12 #endif
13 13
14 h->pre_start = ngx_palloc(pool, size + before + after); 14 h->pre_start = ngx_palloc(pool, size + before + after);
15 h->start = h->pos.mem = h->last.mem = h->pre_start + before; 15 h->start = h->pos.mem = h->last.mem = h->pre_start + before;
16 h->end = h->last.mem + size; 16 h->end = h->last.mem + size;
17 h->post_end = h->end + after; 17 h->post_end = h->end + after;
18 18
19 h->type = NGX_HUNK_TEMP; 19 h->type = NGX_HUNK_TEMP;
20 h->tag = 0; 20 h->tag = 0;
21 h->fd = (ngx_fd_t) -1; 21 h->file = NULL;
22 22
23 return h; 23 return h;
24 } 24 }
25 25
26 ngx_hunk_t *ngx_get_hunk_before(ngx_pool_t *pool, ngx_hunk_t *hunk, int size) 26 ngx_hunk_t *ngx_create_hunk_before(ngx_pool_t *pool, ngx_hunk_t *hunk, int size)
27 { 27 {
28 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t)); 28 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t));
29 29
30 #ifndef OFF_EQUAL_PTR 30 #if !(HAVE_OFFSET_EQUAL_PTR)
31 h->pos.file = h->last.file = 0; 31 h->pos.file = h->last.file = 0;
32 #endif 32 #endif
33 33
34 if (hunk->type & NGX_HUNK_TEMP && hunk->pos.mem - hunk->pre_start >= size) { 34 if (hunk->type & NGX_HUNK_TEMP && hunk->pos.mem - hunk->pre_start >= size) {
35 /* keep hunk->start unchanged - used in restore */ 35 /* keep hunk->start unchanged - used in restore */
37 h->end = h->post_end = hunk->pre_start = hunk->pos.mem; 37 h->end = h->post_end = hunk->pre_start = hunk->pos.mem;
38 h->start = h->pos.mem = h->last.mem = h->end - size; 38 h->start = h->pos.mem = h->last.mem = h->end - size;
39 39
40 h->type = NGX_HUNK_TEMP; 40 h->type = NGX_HUNK_TEMP;
41 h->tag = 0; 41 h->tag = 0;
42 h->fd = (ngx_fd_t) -1; 42 h->file = NULL;
43 43
44 } else { 44 } else {
45 h->pre_start = h->start = h->pos.mem = h->last.mem 45 h->pre_start = h->start = h->pos.mem = h->last.mem
46 = ngx_palloc(pool, size); 46 = ngx_palloc(pool, size);
47 h->end = h->post_end = h->start + size; 47 h->end = h->post_end = h->start + size;
48 48
49 h->type = NGX_HUNK_TEMP; 49 h->type = NGX_HUNK_TEMP;
50 h->tag = 0; 50 h->tag = 0;
51 h->fd = (ngx_fd_t) -1; 51 h->file = NULL;
52 } 52 }
53 53
54 return h; 54 return h;
55 } 55 }
56 56
57 ngx_hunk_t *ngx_get_hunk_after(ngx_pool_t *pool, ngx_hunk_t *hunk, int size) 57 ngx_hunk_t *ngx_create_hunk_after(ngx_pool_t *pool, ngx_hunk_t *hunk, int size)
58 { 58 {
59 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t)); 59 ngx_hunk_t *h = ngx_palloc(pool, sizeof(ngx_hunk_t));
60 60
61 #ifndef OFF_EQUAL_PTR 61 #if !(HAVE_OFFSET_EQUAL_PTR)
62 h->pos.file = h->last.file = 0; 62 h->pos.file = h->last.file = 0;
63 #endif 63 #endif
64 64
65 if (hunk->type & NGX_HUNK_TEMP 65 if (hunk->type & NGX_HUNK_TEMP
66 && hunk->last.mem == hunk->end 66 && hunk->last.mem == hunk->end
69 h->post_end = hunk->post_end; 69 h->post_end = hunk->post_end;
70 h->pre_start = h->start = h->pos.mem = h->last.mem = hunk->post_end = 70 h->pre_start = h->start = h->pos.mem = h->last.mem = hunk->post_end =
71 hunk->last.mem; 71 hunk->last.mem;
72 h->type = NGX_HUNK_TEMP; 72 h->type = NGX_HUNK_TEMP;
73 h->tag = 0; 73 h->tag = 0;
74 h->fd = (ngx_fd_t) -1; 74 h->file = NULL;
75 75
76 } else { 76 } else {
77 h->pre_start = h->start = h->pos.mem = h->last.mem = 77 h->pre_start = h->start = h->pos.mem = h->last.mem =
78 ngx_palloc(pool, size); 78 ngx_palloc(pool, size);
79 h->end = h->post_end = h->start + size; 79 h->end = h->post_end = h->start + size;
80 80
81 h->type = NGX_HUNK_TEMP; 81 h->type = NGX_HUNK_TEMP;
82 h->tag = 0; 82 h->tag = 0;
83 h->fd = (ngx_fd_t) -1; 83 h->file = NULL;
84 } 84 }
85 85
86 return h; 86 return h;
87 } 87 }