diff options
author | 2021-09-10 13:50:28 -0700 | |
---|---|---|
committer | 2021-09-10 13:50:28 -0700 | |
commit | 8de9d1be61545a3bad0ac7316a2df4c7fac9ab98 (patch) | |
tree | 729548bb4ec521d6c715f7a1bffe421120c12d66 /src | |
parent | 210b66ac4aa52edbe0bb220c53c480ccc0e0463e (diff) | |
download | rust-x86-8de9d1be61545a3bad0ac7316a2df4c7fac9ab98.tar.gz rust-x86-8de9d1be61545a3bad0ac7316a2df4c7fac9ab98.tar.zst rust-x86-8de9d1be61545a3bad0ac7316a2df4c7fac9ab98.zip |
Some more functionality for debugregs.
Diffstat (limited to 'src')
-rw-r--r-- | src/debugregs.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/debugregs.rs b/src/debugregs.rs index 2c33612..4d67819 100644 --- a/src/debugregs.rs +++ b/src/debugregs.rs @@ -11,6 +11,34 @@ use bit_field::BitField; use bitflags::bitflags; +/// An array list of all available breakpoint registers. +pub const BREAKPOINT_REGS: [Breakpoint; 4] = [ + Breakpoint::Dr0, + Breakpoint::Dr1, + Breakpoint::Dr2, + Breakpoint::Dr3, +]; + +/// Write dr{0-3} register based on provided `reg` enum. +pub unsafe fn dr_write(reg: Breakpoint, val: usize) { + match reg { + Breakpoint::Dr0 => dr0_write(val), + Breakpoint::Dr1 => dr1_write(val), + Breakpoint::Dr2 => dr2_write(val), + Breakpoint::Dr3 => dr3_write(val), + } +} + +/// Read dr{0-3} register based on provided `reg` enum. +pub unsafe fn dr(reg: Breakpoint) -> usize { + match reg { + Breakpoint::Dr0 => dr0(), + Breakpoint::Dr1 => dr1(), + Breakpoint::Dr2 => dr2(), + Breakpoint::Dr3 => dr3(), + } +} + /// Read dr0. /// /// # Safety |