| /* | |
| * Copyright (C) Igor Sysoev | |
| */ | |
| #include <ngx_config.h> | |
| #include <ngx_core.h> | |
| ngx_uint_t ngx_pagesize; | |
| ngx_uint_t ngx_pagesize_shift; | |
| ngx_uint_t ngx_cacheline_size; | |
| void * | |
| ngx_alloc(size_t size, ngx_log_t *log) | |
| { | |
| void *p; | |
| p = malloc(size); | |
| if (p == NULL) { | |
| ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, | |
| "malloc() %uz bytes failed", size); | |
| } | |
| ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, log, 0, "malloc: %p:%uz", p, size); | |
| return p; | |
| } | |
| void * | |
| ngx_calloc(size_t size, ngx_log_t *log) | |
| { | |
| void *p; | |
| p = ngx_alloc(size, log); | |
| if (p) { | |
| ngx_memzero(p, size); | |
| } | |
| return p; | |
| } | |
| #if (NGX_HAVE_POSIX_MEMALIGN) | |
| void * | |
| ngx_memalign(size_t alignment, size_t size, ngx_log_t *log) | |
| { | |
| void *p; | |
| if (posix_memalign(&p, alignment, size) == -1) { | |
| ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, | |
| "posix_memalign() %uz bytes aligned to %uz failed", | |
| size, alignment); | |
| } | |
| ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, log, 0, | |
| "posix_memalign: %p:%uz", p, size); | |
| return p; | |
| } | |
| #elif (NGX_HAVE_MEMALIGN) | |
| void * | |
| ngx_memalign(size_t alignment, size_t size, ngx_log_t *log) | |
| { | |
| void *p; | |
| p = memalign(alignment, size); | |
| if (p == NULL) { | |
| ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, | |
| "memalign() %uz bytes aligned to %uz failed", | |
| size, alignment); | |
| } | |
| ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, log, 0, | |
| "memalign: %p:%uz", p, size); | |
| return p; | |
| } | |
| #endif |