- Main Page
- Classes
- Files

- File List
- File Members

# flMemory.h File Reference

`#include "flGlobal.h"`
`#include "flMemoryVMem.h"`

Go to the source code of this file.

## Classes
struct | MemoryTree
## Defines
#define | MEMORY_UNCACHED_OFFSET 0x40000000
| The offset that is added in order to make a pointer uncached.
#define | MEMORY_USER_BASE 0x08800000
| The start of the user memory.
#define | MEMORY_USER_SIZE 0x01800000
| The length of the user memory.
#define | MEMORY_KERNEL_BASE 0x08000000
| The start of the kernel memory.
#define | MEMORY_KERNEL_SIZE 0x00800000
| The length of the kernel memory.
#define | MEMORY_SCRATCHPAD_BASE 0x00010000
| The start of the scratchpad memory.
#define | MEMORY_SCRATCHPAD_SIZE 0x00004000
| The length of the scratchpad memory.
#define | MEMORY_PARTITION_KERNEL1_BASE 0x88000000
| The start of kernel partition 1.
#define | MEMORY_PARTITION_KERNEL1_SIZE 0x00300000
| The size of kernel partition 1.
#define | MEMORY_PARTITION_KERNEL2_BASE 0x88300000
| The start of kernel partition 2.
#define | MEMORY_PARTITION_KERNEL2_SIZE 0x00100000
| The size of kernel partition 2.
#define | MEMORY_PARTITION_KERNEL3_BASE 0x88400000
| The start of kernel partition 3.
#define | MEMORY_PARTITION_KERNEL3_SIZE 0x00400000
| The size of kernel partition 3.
#define | memSetByte(inPtr, inVal, inSize) memSetByteFrom(inPtr, inVal, inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memSetShort(inPtr, inVal, inSize) memSetShortFrom(inPtr, inVal, inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memClear(inPtr, inSize) memClearFrom(inPtr, inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memCopy(inDest, inSrc, inSize) memCopyFrom(inDest, inSrc, inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memCompare(inSrc0, inSrc1, inSize) memCompareFrom(inSrc0, inSrc1, inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memAlloc(inSize) memAllocFrom(inSize, __FILE__, __FUNCTION__, __LINE__)
| This is a wrapper for malloc, it allows for extra options such as higher default alignment, memory integrity checks and overflowing into areas other than the heap.
#define | memCalloc(inSize0, inSize1) memCallocFrom(inSize0, inSize1, __FILE__, __FUNCTION__, __LINE__)
#define | memQalloc(inSize) memQallocFrom(inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memAllocUncached(inSize) memAllocUncachedFrom(inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memRealloc(inData, inSize) memReallocFrom(inData, inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memAlign(inBoundry, inSize) memAlignFrom(inBoundry, inSize, __FILE__, __FUNCTION__, __LINE__)
#define | memFree(inData) memFreeFrom(inData, __FILE__, __FUNCTION__, __LINE__)
#define | memUncachedPtr(inPtr) memUncachedPtrFrom(inPtr, __FILE__, __FUNCTION__, __LINE__)
#define | memErrorBytesCheck(inPtr) memErrorBytesCheckFrom(inPtr, __FILE__, __FUNCTION__, __LINE__)
#define | memtAdd(inMemTree, inPtr, inSize, inAlignment) memtAddFrom(inMemTree, inPtr, inSize, inAlignment, __FILE__, __FUNCTION__, __LINE__)
#define | memtDel(inMemTree, inPtr) memtDelFrom(inMemTree, inPtr, __FILE__, __FUNCTION__, __LINE__)
#define | memtErrorBytesCheck(inMemTree) memtErrorBytesCheckFrom(inMemTree, __FILE__, __FUNCTION__, __LINE__)
#define | memCachedPtr(inPtr) ((void*)((unsigned int)(inPtr) & ~MEMORY_UNCACHED_OFFSET))
#define | memIsUncachedPtr(inPtr) (((unsigned int)(inPtr) & MEMORY_UNCACHED_OFFSET) != 0)
#define | memIsCachedPtr(inPtr) (((unsigned int)(inPtr) & MEMORY_UNCACHED_OFFSET) == 0)
#define | memCachedPointer(inPtr) memCachedPtr(inPtr);
#define | memUncachedPointer(inPtr) memUncachedPtr(inPtr);
#define | memIsUncachedPointer(inPtr) memIsUncachedPtr(inPtr)
#define | memIsCachedPointer(inPtr) memIsCachedPtr(inPtr)
## Functions
void | memInit ()
| Called by flInitialize() to initialize the memory system.
void | memTerm ()
| Called by flTerminate() to deinitialize the memory system.
u32 | memFreeSpace (u32 inAccuracy)
| Returns a close estimate of the amount of free space.
u32 | memFreeSpaceTotal ()
| Returns a close estimate of the total amount of free space available to the program on the whole system, this includes video memory, scratchpad and any other memory funcLib can get it's hands on.
char * | memString (u32 inBytes, bool inBinary)
| Converts an amount of bytes into a more humanly readable string to be printed in a log or to the screen.
void | memSetByteFrom (void *inPtr, int inVal, unsigned int inSize, const char *inFile, const char *inFunc, int inLine)
void | memSetShortFrom (void *inPtr, int inVal, unsigned int inSize, const char *inFile, const char *inFunc, int inLine)
void | memClearFrom (void *inPtr, unsigned int inSize, const char *inFile, const char *inFunc, int inLine)
void | memCopyFrom (void *inDest, void *inSrc, unsigned int inSize, const char *inFile, const char *inFunc, int inLine)
int | memCompareFrom (void *inSrc0, void *inSrc1, unsigned int inSize, const char *inFile, const char *inFunc, int inLine)
void * | memAllocFrom (int inSize, const char *inFile, const char *inFunc, int inLine)
| This functions is identical to memAlloc() except that it takes extra parameters to define where it was called from,.
void * | memCallocFrom (int inSize0, int inSize1, const char *inFile, const char *inFunc, int inLine)
void * | memQallocFrom (int inSize, const char *inFile, const char *inFunc, int inLine)
void * | memAllocUncachedFrom (int inSize, const char *inFile, const char *inFunc, int inLine)
void * | memReallocFrom (void *inData, int inSize, const char *inFile, const char *inFunc, int inLine)
void * | memAlignFrom (int inBoundry, int inSize, const char *inFile, const char *inFunc, int inLine)
void | memFreeFrom (void *inData, const char *inFile, const char *inFunc, int inLine)
void * | memUncachedPtrFrom (void *inPtr, const char *inFile, const char *inFunc, int inLine)
u32 | memAddressAlignment (void *inPtr)
| Calculates the largest binary increment that a pointer is aligned to (e.g 16, 32, 64, 128, etc.
bool | memAddressValid (void *inPtr)
| Checks if a pointer resides within valid memory blocks on the terget platform.
bool | memBlockValid (void *inPtr, u32 inSize)
| Checks if a memory block resides within valid memory blocks on the terget platform.
bool | memErrorBytesCheckFrom (void *inPtr, const char *inFile, const char *inFunc, int inLine)
void | memtAddFrom (MemoryTree **inMemTree, void *inPtr, u32 inSize, u32 inAlignment, const char *inFile, const char *inFunc, int inLine)
void | memtDelFrom (MemoryTree **inMemTree, void *inPtr, const char *inFile, const char *inFunc, int inLine)
void | memtErrorBytesCheckFrom (MemoryTree **inMemTree, const char *inFile, const char *inFunc, int inLine)
## Variables
MemoryTree * | memErrorTree
bool | memInitialized
| A boolean to represent whether the memory system has been initialized or not, this is set by memInit() and memTerm().
bool | memScratchpadUsed
| A boolean to represent whether the scratchpad is currently in use or not, this allows the fastest possible allocation/free'ing of memory for temp data.

## Define Documentation

#define memAlign | ( | inBoundry,
|  | inSize |  | ) | memAlignFrom(inBoundry, inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 160 of file flMemory.h.

Referenced by fontCreateDebugTex(), graphicsInit(), memAlignFrom(), memAllocUncachedFrom(), palCreate(), and texCreate().

#define memAlloc | ( | inSize |  | ) | memAllocFrom(inSize, __FILE__, __FUNCTION__, __LINE__)

This is a wrapper for malloc, it allows for extra options such as higher default alignment, memory integrity checks and overflowing into areas other than the heap.

Parameters:

  | inSize | Size of the block to be allocated.

Returns:
  Pointer to the allocated block or NULL on failiure.

Note:
  This acts in exactly the same way as malloc but complies with the funclib options, this macro version of the function is used when FL_DEBUG_CALLEDFROM is defined to reserve compatability and trace where an error was called from without lots of modifications.

See also:
  FL_MEMORY_ALIGNMENT_DEFAULT, FL_MEMORY_ERRORBYTES, FL_MEMORY_VMEM_OVERFLOW, FL_MEMORY_VMEM_STIDE_FILL

Definition at line 155 of file flMemory.h.

Referenced by camCreate(), fileExtension(), fileNameFromPath(), fileOpen(), fontCreateDebug(), fontCreateTexture(), mdl3dAnimLoadMD2(), mdl3dStatLoadOBJ(), mdl3dStatLoadOBJ_faceRead(), memCallocFrom(), mempCreate(), memQallocFrom(), memString(), palCreate(), spriteCreate(), texCreate(), texTreeAdd(), timerCreate(), vmemInit(), and vmemStrideBlockAdd().

#define memAllocUncached | ( | inSize |  | ) | memAllocUncachedFrom(inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 158 of file flMemory.h.

Referenced by memAllocUncachedFrom(), palCreate(), and texCreate().

#define memCachedPointer | ( | inPtr |  | ) | memCachedPtr(inPtr);

Definition at line 258 of file flMemory.h.

#define memCachedPtr | ( | inPtr |  | ) | ((void*)((unsigned int)(inPtr) & ~MEMORY_UNCACHED_OFFSET))

Definition at line 255 of file flMemory.h.

Referenced by graphicsEffectFsColorEnhance(), graphicsEffectFsDichrome(), graphicsEffectFsGlow(), graphicsEffectFsGrayscale(), graphicsEffectFsInvert(), graphicsEffectFsLightEnhance(), graphicsEffectFsMonochrome(), graphicsEffectFsNightVision(), graphicsEffectFsThermalVision(), memAddressValid(), memBlockValid(), vmemNormalPtr(), and vmemReallocFrom().

#define memCalloc | ( | inSize0,
|  | inSize1 |  | ) | memCallocFrom(inSize0, inSize1, __FILE__, __FUNCTION__, __LINE__)

