XenevaOS
Loading...
Searching...
No Matches
kmalloc.h
Go to the documentation of this file.
1
30#ifndef _KMALLOC_H
31#define _KMALLOC_H
32
33#include <stdint.h>
34#if defined(__GNUC__) || defined(__clang__)
35#ifndef __cplusplus
36#include <stdbool.h>
37#endif
38#endif
39#include <aurora.h>
40
41
42#ifdef __cplusplus
43extern "C" {
44#endif
45/* Meta data magic */
46#define MAGIC_USED 0x16062002
47#define MAGIC_FREE 0x05212023 /* the year to remember */
48
49#pragma pack(push,1)
50typedef struct _meta_data_ {
51 int magic;
52 int size;
56#pragma pack(pop)
57 /*
58 * x86_64_kmalloc_initialize -- initialize
59 * kernel malloc library with two pages
60 */
61 void AuHeapInitialize();
62
63 AU_EXTERN AU_EXPORT void *kmalloc(unsigned int); //< The standard function.
64 AU_EXTERN AU_EXPORT void *krealloc(void *, unsigned int); //< The standard function.
65 AU_EXTERN AU_EXPORT void *kcalloc(size_t, size_t); //< The standard function.
66 AU_EXTERN AU_EXPORT void kfree(void *); //< The standard function.
67 extern void kheap_debug();
68 extern void kmalloc_debug_on(bool bit);
69
70#ifdef __cplusplus
71}
72#endif
73
74#endif
75
76
#define AU_EXTERN
Definition aurora.h:55
#define AU_EXPORT
Definition aurora.h:41
#define kmalloc(size, flags)
Definition kernel.h:56
void kmalloc_debug_on(bool bit)
Definition kmalloc.cpp:450
void kheap_debug()
Definition kmalloc.cpp:263
AU_EXTERN AU_EXPORT void kfree(void *)
Definition kmalloc.cpp:355
AU_EXTERN AU_EXPORT void * krealloc(void *, unsigned int)
Definition kmalloc.cpp:384
AU_EXTERN AU_EXPORT void * kcalloc(size_t, size_t)
Definition kmalloc.cpp:406
void AuHeapInitialize()
Definition kmalloc.cpp:57
struct _meta_data_ meta_data_t
Definition kmalloc.h:50
struct _meta_data_ * next
Definition kmalloc.h:53
struct _meta_data_ * prev
Definition kmalloc.h:54
int size
Definition kmalloc.h:52
int magic
Definition kmalloc.h:51