/* * Copyright (C) Igor Sysoev * Copyright (C) NGINX, Inc. */ #include void * njs_zalloc(size_t size) { void *p; p = njs_malloc(size); if (njs_fast_path(p != NULL)) { njs_memzero(p, size); } return p; } #if (NJS_HAVE_POSIX_MEMALIGN) /* * posix_memalign() presents in Linux glibc 2.1.91, FreeBSD 7.0, * Solaris 11, MacOSX 10.6 (Snow Leopard), NetBSD 5.0, OpenBSD 4.8. */ void * njs_memalign(size_t alignment, size_t size) { int err; void *p; err = posix_memalign(&p, alignment, size); if (njs_fast_path(err == 0)) { return p; } return NULL; } #elif (NJS_HAVE_MEMALIGN) /* memalign() presents in Solaris, HP-UX. */ void * njs_memalign(size_t alignment, size_t size) { return memalign(alignment, size); } #else #error no memalign() implementation. #endif