Hi Daniel, On 7/3/25 9:30 PM, Daniel Almeida wrote:
+/// Flags to be used when registering IRQ handlers. +/// +/// They can be combined with the operators `|`, `&`, and `!`. +#[derive(Clone, Copy, PartialEq, Eq)] +pub struct Flags(u64);
Why not Flags(u32)? You may get rid of all unnecessary casts later, plus save some extra bytes.
+/// Use the interrupt line as already configured. +pub const TRIGGER_NONE: Flags = Flags(bindings::IRQF_TRIGGER_NONE as u64); + +/// The interrupt is triggered when the signal goes from low to high. +pub const TRIGGER_RISING: Flags = Flags(bindings::IRQF_TRIGGER_RISING as u64); + +/// The interrupt is triggered when the signal goes from high to low. +pub const TRIGGER_FALLING: Flags = Flags(bindings::IRQF_TRIGGER_FALLING as u64); + +/// The interrupt is triggered while the signal is held high. +pub const TRIGGER_HIGH: Flags = Flags(bindings::IRQF_TRIGGER_HIGH as u64); + +/// The interrupt is triggered while the signal is held low. +pub const TRIGGER_LOW: Flags = Flags(bindings::IRQF_TRIGGER_LOW as u64); + +/// Allow sharing the irq among several devices.
nit: irq -> IRQ?
+pub const SHARED: Flags = Flags(bindings::IRQF_SHARED as u64); + +/// Set by callers when they expect sharing mismatches to occur. +pub const PROBE_SHARED: Flags = Flags(bindings::IRQF_PROBE_SHARED as u64); + +/// Flag to mark this interrupt as timer interrupt. +pub const TIMER: Flags = Flags(bindings::IRQF_TIMER as u64); + +/// Interrupt is per cpu.
nit: cpu -> CPU?
+pub const PERCPU: Flags = Flags(bindings::IRQF_PERCPU as u64);
Thanks! Daniel