Kintsugi OS 0.4.0
x86 Monolithic OS
Loading...
Searching...
No Matches
mem.h
Go to the documentation of this file.
1/*------------------------------------------------------------------------------
2 * Kintsugi OS C Libraries source code
3 * File: libc/mem.h
4 * Title: Функции работы с памятью (заголовочный файл mem.c)
5 * Description: null
6 * ----------------------------------------------------------------------------*/
7
8#ifndef KKLIBC_MEM_H
9#define KKLIBC_MEM_H
10
11#include "ctypes.h"
12
13#define HEAP_START 0x200000
14#define HEAP_SIZE 0x2000000
15#define BLOCK_SIZE 16
16#define MAGIC_NUMBER 0xDEADBEEF
17
19
24typedef struct mem_block {
26 struct mem_block* next;
28} __attribute__((packed)) mem_block_t;
29
48
55
60void get_freememaddr();
61
69
74void heap_init();
75
76void* kmalloc_aligned(u32 size, u32 alignment);
77
78void kfree_aligned(void* ptr);
79
86void* kmalloc(u32 size);
87
95void* krealloc(void* ptr, u32 size);
96
102void kfree(void* ptr);
103
107void kmemdump();
108
109#endif
unsigned int u32
Definition ctypes.h:11
unsigned char u8
Definition ctypes.h:15
void kfree(void *ptr)
Освобождение памяти
Definition mem.c:158
void * krealloc(void *ptr, u32 size)
Реаллокация памяти
Definition mem.c:127
int expand_heap(u32 size)
Увеличение хипа
Definition mem.c:38
void heap_init()
Инициализация хипа
Definition mem.c:23
struct meminfo meminfo_t
Структура информации о памяти
meminfo_t get_meminfo()
Получение информации о памяти
Definition mem.c:209
u32 heap_current_end
Definition mem.c:18
void kmemdump()
Информация о памяти
Definition mem.c:246
void kfree_aligned(void *ptr)
void get_freememaddr()
Получение адреса свободной памяти
Definition mem.c:297
void * kmalloc(u32 size)
Аллокация памяти
Definition mem.c:55
u32 size
Definition mem.h:0
void * kmalloc_aligned(u32 size, u32 alignment)
Структура загрузочного сектора FAT12.
Definition idt.h:11
Блок памяти
Definition mem.h:24
u8 is_free
Definition mem.h:27
struct mem_block * next
Definition mem.h:26
u32 size
Definition mem.h:25
Структура информации о памяти
Definition mem.h:34
u32 heap_size
Definition mem.h:36
u32 leak_count
Definition mem.h:46
u32 block_size
Definition mem.h:38
u32 total_used
Definition mem.h:40
u32 max_used
Definition mem.h:45
u32 free_count
Definition mem.h:44
mem_block_t * free_blocks
Definition mem.h:39
u32 total_free
Definition mem.h:41
u32 alloc_count
Definition mem.h:43
u32 heap_current_end
Definition mem.h:37
u32 heap_start
Definition mem.h:35
u32 block_count
Definition mem.h:42