~ubuntu-branches/ubuntu/trusty/nginx/trusty-proposed

« back to all changes in this revision

Viewing changes to src/core/ngx_palloc.h

  • Committer: Package Import Robot
  • Author(s): Kartik Mistry
  • Date: 2013-04-25 12:51:45 UTC
  • mfrom: (1.3.28)
  • mto: (1.3.29) (15.1.2 experimental)
  • mto: This revision was merged to the branch mainline in revision 64.
  • Revision ID: package-import@ubuntu.com-20130425125145-ugl0wor6bq0u5eae
Tags: upstream-1.4.0
ImportĀ upstreamĀ versionĀ 1.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
 
2
2
/*
3
3
 * Copyright (C) Igor Sysoev
 
4
 * Copyright (C) Nginx, Inc.
4
5
 */
5
6
 
6
7
 
14
15
 
15
16
/*
16
17
 * NGX_MAX_ALLOC_FROM_POOL should be (ngx_pagesize - 1), i.e. 4095 on x86.
17
 
 * On FreeBSD 5.x it allows to use the zero copy sending.
18
18
 * On Windows NT it decreases a number of locked pages in a kernel.
19
19
 */
20
20
#define NGX_MAX_ALLOC_FROM_POOL  (ngx_pagesize - 1)
21
21
 
22
22
#define NGX_DEFAULT_POOL_SIZE    (16 * 1024)
 
23
 
 
24
#define NGX_POOL_ALIGNMENT       16
23
25
#define NGX_MIN_POOL_SIZE                                                     \
24
 
    (sizeof(ngx_pool_t) + 2 * sizeof(ngx_pool_large_t))
 
26
    ngx_align((sizeof(ngx_pool_t) + 2 * sizeof(ngx_pool_large_t)),            \
 
27
              NGX_POOL_ALIGNMENT)
25
28
 
26
29
 
27
30
typedef void (*ngx_pool_cleanup_pt)(void *data);
43
46
};
44
47
 
45
48
 
46
 
struct ngx_pool_s {
 
49
typedef struct {
47
50
    u_char               *last;
48
51
    u_char               *end;
 
52
    ngx_pool_t           *next;
 
53
    ngx_uint_t            failed;
 
54
} ngx_pool_data_t;
 
55
 
 
56
 
 
57
struct ngx_pool_s {
 
58
    ngx_pool_data_t       d;
 
59
    size_t                max;
49
60
    ngx_pool_t           *current;
50
61
    ngx_chain_t          *chain;
51
 
    ngx_pool_t           *next;
52
62
    ngx_pool_large_t     *large;
53
63
    ngx_pool_cleanup_t   *cleanup;
54
64
    ngx_log_t            *log;
67
77
 
68
78
ngx_pool_t *ngx_create_pool(size_t size, ngx_log_t *log);
69
79
void ngx_destroy_pool(ngx_pool_t *pool);
 
80
void ngx_reset_pool(ngx_pool_t *pool);
70
81
 
71
82
void *ngx_palloc(ngx_pool_t *pool, size_t size);
 
83
void *ngx_pnalloc(ngx_pool_t *pool, size_t size);
72
84
void *ngx_pcalloc(ngx_pool_t *pool, size_t size);
 
85
void *ngx_pmemalign(ngx_pool_t *pool, size_t size, size_t alignment);
73
86
ngx_int_t ngx_pfree(ngx_pool_t *pool, void *p);
74
87
 
75
88
 
76
89
ngx_pool_cleanup_t *ngx_pool_cleanup_add(ngx_pool_t *p, size_t size);
 
90
void ngx_pool_run_cleanup_file(ngx_pool_t *p, ngx_fd_t fd);
77
91
void ngx_pool_cleanup_file(void *data);
78
92
void ngx_pool_delete_file(void *data);
79
93