|  | 
 | /* | 
 |  * 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_ */ |