mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-27 23:14:38 +00:00
Add 2MB and 1GB PAGE_SIZE macro
This commit is contained in:
parent
5e5819e3be
commit
9b84d0147d
@ -84,7 +84,7 @@ NIF void MapFromZero(PageTable4 *PT, BootInfo *Info)
|
|||||||
va.Map((void *)0, (void *)NullAddress, PTFlag::RW | PTFlag::US);
|
va.Map((void *)0, (void *)NullAddress, PTFlag::RW | PTFlag::US);
|
||||||
size_t MemSize = Info->Memory.Size;
|
size_t MemSize = Info->Memory.Size;
|
||||||
for (size_t t = 0; t < MemSize; t += PAGE_SIZE)
|
for (size_t t = 0; t < MemSize; t += PAGE_SIZE)
|
||||||
va.Map((void *)t, (void *)t, PTFlag::RW /* | PTFlag::US */);
|
va.Map((void *)t, (void *)t, PTFlag::RW);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,11 @@ extern uintptr_t _kernel_text_end, _kernel_data_end, _kernel_rodata_end;
|
|||||||
// geopbyte
|
// geopbyte
|
||||||
#define TO_GPB(d) (d / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 / 1024)
|
#define TO_GPB(d) (d / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 / 1024)
|
||||||
|
|
||||||
#define PAGE_SIZE 0x1000 // 4KB
|
#define PAGE_SIZE 0x1000 // 4KB
|
||||||
|
#define PAGE_SIZE_4K PAGE_SIZE // 4KB
|
||||||
|
#define PAGE_SIZE_2M 0x200000 // 2MB
|
||||||
|
#define PAGE_SIZE_1G 0x40000000 // 1GB
|
||||||
|
|
||||||
#define STACK_SIZE 0x4000 // 16kb
|
#define STACK_SIZE 0x4000 // 16kb
|
||||||
#define USER_STACK_SIZE 0x2000 // 8kb
|
#define USER_STACK_SIZE 0x2000 // 8kb
|
||||||
|
|
||||||
@ -421,24 +425,28 @@ namespace Memory
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
Bitmap GetPageBitmap() { return PageBitmap; }
|
Bitmap GetPageBitmap() { return PageBitmap; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get Total Memory
|
* @brief Get Total Memory
|
||||||
*
|
*
|
||||||
* @return uint64_t
|
* @return uint64_t
|
||||||
*/
|
*/
|
||||||
uint64_t GetTotalMemory();
|
uint64_t GetTotalMemory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get Free Memory
|
* @brief Get Free Memory
|
||||||
*
|
*
|
||||||
* @return uint64_t
|
* @return uint64_t
|
||||||
*/
|
*/
|
||||||
uint64_t GetFreeMemory();
|
uint64_t GetFreeMemory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get Reserved Memory
|
* @brief Get Reserved Memory
|
||||||
*
|
*
|
||||||
* @return uint64_t
|
* @return uint64_t
|
||||||
*/
|
*/
|
||||||
uint64_t GetReservedMemory();
|
uint64_t GetReservedMemory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get Used Memory
|
* @brief Get Used Memory
|
||||||
*
|
*
|
||||||
@ -454,6 +462,7 @@ namespace Memory
|
|||||||
* @return false if swap was unsuccessful
|
* @return false if swap was unsuccessful
|
||||||
*/
|
*/
|
||||||
bool SwapPage(void *Address);
|
bool SwapPage(void *Address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Swap pages
|
* @brief Swap pages
|
||||||
*
|
*
|
||||||
@ -463,6 +472,7 @@ namespace Memory
|
|||||||
* @return false if swap was unsuccessful
|
* @return false if swap was unsuccessful
|
||||||
*/
|
*/
|
||||||
bool SwapPages(void *Address, size_t PageCount);
|
bool SwapPages(void *Address, size_t PageCount);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Unswap page
|
* @brief Unswap page
|
||||||
*
|
*
|
||||||
@ -471,6 +481,7 @@ namespace Memory
|
|||||||
* @return false if unswap was unsuccessful
|
* @return false if unswap was unsuccessful
|
||||||
*/
|
*/
|
||||||
bool UnswapPage(void *Address);
|
bool UnswapPage(void *Address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Unswap pages
|
* @brief Unswap pages
|
||||||
*
|
*
|
||||||
@ -487,6 +498,7 @@ namespace Memory
|
|||||||
* @param Address Address of the page
|
* @param Address Address of the page
|
||||||
*/
|
*/
|
||||||
void LockPage(void *Address);
|
void LockPage(void *Address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Lock pages
|
* @brief Lock pages
|
||||||
*
|
*
|
||||||
@ -501,6 +513,7 @@ namespace Memory
|
|||||||
* @return void* Allocated page address
|
* @return void* Allocated page address
|
||||||
*/
|
*/
|
||||||
void *RequestPage();
|
void *RequestPage();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Request pages
|
* @brief Request pages
|
||||||
*
|
*
|
||||||
@ -508,12 +521,14 @@ namespace Memory
|
|||||||
* @return void* Allocated pages address
|
* @return void* Allocated pages address
|
||||||
*/
|
*/
|
||||||
void *RequestPages(size_t Count);
|
void *RequestPages(size_t Count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Free page
|
* @brief Free page
|
||||||
*
|
*
|
||||||
* @param Address Address of the page
|
* @param Address Address of the page
|
||||||
*/
|
*/
|
||||||
void FreePage(void *Address);
|
void FreePage(void *Address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Free pages
|
* @brief Free pages
|
||||||
*
|
*
|
||||||
@ -521,10 +536,13 @@ namespace Memory
|
|||||||
* @param PageCount Number of pages
|
* @param PageCount Number of pages
|
||||||
*/
|
*/
|
||||||
void FreePages(void *Address, size_t Count);
|
void FreePages(void *Address, size_t Count);
|
||||||
|
|
||||||
/** @brief Do not use. */
|
/** @brief Do not use. */
|
||||||
void Init(BootInfo *Info);
|
void Init(BootInfo *Info);
|
||||||
|
|
||||||
/** @brief Do not use. */
|
/** @brief Do not use. */
|
||||||
Physical();
|
Physical();
|
||||||
|
|
||||||
/** @brief Do not use. */
|
/** @brief Do not use. */
|
||||||
~Physical();
|
~Physical();
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user