VSF Documented
slab.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_SLAB_H__
2#define __VSF_LINUX_SLAB_H__
3
5#include <linux/gfp.h>
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11static inline void * kmalloc(size_t size, gfp_t flags)
12{
13 void * buff = vsf_heap_malloc(size);
14 if (buff != NULL) {
15 if (flags & __GFP_ZERO) {
16 memset(buff, 0, size);
17 }
18 }
19 return buff;
20}
21
22static inline void * krealloc(const void *buff, size_t new_size, gfp_t flags)
23{
24 return vsf_heap_realloc((void *)buff, new_size);
25}
26
27static inline void * kzalloc(size_t size, gfp_t flags)
28{
29 return kmalloc(size, flags | __GFP_ZERO);
30}
31
32static inline void kfree(const void *buff)
33{
34 vsf_heap_free((void *)buff);
35}
36
37static inline size_t ksize(const void *buff)
38{
39 return (size_t)vsf_heap_size((uint8_t *)buff);
40}
41
42#ifdef __cplusplus
43}
44#endif
45
46#endif
#define __GFP_ZERO
Definition gfp.h:12
unsigned int gfp_t
Definition gfp.h:10
#define NULL
Definition stddef.h:52
unsigned char uint8_t
Definition stdint.h:5
void * memset(void *s, int ch, size_t n)
uint_fast32_t vsf_heap_size(uint8_t *buffer)
Definition vsf_heap.c:667
#define vsf_heap_free(__ptr)
Definition vsf_heap.h:88
#define vsf_heap_realloc(...)
Definition vsf_heap.h:82
#define vsf_heap_malloc(...)
Definition vsf_heap.h:70
uint8_t * buff
Definition vsf_memfs.h:51
uint32_t size
Definition vsf_memfs.h:50