feat: allocator: block: expose internal blocks

This commit is contained in:
Paul Pan 2024-06-09 00:20:02 +08:00
parent d36c534a92
commit 7fa26c109f

View File

@ -3,17 +3,21 @@ use core::cmp::min;
use utils::addr::{AddressOps, PhysAddr}; use utils::addr::{AddressOps, PhysAddr};
#[derive(Copy, Clone, Debug)] #[derive(Copy, Clone, Debug)]
struct Block { pub struct Block {
start: PhysAddr, start: PhysAddr,
size: usize, size: usize,
} }
impl Block { impl Block {
fn start_addr(&self) -> PhysAddr { pub fn start_addr(&self) -> PhysAddr {
self.start self.start
} }
fn end_addr(&self) -> PhysAddr { pub fn size(&self) -> usize {
self.size
}
pub fn end_addr(&self) -> PhysAddr {
self.start + self.size self.start + self.size
} }
@ -137,6 +141,14 @@ impl<const N: usize> RamBlock<N> {
} }
} }
} }
pub fn blocks(&self) -> &[Option<Block>; N] {
&self.blocks
}
pub fn blocks_mut(&mut self) -> &mut [Option<Block>; N] {
&mut self.blocks
}
} }
impl<const N: usize> Default for RamBlock<N> { impl<const N: usize> Default for RamBlock<N> {