use gdbstub::arch::Arch;
pub mod reg;
#[derive(Debug)]
pub enum ArmBreakpointKind {
Thumb16,
Thumb32,
Arm32,
}
impl gdbstub::arch::BreakpointKind for ArmBreakpointKind {
fn from_usize(kind: usize) -> Option<Self> {
let kind = match kind {
2 => ArmBreakpointKind::Thumb16,
3 => ArmBreakpointKind::Thumb32,
4 => ArmBreakpointKind::Arm32,
_ => return None,
};
Some(kind)
}
}
pub enum Armv4t {}
impl Arch for Armv4t {
type Usize = u32;
type Registers = reg::ArmCoreRegs;
type RegId = reg::id::ArmCoreRegId;
type BreakpointKind = ArmBreakpointKind;
fn target_description_xml() -> Option<&'static str> {
Some(r#"<target version="1.0"><architecture>armv4t</architecture></target>"#)
}
}