#![cfg_attr(
any(driver_model__driver_type = "WDM", driver_model__driver_type = "KMDF"),
no_std
)]
#[cfg(any(
all(
feature = "alloc",
any(driver_model__driver_type = "WDM", driver_model__driver_type = "KMDF")
),
driver_model__driver_type = "UMDF",
))]
pub use print::_print;
#[cfg(any(
driver_model__driver_type = "WDM",
driver_model__driver_type = "KMDF",
driver_model__driver_type = "UMDF"
))]
pub use wdk_sys::NT_SUCCESS as nt_success;
#[cfg(any(driver_model__driver_type = "WDM", driver_model__driver_type = "KMDF"))]
pub use wdk_sys::PAGED_CODE as paged_code;
#[cfg(any(
all(
feature = "alloc",
any(driver_model__driver_type = "WDM", driver_model__driver_type = "KMDF")
),
driver_model__driver_type = "UMDF",
))]
mod print;
#[cfg(any(driver_model__driver_type = "KMDF", driver_model__driver_type = "UMDF"))]
pub mod wdf;
pub fn dbg_break() {
unsafe {
#[cfg(target_arch = "aarch64")]
{
core::arch::asm!("brk #0xF000");
return;
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
{
core::arch::asm!("int 3");
return;
}
}
#[allow(unreachable_code)] {
panic!("dbg_break function called from unsupported architecture");
}
}