1*8e33eff8Schristos #ifndef JEMALLOC_INTERNAL_DECLS_H 2*8e33eff8Schristos #define JEMALLOC_INTERNAL_DECLS_H 3*8e33eff8Schristos 4*8e33eff8Schristos #include <math.h> 5*8e33eff8Schristos #ifdef _WIN32 6*8e33eff8Schristos # include <windows.h> 7*8e33eff8Schristos # include "msvc_compat/windows_extra.h" 8*8e33eff8Schristos # ifdef _WIN64 9*8e33eff8Schristos # if LG_VADDR <= 32 10*8e33eff8Schristos # error Generate the headers using x64 vcargs 11*8e33eff8Schristos # endif 12*8e33eff8Schristos # else 13*8e33eff8Schristos # if LG_VADDR > 32 14*8e33eff8Schristos # undef LG_VADDR 15*8e33eff8Schristos # define LG_VADDR 32 16*8e33eff8Schristos # endif 17*8e33eff8Schristos # endif 18*8e33eff8Schristos #else 19*8e33eff8Schristos # include <sys/param.h> 20*8e33eff8Schristos # include <sys/mman.h> 21*8e33eff8Schristos # if !defined(__pnacl__) && !defined(__native_client__) 22*8e33eff8Schristos # include <sys/syscall.h> 23*8e33eff8Schristos # if !defined(SYS_write) && defined(__NR_write) 24*8e33eff8Schristos # define SYS_write __NR_write 25*8e33eff8Schristos # endif 26*8e33eff8Schristos # if defined(SYS_open) && defined(__aarch64__) 27*8e33eff8Schristos /* Android headers may define SYS_open to __NR_open even though 28*8e33eff8Schristos * __NR_open may not exist on AArch64 (superseded by __NR_openat). */ 29*8e33eff8Schristos # undef SYS_open 30*8e33eff8Schristos # endif 31*8e33eff8Schristos # include <sys/uio.h> 32*8e33eff8Schristos # endif 33*8e33eff8Schristos # include <pthread.h> 34*8e33eff8Schristos # include <signal.h> 35*8e33eff8Schristos # ifdef JEMALLOC_OS_UNFAIR_LOCK 36*8e33eff8Schristos # include <os/lock.h> 37*8e33eff8Schristos # endif 38*8e33eff8Schristos # ifdef JEMALLOC_GLIBC_MALLOC_HOOK 39*8e33eff8Schristos # include <sched.h> 40*8e33eff8Schristos # endif 41*8e33eff8Schristos # include <errno.h> 42*8e33eff8Schristos # include <sys/time.h> 43*8e33eff8Schristos # include <time.h> 44*8e33eff8Schristos # ifdef JEMALLOC_HAVE_MACH_ABSOLUTE_TIME 45*8e33eff8Schristos # include <mach/mach_time.h> 46*8e33eff8Schristos # endif 47*8e33eff8Schristos #endif 48*8e33eff8Schristos #include <sys/types.h> 49*8e33eff8Schristos 50*8e33eff8Schristos #include <limits.h> 51*8e33eff8Schristos #ifndef SIZE_T_MAX 52*8e33eff8Schristos # define SIZE_T_MAX SIZE_MAX 53*8e33eff8Schristos #endif 54*8e33eff8Schristos #ifndef SSIZE_MAX 55*8e33eff8Schristos # define SSIZE_MAX ((ssize_t)(SIZE_T_MAX >> 1)) 56*8e33eff8Schristos #endif 57*8e33eff8Schristos #include <stdarg.h> 58*8e33eff8Schristos #include <stdbool.h> 59*8e33eff8Schristos #include <stdio.h> 60*8e33eff8Schristos #include <stdlib.h> 61*8e33eff8Schristos #include <stdint.h> 62*8e33eff8Schristos #include <stddef.h> 63*8e33eff8Schristos #ifndef offsetof 64*8e33eff8Schristos # define offsetof(type, member) ((size_t)&(((type *)NULL)->member)) 65*8e33eff8Schristos #endif 66*8e33eff8Schristos #include <string.h> 67*8e33eff8Schristos #include <strings.h> 68*8e33eff8Schristos #include <ctype.h> 69*8e33eff8Schristos #ifdef _MSC_VER 70*8e33eff8Schristos # include <io.h> 71*8e33eff8Schristos typedef intptr_t ssize_t; 72*8e33eff8Schristos # define PATH_MAX 1024 73*8e33eff8Schristos # define STDERR_FILENO 2 74*8e33eff8Schristos # define __func__ __FUNCTION__ 75*8e33eff8Schristos # ifdef JEMALLOC_HAS_RESTRICT 76*8e33eff8Schristos # define restrict __restrict 77*8e33eff8Schristos # endif 78*8e33eff8Schristos /* Disable warnings about deprecated system functions. */ 79*8e33eff8Schristos # pragma warning(disable: 4996) 80*8e33eff8Schristos #if _MSC_VER < 1800 81*8e33eff8Schristos static int 82*8e33eff8Schristos isblank(int c) { 83*8e33eff8Schristos return (c == '\t' || c == ' '); 84*8e33eff8Schristos } 85*8e33eff8Schristos #endif 86*8e33eff8Schristos #else 87*8e33eff8Schristos # include <unistd.h> 88*8e33eff8Schristos #endif 89*8e33eff8Schristos #include <fcntl.h> 90*8e33eff8Schristos 91*8e33eff8Schristos #endif /* JEMALLOC_INTERNAL_H */ 92