MagickCore
6.9.11-59
Convert, Edit, Or Compose Bitmap Images
|
Go to the documentation of this file.
18 #ifndef MAGICKCORE_MEMORY_H
19 #define MAGICKCORE_MEMORY_H
24 #if defined(__cplusplus) || defined(c_plusplus)
33 (*DestroyMemoryHandler)(
void *),
35 *(*AcquireAlignedMemoryHandler)(
const size_t,
const size_t),
72 const size_t count,
const size_t quantum)
74 if ((count == 0) || (quantum == 0))
76 if (quantum != ((count*quantum)/count))
85 const size_t count,
const size_t quantum,
size_t *
const extent)
90 if ((count == 0) || (quantum == 0))
93 if (quantum != (
length/count))
98 assert(extent != (
size_t *
const) NULL);
103 #if defined(__cplusplus) || defined(c_plusplus)
static void * AcquireAlignedMemory_Generic(const size_t size)
Definition: memory.c:338
MagickExport void LockSemaphoreInfo(SemaphoreInfo *semaphore_info)
Definition: semaphore.c:293
#define MagickExport
Definition: method-attribute.h:80
struct _MemoryPool MemoryPool
#define magick_alloc_size(x)
Definition: method-attribute.h:113
MagickExport void * RelinquishAlignedMemory(void *memory)
Definition: memory.c:1120
MagickExport void DestroyMagickMemory(void)
MagickExport MemoryInfo * AcquireVirtualMemory(const size_t count, const size_t quantum)
Definition: memory.c:705
MagickExport void * RelinquishAlignedMemory(void *)
MagickExport void * ResizeMagickMemory(void *, const size_t) magick_attribute((__malloc__)) magick_alloc_size(2)
#define MaxBlockExponent
Definition: memory.c:105
void *(*)(*) *(*) *(* AcquireAlignedMemoryHandler)(const size_t, const size_t)
Definition: memory_.h:35
AcquireAlignedMemoryHandler acquire_aligned_memory_handler
Definition: memory.c:157
#define MagickCoreSignature
Definition: method-attribute.h:86
MagickExport void * ResizeQuantumMemory(void *memory, const size_t count, const size_t quantum)
Definition: memory.c:1447
static MagickMemoryMethods memory_methods
Definition: memory.c:222
#define MaxSegments
Definition: memory.c:107
static void ** pointer_to_space_for_actual_base_address(void *const p)
Definition: memory.c:317
#define ALIGNMENT_OVERHEAD
Definition: memory.c:310
VirtualMemoryType type
Definition: memory.c:169
MagickExport MemoryInfo * AcquireVirtualMemory(const size_t, const size_t) magick_alloc_sizes(1
AcquireMemoryHandler acquire_memory_handler
Definition: memory.c:148
#define magick_restrict
Definition: MagickCore.h:41
MagickExport void SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler, ResizeMemoryHandler resize_memory_handler, DestroyMemoryHandler destroy_memory_handler)
Definition: memory.c:1531
VirtualMemoryType
Definition: memory.c:121
char filename[MagickPathExtent]
Definition: memory.c:166
#define magick_alloc_sizes(x, y)
Definition: method-attribute.h:114
MagickExport MagickBooleanType UnmapBlob(void *, const size_t)
Definition: blob.c:4752
void * blocks[MaxBlocks+1]
Definition: memory.c:187
struct _DataSegmentInfo * next
Definition: memory.c:142
static MagickBooleanType HeapOverflowSanityCheck(const size_t count, const size_t quantum)
Definition: memory_.h:71
static size_t max_memory_request
Definition: memory.c:201
void * blob
Definition: memory.c:175
void *(*)(* DestroyMemoryHandler)(void *)
Definition: memory_.h:33
MagickExport void * ResizeMagickMemory(void *memory, const size_t size)
Definition: memory.c:1387
MagickExport char * DestroyString(char *string)
Definition: string.c:808
static size_t StringToSizeType(const char *string, const double interval)
Definition: string-private.h:113
DataSegmentInfo segment_pool[MaxSegments]
Definition: memory.c:194
static void * actual_base_address(void *const p)
Definition: memory.c:322
@ MagickTrue
Definition: magick-type.h:205
#define NextBlockInList(block)
Definition: memory.c:109
@ IOMode
Definition: blob.h:35
#define BlockFooter(block, size)
Definition: memory.c:101
static void * reserve_space_for_actual_base_address(void *const p)
Definition: memory.c:312
MagickExport void SetMagickAlignedMemoryMethods(AcquireAlignedMemoryHandler acquire_aligned_memory_handler, RelinquishAlignedMemoryHandler relinquish_aligned_memory_handler)
Definition: memory.c:1492
MagickExport size_t GetMaxMemoryRequest(void)
Definition: memory.c:1044
void *(*)(*) *(* ResizeMemoryHandler)(void *, size_t) magick_alloc_size(2)
Definition: memory_.h:34
MagickPrivate void ResetVirtualAnonymousMemory(void)
Definition: memory.c:1335
MagickExport void * AcquireMagickMemory(const size_t size)
Definition: memory.c:552
MagickExport void SetMagickAlignedMemoryMethods(AcquireAlignedMemoryHandler, RelinquishAlignedMemoryHandler)
#define SizeMask
Definition: memory.c:114
void * bound
Definition: memory.c:132
Definition: semaphore.c:61
#define NextBlock(block)
Definition: memory.c:108
#define PreviousBlockInList(block)
Definition: memory.c:112
MagickExport void * CopyMagickMemory(void *magick_restrict destination, const void *magick_restrict source, const size_t size)
Definition: memory.c:837
MagickBooleanType mapped
Definition: memory.c:135
void * allocation
Definition: memory.c:131
#define CACHE_LINE_SIZE
Definition: memory-private.h:30
MagickExport void * GetVirtualMemoryBlob(const MemoryInfo *)
MagickExport void GetMagickMemoryMethods(AcquireMemoryHandler *acquire_memory_handler, ResizeMemoryHandler *resize_memory_handler, DestroyMemoryHandler *destroy_memory_handler)
Definition: memory.c:1013
#define MagickMax(x, y)
Definition: image-private.h:36
#define PreviousBlockBit
Definition: memory.c:111
size_t signature
Definition: memory.c:178
MagickExport int LocaleCompare(const char *p, const char *q)
Definition: locale.c:1435
static void * adjust(void *const p)
Definition: memory.c:332
ResizeMemoryHandler resize_memory_handler
Definition: memory.c:151
@ UnalignedVirtualMemory
Definition: memory.c:125
#define MagickAssumeAligned(address)
Definition: memory-private.h:43
MagickExport void DestroyMagickMemory(void)
Definition: memory.c:885
#define SizeOfBlock(block)
Definition: memory.c:115
@ MapVirtualMemory
Definition: memory.c:124
#define MaxBlocks
Definition: memory.c:106
#define MagickPrivate
Definition: method-attribute.h:81
@ MagickFalse
Definition: magick-type.h:204
#define AcquireAlignedMemory_Actual
Definition: memory.c:337
struct _DataSegmentInfo * previous
Definition: memory.c:140
MagickExport void * AcquireAlignedMemory(const size_t, const size_t) magick_attribute((__malloc__)) magick_alloc_sizes(1
MagickExport void * AcquireAlignedMemory(const size_t count, const size_t quantum)
Definition: memory.c:365
@ UndefinedVirtualMemory
Definition: memory.c:122
MagickExport void * ResizeQuantumMemory(void *, const size_t, const size_t) magick_attribute((__malloc__)) magick_alloc_sizes(2
void *(* AcquireMemoryHandler)(size_t) magick_alloc_size(1)
Definition: memory_.h:32
struct _MagickMemoryMethods MagickMemoryMethods
DestroyMemoryHandler destroy_memory_handler
Definition: memory.c:154
size_t length
Definition: memory.c:138
MagickExport void ActivateSemaphoreInfo(SemaphoreInfo **semaphore_info)
Definition: semaphore.c:98
RelinquishAlignedMemoryHandler relinquish_aligned_memory_handler
Definition: memory.c:160
MagickPrivate void ResetMaxMemoryRequest(void)
Definition: memory.c:1312
size_t allocation
Definition: memory.c:184
MagickExport void * AcquireMagickMemory(const size_t) magick_attribute((__malloc__)) magick_alloc_size(1)
MagickExport void DestroySemaphoreInfo(SemaphoreInfo **semaphore_info)
Definition: semaphore.c:351
size_t MagickAddressType
Definition: magick-type.h:155
MagickExport MagickBooleanType magick_attribute((deprecated))
MagickExport void * GetVirtualMemoryBlob(const MemoryInfo *memory_info)
Definition: memory.c:1090
MagickExport MemoryInfo * RelinquishVirtualMemory(MemoryInfo *memory_info)
Definition: memory.c:1229
MagickBooleanType
Definition: magick-type.h:203
size_t number_segments
Definition: memory.c:190
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1162
size_t length
Definition: memory.c:172
MagickExport void * RelinquishMagickMemory(void *)
MagickExport void GetMagickMemoryMethods(AcquireMemoryHandler *, ResizeMemoryHandler *, DestroyMemoryHandler *)
MagickExport MagickBooleanType RelinquishUniqueFileResource(const char *path)
Definition: resource.c:1287
MagickExport size_t GetMaxMemoryRequest(void)
Definition: memory.c:1044
MagickExport MemoryInfo * RelinquishVirtualMemory(MemoryInfo *)
Definition: memory.c:1229
DataSegmentInfo * segments[MaxSegments]
Definition: memory.c:193
#define CACHE_ALIGNED(n)
Definition: memory-private.h:33
#define SegmentSize
Definition: memory.c:113
struct _DataSegmentInfo DataSegmentInfo
MagickExport void * ResetMagickMemory(void *memory, int byte, const size_t size)
Definition: memory.c:1288
MagickExport void * AcquireCriticalMemory(const size_t size)
Definition: memory.c:626
MagickExport void SetMagickMemoryMethods(AcquireMemoryHandler, ResizeMemoryHandler, DestroyMemoryHandler)
Definition: memory.c:1531
#define BlockThreshold
Definition: memory.c:104
MagickExport int AcquireUniqueFileResource(char *path)
Definition: resource.c:600
void *(*)(*) *(*) *(*)(* RelinquishAlignedMemoryHandler)(void *)
Definition: memory_.h:36
#define PreviousBlock(block)
Definition: memory.c:110
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
MagickExport void UnlockSemaphoreInfo(SemaphoreInfo *semaphore_info)
Definition: semaphore.c:449
@ AlignedVirtualMemory
Definition: memory.c:123
#define MagickULLConstant(c)
Definition: magick-type.h:39
MagickExport char * GetPolicyValue(const char *name)
Definition: policy.c:524
MagickExport void * AcquireQuantumMemory(const size_t, const size_t) magick_attribute((__malloc__)) magick_alloc_sizes(1
MagickExport void * ResetMagickMemory(void *, int, const size_t)
static size_t virtual_anonymous_memory
Definition: memory.c:202
@ ResourceLimitFatalError
Definition: exception.h:78
#define MagickMin(x, y)
Definition: image-private.h:37
#define BlockHeader(block)
Definition: memory.c:103
static MagickBooleanType HeapOverflowSanityCheckGetSize(const size_t count, const size_t quantum, size_t *const extent)
Definition: memory_.h:84
MagickExport unsigned char * MapBlob(int, const MapMode, const MagickOffsetType, const size_t)
Definition: blob.c:2392
MagickExport void * AcquireCriticalMemory(const size_t)
#define MAGICK_SSIZE_MAX
Definition: studio.h:382
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:665
MagickExport void * CopyMagickMemory(void *magick_restrict, const void *magick_restrict, const size_t) magick_attribute((__nonnull__))
ssize_t MagickOffsetType
Definition: magick-type.h:139
static void * align_to_cache(void *const p)
Definition: memory.c:327
#define MagickPathExtent
Definition: magick-type.h:31