Definition at line 156 of file flMemory.h.

Referenced by memCallocFrom().

#define memClear | ( | inPtr,
|  | inSize |  | ) | memClearFrom(inPtr, inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 114 of file flMemory.h.

Referenced by fileOpen(), graphicsInit(), mdl3dStatLoadOBJ_faceRead(), memCallocFrom(), memClearFrom(), mempCalloc(), memTerm(), palCreate(), texCreate(), texCreateBlank(), vmemCallocFrom(), vmemStrideBlockAdd(), and vmemStrideCalloc().

#define memCompare | ( | inSrc0,
|  | inSrc1,
|  | inSize |  | ) | memCompareFrom(inSrc0, inSrc1, inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 116 of file flMemory.h.

Referenced by memCompareFrom().

#define memCopy | ( | inDest,
|  | inSrc,
|  | inSize |  | ) | memCopyFrom(inDest, inSrc, inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 115 of file flMemory.h.

Referenced by fileNameFromPath(), fileRead(), fileWrite(), graphicsSwizzleData(), graphicsUnswizzleData(), memCopyFrom(), memInit(), memTerm(), palMoveVMem(), texMoveVMem(), texPixel(), texScreenshot(), and vmemReallocFrom().

#define memErrorBytesCheck | ( | inPtr |  | ) | memErrorBytesCheckFrom(inPtr, __FILE__, __FUNCTION__, __LINE__)

Definition at line 220 of file flMemory.h.

Referenced by memErrorBytesCheckFrom(), memFreeFrom(), and memReallocFrom().

#define memFree | ( | inData |  | ) | memFreeFrom(inData, __FILE__, __FUNCTION__, __LINE__)

Definition at line 161 of file flMemory.h.

Referenced by camFree(), debugDevWarningFrom(), debugErrorFrom(), debugLog(), debugLogFrom(), debugStatusLogFrom(), debugWarningFrom(), fileClose(), fileDelete(), fileOpen(), fontFree(), graphicsEffectFsDepthFog(), graphicsEffectFsDichrome(), graphicsEffectFsGlow(), graphicsEffectFsGrayscale(), graphicsEffectFsInvert(), graphicsEffectFsLightEnhance(), graphicsEffectFsMonochrome(), graphicsEffectFsNightVision(), graphicsEffectFsThermalVision(), graphicsSwizzleData(), graphicsTerm(), graphicsUnswizzleData(), mdl3dAnimLoad(), mdl3dAnimLoadMD2(), mdl3dStatFree(), mdl3dStatLoad(), mdl3dStatSave(), memCopyFrom(), memFreeFrom(), mempDestroy(), palCreate(), palFree(), palMoveVMem(), spriteFree(), texCreate(), texFree(), texLoad(), texMoveVMem(), texSave(), timerFree(), vmemStrideBlockDel(), vmemStrideBlockDelRecursive(), and vmemTerm().

#define memIsCachedPointer | ( | inPtr |  | ) | memIsCachedPtr(inPtr)

Definition at line 261 of file flMemory.h.

Referenced by graphicsSwizzleData(), graphicsUnswizzleData(), and texLoad().

#define memIsCachedPtr | ( | inPtr |  | ) | (((unsigned int)(inPtr) & MEMORY_UNCACHED_OFFSET) == 0)

Definition at line 257 of file flMemory.h.

#define memIsUncachedPointer | ( | inPtr |  | ) | memIsUncachedPtr(inPtr)

Definition at line 260 of file flMemory.h.

#define memIsUncachedPtr | ( | inPtr |  | ) | (((unsigned int)(inPtr) & MEMORY_UNCACHED_OFFSET) != 0)

Definition at line 256 of file flMemory.h.

#define MEMORY_KERNEL_BASE 0x08000000

The start of the kernel memory.

Definition at line 20 of file flMemory.h.

#define MEMORY_KERNEL_SIZE 0x00800000

The length of the kernel memory.

Definition at line 21 of file flMemory.h.

#define MEMORY_PARTITION_KERNEL1_BASE 0x88000000

The start of kernel partition 1.

Definition at line 26 of file flMemory.h.

#define MEMORY_PARTITION_KERNEL1_SIZE 0x00300000

The size of kernel partition 1.

Definition at line 27 of file flMemory.h.

#define MEMORY_PARTITION_KERNEL2_BASE 0x88300000

The start of kernel partition 2.

Definition at line 28 of file flMemory.h.

#define MEMORY_PARTITION_KERNEL2_SIZE 0x00100000

The size of kernel partition 2.

Definition at line 29 of file flMemory.h.

#define MEMORY_PARTITION_KERNEL3_BASE 0x88400000

The start of kernel partition 3.

Definition at line 30 of file flMemory.h.

#define MEMORY_PARTITION_KERNEL3_SIZE 0x00400000

The size of kernel partition 3.

Definition at line 31 of file flMemory.h.

#define MEMORY_SCRATCHPAD_BASE 0x00010000

The start of the scratchpad memory.

Definition at line 23 of file flMemory.h.

Referenced by memAddressValid(), memAlignFrom(), memBlockValid(), memFreeFrom(), memInit(), memQallocFrom(), and memTerm().

#define MEMORY_SCRATCHPAD_SIZE 0x00004000

The length of the scratchpad memory.

Definition at line 24 of file flMemory.h.

Referenced by memAddressValid(), memBlockValid(), memFreeFrom(), memInit(), memQallocFrom(), and memTerm().

#define MEMORY_UNCACHED_OFFSET 0x40000000

The offset that is added in order to make a pointer uncached.

Definition at line 15 of file flMemory.h.

Referenced by memReallocFrom(), and memUncachedPtrFrom().

#define MEMORY_USER_BASE 0x08800000

The start of the user memory.

Definition at line 17 of file flMemory.h.

Referenced by memAddressValid(), and memBlockValid().

#define MEMORY_USER_SIZE 0x01800000

The length of the user memory.

Definition at line 18 of file flMemory.h.

Referenced by memAddressValid(), memBlockValid(), and memFreeSpace().

#define memQalloc | ( | inSize |  | ) | memQallocFrom(inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 157 of file flMemory.h.

Referenced by debugCriticalErrorFrom(), debugDevWarningFrom(), debugErrorFrom(), debugLog(), debugLogFrom(), debugStatusLogFrom(), debugWarningFrom(), fileCopy(), graphicsEffectFsDepthFog(), graphicsEffectFsDichrome(), graphicsEffectFsGlow(), graphicsEffectFsGrayscale(), graphicsEffectFsInvert(), graphicsEffectFsLightEnhance(), graphicsEffectFsMonochrome(), graphicsEffectFsNightVision(), graphicsEffectFsThermalVision(), graphicsSwizzleData(), graphicsUnswizzleData(), memCopyFrom(), memQallocFrom(), and texLoadPCX().

#define memRealloc | ( | inData,
|  | inSize |  | ) | memReallocFrom(inData, inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 159 of file flMemory.h.

Referenced by memReallocFrom().

#define memSetByte | ( | inPtr,
|  | inVal,
|  | inSize |  | ) | memSetByteFrom(inPtr, inVal, inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 112 of file flMemory.h.

Referenced by memSetByteFrom().

#define memSetShort | ( | inPtr,
|  | inVal,
|  | inSize |  | ) | memSetShortFrom(inPtr, inVal, inSize, __FILE__, __FUNCTION__, __LINE__)

