Annotation of embedaddon/nginx/src/core/ngx_palloc.h, revision 1.1

1.1     ! misho       1: 
        !             2: /*
        !             3:  * Copyright (C) Igor Sysoev
        !             4:  * Copyright (C) Nginx, Inc.
        !             5:  */
        !             6: 
        !             7: 
        !             8: #ifndef _NGX_PALLOC_H_INCLUDED_
        !             9: #define _NGX_PALLOC_H_INCLUDED_
        !            10: 
        !            11: 
        !            12: #include <ngx_config.h>
        !            13: #include <ngx_core.h>
        !            14: 
        !            15: 
        !            16: /*
        !            17:  * NGX_MAX_ALLOC_FROM_POOL should be (ngx_pagesize - 1), i.e. 4095 on x86.
        !            18:  * On Windows NT it decreases a number of locked pages in a kernel.
        !            19:  */
        !            20: #define NGX_MAX_ALLOC_FROM_POOL  (ngx_pagesize - 1)
        !            21: 
        !            22: #define NGX_DEFAULT_POOL_SIZE    (16 * 1024)
        !            23: 
        !            24: #define NGX_POOL_ALIGNMENT       16
        !            25: #define NGX_MIN_POOL_SIZE                                                     \
        !            26:     ngx_align((sizeof(ngx_pool_t) + 2 * sizeof(ngx_pool_large_t)),            \
        !            27:               NGX_POOL_ALIGNMENT)
        !            28: 
        !            29: 
        !            30: typedef void (*ngx_pool_cleanup_pt)(void *data);
        !            31: 
        !            32: typedef struct ngx_pool_cleanup_s  ngx_pool_cleanup_t;
        !            33: 
        !            34: struct ngx_pool_cleanup_s {
        !            35:     ngx_pool_cleanup_pt   handler;
        !            36:     void                 *data;
        !            37:     ngx_pool_cleanup_t   *next;
        !            38: };
        !            39: 
        !            40: 
        !            41: typedef struct ngx_pool_large_s  ngx_pool_large_t;
        !            42: 
        !            43: struct ngx_pool_large_s {
        !            44:     ngx_pool_large_t     *next;
        !            45:     void                 *alloc;
        !            46: };
        !            47: 
        !            48: 
        !            49: typedef struct {
        !            50:     u_char               *last;
        !            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;
        !            60:     ngx_pool_t           *current;
        !            61:     ngx_chain_t          *chain;
        !            62:     ngx_pool_large_t     *large;
        !            63:     ngx_pool_cleanup_t   *cleanup;
        !            64:     ngx_log_t            *log;
        !            65: };
        !            66: 
        !            67: 
        !            68: typedef struct {
        !            69:     ngx_fd_t              fd;
        !            70:     u_char               *name;
        !            71:     ngx_log_t            *log;
        !            72: } ngx_pool_cleanup_file_t;
        !            73: 
        !            74: 
        !            75: void *ngx_alloc(size_t size, ngx_log_t *log);
        !            76: void *ngx_calloc(size_t size, ngx_log_t *log);
        !            77: 
        !            78: ngx_pool_t *ngx_create_pool(size_t size, ngx_log_t *log);
        !            79: void ngx_destroy_pool(ngx_pool_t *pool);
        !            80: void ngx_reset_pool(ngx_pool_t *pool);
        !            81: 
        !            82: void *ngx_palloc(ngx_pool_t *pool, size_t size);
        !            83: void *ngx_pnalloc(ngx_pool_t *pool, size_t size);
        !            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);
        !            86: ngx_int_t ngx_pfree(ngx_pool_t *pool, void *p);
        !            87: 
        !            88: 
        !            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);
        !            91: void ngx_pool_cleanup_file(void *data);
        !            92: void ngx_pool_delete_file(void *data);
        !            93: 
        !            94: 
        !            95: #endif /* _NGX_PALLOC_H_INCLUDED_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>