Groonga 3.0.9 Source Code Document
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ngx_slab.h
Go to the documentation of this file.
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 
17 
19  uintptr_t slab;
21  uintptr_t prev;
22 };
23 
24 
25 typedef struct {
27 
28  size_t min_size;
29  size_t min_shift;
30 
33 
34  u_char *start;
35  u_char *end;
36 
38 
39  u_char *log_ctx;
40  u_char zero;
41 
42  void *data;
43  void *addr;
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_ */