Skip to main content

ax_task/sync/bridge/
lockdep.rs

1//! Runtime-facing lockdep diagnostics owned by ax-task.
2
3use core::{
4    panic::Location,
5    sync::atomic::{AtomicPtr, AtomicU32},
6};
7
8/// Borrowed lock-class storage from an external fixed-layout wrapper.
9#[derive(Clone, Copy)]
10pub struct LockClass<'lock> {
11    pub class_id: &'lock AtomicU32,
12    pub class_key: &'lock AtomicPtr<Location<'static>>,
13}
14
15/// Enables or disables native lockdep trace recording.
16pub fn set_lockdep_trace_enabled(enabled: bool) {
17    #[cfg(feature = "lockdep")]
18    crate::sync::lockdep::set_lockdep_trace_enabled(enabled);
19
20    #[cfg(not(feature = "lockdep"))]
21    let _ = enabled;
22}
23
24/// Dumps the native lockdep trace buffer.
25pub fn dump_lockdep_trace() {
26    #[cfg(feature = "lockdep")]
27    crate::sync::lockdep::dump_lockdep_trace();
28}