kernel::hil::gpio

Trait InterruptWithValue

Source
pub trait InterruptWithValue<'a>: Input {
    // Required methods
    fn set_client(&self, client: &'a dyn ClientWithValue);
    fn enable_interrupts(&self, mode: InterruptEdge) -> Result<(), ErrorCode>;
    fn disable_interrupts(&self);
    fn is_pending(&self) -> bool;
    fn set_value(&self, value: u32);
    fn value(&self) -> u32;
}
Expand description

Interface that wraps an interrupt to pass a value when it triggers.

The standard use case for this trait is when several interrupts call the same callback function and it needs to distinguish which one is calling it by giving each one a unique value.

Required Methods§

Source

fn set_client(&self, client: &'a dyn ClientWithValue)

Set the client for interrupt events.

Source

fn enable_interrupts(&self, mode: InterruptEdge) -> Result<(), ErrorCode>

Enable an interrupt on the GPIO pin. This does not configure the pin except to enable an interrupt: it should be separately configured as an input, etc. Returns: Ok(()) - the interrupt was set up properly FAIL - the interrupt was not set up properly; this is due to not having an underlying interrupt source yet, i.e. the struct is not yet fully initialized.

Source

fn disable_interrupts(&self)

Disable interrupts for the GPIO pin.

Source

fn is_pending(&self) -> bool

Return whether this interrupt is pending

Source

fn set_value(&self, value: u32)

Set the value that will be passed to clients on an interrupt.

Source

fn value(&self) -> u32

Return the value that is passed to clients on an interrupt.

Implementors§