text: 
  /*
   * Copyright (C) Igor Sysoev
   * Copyright (C) Nginx, Inc.
   */
  
  
  #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) 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;
      int    err;
  
      err = posix_memalign(&p, alignment, size);
  
      if (err) {
          ngx_log_error(NGX_LOG_EMERG, log, err,
                        "posix_memalign(%uz, %uz) failed", alignment, size);
          p = NULL;
      }
  
      ngx_log_debug3(NGX_LOG_DEBUG_ALLOC, log, 0,
                     "posix_memalign: %p:%uz @%uz", p, size, alignment);
  
      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, %uz) failed", alignment, size);
      }
  
      ngx_log_debug3(NGX_LOG_DEBUG_ALLOC, log, 0,
                     "memalign: %p:%uz @%uz", p, size, alignment);
  
      return p;
  }
  
  #endif
  