00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MAGICKCORE_MEMORY_H
00019 #define MAGICKCORE_MEMORY_H
00020
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024
00025 typedef struct _MemoryInfo
00026 MemoryInfo;
00027
00028 typedef void
00029 *(*AcquireMemoryHandler)(size_t) magick_alloc_size(1),
00030 (*DestroyMemoryHandler)(void *),
00031 *(*ResizeMemoryHandler)(void *,size_t) magick_alloc_size(2),
00032 *(*AcquireAlignedMemoryHandler)(const size_t,const size_t),
00033 (*RelinquishAlignedMemoryHandler)(void *);
00034
00035 extern MagickExport MemoryInfo
00036 *AcquireVirtualMemory(const size_t,const size_t) magick_alloc_sizes(1,2),
00037 *RelinquishVirtualMemory(MemoryInfo *);
00038
00039 extern MagickExport void
00040 *AcquireAlignedMemory(const size_t,const size_t)
00041 magick_attribute((__malloc__)) magick_alloc_sizes(1,2),
00042 *AcquireMagickMemory(const size_t) magick_attribute((__malloc__))
00043 magick_alloc_size(1),
00044 *AcquireQuantumMemory(const size_t,const size_t)
00045 magick_attribute((__malloc__)) magick_alloc_sizes(1,2),
00046 *CopyMagickMemory(void *magick_restrict,const void *magick_restrict,
00047 const size_t) magick_attribute((__nonnull__)),
00048 DestroyMagickMemory(void),
00049 GetMagickMemoryMethods(AcquireMemoryHandler *,ResizeMemoryHandler *,
00050 DestroyMemoryHandler *),
00051 *GetVirtualMemoryBlob(const MemoryInfo *),
00052 *RelinquishAlignedMemory(void *),
00053 *RelinquishMagickMemory(void *),
00054 *ResetMagickMemory(void *,int,const size_t),
00055 *ResizeMagickMemory(void *,const size_t)
00056 magick_attribute((__malloc__)) magick_alloc_size(2),
00057 *ResizeQuantumMemory(void *,const size_t,const size_t)
00058 magick_attribute((__malloc__)) magick_alloc_sizes(2,3),
00059 SetMagickAlignedMemoryMethods(AcquireAlignedMemoryHandler,
00060 RelinquishAlignedMemoryHandler),
00061 SetMagickMemoryMethods(AcquireMemoryHandler,ResizeMemoryHandler,
00062 DestroyMemoryHandler);
00063
00064 #if defined(__cplusplus) || defined(c_plusplus)
00065 }
00066 #endif
00067
00068 #endif