File tree Expand file tree Collapse file tree 1 file changed +10
-2
lines changed
Expand file tree Collapse file tree 1 file changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -42,11 +42,19 @@ impl fmt::Display for Iort {
4242
4343impl Iort {
4444 pub fn nodes ( & self ) -> IortNodeIter {
45- let pointer = unsafe { ( self as * const Iort ) . add ( 1 ) as * const u8 } ;
46- let remaining_length = self . header . length as u32 - core:: mem:: size_of :: < Iort > ( ) as u32 ;
45+ let node_offset = self . node_array_offset as usize ;
46+ let pointer = unsafe { ( self as * const Iort as * const u8 ) . add ( node_offset) } ;
47+ let remaining_length = self . header . length as u32 - node_offset as u32 ;
4748
4849 IortNodeIter { pointer, remaining_length, _phantom : PhantomData }
4950 }
51+
52+ pub fn smmuv3_bases ( & self ) -> impl Iterator < Item = u64 > + ' _ {
53+ self . nodes ( ) . filter_map ( |node| match node {
54+ IortNode :: SmmuV3 ( smmu_v3) => Some ( smmu_v3. base_address ) ,
55+ _ => None ,
56+ } )
57+ }
5058}
5159
5260#[ derive( Debug , Clone , Copy ) ]
You can’t perform that action at this time.
0 commit comments