pub trait GenericArmGic: Debug + Clone + Copy + Sync + Send + Sized {
    // Required methods
    fn init_primary(&mut self);
    fn per_cpu_init(&mut self);
    fn set_trigger(&mut self, intid: IntId, trigger: TriggerMode);
    fn enable_interrupt(&mut self, intid: IntId);
    fn disable_interrupt(&mut self, intid: IntId);
    fn get_and_acknowledge_interrupt(&self) -> Option<IntId>;
    fn end_interrupt(&self, intid: IntId);
}
Expand description

GenericArmGic. It is used to implement the interface abstraction that the interrupt chip driver should provide to the outside world. I hope that the versatility of the driver interface should support more chip architectures.

Required Methods§

source

fn init_primary(&mut self)

Initialises the GIC.

source

fn per_cpu_init(&mut self)

Initialises the GIC for the current CPU core.

source

fn set_trigger(&mut self, intid: IntId, trigger: TriggerMode)

Configures the trigger type for the interrupt with the given ID.

source

fn enable_interrupt(&mut self, intid: IntId)

Enables the interrupt with the given ID.pub fn enable_interrupt(&mut self, intid: IntId);

source

fn disable_interrupt(&mut self, intid: IntId)

Disable the interrupt with the given ID.

source

fn get_and_acknowledge_interrupt(&self) -> Option<IntId>

Gets the ID of the highest priority signalled interrupt, and acknowledges it.

Returns None if there is no pending interrupt of sufficient priority.

source

fn end_interrupt(&self, intid: IntId)

Informs the interrupt controller that the CPU has completed processing the given interrupt. This drops the interrupt priority and deactivates the interrupt.

Object Safety§

This trait is not object safe.

Implementors§