Kintsugi OS 0.2.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 0x100000 // Начинаем кучу с 1 МБ (выше ядра)
14#define HEAP_SIZE 0x1000000 // Размер кучи: 16 МБ
15#define BLOCK_SIZE 16 // Минимальный размер блока
16
18
28
43
50
55void get_freememaddr();
56
63int expand_heap(u32 size);
64
69void heap_init();
70
77void* kmalloc(u32 size);
78
86void* krealloc(void* ptr, u32 size);
87
93void kfree(void* ptr);
94
98void kmemdump();
99
100#endif
unsigned int u32
Definition ctypes.h:11
unsigned char u8
Definition ctypes.h:15
void kfree(void *ptr)
Освобождение памяти
Definition mem.c:143
void * krealloc(void *ptr, u32 size)
Реаллокация памяти
Definition mem.c:112
int expand_heap(u32 size)
Увеличение хипа
Definition mem.c:30
void heap_init()
Инициализация хипа
Definition mem.c:22
struct meminfo meminfo_t
Структура информации о памяти
meminfo_t get_meminfo()
Получение информации о памяти
Definition mem.c:179
u32 heap_current_end
Definition mem.c:19
void kmemdump()
Информация о памяти
Definition mem.c:208
void get_freememaddr()
Получение адреса свободной памяти
Definition mem.c:231
void * kmalloc(u32 size)
Аллокация памяти
Definition mem.c:62
struct mem_block mem_block_t
Блок памяти
Блок памяти
Definition mem.h:23
u8 is_free
Definition mem.h:26
struct mem_block * next
Definition mem.h:25
u32 size
Definition mem.h:24
Структура информации о памяти
Definition mem.h:33
u32 heap_size
Definition mem.h:35
u32 block_size
Definition mem.h:37
u32 total_used
Definition mem.h:39
mem_block_t * free_blocks
Definition mem.h:38
u32 total_free
Definition mem.h:40
u32 heap_current_end
Definition mem.h:36
u32 heap_start
Definition mem.h:34
u32 block_count
Definition mem.h:41