37 lines
691 B
C
37 lines
691 B
C
|
//---
|
||
|
// gint:std:malloc - Standard memory allocation functions
|
||
|
//---
|
||
|
|
||
|
#include <gint/kmalloc.h>
|
||
|
#include <gint/std/string.h>
|
||
|
|
||
|
/* malloc(): Allocate dynamic memory */
|
||
|
void *malloc(size_t size)
|
||
|
{
|
||
|
return kmalloc(size, NULL);
|
||
|
}
|
||
|
|
||
|
/* free(): Free dynamic memory */
|
||
|
void free(void *ptr)
|
||
|
{
|
||
|
kfree(ptr);
|
||
|
}
|
||
|
|
||
|
/* calloc(): Allocate and initialize dynamic memory */
|
||
|
void *calloc(size_t nmemb, size_t size)
|
||
|
{
|
||
|
uint64_t total = (uint64_t)nmemb * (uint64_t)size;
|
||
|
if(total >= 1ull << 32) return NULL;
|
||
|
size = total;
|
||
|
|
||
|
void *ptr = malloc(size);
|
||
|
if(ptr) memset(ptr, 0, size);
|
||
|
return ptr;
|
||
|
}
|
||
|
|
||
|
/* realloc(): Reallocate dynamic memory */
|
||
|
void *realloc(void *ptr, size_t size)
|
||
|
{
|
||
|
return krealloc(ptr, size);
|
||
|
}
|