| |
| /* |
| * Copyright (C) Igor Sysoev |
| */ |
| |
| |
| #ifndef _NGX_SLAB_H_INCLUDED_ |
| #define _NGX_SLAB_H_INCLUDED_ |
| |
| |
| #include <ngx_config.h> |
| #include <ngx_core.h> |
| |
| |
| typedef struct ngx_free_slab_s ngx_free_slab_t; |
| |
| typedef struct ngx_free_slab_s { |
| ngx_free_slab_t *next; |
| } |
| |
| |
| typedef struct ngx_slab_block_s ngx_slab_block_t; |
| |
| typedef struct ngx_slab_block_s { |
| ngx_free_slab_t *free; |
| ngx_slab_buf_t *next; |
| size_t color; |
| }; |
| |
| |
| typedef struct { |
| ngx_slab_buf_t *blocks; |
| size_t size; |
| |
| void *start; |
| uint32_t map; |
| |
| ngx_log_t *log; |
| ngx_free_pool_t free; |
| } ngx_slab_pool_t; |
| |
| |
| #endif /* _NGX_SLAB_H_INCLUDED_ */ |