vm: add huge page order size definitions
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
13
vm/page.c
13
vm/page.c
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user