//----------------------------------------------------------------------------// // OS on Kaleid // // // // Desc: Heap management functions // // // // // // Copyright © 2018-2020 The OS/K Team // // // // This file is part of OS/K. // // // // OS/K is free software: you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation, either version 3 of the License, or // // any later version. // // // // OS/K is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY//without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with OS/K. If not, see . // //----------------------------------------------------------------------------// #ifndef _KERNEL_H #include #endif #ifndef _MM_HEAP_H #define _MM_HEAP_H //----------------------------------------------------------------------------// // Absolute heap max #define MM_HEAP_MAX (256 * MB) // Address of the heap extern void *_heap_start; // Current end of the heap extern void *_heap_end; // Maximal size of the heap // (Default: MM_HEAP_MAX) extern size_t _heap_max; void MmInitHeap(void); void MmLockHeap(void); void MmUnlockHeap(void); size_t MmGetHeapSize(void); size_t MmGetMaxHeapSize(void); error_t MmSetMaxHeapSize(size_t); error_t MmGrowHeap(size_t); error_t MmShrinkHeap(size_t); void MmIsHeapSmashed(void); //----------------------------------------------------------------------------// #endif