Annotation of embedaddon/nginx/src/core/ngx_slab.h, revision 1.1.1.1

1.1       misho       1: 
                      2: /*
                      3:  * Copyright (C) Igor Sysoev
                      4:  * Copyright (C) Nginx, Inc.
                      5:  */
                      6: 
                      7: 
                      8: #ifndef _NGX_SLAB_H_INCLUDED_
                      9: #define _NGX_SLAB_H_INCLUDED_
                     10: 
                     11: 
                     12: #include <ngx_config.h>
                     13: #include <ngx_core.h>
                     14: 
                     15: 
                     16: typedef struct ngx_slab_page_s  ngx_slab_page_t;
                     17: 
                     18: struct ngx_slab_page_s {
                     19:     uintptr_t         slab;
                     20:     ngx_slab_page_t  *next;
                     21:     uintptr_t         prev;
                     22: };
                     23: 
                     24: 
                     25: typedef struct {
                     26:     ngx_shmtx_sh_t    lock;
                     27: 
                     28:     size_t            min_size;
                     29:     size_t            min_shift;
                     30: 
                     31:     ngx_slab_page_t  *pages;
                     32:     ngx_slab_page_t   free;
                     33: 
                     34:     u_char           *start;
                     35:     u_char           *end;
                     36: 
                     37:     ngx_shmtx_t       mutex;
                     38: 
                     39:     u_char           *log_ctx;
                     40:     u_char            zero;
                     41: 
                     42:     void             *data;
                     43:     void             *addr;
                     44: } ngx_slab_pool_t;
                     45: 
                     46: 
                     47: void ngx_slab_init(ngx_slab_pool_t *pool);
                     48: void *ngx_slab_alloc(ngx_slab_pool_t *pool, size_t size);
                     49: void *ngx_slab_alloc_locked(ngx_slab_pool_t *pool, size_t size);
                     50: void ngx_slab_free(ngx_slab_pool_t *pool, void *p);
                     51: void ngx_slab_free_locked(ngx_slab_pool_t *pool, void *p);
                     52: 
                     53: 
                     54: #endif /* _NGX_SLAB_H_INCLUDED_ */

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