vm: add huge page order size definitions

This commit is contained in:
2023-02-08 17:11:08 +00:00
parent d56fc961fa
commit b8eb88627a
2 changed files with 16 additions and 6 deletions

View File

@@ -74,7 +74,7 @@ typedef enum vm_page_order {
VM_PAGE_32M, VM_PAGE_32M,
VM_PAGE_64M, VM_PAGE_64M,
VM_PAGE_128M, VM_PAGE_128M,
#if 0
/* vm_page_t only has 4 bits to store the page order with. /* vm_page_t only has 4 bits to store the page order with.
the maximum order that can be stored in 4 bits is 15 (VM_PAGE_128M) the maximum order that can be stored in 4 bits is 15 (VM_PAGE_128M)
to use any of the page orders listed here, this field to use any of the page orders listed here, this field
@@ -82,7 +82,12 @@ typedef enum vm_page_order {
VM_PAGE_256M, VM_PAGE_256M,
VM_PAGE_512M, VM_PAGE_512M,
VM_PAGE_1G, VM_PAGE_1G,
#endif VM_PAGE_2G,
VM_PAGE_4G,
VM_PAGE_8G,
VM_PAGE_16G,
VM_PAGE_32G,
VM_PAGE_64G,
} vm_page_order_t; } vm_page_order_t;
typedef enum vm_page_flags { typedef enum vm_page_flags {

View File

@@ -22,7 +22,7 @@ static size_t page_order_bytes[] = {
[VM_PAGE_32M] = 0x2000000, [VM_PAGE_32M] = 0x2000000,
[VM_PAGE_64M] = 0x4000000, [VM_PAGE_64M] = 0x4000000,
[VM_PAGE_128M] = 0x8000000, [VM_PAGE_128M] = 0x8000000,
#if 0
/* vm can support pages of this size, but /* vm can support pages of this size, but
vm_page_t only has 4 bits with which to store vm_page_t only has 4 bits with which to store
the page order, which cannot accomodate these the page order, which cannot accomodate these
@@ -30,7 +30,12 @@ static size_t page_order_bytes[] = {
[VM_PAGE_256M] = 0x10000000, [VM_PAGE_256M] = 0x10000000,
[VM_PAGE_512M] = 0x20000000, [VM_PAGE_512M] = 0x20000000,
[VM_PAGE_1G] = 0x40000000, [VM_PAGE_1G] = 0x40000000,
#endif [VM_PAGE_2G] = 0x80000000,
[VM_PAGE_4G] = 0x100000000,
[VM_PAGE_8G] = 0x200000000,
[VM_PAGE_16G] = 0x400000000,
[VM_PAGE_32G] = 0x800000000,
[VM_PAGE_64G] = 0x1000000000,
}; };
phys_addr_t vm_virt_to_phys(void *p) phys_addr_t vm_virt_to_phys(void *p)
@@ -90,7 +95,7 @@ size_t vm_page_get_pfn(vm_page_t *pg)
size_t vm_page_order_to_bytes(vm_page_order_t order) size_t vm_page_order_to_bytes(vm_page_order_t order)
{ {
if (order < 0 || order > VM_PAGE_MAX_ORDER) { if (order < VM_PAGE_4K || order > VM_PAGE_64G) {
return 0; return 0;
} }
@@ -99,7 +104,7 @@ size_t vm_page_order_to_bytes(vm_page_order_t order)
phys_addr_t vm_page_order_to_pages(vm_page_order_t order) phys_addr_t vm_page_order_to_pages(vm_page_order_t order)
{ {
if (order < 0 || order > VM_PAGE_MAX_ORDER) { if (order < VM_PAGE_4K || order > VM_PAGE_64G) {
return 0; return 0;
} }