chore: objects/cnode: adapt to new uapi

This commit is contained in:
Paul Pan 2024-06-09 00:19:38 +08:00
parent fb94285028
commit d36c534a92

View File

@ -3,7 +3,7 @@ use super::{
Cap, KernelObject,
};
use crate::arch::layout::mmap_phys_to_virt;
use uapi::{cap::ObjectType, error::CapFault};
use uapi::{cap::ObjectType, fault::LookupFailure};
use utils::addr::{AddressOps, PhysAddr};
use utils::MASK;
@ -89,7 +89,7 @@ impl<'a> CNodeCap<'a> {
}
}
pub fn resolve_address_bits(&self, cap_ptr: usize, n_bits: usize) -> Result<&CapEntry, CapFault> {
pub fn resolve_address_bits(&self, cap_ptr: usize, n_bits: usize) -> Result<&CapEntry, LookupFailure> {
let mut bits_remaining = n_bits;
let mut slot = self.cte;
@ -102,7 +102,7 @@ impl<'a> CNodeCap<'a> {
assert_ne!(level_bits, 0);
if level_bits > bits_remaining {
return Err(CapFault::DepthMismatch {
return Err(LookupFailure::DepthMismatch {
bits_found: level_bits,
bits_left: bits_remaining,
});
@ -110,7 +110,7 @@ impl<'a> CNodeCap<'a> {
let get_guard = || (cap_ptr >> (bits_remaining - guard_bits)) & MASK!(guard_bits);
if guard_bits > bits_remaining || get_guard() != cap_guard {
return Err(CapFault::GuardMismatch {
return Err(LookupFailure::GuardMismatch {
bits_left: bits_remaining,
guard_found: cap_guard,
guard_size: guard_bits,
@ -128,7 +128,7 @@ impl<'a> CNodeCap<'a> {
}
if CNodeCap::try_from(slot).is_err() {
return Err(CapFault::InvalidRoot);
return Err(LookupFailure::InvalidRoot);
}
Ok(slot)
}
@ -227,7 +227,7 @@ mod tests {
info!("Testing invalid depth (1)");
let result = root.resolve_address_bits(0x96, 8 - 1);
match result {
Err(CapFault::DepthMismatch { bits_found, bits_left }) => {
Err(LookupFailure::DepthMismatch { bits_found, bits_left }) => {
assert_eq!(bits_found, 8);
assert_eq!(bits_left, 7);
},
@ -240,7 +240,7 @@ mod tests {
info!("Testing invalid depth (2)");
let result = root.resolve_address_bits(0x4b31 >> 1, 15 - 1);
match result {
Err(CapFault::DepthMismatch { bits_found, bits_left }) => {
Err(LookupFailure::DepthMismatch { bits_found, bits_left }) => {
assert_eq!(bits_found, 7);
assert_eq!(bits_left, 6);
},
@ -255,7 +255,7 @@ mod tests {
info!("Testing guard mismatch");
let result = root.resolve_address_bits(0x4b71, 15);
match result {
Err(CapFault::GuardMismatch {
Err(LookupFailure::GuardMismatch {
bits_left,
guard_found,
guard_size,
@ -273,7 +273,7 @@ mod tests {
info!("Testing extra bits");
let result = root.resolve_address_bits(0x96 << 1, 8 + 1);
match result {
Err(CapFault::DepthMismatch { bits_found, bits_left }) => {
Err(LookupFailure::DepthMismatch { bits_found, bits_left }) => {
assert_eq!(bits_found, 7);
assert_eq!(bits_left, 1);
},