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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//! Fault detection, classification, handling, and recovery
//!
//! This module implements comprehensive fault handling for the SMMU per ARM SMMU v3 Sections 6.1 and 6.2:
//!
//! - Translation faults (unmapped addresses, permission violations)
//! - Configuration faults (invalid stream or PASID configuration)
//! - Hardware faults (internal errors, parity errors)
//! - Event recording and reporting
//! - Fault processing in Terminate and Stall modes
//! - Recovery mechanisms for transient faults
//!
//! # Fault Types
//!
//! The SMMU specification defines 15 fault types that must be properly
//! detected, classified, and reported. This module implements all required
//! fault handling per ARM SMMU v3 specification.
//!
//! # Fault Detection (Section 6.1)
//!
//! The [`detection`] module provides comprehensive fault detection with:
//! - Translation fault detection with full context capture
//! - Permission fault checking with bitwise operations
//! - Address range validation (32/48/52-bit support)
//! - Fault syndrome generation per ARM SMMU v3 specification
//!
//! # Validation
//!
//! The [`validator`] module provides specialized validators for:
//! - Permission validation with detailed violation reporting
//! - Address range boundary checking
//! - Alignment validation
//!
//! # Fault Processing (Section 6.2)
//!
//! The [`processing`] module implements fault processing modes:
//! - Terminate mode with immediate reporting
//! - Stall mode with fault queuing
//! - Event generation and filtering
//! - Statistics tracking
//!
//! # Fault Queue
//!
//! The [`queue`] module provides thread-safe fault queuing:
//! - FIFO ordering with VecDeque
//! - Configurable capacity limits
//! - Concurrent access support
//!
//! # Fault Recovery
//!
//! The [`recovery`] module implements recovery strategies:
//! - Retry logic for transient faults
//! - Recovery strategy selection per fault type
//! - State save/restore for recovery attempts
// Re-export main types for convenience
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;