Final Platform Layer 0.9.9-beta
Loading...
Searching...
No Matches
Memory functions

This category contains functions for allocating/manipulating memory. More...

Data Structures

struct  fplMemoryBlock
 Stores properties that represents any block of memory. More...
 
struct  fplMemoryInfos
 Stores information about the current memory usage. More...
 

Typedefs

typedef struct fplMemoryBlock fplMemoryBlock
 
typedef struct fplMemoryInfos fplMemoryInfos
 

Functions

fpl_common_api void * fplMemoryAlignedAllocate (const size_t size, const size_t alignment)
 Allocates aligned memory from the operating system by the given alignment.
 
fpl_common_api void fplMemoryAlignedFree (void *ptr)
 Releases the aligned memory allocated from the operating system.
 
fpl_platform_api void * fplMemoryAllocate (const size_t size)
 Allocates memory from the operating system by the given size, that is aligned to the operating systems page-size (most common is 64 KB).
 
fpl_common_api void fplMemoryClear (void *mem, const size_t size)
 Clears the given memory by the given size to zero.
 
fpl_common_api void fplMemoryCopy (const void *sourceMem, const size_t sourceSize, void *targetMem)
 Copies the given source memory with its length to the target memory.
 
fpl_platform_api void fplMemoryFree (void *ptr)
 Releases the memory allocated from the operating system.
 
fpl_platform_api bool fplMemoryGetInfos (fplMemoryInfos *outInfos)
 Retrieves the current system memory usage.
 
fpl_common_api void fplMemorySet (void *mem, const uint8_t value, const size_t size)
 Sets the given memory by the given size to the given value.
 

Detailed Description

This category contains functions for allocating/manipulating memory.

Function Documentation

◆ fplMemoryAlignedAllocate()

fpl_common_api void * fplMemoryAlignedAllocate ( const size_t size,
const size_t alignment )

Allocates aligned memory from the operating system by the given alignment.

Parameters
[in]sizeThe size amount in bytes.
[in]alignmentThe alignment in bytes (must be a power-of-two).
Returns
Reference to the new allocated aligned memory.
Note
The memory is guaranteed to be initialized to zero.
This function can be called without the platform to be initialized.
See also
Allocate custom aligned (n)-bytes of memory

◆ fplMemoryAlignedFree()

fpl_common_api void fplMemoryAlignedFree ( void * ptr)

Releases the aligned memory allocated from the operating system.

Parameters
[in]ptrReference to the aligned allocated memory.
Warning
This should never be called with a not-aligned memory reference! For freeing not-aligned memory, use fplMemoryFree() instead.
Note
This function can be called without the platform to be initialized.
See also
Free aligned memory

◆ fplMemoryAllocate()

fpl_platform_api void * fplMemoryAllocate ( const size_t size)

Allocates memory from the operating system by the given size, that is aligned to the operating systems page-size (most common is 64 KB).

Parameters
[in]sizeThe size to be allocated in bytes.
Returns
Reference to the newly allocated memory.
Warning
Alignment is not ensured here, the OS decides how to handle this. If you want to force a specific alignment use fplMemoryAlignedAllocate() instead.
Note
The memory is guaranteed to be initialized to zero.
This function can be called without the platform to be initialized.
See also
Allocate (n)-bytes of memory

◆ fplMemoryClear()

fpl_common_api void fplMemoryClear ( void * mem,
const size_t size )

Clears the given memory by the given size to zero.

Parameters
[in]memReference to the target memory.
[in]sizeThe number of bytes to be cleared to zero (size_t).
See also
Clear (n)-bytes of memory

◆ fplMemoryCopy()

fpl_common_api void fplMemoryCopy ( const void * sourceMem,
const size_t sourceSize,
void * targetMem )

Copies the given source memory with its length to the target memory.

Parameters
[in]sourceMemReference to the source memory to copy from.
[in]sourceSizeThe size in bytes to be copied.
[out]targetMemReference to the target memory to copy into.
See also
Copy (n)-bytes of memory to another memory location

◆ fplMemoryFree()

fpl_platform_api void fplMemoryFree ( void * ptr)

Releases the memory allocated from the operating system.

Parameters
[in]ptrReference to the allocated memory.
Warning
This should never be called with an aligned memory reference! For freeing aligned memory, use fplMemoryAlignedFree() instead.
Note
This function can be called without the platform to be initialized.
See also
Free memory

◆ fplMemoryGetInfos()

fpl_platform_api bool fplMemoryGetInfos ( fplMemoryInfos * outInfos)

Retrieves the current system memory usage.

Parameters
[out]outInfosReference to the target structure fplMemoryInfos.
Returns
Returns true when the memory info was retrieved, false otherwise.
See also
Query memory state

◆ fplMemorySet()

fpl_common_api void fplMemorySet ( void * mem,
const uint8_t value,
const size_t size )

Sets the given memory by the given size to the given value.

Parameters
[in]memReference to the target memory.
[in]valueThe value to be set.
[in]sizeThe number of bytes to be set.
See also
Overwrite (n)-bytes of memory with a given value