Annotation of embedaddon/nginx/src/core/ngx_slab.h, revision 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>