Definition at line 113 of file flMemory.h.

Referenced by memSetShortFrom().

#define memtAdd | ( | inMemTree,
|  | inPtr,
|  | inSize,
|  | inAlignment |  | ) | memtAddFrom(inMemTree, inPtr, inSize, inAlignment, __FILE__, __FUNCTION__, __LINE__)

Definition at line 221 of file flMemory.h.

Referenced by memAlignFrom(), memReallocFrom(), and memtAddFrom().

#define memtDel | ( | inMemTree,
|  | inPtr |  | ) | memtDelFrom(inMemTree, inPtr, __FILE__, __FUNCTION__, __LINE__)

Definition at line 222 of file flMemory.h.

Referenced by memFreeFrom(), and memtDelFrom().

#define memtErrorBytesCheck | ( | inMemTree |  | ) | memtErrorBytesCheckFrom(inMemTree, __FILE__, __FUNCTION__, __LINE__)

Definition at line 223 of file flMemory.h.

Referenced by memAlignFrom(), memClearFrom(), memCompareFrom(), memCopyFrom(), memFreeFrom(), memReallocFrom(), memSetByteFrom(), memSetShortFrom(), and memtErrorBytesCheckFrom().

#define memUncachedPointer | ( | inPtr |  | ) | memUncachedPtr(inPtr);

