| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /**
- * @file api-interrupt-mgr.h
- * Furi: interrupt API
- */
- #pragma once
- #include <stdbool.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** Interrupt callback prototype */
- typedef void (*InterruptCallback)(void*, void*);
- /** Interupt type */
- typedef enum {
- InterruptTypeComparatorTrigger,
- InterruptTypeTimerUpdate,
- InterruptTypeLast,
- } InterruptType;
- /** Interrupt callback type */
- typedef struct {
- InterruptCallback callback;
- void* context;
- bool ready;
- } InterruptCallbackItem;
- /** Init interrupt
- *
- * @return true on succsessful initialization, false otherwise
- */
- bool api_interrupt_init();
- /** Add interrupt
- *
- * @param callback InterruptCallback
- * @param type InterruptType
- * @param context context for callback
- */
- void api_interrupt_add(InterruptCallback callback, InterruptType type, void* context);
- /** Remove interrupt
- *
- * @param callback InterruptCallback
- * @param type InterruptType
- */
- void api_interrupt_remove(InterruptCallback callback, InterruptType type);
- /** Enable interrupt
- *
- * @param callback InterruptCallback
- * @param type InterruptType
- */
- void api_interrupt_enable(InterruptCallback callback, InterruptType type);
- /** Disable interrupt
- *
- * @param callback InterruptCallback
- * @param type InterruptType
- */
- void api_interrupt_disable(InterruptCallback callback, InterruptType type);
- /** Call interrupt
- *
- * @param type InterruptType
- * @param hw pointer to hardware peripheral
- */
- void api_interrupt_call(InterruptType type, void* hw);
- #ifdef __cplusplus
- }
- #endif
|