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
00033 extern MagickExport MemoryInfo
00034 *AcquireVirtualMemory(const size_t,const size_t) magick_alloc_sizes(1,2),
00035 *RelinquishVirtualMemory(MemoryInfo *);
00036
00037 extern MagickExport void
00038 *AcquireAlignedMemory(const size_t,const size_t)
00039 magick_attribute((__malloc__)) magick_alloc_sizes(1,2),
00040 *AcquireMagickMemory(const size_t) magick_attribute((__malloc__))
00041 magick_alloc_size(1),
00042 *AcquireQuantumMemory(const size_t,const size_t)
00043 magick_attribute((__malloc__)) magick_alloc_sizes(1,2),
00044 *CopyMagickMemory(void *magick_restrict,const void *magick_restrict,
00045 const size_t)
00046 magick_attribute((__nonnull__)),
00047 DestroyMagickMemory(void),
00048 GetMagickMemoryMethods(AcquireMemoryHandler *,ResizeMemoryHandler *,
00049 DestroyMemoryHandler *),
00050 *GetVirtualMemoryBlob(const MemoryInfo *),
00051 *RelinquishAlignedMemory(void *),
00052 *RelinquishMagickMemory(void *),
00053 *ResetMagickMemory(void *,int,const size_t),
00054 *ResizeMagickMemory(void *,const size_t)
00055 magick_attribute((__malloc__)) magick_alloc_size(2),
00056 *ResizeQuantumMemory(void *,const size_t,const size_t)
00057 magick_attribute((__malloc__)) magick_alloc_sizes(2,3),
00058 SetMagickMemoryMethods(AcquireMemoryHandler,ResizeMemoryHandler,
00059 DestroyMemoryHandler);
00060
00061 #if defined(__cplusplus) || defined(c_plusplus)
00062 }
00063 #endif
00064
00065 #endif