summaryrefslogtreecommitdiffstats
path: root/arch/x86_64/vm_tophys.c
blob: 2b168802a2002cd83e7b777659a2a0a26632246f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "memory.h"
#include "boot.h"

uintptr_t
pm_tovirt(physptr_t phys)
{
    if(phys < (1 * GiB))
        return (uintptr_t)(phys + PHYSMAP_MEMORY_BASE);
    kpanic("Missing impl for physical addresses > 1GiB (%#016X)\n",
            phys);
}

physptr_t
vm_tophys(uintptr_t virt)
{
    return vm_mapping_get(virt).phys;
}

physptr_t
vm_tophys_koff(uintptr_t virt)
{
    return (virt - _kernel_virtual_base) + boot_kernel_physical_address;
}