Blame jemalloc/include/jemalloc/internal/quantum.h

Packit Service 724aca
#ifndef JEMALLOC_INTERNAL_QUANTUM_H
Packit Service 724aca
#define JEMALLOC_INTERNAL_QUANTUM_H
Packit Service 724aca
Packit Service 724aca
/*
Packit Service 724aca
 * Minimum allocation alignment is 2^LG_QUANTUM bytes (ignoring tiny size
Packit Service 724aca
 * classes).
Packit Service 724aca
 */
Packit Service 724aca
#ifndef LG_QUANTUM
Packit Service 724aca
#  if (defined(__i386__) || defined(_M_IX86))
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __ia64__
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __alpha__
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  if (defined(__sparc64__) || defined(__sparcv9) || defined(__sparc_v9__))
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  if (defined(__amd64__) || defined(__x86_64__) || defined(_M_X64))
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __arm__
Packit Service 724aca
#    define LG_QUANTUM		3
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __aarch64__
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __hppa__
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __m68k__
Packit Service 724aca
#    define LG_QUANTUM		3
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __mips__
Packit Service 724aca
#    define LG_QUANTUM		3
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __nios2__
Packit Service 724aca
#    define LG_QUANTUM		3
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __or1k__
Packit Service 724aca
#    define LG_QUANTUM		3
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __powerpc__
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  if defined(__riscv) || defined(__riscv__)
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __s390__
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  if (defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || \
Packit Service 724aca
	defined(__SH4_SINGLE_ONLY__))
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __tile__
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifdef __le32__
Packit Service 724aca
#    define LG_QUANTUM		4
Packit Service 724aca
#  endif
Packit Service 724aca
#  ifndef LG_QUANTUM
Packit Service 724aca
#    error "Unknown minimum alignment for architecture; specify via "
Packit Service 724aca
	 "--with-lg-quantum"
Packit Service 724aca
#  endif
Packit Service 724aca
#endif
Packit Service 724aca
Packit Service 724aca
#define QUANTUM			((size_t)(1U << LG_QUANTUM))
Packit Service 724aca
#define QUANTUM_MASK		(QUANTUM - 1)
Packit Service 724aca
Packit Service 724aca
/* Return the smallest quantum multiple that is >= a. */
Packit Service 724aca
#define QUANTUM_CEILING(a)						\
Packit Service 724aca
	(((a) + QUANTUM_MASK) & ~QUANTUM_MASK)
Packit Service 724aca
Packit Service 724aca
#endif /* JEMALLOC_INTERNAL_QUANTUM_H */