Added (linear/vram/mappable)GetSize for retrieving allocated buffer size

This commit is contained in:
fincs 2017-02-16 13:44:19 +01:00
parent 95c4a3e6ef
commit 093b3441ea
6 changed files with 41 additions and 5 deletions

View File

@ -28,6 +28,12 @@ void* linearMemAlign(size_t size, size_t alignment);
*/
void* linearRealloc(void* mem, size_t size);
/**
* @brief Retrieves the allocated size of a buffer.
* @return The size of the buffer.
*/
size_t linearGetSize(void* mem);
/**
* @brief Frees a buffer.
* @param mem Buffer to free.

View File

@ -5,15 +5,21 @@
#pragma once
/**
* @brief Allocates a page-aligned buffer.
* @param size Size of the buffer to allocate.
* @return The allocated buffer.
* @brief Reserves a mappable memory area.
* @param size Size of the area to reserve.
* @return The mappable area.
*/
void* mappableAlloc(size_t size);
/**
* @brief Frees a buffer.
* @param mem Buffer to free.
* @brief Retrieves the allocated size of a mappable area.
* @return The size of the mappable area.
*/
size_t mappableGetSize(void* mem);
/**
* @brief Frees a mappable area.
* @param mem Mappable area to free.
*/
void mappableFree(void* mem);

View File

@ -28,6 +28,12 @@ void* vramMemAlign(size_t size, size_t alignment);
*/
void* vramRealloc(void* mem, size_t size);
/**
* @brief Retrieves the allocated size of a buffer.
* @return The size of the buffer.
*/
size_t vramGetSize(void* mem);
/**
* @brief Frees a buffer.
* @param mem Buffer to free.

View File

@ -71,6 +71,12 @@ void* linearRealloc(void* mem, size_t size)
return NULL;
}
size_t linearGetSize(void* mem)
{
auto node = getNode(mem);
return node ? node->chunk.size : 0;
}
void linearFree(void* mem)
{
auto node = getNode(mem);

View File

@ -43,6 +43,12 @@ void* mappableAlloc(size_t size)
return chunk.addr;
}
size_t mappableGetSize(void* mem)
{
auto node = getNode(mem);
return node ? node->chunk.size : 0;
}
void mappableFree(void* mem)
{
auto node = getNode(mem);

View File

@ -68,6 +68,12 @@ void* vramRealloc(void* mem, size_t size)
return NULL;
}
size_t vramGetSize(void* mem)
{
auto node = getNode(mem);
return node ? node->chunk.size : 0;
}
void vramFree(void* mem)
{
auto node = getNode(mem);