Trait Dmi

Source
pub trait Dmi {
    // Required methods
    fn dmi_read(&mut self, addr: u32) -> Result<u32>;
    fn dmi_write(&mut self, addr: u32, data: u32) -> Result<()>;

    // Provided methods
    fn batched_dmi_writes(&mut self, writes: &[(u32, u32)]) -> Result<()> { ... }
    fn batched_dmi_reads(&mut self, addrs: &[u32]) -> Result<Vec<u32>> { ... }
}
Expand description

Debug module interface (DMI) abstraction.

Required Methods§

Source

fn dmi_read(&mut self, addr: u32) -> Result<u32>

Read a DMI register.

Source

fn dmi_write(&mut self, addr: u32, data: u32) -> Result<()>

Write a DMI register.

Provided Methods§

Source

fn batched_dmi_writes(&mut self, writes: &[(u32, u32)]) -> Result<()>

Perform a batch of sequential writes to DMI registers. May or may not be more optimized depending on the underlying implementation.

Source

fn batched_dmi_reads(&mut self, addrs: &[u32]) -> Result<Vec<u32>>

Perform a batch of sequential reads from DMI registers, returning the read values in the same order as the given addresses. May or may not be more optimized depending on the underlying implementation.

Implementations on Foreign Types§

Source§

impl<T: Dmi> Dmi for &mut T

Source§

fn dmi_read(&mut self, addr: u32) -> Result<u32>

Source§

fn dmi_write(&mut self, addr: u32, data: u32) -> Result<()>

Source§

fn batched_dmi_writes(&mut self, writes: &[(u32, u32)]) -> Result<()>

Source§

fn batched_dmi_reads(&mut self, addrs: &[u32]) -> Result<Vec<u32>>

Implementors§