00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MAGICKCORE_MEMORY_PRIVATE_H
00019 #define MAGICKCORE_MEMORY_PRIVATE_H
00020
00021 #include "magick/magick-config.h"
00022
00023 #if defined(__cplusplus) || defined(c_plusplus)
00024 extern "C" {
00025 #endif
00026
00027 #if defined(__powerpc__)
00028 # define CACHE_LINE_SIZE (16 * MAGICKCORE_SIZEOF_VOID_P)
00029 #else
00030 # define CACHE_LINE_SIZE (8 * MAGICKCORE_SIZEOF_VOID_P)
00031 #endif
00032
00033 #define CACHE_ALIGNED(n) MAGICKCORE_ALIGN_UP(n,CACHE_LINE_SIZE)
00034
00035 #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
00036 #if !defined(__ICC)
00037 #define MagickAssumeAligned(address) \
00038 __builtin_assume_aligned((address),CACHE_LINE_SIZE)
00039 #else
00040 #define MagickAssumeAligned(address) (address)
00041 #endif
00042 #else
00043 #define MagickAssumeAligned(address) (address)
00044 #endif
00045
00046 extern MagickPrivate void
00047 ResetMaxMemoryRequest(void),
00048 ResetVirtualAnonymousMemory(void);
00049
00050 #if defined(__cplusplus) || defined(c_plusplus)
00051 }
00052 #endif
00053
00054 #endif