Trait arm_gic::GenericArmGic
source · 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§
sourcefn init_primary(&mut self)
fn init_primary(&mut self)
Initialises the GIC.
sourcefn per_cpu_init(&mut self)
fn per_cpu_init(&mut self)
Initialises the GIC for the current CPU core.
sourcefn set_trigger(&mut self, intid: IntId, trigger: TriggerMode)
fn set_trigger(&mut self, intid: IntId, trigger: TriggerMode)
Configures the trigger type for the interrupt with the given ID.
sourcefn enable_interrupt(&mut self, intid: IntId)
fn enable_interrupt(&mut self, intid: IntId)
Enables the interrupt with the given ID.pub fn enable_interrupt(&mut self, intid: IntId);
sourcefn disable_interrupt(&mut self, intid: IntId)
fn disable_interrupt(&mut self, intid: IntId)
Disable the interrupt with the given ID.
sourcefn get_and_acknowledge_interrupt(&self) -> Option<IntId>
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.
sourcefn end_interrupt(&self, intid: IntId)
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.