nano_zone_common.h [plain text]
#ifndef __NANO_ZONE_COMMON_H
#define __NANO_ZONE_COMMON_H
#define NANO_MAX_SIZE 256
#define SHIFT_NANO_QUANTUM 4
#define NANO_REGIME_QUANTA_SIZE (1 << SHIFT_NANO_QUANTUM) // 16
#define NANO_QUANTA_MASK (NANO_REGIME_QUANTA_SIZE - 1)
#define NANO_SIZE_CLASSES (NANO_MAX_SIZE/NANO_REGIME_QUANTA_SIZE)
#if TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR
#define SHIFT_NANO_SIGNATURE 29
#define NANOZONE_SIGNATURE_BITS 35
#define NANOZONE_BASE_REGION_ADDRESS (SHARED_REGION_BASE + SHARED_REGION_SIZE)
#define NANOZONE_SIGNATURE (NANOZONE_BASE_REGION_ADDRESS >> SHIFT_NANO_SIGNATURE)
#else // TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR
#define SHIFT_NANO_SIGNATURE 44
#define NANOZONE_SIGNATURE_BITS 20
#define NANOZONE_SIGNATURE 0x6ULL
#define NANOZONE_BASE_REGION_ADDRESS (NANOZONE_SIGNATURE << SHIFT_NANO_SIGNATURE)
#endif // TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR
static MALLOC_INLINE size_t
_nano_common_good_size(size_t size)
{
return (size <= NANO_REGIME_QUANTA_SIZE) ? NANO_REGIME_QUANTA_SIZE
: (((size + NANO_REGIME_QUANTA_SIZE - 1) >> SHIFT_NANO_QUANTUM) << SHIFT_NANO_QUANTUM);
}
#endif // __NANO_ZONE_COMMON_H