pub trait ConfigAccess {
// Required methods
fn get_register(&self, selector: ConfigSelector, register: u16) -> u32;
fn set_register(&self, selector: ConfigSelector, register: u16, value: u32);
// Provided methods
fn get_fixed_register<T: FixedConfigRegister>(
&self,
selector: ConfigSelector,
) -> T { ... }
fn set_fixed_register<T: FixedConfigRegister>(
&self,
selector: ConfigSelector,
value: T,
) { ... }
}
Expand description
Provides methods to access PCI configuration space.
Implementations may only offer access to a limited number of registers on a specific range of segments/busses.
Required Methods§
Sourcefn get_register(&self, selector: ConfigSelector, register: u16) -> u32
fn get_register(&self, selector: ConfigSelector, register: u16) -> u32
Get a specific 32-bit register in PCI configuration space.
Sourcefn set_register(&self, selector: ConfigSelector, register: u16, value: u32)
fn set_register(&self, selector: ConfigSelector, register: u16, value: u32)
Set a specific 32-bit register in PCI configuration space.
Provided Methods§
Sourcefn get_fixed_register<T: FixedConfigRegister>(
&self,
selector: ConfigSelector,
) -> T
fn get_fixed_register<T: FixedConfigRegister>( &self, selector: ConfigSelector, ) -> T
Get a register in PCI configuration space with an offset defined by the output type.
Sourcefn set_fixed_register<T: FixedConfigRegister>(
&self,
selector: ConfigSelector,
value: T,
)
fn set_fixed_register<T: FixedConfigRegister>( &self, selector: ConfigSelector, value: T, )
Set a register in PCI configuration space with an offset defined by the input type.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
impl ConfigAccess for IOConfigAccess
Available on x86 or x86-64 only.