tool: Move read_debug
to trait so generic code can use it
Returns error for backends that don't support it.
This commit is contained in:
parent
0c1584385c
commit
504284bf72
@ -130,12 +130,6 @@ impl AccessLpcLinux {
|
||||
Ok(self.cmd.write(addr as u16, data)?)
|
||||
}
|
||||
|
||||
/// Read from the debug space
|
||||
//TODO: better public interface
|
||||
pub unsafe fn read_debug(&mut self, addr: u8) -> Result<u8, Error> {
|
||||
Ok(self.dbg.read(addr as u16)?)
|
||||
}
|
||||
|
||||
/// Returns Ok if a command can be sent
|
||||
unsafe fn command_check(&mut self) -> Result<(), Error> {
|
||||
if self.read_cmd(SMFI_CMD_CMD)? == 0 {
|
||||
@ -180,4 +174,8 @@ impl Access for AccessLpcLinux {
|
||||
fn data_size(&self) -> usize {
|
||||
SMFI_CMD_SIZE - SMFI_CMD_DATA as usize
|
||||
}
|
||||
|
||||
unsafe fn read_debug(&mut self, addr: u8) -> Result<u8, Error> {
|
||||
Ok(self.dbg.read(addr as u16)?)
|
||||
}
|
||||
}
|
||||
|
@ -71,12 +71,6 @@ impl AccessLpcSim {
|
||||
self.outb(SMFI_CMD_BASE + u16::from(addr), data)
|
||||
}
|
||||
|
||||
/// Read from the debug space
|
||||
//TODO: better public interface
|
||||
pub unsafe fn read_debug(&mut self, addr: u8) -> Result<u8, Error> {
|
||||
self.inb(SMFI_DBG_BASE + u16::from(addr))
|
||||
}
|
||||
|
||||
/// Returns Ok if a command can be sent
|
||||
unsafe fn command_check(&mut self) -> Result<(), Error> {
|
||||
if self.read_cmd(SMFI_CMD_CMD)? == 0 {
|
||||
@ -121,4 +115,8 @@ impl Access for AccessLpcSim {
|
||||
fn data_size(&self) -> usize {
|
||||
SMFI_CMD_SIZE - SMFI_CMD_DATA as usize
|
||||
}
|
||||
|
||||
unsafe fn read_debug(&mut self, addr: u8) -> Result<u8, Error> {
|
||||
self.inb(SMFI_DBG_BASE + u16::from(addr))
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,12 @@ pub trait Access {
|
||||
|
||||
/// The maximum size that can be provided for the data argument
|
||||
fn data_size(&self) -> usize;
|
||||
|
||||
/// Read from the debug space
|
||||
//TODO: better public interface
|
||||
unsafe fn read_debug(&mut self, _addr: u8) -> Result<u8, Error> {
|
||||
Err(Error::NotSupported)
|
||||
}
|
||||
}
|
||||
|
||||
impl Access for &mut dyn Access {
|
||||
|
@ -3,6 +3,8 @@
|
||||
pub enum Error {
|
||||
/// Data length is too large
|
||||
DataLength(usize),
|
||||
/// Operation not supported
|
||||
NotSupported,
|
||||
/// A parameter was invalid
|
||||
Parameter,
|
||||
/// EC protocol returned an error result
|
||||
|
Loading…
x
Reference in New Issue
Block a user