From 7fa26c109f88c59b21e8ce833996bc89a118329f Mon Sep 17 00:00:00 2001 From: Paul Pan Date: Sun, 9 Jun 2024 00:20:02 +0800 Subject: [PATCH] feat: allocator: block: expose internal blocks --- lib/allocator/src/block.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/allocator/src/block.rs b/lib/allocator/src/block.rs index b2aba4d..e9aedba 100644 --- a/lib/allocator/src/block.rs +++ b/lib/allocator/src/block.rs @@ -3,17 +3,21 @@ use core::cmp::min; use utils::addr::{AddressOps, PhysAddr}; #[derive(Copy, Clone, Debug)] -struct Block { +pub struct Block { start: PhysAddr, size: usize, } impl Block { - fn start_addr(&self) -> PhysAddr { + pub fn start_addr(&self) -> PhysAddr { self.start } - fn end_addr(&self) -> PhysAddr { + pub fn size(&self) -> usize { + self.size + } + + pub fn end_addr(&self) -> PhysAddr { self.start + self.size } @@ -137,6 +141,14 @@ impl RamBlock { } } } + + pub fn blocks(&self) -> &[Option; N] { + &self.blocks + } + + pub fn blocks_mut(&mut self) -> &mut [Option; N] { + &mut self.blocks + } } impl Default for RamBlock {