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); 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. * @brief Frees a buffer.
* @param mem Buffer to free. * @param mem Buffer to free.

View File

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

View File

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

View File

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

View File

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