1#include <stdint.h>
2#include "securec.h"
3#include "prt_mem.h"
4#include "prt_module.h"
5
6void *calloc(size_t nitems, size_t size)
7{
8    size_t real_size;
9    void *ptr = NULL;
10
11    if ((nitems == 0) || (size == 0) || (nitems > (UINT32_MAX / size))) {
12        return NULL;
13    }
14
15    real_size = (size_t)(nitems * size);
16    ptr = PRT_MemAlloc(OS_MID_SYS, 0, real_size);
17    if (ptr != NULL) {
18        (void)memset_s(ptr, real_size, 0, real_size);
19    }
20    return ptr;
21}
22
23void free(void *ptr)
24{
25    if (ptr == NULL) {
26        return;
27    }
28
29    (void)PRT_MemFree(OS_MID_SYS, ptr);
30}
31
32void *malloc(size_t size)
33{
34    if (size == 0) {
35        return NULL;
36    }
37
38    return PRT_MemAlloc(OS_MID_SYS, 0, size);
39}
40
41void *zalloc(size_t size)
42{
43    void *ptr = NULL;
44
45    if (size == 0) {
46        return NULL;
47    }
48
49    ptr = PRT_MemAlloc(OS_MID_SYS, 0, size);
50    if (ptr != NULL) {
51        (void)memset_s(ptr, size, 0, size);
52    }
53    return ptr;
54}
55
56void *memalign(size_t boundary, size_t size)
57{
58    if (size == 0) {
59        return NULL;
60    }
61
62    if ((boundary % sizeof(uintptr_t) != 0)) {
63        return NULL;
64    }
65
66    return PRT_MemAlloc(OS_MID_SYS, 0, size);
67}
68