Skip to content

Memory functions

Finalspace edited this page May 29, 2026 · 1 revision

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

Data Structures

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

Functions

Type Name
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 fplMemoryGetUsage (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

Direction Parameter Description
[in] size The size amount in bytes.
[in] alignment The 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

Direction Parameter Description
[in] ptr Reference 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

Direction Parameter Description
[in] size The 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

Direction Parameter Description
[in] mem Reference to the target memory.
[in] size The 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

Direction Parameter Description
[in] sourceMem Reference to the source memory to copy from.
[in] sourceSize The size in bytes to be copied.
[out] targetMem Reference 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

Direction Parameter Description
[in] ptr Reference 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

fplMemoryGetUsage()

fpl_platform_api bool fplMemoryGetUsage ( fplMemoryInfos * outInfos)

Retrieves the current system memory usage.

Parameters

Direction Parameter Description
[out] outInfos Reference 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

Direction Parameter Description
[in] mem Reference to the target memory.
[in] value The value to be set.
[in] size The number of bytes to be set.

See also: Overwrite (n)-bytes of memory with a given value

Final Platform Layer

Pages

Topics

Data Structures

Clone this wiki locally