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