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