Definition at line 259 of file flMemory.h.

#define memUncachedPtr | ( | inPtr |  | ) | memUncachedPtrFrom(inPtr, __FILE__, __FUNCTION__, __LINE__)

Definition at line 162 of file flMemory.h.

Referenced by graphicsEffectFsColorEnhance(), graphicsEffectFsDepthFog(), graphicsEffectFsDichrome(), graphicsEffectFsGlow(), graphicsEffectFsGrayscale(), graphicsEffectFsGrayscaleSW(), graphicsEffectFsInvert(), graphicsEffectFsLightEnhance(), graphicsEffectFsMonochrome(), graphicsEffectFsNightVision(), graphicsEffectFsNightVisionSW(), graphicsEffectFsThermalVision(), memAllocUncachedFrom(), memReallocFrom(), memUncachedPtrFrom(), and vmemInit().

## Function Documentation

u32 memAddressAlignment | ( | void * | inPtr | ) |

Calculates the largest binary increment that a pointer is aligned to (e.g 16, 32, 64, 128, etc.

).

Parameters:

  | inPtr | The pointer whose alignment will be calculated.

Returns:
  The mamximum alignment value.

Definition at line 912 of file flMemory.c.

Referenced by vmemStrideBlockAdd().

bool memAddressValid | ( | void * | inPtr | ) |

