1 2 /* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) Nginx, Inc. 5 */ 6 7 8 #ifndef _NGX_ALLOC_H_INCLUDED_ 9 #define _NGX_ALLOC_H_INCLUDED_ 10 11 12 #include <ngx_config.h> 13 #include <ngx_core.h> 14 15 16 void *ngx_alloc(size_t size, ngx_log_t *log); 17 void *ngx_calloc(size_t size, ngx_log_t *log); 18 19 #define ngx_free free 20 21 22 /* 23 * Linux has memalign() or posix_memalign() 24 * Solaris has memalign() 25 * FreeBSD 7.0 has posix_memalign(), besides, early version's malloc() 26 * aligns allocations bigger than page size at the page boundary 27 */ 28 29 #if (NGX_HAVE_POSIX_MEMALIGN || NGX_HAVE_MEMALIGN) 30 31 void *ngx_memalign(size_t alignment, size_t size, ngx_log_t *log); 32 33 #else 34 35 #define ngx_memalign(alignment, size, log) ngx_alloc(size, log) 36 37 #endif 38 39 40 extern ngx_uint_t ngx_pagesize; 41 extern ngx_uint_t ngx_pagesize_shift; 42 extern ngx_uint_t ngx_cacheline_size; 43 44 45 #endif /* _NGX_ALLOC_H_INCLUDED_ */ 46