pub struct Context<'a> {
pub parents: Vec<&'a Node>,
pub phandle_map: BTreeMap<Phandle, &'a Node>,
}Expand description
遍历上下文,存储从根到当前节点的父节点引用栈
Fields§
§parents: Vec<&'a Node>父节点引用栈(从根节点到当前节点的父节点) 栈底是根节点,栈顶是当前节点的直接父节点
phandle_map: BTreeMap<Phandle, &'a Node>phandle 到节点引用的映射 用于通过 phandle 快速查找节点(如中断父节点)
Implementations§
Source§impl<'a> Context<'a>
impl<'a> Context<'a>
pub fn current_path(&self) -> String
Sourcepub fn parent_address_cells(&self) -> u32
pub fn parent_address_cells(&self) -> u32
获取父节点的 #address-cells 优先从直接父节点获取,否则返回默认值 2
Sourcepub fn parent_size_cells(&self) -> u32
pub fn parent_size_cells(&self) -> u32
获取父节点的 #size-cells 优先从直接父节点获取,否则返回默认值 1
Sourcepub fn interrupt_parent(&self) -> Option<Phandle>
pub fn interrupt_parent(&self) -> Option<Phandle>
查找中断父节点 phandle 从当前父节点向上查找,返回最近的 interrupt-parent
Sourcepub fn is_disabled(&self) -> bool
pub fn is_disabled(&self) -> bool
检查节点是否被禁用 检查父节点栈中是否有任何节点被禁用
Sourcepub fn collect_ranges(&self) -> Vec<Vec<RangesEntry>>
pub fn collect_ranges(&self) -> Vec<Vec<RangesEntry>>
解析当前路径上所有父节点的 ranges,用于地址转换 返回从根到父节点的 ranges 栈
Sourcepub fn current_ranges(&self) -> Option<Vec<RangesEntry>>
pub fn current_ranges(&self) -> Option<Vec<RangesEntry>>
获取最近一层的 ranges(用于当前节点的地址转换)
pub fn push(&mut self, node: &'a Node)
Sourcepub fn find_by_phandle(&self, phandle: Phandle) -> Option<&'a Node>
pub fn find_by_phandle(&self, phandle: Phandle) -> Option<&'a Node>
通过 phandle 查找节点
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Context<'a>
impl<'a> RefUnwindSafe for Context<'a>
impl<'a> Send for Context<'a>
impl<'a> Sync for Context<'a>
impl<'a> Unpin for Context<'a>
impl<'a> UnwindSafe for Context<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more