MagickCore 7.0.10
|
#include "wizard/studio.h"
#include "wizard/blob.h"
#include "wizard/blob-private.h"
#include "wizard/exception.h"
#include "wizard/exception-private.h"
#include "wizard/memory_.h"
#include "wizard/memory-private.h"
#include "wizard/resource_.h"
#include "wizard/semaphore.h"
#include "wizard/string_.h"
#include "wizard/utility-private.h"
Go to the source code of this file.
Data Structures | |
struct | _DataSegmentInfo |
struct | _WizardMemoryMethods |
struct | _MemoryInfo |
struct | _MemoryPool |
Macros | |
#define | BlockFooter(block, size) ((size_t *) ((char *) (block)+(size)-2*sizeof(size_t))) |
#define | BlockHeader(block) ((size_t *) (block)-1) |
#define | BlockSize 4096 |
#define | BlockThreshold 1024 |
#define | MaxBlockExponent 16 |
#define | MaxBlocks ((BlockThreshold/(4*sizeof(size_t)))+MaxBlockExponent+1) |
#define | MaxSegments 1024 |
#define | MemoryGuard ((0xdeadbeef << 31)+0xdeafdeed) |
#define | NextBlock(block) ((char *) (block)+SizeOfBlock(block)) |
#define | NextBlockInList(block) (*(void **) (block)) |
#define | PreviousBlock(block) ((char *) (block)-(*((size_t *) (block)-2))) |
#define | PreviousBlockBit 0x01 |
#define | PreviousBlockInList(block) (*((void **) (block)+1)) |
#define | SegmentSize (2*1024*1024) |
#define | SizeMask (~0x01) |
#define | SizeOfBlock(block) (*BlockHeader(block) & SizeMask) |
#define | AlignedExtent(size, alignment) (((size)+((alignment)-1)) & ~((alignment)-1)) |
Typedefs | |
typedef struct _DataSegmentInfo | DataSegmentInfo |
typedef struct _WizardMemoryMethods | WizardMemoryMethods |
typedef struct _MemoryPool | MemoryPool |
Enumerations | |
enum | VirtualMemoryType { UndefinedVirtualMemory , AlignedVirtualMemory , MapVirtualMemory , UnalignedVirtualMemory } |
Functions | |
WizardExport void * | AcquireAlignedMemory (const size_t count, const size_t quantum) |
WizardExport MemoryInfo * | AcquireVirtualMemory (const size_t count, const size_t quantum, ExceptionInfo *exception) |
WizardExport void * | AcquireWizardMemory (const size_t size) |
WizardExport void * | AcquireQuantumMemory (const size_t count, const size_t quantum) |
WizardExport void * | CopyWizardMemory (void *destination, const void *source, const size_t size) |
WizardExport void | DestroyWizardMemory (void) |
WizardExport void | GetWizardMemoryMethods (AcquireMemoryHandler *acquire_memory_handler, ResizeMemoryHandler *resize_memory_handler, DestroyMemoryHandler *destroy_memory_handler) |
WizardExport void * | GetVirtualMemoryBlob (const MemoryInfo *memory_info) |
WizardExport void * | RelinquishAlignedMemory (void *memory) |
WizardExport MemoryInfo * | RelinquishVirtualMemory (MemoryInfo *memory_info) |
WizardExport void * | RelinquishWizardMemory (void *memory) |
WizardExport void * | ResetWizardMemory (void *memory, int c, const size_t size) |
WizardExport void * | ResizeWizardMemory (void *memory, const size_t size) |
WizardExport void * | ResizeQuantumMemory (void *memory, const size_t count, const size_t quantum) |
WizardExport void | SetWizardMemoryMethods (AcquireMemoryHandler acquire_memory_handler, ResizeMemoryHandler resize_memory_handler, DestroyMemoryHandler destroy_memory_handler) |
Variables | |
static WizardMemoryMethods | memory_methods |
#define AlignedExtent | ( | size, | |
alignment | |||
) | (((size)+((alignment)-1)) & ~((alignment)-1)) |
#define BlockFooter | ( | block, | |
size | |||
) | ((size_t *) ((char *) (block)+(size)-2*sizeof(size_t))) |
#define MaxBlocks ((BlockThreshold/(4*sizeof(size_t)))+MaxBlockExponent+1) |
#define NextBlock | ( | block | ) | ((char *) (block)+SizeOfBlock(block)) |
#define PreviousBlock | ( | block | ) | ((char *) (block)-(*((size_t *) (block)-2))) |
#define PreviousBlockInList | ( | block | ) | (*((void **) (block)+1)) |
#define SizeOfBlock | ( | block | ) | (*BlockHeader(block) & SizeMask) |
typedef struct _DataSegmentInfo DataSegmentInfo |
typedef struct _MemoryPool MemoryPool |
typedef struct _WizardMemoryMethods WizardMemoryMethods |
enum VirtualMemoryType |
WizardExport void * AcquireAlignedMemory | ( | const size_t | count, |
const size_t | quantum | ||
) |
Definition at line 243 of file memory.c.
References AcquireWizardMemory(), AlignedExtent, CACHE_LINE_SIZE, and GetWizardPageSize().
Referenced by AcquireVirtualMemory().
WizardExport void * AcquireQuantumMemory | ( | const size_t | count, |
const size_t | quantum | ||
) |
Definition at line 657 of file memory.c.
References AcquireWizardMemory().
Referenced by access_utf8(), AcquireAESInfo(), AcquireBZIPMemory(), AcquireCRC64Info(), AcquireLZMAMemory(), AcquireMD5Info(), AcquireSHA1Info(), AcquireSHA2224Info(), AcquireSHA2256Info(), AcquireSHA2384Info(), AcquireSHA2512Info(), AcquireString(), AcquireStringInfo(), AcquireZIPMemory(), BalanceSplayTree(), Base64Decode(), Base64Encode(), BlobToStringInfo(), ConcatenateStringInfo(), ConfigureFileToStringInfo(), ConstantString(), ConvertLatin1ToUTF8(), ConvertUTF16ToUTF8(), FileToBlob(), FileToXML(), fopen_utf8(), GetConfigureInfoList(), GetConfigureList(), GetExecutionPath(), GetHashHexDigest(), GetLocaleInfoList(), GetLocaleList(), GetLogInfoList(), GetLogList(), GetMimeInfoList(), GetMimeList(), GetPathComponents(), GetWizardOptions(), IncreaseHashmapCapacity(), IterateOverSplayTree(), NewHashmap(), NewXMLTree(), open_utf8(), ParseEntities(), ParseInternalDoctype(), ParseProcessingInstructions(), popen_utf8(), remove_utf8(), rename_utf8(), SetStringInfoLength(), SetXMLTreeAttribute(), stat_utf8(), StringInfoToHexString(), StringInfoToString(), and StringToArgv().
WizardExport MemoryInfo * AcquireVirtualMemory | ( | const size_t | count, |
const size_t | quantum, | ||
ExceptionInfo * | exception | ||
) |
Definition at line 469 of file memory.c.
References AcquireAlignedMemory(), AcquireUniqueFileResource(), AcquireWizardMemory(), AcquireWizardResource(), AlignedVirtualMemory, _MemoryInfo::blob, DiskResource, _MemoryInfo::filename, IOMode, _MemoryInfo::length, MapBlob(), MapResource, MapVirtualMemory, MemoryResource, RelinquishUniqueFileResource(), RelinquishVirtualMemory(), RelinquishWizardResource(), ResetWizardMemory(), ResourceFatalError, _MemoryInfo::signature, ThrowFatalException, _MemoryInfo::type, UnalignedVirtualMemory, WizardAssumeAligned, WizardFalse, WizardSignature, and WizardTrue.
WizardExport void * AcquireWizardMemory | ( | const size_t | size | ) |
Definition at line 586 of file memory.c.
References _WizardMemoryMethods::acquire_memory_handler, ActivateSemaphoreInfo(), _MemoryPool::allocation, _MemoryPool::blocks, LockSemaphoreInfo(), MaxBlocks, MaxSegments, memory_methods, _DataSegmentInfo::next, _DataSegmentInfo::previous, ResetWizardMemory(), _MemoryPool::segment_pool, SegmentSize, SizeMask, UnlockSemaphoreInfo(), and WizardFalse.
Referenced by AcquireAESInfo(), AcquireAlignedMemory(), AcquireAuthenticateInfo(), AcquireBZIPInfo(), AcquireChachaInfo(), AcquireCipherInfo(), AcquireConfigureCache(), AcquireCRC64Info(), AcquireEntropyInfo(), AcquireExceptionInfo(), AcquireFileInfo(), AcquireHashInfo(), AcquireHMACInfo(), AcquireKeyInfo(), AcquireKeyringInfo(), AcquireLogCache(), AcquireLZMAInfo(), AcquireMD5Info(), AcquireQuantumMemory(), AcquireRandomInfo(), AcquireSecretInfo(), AcquireSerpentInfo(), AcquireSHA1Info(), AcquireSHA2224Info(), AcquireSHA2256Info(), AcquireSHA2384Info(), AcquireSHA2512Info(), AcquireSHA3Info(), AcquireStringInfo(), AcquireTimerInfo(), AcquireTwofishInfo(), AcquireVirtualMemory(), AcquireZIPInfo(), AddChildToXMLTree(), AddValueToSplayTree(), AppendValueToLinkedList(), InsertValueInLinkedList(), InsertValueInSortedLinkedList(), LoadConfigureCache(), LoadLocaleCache(), LoadLogCache(), LoadMimeCache(), NewHashmap(), NewLinkedList(), NewSplayTree(), NewXMLTreeTag(), OpenBlob(), ParseInternalDoctype(), ParseProcessingInstructions(), PutEntryInHashmap(), ResizeWizardMemory(), ThrowException(), and WizardCreateThreadKey().
WizardExport void * CopyWizardMemory | ( | void * | destination, |
const void * | source, | ||
const size_t | size | ||
) |
Definition at line 700 of file memory.c.
Referenced by AcquireRandomInfo(), GetPathComponent(), GetPhrase(), SetAESKey(), SetRandomKey(), SubstituteString(), UpdateSHA1(), UpdateSHA2224(), UpdateSHA2256(), UpdateSHA2384(), UpdateSHA2512(), and UpdateSignature().
WizardExport void DestroyWizardMemory | ( | void | ) |
Definition at line 748 of file memory.c.
References ActivateSemaphoreInfo(), _DataSegmentInfo::allocation, _WizardMemoryMethods::destroy_memory_handler, _DataSegmentInfo::length, LockSemaphoreInfo(), _DataSegmentInfo::mapped, memory_methods, _MemoryPool::number_segments, RelinquishSemaphoreInfo(), ResetWizardMemory(), _MemoryPool::segments, UnlockSemaphoreInfo(), UnmapBlob(), and WizardFalse.
WizardExport void * GetVirtualMemoryBlob | ( | const MemoryInfo * | memory_info | ) |
Definition at line 911 of file memory.c.
References _MemoryInfo::blob, _MemoryInfo::signature, and WizardSignature.
WizardExport void GetWizardMemoryMethods | ( | AcquireMemoryHandler * | acquire_memory_handler, |
ResizeMemoryHandler * | resize_memory_handler, | ||
DestroyMemoryHandler * | destroy_memory_handler | ||
) |
Definition at line 876 of file memory.c.
References _WizardMemoryMethods::acquire_memory_handler, _WizardMemoryMethods::destroy_memory_handler, memory_methods, and _WizardMemoryMethods::resize_memory_handler.
WizardExport void * RelinquishAlignedMemory | ( | void * | memory | ) |
Definition at line 941 of file memory.c.
References RelinquishWizardMemory().
Referenced by RelinquishVirtualMemory().
WizardExport MemoryInfo * RelinquishVirtualMemory | ( | MemoryInfo * | memory_info | ) |
Definition at line 978 of file memory.c.
References AlignedVirtualMemory, _MemoryInfo::blob, DiskResource, _MemoryInfo::filename, _MemoryInfo::length, MapResource, MapVirtualMemory, MemoryResource, RelinquishAlignedMemory(), RelinquishUniqueFileResource(), RelinquishWizardMemory(), RelinquishWizardResource(), _MemoryInfo::signature, _MemoryInfo::type, UnalignedVirtualMemory, UnmapBlob(), WizardSignature, and WizardTrue.
Referenced by AcquireVirtualMemory().
WizardExport void * RelinquishWizardMemory | ( | void * | memory | ) |
Definition at line 1039 of file memory.c.
References BlockFooter, BlockHeader, _WizardMemoryMethods::destroy_memory_handler, LockSemaphoreInfo(), memory_methods, NextBlock, PreviousBlock, PreviousBlockBit, SizeOfBlock, and UnlockSemaphoreInfo().
Referenced by access_utf8(), AcquireFileInfo(), AddPathToXMLTree(), BalanceSplayTree(), Base64Decode(), CanonicalXMLContent(), ClearLinkedList(), ConfigureFileToStringInfo(), DeleteNodeByValueFromSplayTree(), DeleteNodeFromSplayTree(), DestroyAESInfo(), DestroyAuthenticateInfo(), DestroyBlob(), DestroyBZIPInfo(), DestroyChachaInfo(), DestroyCipherInfo(), DestroyConfigureElement(), DestroyCRC64Info(), DestroyEntropyInfo(), DestroyExceptionElement(), DestroyExceptionInfo(), DestroyFileInfo(), DestroyHashInfo(), DestroyHashmap(), DestroyHMACInfo(), DestroyKeyInfo(), DestroyKeyringInfo(), DestroyLinkedList(), DestroyLocaleNode(), DestroyLogElement(), DestroyLZMAInfo(), DestroyMD5Info(), DestroyMimeElement(), DestroyRandomInfo(), DestroySecretInfo(), DestroySerpentInfo(), DestroySHA1Info(), DestroySHA2224Info(), DestroySHA2256Info(), DestroySHA2384Info(), DestroySHA2512Info(), DestroySHA3Info(), DestroySplayTree(), DestroyString(), DestroyStringInfo(), DestroyStringList(), DestroyTimerInfo(), DestroyTwofishInfo(), DestroyXMLTree(), DestroyXMLTreeAttributes(), DestroyXMLTreeRoot(), DestroyZIPInfo(), FileToBlob(), FileToStringInfo(), FileToXML(), fopen_utf8(), GetConfigureOptions(), GetConfigurePaths(), GetExecutionPath(), GetLocaleOptions(), GetPathTemplate(), GetXMLTreePath(), IncreaseHashmapCapacity(), InsertValueInSortedLinkedList(), IterateOverSplayTree(), ListConfigureInfo(), ListLocaleInfo(), ListLogInfo(), ListMimeInfo(), LoadConfigureCache(), LoadLocaleCache(), LoadLogCache(), LogWizardEventList(), open_utf8(), OpenBlob(), ParseInternalDoctype(), popen_utf8(), PutEntryInHashmap(), RelinquishAlignedMemory(), RelinquishBZIPMemory(), RelinquishLZMAMemory(), RelinquishVirtualMemory(), RelinquishZIPMemory(), remove_utf8(), RemoveElementByValueFromLinkedList(), RemoveElementFromLinkedList(), RemoveEntryFromHashmap(), RemoveLastElementFromLinkedList(), RemoveNodeByValueFromSplayTree(), RemoveNodeFromSplayTree(), rename_utf8(), ResetSplayTree(), ResizeQuantumMemory(), ResizeWizardMemory(), stat_utf8(), StringToArgv(), WizardDeleteThreadKey(), and WizardsToolkitGenesis().
WizardExport void * ResetWizardMemory | ( | void * | memory, |
int | c, | ||
const size_t | size | ||
) |
Definition at line 1114 of file memory.c.
Referenced by AcquireVirtualMemory(), AcquireWizardMemory(), DecipherAESBlock(), DecipherCBCMode(), DecipherCFBMode(), DecipherCTRMode(), DecipherOFBMode(), DestroyWizardMemory(), EncipherAESBlock(), EncipherCBCMode(), EncipherCFBMode(), EncipherCTRMode(), EncipherOFBMode(), SetAESKey(), and SetTwofishKey().
WizardExport void * ResizeQuantumMemory | ( | void * | memory, |
const size_t | count, | ||
const size_t | quantum | ||
) |
Definition at line 1236 of file memory.c.
References RelinquishWizardMemory(), and ResizeWizardMemory().
Referenced by BlobToStringInfo(), CanonicalXMLContent(), CloneString(), ConcatenateString(), ConcatenateStringInfo(), ConvertUTF16ToUTF8(), EncodePredefinedEntities(), FileToBlob(), FileToXML(), NewXMLTree(), ParseEntities(), ParseInternalDoctype(), ParseProcessingInstructions(), SetBlobExtent(), SetStringInfoLength(), SetXMLTreeAttribute(), SubstituteString(), TranslateEvent(), TranslateFilename(), WriteBlob(), XMLTreeInfoToXML(), and XMLTreeTagToXML().
WizardExport void * ResizeWizardMemory | ( | void * | memory, |
const size_t | size | ||
) |
Definition at line 1175 of file memory.c.
References AcquireWizardMemory(), LockSemaphoreInfo(), memory_methods, RelinquishWizardMemory(), _WizardMemoryMethods::resize_memory_handler, ResourceFatalError, ThrowFatalException, UnlockSemaphoreInfo(), and WizardFalse.
Referenced by ResizeQuantumMemory().
WizardExport void SetWizardMemoryMethods | ( | AcquireMemoryHandler | acquire_memory_handler, |
ResizeMemoryHandler | resize_memory_handler, | ||
DestroyMemoryHandler | destroy_memory_handler | ||
) |
Definition at line 1281 of file memory.c.
References _WizardMemoryMethods::acquire_memory_handler, _WizardMemoryMethods::destroy_memory_handler, memory_methods, and _WizardMemoryMethods::resize_memory_handler.
|
static |
Definition at line 194 of file memory.c.
Referenced by AcquireWizardMemory(), DestroyWizardMemory(), GetWizardMemoryMethods(), RelinquishWizardMemory(), ResizeWizardMemory(), and SetWizardMemoryMethods().