Checks if a pointer resides within valid memory blocks on the terget platform.

Parameters:

  | inPtr | The pointer whose validity will be checked.

Returns:
  True if the pointer is valid.

Definition at line 922 of file flMemory.c.

References memCachedPtr, MEMORY_SCRATCHPAD_BASE, MEMORY_SCRATCHPAD_SIZE, MEMORY_USER_BASE, MEMORY_USER_SIZE, MEMORY_VMEM_BASE, and MEMORY_VMEM_SIZE.

Referenced by memFreeFrom().

void* memAlignFrom | ( | int | inBoundry,
|  | int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 702 of file flMemory.c.

References debugWarning, debugWarningFrom(), FL_MEMORY_ALIGNMENT_DEFAULT, memAlign, memErrorTree, MEMORY_SCRATCHPAD_BASE, memScratchpadUsed, memtAdd, memtAddFrom(), memtErrorBytesCheck, memtErrorBytesCheckFrom(), NULL, vmemAlloc, and vmemStrideAlign().

Referenced by memAllocFrom().

void* memAllocFrom | ( | int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

This functions is identical to memAlloc() except that it takes extra parameters to define where it was called from,.

Parameters:

  | inSize | The size of the block to be allocated.
  | inFile | The source file that the original call came from.
  | inFunc | The function that the original call originated from.
  | inLine | The line on which the original call was on.

Returns:
  A pointer to the allocated memory block.

See also:
  memAlloc(), memAlloc

Definition at line 511 of file flMemory.c.

References FL_MEMORY_ALIGNMENT_DEFAULT, and memAlignFrom().

Referenced by memCallocFrom().

void* memAllocUncachedFrom | ( | int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 577 of file flMemory.c.

References debugWarning, debugWarningFrom(), FL_MEMORY_ALIGNMENT_DEFAULT, max, memAlign, memAllocUncached, memUncachedPtr, and NULL.

bool memBlockValid | ( | void * | inPtr,
|  | u32 | inSize |
| ) |  |  |

Checks if a memory block resides within valid memory blocks on the terget platform.

Parameters:

  | inPtr | The pointer to the start of the memory block whose validity will be checked.
  | inSize | The length of the memory block whose validity will be checked.

Returns:
  True if the pointer is valid.

Definition at line 933 of file flMemory.c.

References memCachedPtr, MEMORY_SCRATCHPAD_BASE, MEMORY_SCRATCHPAD_SIZE, MEMORY_USER_BASE, MEMORY_USER_SIZE, MEMORY_VMEM_BASE, and MEMORY_VMEM_SIZE.

Referenced by memClearFrom(), memCompareFrom(), memCopyFrom(), memSetByteFrom(), memSetShortFrom(), memtAddFrom(), memtErrorBytesCheckFrom(), and vmemStrideBlockAdd().

void* memCallocFrom | ( | int | inSize0,
|  | int | inSize1,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 560 of file flMemory.c.

References memAlloc, memAllocFrom(), memCalloc, memClear, memClearFrom(), and NULL.

void memClearFrom | ( | void * | inPtr,
|  | unsigned int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 307 of file flMemory.c.

References debugWarning, debugWarningFrom(), memBlockValid(), memClear, memErrorTree, memtErrorBytesCheck, and memtErrorBytesCheckFrom().

Referenced by memCallocFrom().

int memCompareFrom | ( | void * | inSrc0,
|  | void * | inSrc1,
|  | unsigned int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 453 of file flMemory.c.

References debugWarning, debugWarningFrom(), memBlockValid(), memCompare, memErrorTree, memtErrorBytesCheck, and memtErrorBytesCheckFrom().

void memCopyFrom | ( | void * | inDest,
|  | void * | inSrc,
|  | unsigned int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 366 of file flMemory.c.

References debugWarning, debugWarningFrom(), memBlockValid(), memCopy, memErrorTree, memFree, memQalloc, memtErrorBytesCheck, and memtErrorBytesCheckFrom().

bool memErrorBytesCheckFrom | ( | void * | inPtr,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 1039 of file flMemory.c.

References debugError, debugErrorFrom(), and memErrorBytesCheck.

void memFreeFrom | ( | void * | inData,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 820 of file flMemory.c.

References debugError, debugErrorFrom(), debugWarning, debugWarningFrom(), memAddressValid(), memErrorBytesCheck, memErrorTree, memFree, MEMORY_SCRATCHPAD_BASE, MEMORY_SCRATCHPAD_SIZE, memScratchpadUsed, memtDel, memtDelFrom(), memtErrorBytesCheck, memtErrorBytesCheckFrom(), vmemFree, vmemFreeFrom(), and vmemPointer.

u32 memFreeSpace | ( | u32 | inAccuracy | ) |

Returns a close estimate of the amount of free space.

Parameters:

  | inAccuracy | The amount of bytes that the returned answer should be accurate to.

Returns:
  The amount of free space accurate to inAccuracy bytes.

Note:
  Since malloc allocates 16 byte aligned data, this is the closest accuracy you will get, so there's not much point in setting inAccuracy to below 16.

Definition at line 101 of file flMemory.c.

References MEMORY_USER_SIZE.

Referenced by memFreeSpaceTotal().

u32 memFreeSpaceTotal | ( |  | ) |

Returns a close estimate of the total amount of free space available to the program on the whole system, this includes video memory, scratchpad and any other memory funcLib can get it's hands on.

Returns:
  The amount of free space available on the whole system, to the highest accuracy possible.

Definition at line 128 of file flMemory.c.

References memFreeSpace(), memScratchpadUsed, and vmemFreeSpace().

void memInit | ( |  | ) |

Called by flInitialize() to initialize the memory system.

See also:
  flInitialize(), memTerm()

Definition at line 28 of file flMemory.c.

References debugError, debugStatusLog, FL_DEBUG_STATUS, memCopy, memInitialized, MEMORY_SCRATCHPAD_BASE, and MEMORY_SCRATCHPAD_SIZE.

Referenced by flInitialize().

void* memQallocFrom | ( | int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 521 of file flMemory.c.

References debugWarningFrom(), memAlloc, memInitialized, MEMORY_SCRATCHPAD_BASE, MEMORY_SCRATCHPAD_SIZE, memQalloc, memScratchpadUsed, vmemAlloc, and vmemInitialized.

void* memReallocFrom | ( | void * | inData,
|  | int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 608 of file flMemory.c.

References debugError, debugErrorFrom(), debugWarning, debugWarningFrom(), memErrorBytesCheck, memErrorTree, MEMORY_UNCACHED_OFFSET, memRealloc, memtAdd, memtAddFrom(), memtErrorBytesCheck, memtErrorBytesCheckFrom(), memUncachedPtr, NULL, vmemPointer, and vmemRealloc.

void memSetByteFrom | ( | void * | inPtr,
|  | int | inVal,
|  | unsigned int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 175 of file flMemory.c.

References debugWarning, debugWarningFrom(), memBlockValid(), memErrorTree, memSetByte, memtErrorBytesCheck, and memtErrorBytesCheckFrom().

void memSetShortFrom | ( | void * | inPtr,
|  | int | inVal,
|  | unsigned int | inSize,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 240 of file flMemory.c.

References debugWarning, debugWarningFrom(), memBlockValid(), memErrorTree, memSetShort, memtErrorBytesCheck, and memtErrorBytesCheckFrom().

char* memString | ( | u32 | inBytes,
|  | bool | inBinary |
| ) |  |  |

Converts an amount of bytes into a more humanly readable string to be printed in a log or to the screen.

Parameters:

  | inBytes | The amount of bytes.
  | inBinary | If set to true then it will return binary results where there are 1024 bytes in a Kilobyte (and append e.g. "KiB"), if not then a KiloByte will be considered 1000 bytes (and e.g "KB" will be printed).

Returns:
  A string representing the bytes in SI units, (e.g 1024 bytes = "1 KiB" or "1.02 KB").

Warning:
  This returns an allocated string that must be free'd after use.

See also:
  memFreeSpace(), memFreeSpaceTotal(), memFree()

Definition at line 137 of file flMemory.c.

References memAlloc.

void memtAddFrom | ( | MemoryTree ** | inMemTree,
|  | void * | inPtr,
|  | u32 | inSize,
|  | u32 | inAlignment,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 1083 of file flMemory.c.

References debugError, debugErrorFrom(), memBlockValid(), memtAdd, MemoryTree::memtAlignment, MemoryTree::memtData, MemoryTree::memtNext, MemoryTree::memtSize, and NULL.

Referenced by memAlignFrom(), and memReallocFrom().

void memtDelFrom | ( | MemoryTree ** | inMemTree,
|  | void * | inPtr,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 1151 of file flMemory.c.

References debugError, debugErrorFrom(), flRunning, MemoryTree::memtData, memtDel, MemoryTree::memtNext, and NULL.

Referenced by memFreeFrom().

void memTerm | ( |  | ) |

Called by flTerminate() to deinitialize the memory system.

See also:
  flTerminate(), memInit()

Definition at line 72 of file flMemory.c.

References debugStatusLog, fileDelete(), FL_MEMORY_PAGE_PATH, memClear, memCopy, memInitialized, MEMORY_SCRATCHPAD_BASE, and MEMORY_SCRATCHPAD_SIZE.

Referenced by flTerminate().

void memtErrorBytesCheckFrom | ( | MemoryTree ** | inMemTree,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 1196 of file flMemory.c.

References debugError, debugErrorFrom(), debugWarning, debugWarningFrom(), FL_DEBUG_CALLEDFROM, FL_DEBUG_ERROR, memBlockValid(), MemoryTree::memtAlignment, MemoryTree::memtData, memtErrorBytesCheck, MemoryTree::memtNext, and MemoryTree::memtSize.

Referenced by memAlignFrom(), memClearFrom(), memCompareFrom(), memCopyFrom(), memFreeFrom(), memReallocFrom(), memSetByteFrom(), and memSetShortFrom().

void* memUncachedPtrFrom | ( | void * | inPtr,
|  | const char * | inFile,
|  | const char * | inFunc,
|  | int | inLine |
| ) |  |  |

Definition at line 894 of file flMemory.c.

References debugWarning, debugWarningFrom(), MEMORY_UNCACHED_OFFSET, memUncachedPtr, and NULL.

## Variable Documentation

MemoryTree* memErrorTree

Definition at line 22 of file flMemory.c.

Referenced by memAlignFrom(), memClearFrom(), memCompareFrom(), memCopyFrom(), memFreeFrom(), memReallocFrom(), memSetByteFrom(), and memSetShortFrom().

bool memInitialized

A boolean to represent whether the memory system has been initialized or not, this is set by memInit() and memTerm().

See also:
  memInit(), memTerm()

Definition at line 25 of file flMemory.c.

Referenced by memInit(), memQallocFrom(), and memTerm().

bool memScratchpadUsed

A boolean to represent whether the scratchpad is currently in use or not, this allows the fastest possible allocation/free'ing of memory for temp data.

See also:
  memQalloc()

Definition at line 26 of file flMemory.c.

Referenced by memAlignFrom(), memFreeFrom(), memFreeSpaceTotal(), and memQallocFrom().