1custom_type!(
2 #[doc = "Hardware Interrupt ID"],
3 IrqId, usize, "{:#x}");
4
5#[derive(Copy, Clone, Debug, Eq, PartialEq)]
7pub enum Trigger {
8 EdgeBoth,
9 EdgeRising,
10 EdgeFailling,
11 LevelHigh,
12 LevelLow,
13}
14
15#[derive(Debug, Clone)]
17pub struct IrqConfig {
18 pub irq: IrqId,
19 pub trigger: Trigger,
20 pub is_private: bool,
22}
23
24#[derive(Debug, Clone, Copy, PartialEq, Eq)]
25pub enum AcpiIrqTrigger {
26 Edge,
27 Level,
28}
29
30#[derive(Debug, Clone, Copy, PartialEq, Eq)]
31pub enum AcpiIrqPolarity {
32 ActiveHigh,
33 ActiveLow,
34}
35
36#[derive(Debug, Clone, Copy, PartialEq, Eq)]
37pub enum AcpiGsiController {
38 IoApic,
39 PchPic,
40}
41
42#[derive(Debug, Clone, Copy, PartialEq, Eq)]
43pub struct AcpiGsiRoute {
44 pub gsi: u32,
45 pub vector: usize,
46 pub controller: AcpiGsiController,
47 pub controller_id: u16,
48 pub controller_address: u64,
49 pub controller_input: u8,
50 pub trigger: AcpiIrqTrigger,
51 pub polarity: AcpiIrqPolarity,
52}