blob: 320d16e4298cb066552bb1020a3412f33fe58d0c [file] [log] [blame]
// SPDX-FileCopyrightText: Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
// SPDX-License-Identifier: MIT OR Apache-2.0
//! Module for converting addresses between kernel virtual address space to physical address space
pub struct KernelSpace {}
#[cfg(not(test))]
impl KernelSpace {
/// Kernel virtual address to physical address
pub const fn kernel_to_pa(kernel_address: u64) -> u64 {
kernel_address & 0x0000_000f_ffff_ffff
}
/// Physical address to kernel virtual address
pub const fn pa_to_kernel(pa: u64) -> u64 {
// TODO: make this consts assert_eq!(pa & 0xffff_fff0_0000_0000, 0);
pa | 0xffff_fff0_0000_0000
}
}
#[cfg(test)]
impl KernelSpace {
pub const fn kernel_to_pa(kernel_address: u64) -> u64 {
kernel_address
}
pub const fn pa_to_kernel(pa: u64) -> u64 {
pa
}
}