Added linearCalloc and vramCalloc.

Added linearCalloc and vramCalloc.
This commit is contained in:
Rinnegatamante 2015-03-24 16:51:48 +01:00
parent d22d0a9345
commit a2e7ccbb0d
4 changed files with 22 additions and 0 deletions

View File

@ -4,5 +4,6 @@
void* linearAlloc(size_t size); // returns a 16-byte aligned address void* linearAlloc(size_t size); // returns a 16-byte aligned address
void* linearMemAlign(size_t size, size_t alignment); void* linearMemAlign(size_t size, size_t alignment);
void* linearRealloc(void* mem, size_t size); // not implemented yet void* linearRealloc(void* mem, size_t size); // not implemented yet
void* linearCalloc(size_t num, size_t size);
void linearFree(void* mem); void linearFree(void* mem);
u32 linearSpaceFree(); // get free linear space in bytes u32 linearSpaceFree(); // get free linear space in bytes

View File

@ -4,5 +4,6 @@
void* vramAlloc(size_t size); // returns a 16-byte aligned address void* vramAlloc(size_t size); // returns a 16-byte aligned address
void* vramMemAlign(size_t size, size_t alignment); void* vramMemAlign(size_t size, size_t alignment);
void* vramRealloc(void* mem, size_t size); // not implemented yet void* vramRealloc(void* mem, size_t size); // not implemented yet
void* vramCalloc(size_t num, size_t size);
void vramFree(void* mem); void vramFree(void* mem);
u32 vramSpaceFree(); // get free VRAM space in bytes u32 vramSpaceFree(); // get free VRAM space in bytes

View File

@ -70,6 +70,16 @@ void* linearRealloc(void* mem, size_t size)
return NULL; return NULL;
} }
void* linearCalloc(size_t num, size_t size)
{
char* res = (char*)linearAlloc(size*num);
size_t i;
for(i=0;i<size*num;i++){
res[i] = 0;
}
return (void*)res;
}
void linearFree(void* mem) void linearFree(void* mem)
{ {
auto node = getNode(mem); auto node = getNode(mem);

View File

@ -68,6 +68,16 @@ void* vramRealloc(void* mem, size_t size)
return NULL; return NULL;
} }
void* vramCalloc(size_t num, size_t size)
{
char* res = (char*)vramAlloc(size*num);
size_t i;
for(i=0;i<size*num;i++){
res[i] = 0;
}
return (void*)res;
}
void vramFree(void* mem) void vramFree(void* mem)
{ {
auto node = getNode(mem); auto node = getNode(mem);