summaryrefslogtreecommitdiff
path: root/libc/include/malloc.h
blob: 58e048197c48ef0d4c15d82f8b794a2185b1e361 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef __MALLOC_H__
#define __MALLOC_H__

#include <reent.h>
#include <stddef.h>
#include <stdint.h>

typedef void * (*malloc_t)(size_t size);
typedef void (*free_t)(void * ptr);
typedef void * (*realloc_t)(void * ptr, size_t size);

void * base_malloc(size_t size);
void base_free(void * ptr);
void * base_realloc(void * ptr, size_t size);

extern malloc_t malloc;
extern free_t free;
extern realloc_t realloc;

static inline void * calloc(size_t nmemb, size_t size) {
    uint8_t * r = malloc(nmemb * size);
    size_t i;
    for (i = 0; i < (size * nmemb); i++)
        r[i] = 0;
    return r;
}

#endif