#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/semaphore.h"#include "wizard/string_.h"
Go to the source code of this file.
Data Structures | |
| struct | _DataSegmentInfo |
| struct | _MemoryInfo |
| struct | _WizardMemoryMethods |
Defines | |
| #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 | AlignedSize (16*sizeof(void *)) |
| #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) |
Typedefs | |
| typedef struct _DataSegmentInfo | DataSegmentInfo |
| typedef struct _MemoryInfo | MemoryInfo |
| typedef struct _WizardMemoryMethods | WizardMemoryMethods |
Functions | |
| WizardExport void * | AcquireAlignedMemory (const size_t count, const size_t quantum) |
| 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 * | RelinquishAlignedMemory (void *memory) |
| WizardExport void * | RelinquishWizardMemory (void *memory) |
| WizardExport void * | ResetWizardMemory (void *memory, int byte, 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 AlignedSize (16*sizeof(void *)) |
Definition at line 73 of file memory.c.
Referenced by AcquireAlignedMemory().
| #define BlockFooter | ( | block, | |||
| size | ) | ((size_t *) ((char *) (block)+(size)-2*sizeof(size_t))) |
Definition at line 68 of file memory.c.
Referenced by RelinquishWizardMemory().
| #define BlockHeader | ( | block | ) | ((size_t *) (block)-1) |
Definition at line 70 of file memory.c.
Referenced by RelinquishWizardMemory().
| #define MaxBlocks ((BlockThreshold/(4*sizeof(size_t)))+MaxBlockExponent+1) |
Definition at line 75 of file memory.c.
Referenced by AcquireWizardMemory().
| #define MaxSegments 1024 |
Definition at line 76 of file memory.c.
Referenced by AcquireWizardMemory().
| #define NextBlock | ( | block | ) | ((char *) (block)+SizeOfBlock(block)) |
Definition at line 78 of file memory.c.
Referenced by RelinquishWizardMemory().
| #define PreviousBlock | ( | block | ) | ((char *) (block)-(*((size_t *) (block)-2))) |
Definition at line 80 of file memory.c.
Referenced by RelinquishWizardMemory().
| #define PreviousBlockBit 0x01 |
Definition at line 81 of file memory.c.
Referenced by RelinquishWizardMemory().
| #define PreviousBlockInList | ( | block | ) | (*((void **) (block)+1)) |
| #define SegmentSize (2*1024*1024) |
Definition at line 83 of file memory.c.
Referenced by AcquireWizardMemory().
| #define SizeMask (~0x01) |
Definition at line 84 of file memory.c.
Referenced by AcquireWizardMemory(), and RelinquishWizardMemory().
| #define SizeOfBlock | ( | block | ) | (*BlockHeader(block) & SizeMask) |
Definition at line 85 of file memory.c.
Referenced by RelinquishWizardMemory().
| typedef struct _DataSegmentInfo DataSegmentInfo |
| typedef struct _MemoryInfo MemoryInfo |
| typedef struct _WizardMemoryMethods WizardMemoryMethods |
| WizardExport void* AcquireAlignedMemory | ( | const size_t | count, | |
| const size_t | quantum | |||
| ) |
Definition at line 188 of file memory.c.
References AlignedSize.
Referenced by AcquireAESInfo(), AcquireBZIPInfo(), AcquireCipherInfo(), AcquireCRC64Info(), AcquireEntropyInfo(), AcquireExceptionInfo(), AcquireFileInfo(), AcquireHashInfo(), AcquireHMACInfo(), AcquireKeyInfo(), AcquireKeyringInfo(), AcquireMD5Info(), AcquireRandomInfo(), AcquireSecretInfo(), AcquireSerpentInfo(), AcquireSHA1Info(), AcquireSHA224Info(), AcquireSHA256Info(), AcquireSHA384Info(), AcquireSHA512Info(), AcquireStringInfo(), AcquireTwofishInfo(), AcquireZIPInfo(), AddChildToXMLTree(), AddValueToSplayTree(), AllocateSemaphoreInfo(), AppendValueToLinkedList(), InsertValueInLinkedList(), InsertValueInSortedLinkedList(), LoadLogList(), LoadLogLists(), LoadMimeList(), NewHashmap(), NewLinkedList(), NewSplayTree(), NewXMLTreeTag(), OpenBlob(), ParseInternalDoctype(), ParseProcessingInstructions(), PutEntryInHashmap(), ThrowException(), and WizardCreateThreadKey().
| WizardExport void* AcquireQuantumMemory | ( | const size_t | count, | |
| const size_t | quantum | |||
| ) |
Definition at line 454 of file memory.c.
References AcquireWizardMemory().
Referenced by AcquireAESInfo(), AcquireBZIPMemory(), AcquireCRC64Info(), AcquireMD5Info(), AcquireSHA1Info(), AcquireSHA224Info(), AcquireSHA256Info(), AcquireSHA384Info(), AcquireSHA512Info(), AcquireString(), AcquireStringInfo(), AcquireZIPMemory(), BalanceSplayTree(), Base64Decode(), Base64Encode(), ConfigureFileToStringInfo(), ConstantString(), ConvertLatin1ToUTF8(), ConvertUTF16ToUTF8(), FileToBlob(), GetConfigureInfoList(), GetConfigureList(), GetExecutionPath(), GetHashHexDigest(), GetLogInfoList(), GetLogList(), GetMimeInfoList(), GetMimeList(), GetPathComponents(), GetWizardOptions(), IncreaseHashmapCapacity(), IterateOverSplayTree(), NewHashmap(), NewXMLTree(), ParseEntities(), ParseInternalDoctype(), ParseProcessingInstructions(), SetStringInfoLength(), SetXMLTreeAttribute(), StringInfoToHexString(), StringInfoToString(), and StringToArgv().
| WizardExport void* AcquireWizardMemory | ( | const size_t | size | ) |
Definition at line 383 of file memory.c.
References _WizardMemoryMethods::acquire_memory_handler, AcquireSemaphoreInfo(), LockSemaphoreInfo(), MaxBlocks, MaxSegments, memory_methods, ResetWizardMemory(), SegmentSize, SizeMask, UnlockSemaphoreInfo(), and WizardFalse.
Referenced by AcquireAuthenticateInfo(), AcquireQuantumMemory(), LoadConfigureList(), LoadConfigureLists(), and ResizeWizardMemory().
| WizardExport void* CopyWizardMemory | ( | void * | destination, | |
| const void * | source, | |||
| const size_t | size | |||
| ) |
Definition at line 497 of file memory.c.
Referenced by AcquireRandomInfo(), CloneStringInfo(), ConcatenateStringInfo(), ConfigureFileToStringInfo(), ConvertUTF16ToUTF8(), FileToBlob(), GetPathComponent(), GetPhrase(), NewXMLTreeTag(), ParseEntities(), ParseInternalDoctype(), ReadBlob(), SetAESKey(), SetRandomKey(), SetStringInfo(), SetStringInfoDatum(), SetXMLTreeAttribute(), SplitStringInfo(), StripString(), SubstituteString(), UpdateSHA1(), UpdateSHA224(), UpdateSHA256(), UpdateSHA384(), UpdateSHA512(), UpdateSignature(), WriteBlob(), and WriteBlobStream().
| WizardExport void DestroyWizardMemory | ( | void | ) |
Definition at line 544 of file memory.c.
References AcquireSemaphoreInfo(), _WizardMemoryMethods::destroy_memory_handler, DestroySemaphoreInfo(), LockSemaphoreInfo(), memory_methods, ResetWizardMemory(), UnlockSemaphoreInfo(), UnmapBlob(), and WizardFalse.
| WizardExport void GetWizardMemoryMethods | ( | AcquireMemoryHandler * | acquire_memory_handler, | |
| ResizeMemoryHandler * | resize_memory_handler, | |||
| DestroyMemoryHandler * | destroy_memory_handler | |||
| ) |
Definition at line 672 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 708 of file memory.c.
Referenced by DestroySemaphoreInfo().
| WizardExport void* RelinquishWizardMemory | ( | void * | memory | ) |
Definition at line 739 of file memory.c.
References BlockFooter, BlockHeader, _WizardMemoryMethods::destroy_memory_handler, LockSemaphoreInfo(), memory_methods, NextBlock, PreviousBlock, PreviousBlockBit, SizeMask, SizeOfBlock, and UnlockSemaphoreInfo().
Referenced by AcquireFileInfo(), AcquireUniqueFileResource(), AddPathToXMLTree(), BalanceSplayTree(), Base64Decode(), CanonicalXMLContent(), ClearLinkedList(), CloneString(), ConfigureFileToStringInfo(), DeleteNodeByValueFromSplayTree(), DeleteNodeFromSplayTree(), DestroyAESInfo(), DestroyAuthenticateInfo(), DestroyBlob(), DestroyBZIPInfo(), DestroyCipherInfo(), DestroyConfigureElement(), DestroyCRC64Info(), DestroyEntropyInfo(), DestroyExceptionElement(), DestroyExceptionInfo(), DestroyFileInfo(), DestroyHashInfo(), DestroyHashmap(), DestroyHMACInfo(), DestroyKeyInfo(), DestroyKeyringInfo(), DestroyLinkedList(), DestroyLogElement(), DestroyMD5Info(), DestroyMimeElement(), DestroyRandomInfo(), DestroySecretInfo(), DestroySerpentInfo(), DestroySHA1Info(), DestroySHA224Info(), DestroySHA256Info(), DestroySHA384Info(), DestroySHA512Info(), DestroySplayTree(), DestroyString(), DestroyStringInfo(), DestroyStringList(), DestroyTimerInfo(), DestroyTwofishInfo(), DestroyXMLTree(), DestroyXMLTreeAttributes(), DestroyZIPInfo(), FileToBlob(), GetConfigureOptions(), GetConfigurePaths(), GetExecutionPath(), GetPathTemplate(), GetXMLTreePath(), IncreaseHashmapCapacity(), InsertValueInSortedLinkedList(), IterateOverSplayTree(), ListConfigureInfo(), ListLogInfo(), ListMimeInfo(), LoadConfigureList(), LoadLogList(), LogWizardEventList(), OpenBlob(), ParseInternalDoctype(), PutEntryInHashmap(), RelinquishBZIPMemory(), RelinquishZIPMemory(), RemoveElementByValueFromLinkedList(), RemoveElementFromLinkedList(), RemoveEntryFromHashmap(), RemoveLastElementFromLinkedList(), RemoveNodeByValueFromSplayTree(), RemoveNodeFromSplayTree(), ResetSplayTree(), ResizeQuantumMemory(), ResizeWizardMemory(), StringToArgv(), WizardDeleteThreadKey(), WizardOpenStream(), and WizardsToolkitGenesis().
| WizardExport void* ResetWizardMemory | ( | void * | memory, | |
| int | byte, | |||
| const size_t | size | |||
| ) |
Definition at line 811 of file memory.c.
Referenced by AcquireAESInfo(), AcquireAuthenticateInfo(), AcquireBZIPInfo(), AcquireCipherInfo(), AcquireCRC64Info(), AcquireEntropyInfo(), AcquireExceptionInfo(), AcquireFileInfo(), AcquireHashInfo(), AcquireHMACInfo(), AcquireKeyInfo(), AcquireKeyringInfo(), AcquireMD5Info(), AcquireRandomInfo(), AcquireSecretInfo(), AcquireSerpentInfo(), AcquireSHA1Info(), AcquireSHA224Info(), AcquireSHA256Info(), AcquireSHA384Info(), AcquireSHA512Info(), AcquireStringInfo(), AcquireTwofishInfo(), AcquireWizardMemory(), AcquireZIPInfo(), AddChildToXMLTree(), AllocateSemaphoreInfo(), DecipherAESBlock(), DecipherCBCMode(), DecipherCFBMode(), DecipherCTRMode(), DecipherOFBMode(), DestroyRandomInfo(), DestroyWizardMemory(), EncipherAESBlock(), EncipherCBCMode(), EncipherCFBMode(), EncipherCTRMode(), EncipherOFBMode(), FinalizeMD5(), FinalizeSHA1(), FinalizeSHA224(), FinalizeSHA256(), FinalizeSHA384(), FinalizeSHA512(), FinalizeSignature(), GetBlobInfo(), GetExceptionInfo(), GetPhrase(), GetSignatureInfo(), HexStringToStringInfo(), IncreaseHashmapCapacity(), LoadConfigureList(), LoadConfigureLists(), LoadLogList(), LoadLogLists(), LoadMimeList(), NewHashmap(), NewLinkedList(), NewSplayTree(), NewXMLTreeTag(), OpenBlob(), ParseWizardTime(), PrintKeyringProperties(), ResetStringInfo(), SetAESKey(), SetStringInfo(), SetTwofishKey(), ThrowException(), TransformSHA1(), TransformSHA224(), TransformSHA256(), TransformSHA384(), TransformSHA512(), and UpdateMD5().
| WizardExport void* ResizeQuantumMemory | ( | void * | memory, | |
| const size_t | count, | |||
| const size_t | quantum | |||
| ) |
Definition at line 924 of file memory.c.
References RelinquishWizardMemory(), and ResizeWizardMemory().
Referenced by CanonicalXMLContent(), CloneString(), ConcatenateString(), ConvertUTF16ToUTF8(), EncodePredefinedEntities(), FileToBlob(), 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 864 of file memory.c.
References AcquireWizardMemory(), LockSemaphoreInfo(), memory_methods, RelinquishWizardMemory(), _WizardMemoryMethods::resize_memory_handler, 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 969 of file memory.c.
References _WizardMemoryMethods::acquire_memory_handler, _WizardMemoryMethods::destroy_memory_handler, memory_methods, and _WizardMemoryMethods::resize_memory_handler.
WizardMemoryMethods memory_methods [static] |
{
(AcquireMemoryHandler) malloc,
(ResizeMemoryHandler) realloc,
(DestroyMemoryHandler) free
}
Definition at line 139 of file memory.c.
Referenced by AcquireWizardMemory(), DestroyWizardMemory(), GetWizardMemoryMethods(), RelinquishWizardMemory(), ResizeWizardMemory(), and SetWizardMemoryMethods().
1.6.2-20100208