pub trait InterfaceCPU: Send {
// Required methods
fn get_and_acknowledge_interrupt(&self) -> Option<IrqId>;
fn end_interrupt(&self, irq: IrqId);
fn irq_enable(&self, irq: IrqId);
fn irq_disable(&self, irq: IrqId);
fn set_priority(&self, irq: IrqId, priority: usize);
fn set_trigger(&self, irq: IrqId, triger: Trigger);
fn set_bind_cpu(&self, irq: IrqId, cpu_list: &[CpuId]);
fn parse_fdt_config(
&self,
prop_interrupts: &[u32],
) -> Result<IrqConfig, Box<dyn Error>>;
}