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>