use bsp_define::{
irqchip::{IrqType, IrqchipIrqState, Result},
smp::Cpumask,
};
use crate::bsp::{
__irqchip_irq_ack, __irqchip_irq_disable, __irqchip_irq_enable, __irqchip_irq_eoi,
__irqchip_irq_get_irqchip_state, __irqchip_irq_set_affinity, __irqchip_irq_set_irqchip_state,
__irqchip_irq_set_type, __irqchip_name,
};
pub fn irqchip_name() -> &'static str {
unsafe { __irqchip_name() }
}
pub fn irq_ack(hwirq: u32) {
unsafe {
__irqchip_irq_ack(hwirq);
}
}
pub fn irq_eoi(hwirq: u32) {
unsafe {
__irqchip_irq_eoi(hwirq);
}
}
pub fn irq_disable(hwirq: u32) {
unsafe {
__irqchip_irq_disable(hwirq);
}
}
pub fn irq_enable(hwirq: u32) {
unsafe {
__irqchip_irq_enable(hwirq);
}
}
pub fn irq_set_affinity(hwirq: u32, cpumask: Cpumask) -> Result<()> {
unsafe { __irqchip_irq_set_affinity(hwirq, cpumask) }
}
pub fn irq_set_type(hwirq: u32, irq_type: IrqType) -> Result<()> {
unsafe { __irqchip_irq_set_type(hwirq, irq_type) }
}
pub fn irq_get_irqchip_state(hwirq: u32, which: IrqchipIrqState) -> Result<bool> {
unsafe { __irqchip_irq_get_irqchip_state(hwirq, which) }
}
pub fn irq_set_irqchip_state(hwirq: u32, which: IrqchipIrqState, state: bool) -> Result<()> {
unsafe { __irqchip_irq_set_irqchip_state(hwirq, which, state) }
}