1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! Core types and traits for compile-time IRQL safety.
//!
//! **Internal crate** — use [`irql`](https://docs.rs/irql) instead.
//!
//! This crate provides:
//!
//! - **IRQL level types**: [`Passive`], [`Apc`], [`Dispatch`], [`Dirql`],
//! [`Profile`], [`Clock`], [`Ipi`], [`Power`], [`High`] — zero-sized marker
//! types.
//!
//! - **Hierarchy traits**: [`IrqlCanRaiseTo`] and [`IrqlCanLowerTo`] encode
//! which transitions are valid. Invalid transitions produce a compile error
//! with a clear diagnostic message.
//!
//! - **Drop-safety auto traits** (`drop-safety` feature, requires nightly):
//! `SafeToDropAtPassive`, `SafeToDropAtDispatch`, etc. — one per IRQL level.
//! Types that are unsafe to drop above a certain IRQL opt out with negative
//! impls (e.g. `PagedPool` in `irql_alloc`). Without `drop-safety`,
//! [`SafeToDropAt`] is blanket-implemented for all types.
//!
//! - **Function traits**: [`IrqlFn`], [`IrqlFnMut`], [`IrqlFnOnce`] — IRQL-safe
//! analogues of [`Fn`], [`FnMut`], [`FnOnce`].
pub use ;
pub use ;
pub use ;