pub fn try_parse<P>(link: &RefCell<P>, base_address: u64) -> RomTable
    where
        P: MI + APAccess<GenericAP, IDR> + APAccess<MemoryAP, BASE> + APAccess<MemoryAP, BASE2>,
    {
        RomTable {
            entries: RomTableReader::new(&link, base_address)
                .entries()
                .filter_map(Result::ok)
                .filter_map(|raw_entry| {
                    let entry_base_addr = raw_entry.component_addr();
                    if !raw_entry.entry_present {
                        return None;
                    }

                    if let Ok(component_data) =
                        CSComponent::try_parse(link, u64::from(entry_base_addr))
                    {
                        Some(RomTableEntry {
                            format: raw_entry.format,
                            power_domain_id: raw_entry.power_domain_id,
                            power_domain_valid: raw_entry.power_domain_valid,
                            component_data,
                        })
                    } else {
                        None
                    }
                })
                .collect::<Vec<_>>(),
        }
    }
/// Tries to parse a CoreSight component table.
///
/// This does not check whether the data actually signalizes
/// to contain a ROM table but assumes this was checked beforehand.
Tries to parse a CoreSight component table.
This does not check whether the data actually signalizes
to contain a ROM table but assumes this was checked beforehand.
Tries to parse a CoreSight component table . This does not check whether the data actually signalizes to contain a ROM table but assumes this was checked beforehand .
pub fn try_parse<P>(link: &RefCell<P>, base_address: u64) -> RomTable
    where
        P: MI + APAccess<GenericAP, IDR> + APAccess<MemoryAP, BASE> + APAccess<MemoryAP, BASE2>,
    {
        RomTable {
            entries: RomTableReader::new(&link, base_address)
                .entries()
                .filter_map(Result::ok)
                .filter_map(|raw_entry| {
                    let entry_base_addr = raw_entry.component_addr();
                    if !raw_entry.entry_present {
                        return None;
                    }
                    if let Ok(component_data) =
                        CSComponent::try_parse(link, u64::from(entry_base_addr))
                    {
                        Some(RomTableEntry {
                            format: raw_entry.format,
                            power_domain_id: raw_entry.power_domain_id,
                            power_domain_valid: raw_entry.power_domain_valid,
                            component_data,
                        })
                    } else {
                        None
                    }
                })
                .collect::<Vec<_>>(),
        }
    }
pub fn try_parse < P > ( link : & RefCell < P > , base_address : u64 ) -> RomTable where P : MI + APAccess < GenericAP , IDR > + APAccess < MemoryAP , BASE > + APAccess < MemoryAP , BASE2 > , { RomTable { entries : RomTableReader :: new ( & link , base_address ) . entries ( ) . filter_map ( Result :: ok ) . filter_map ( | raw_entry | { let entry_base_addr = raw_entry . component_addr ( ) ; if ! raw_entry . entry_present { return None ; } if let Ok ( component_data ) = CSComponent :: try_parse ( link , u64 :: from ( entry_base_addr ) ) { Some ( RomTableEntry { format : raw_entry . format , power_domain_id : raw_entry . power_domain_id , power_domain_valid : raw_entry . power_domain_valid , component_data , } ) } else { None } } ) . collect :: < Vec < _ > > ( ) , } }
Tries to parse a CoreSight component table.
Tries to parse a CoreSight component table .
link
&RefCell<P>
base_address
u64