diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2021-09-27 22:56:46 -0600 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2021-09-27 22:56:46 -0600 |
commit | 90eb3a0b79bfef67c70dc545b49c48928eea05f4 (patch) | |
tree | 66718a17063ce4fa5c32c4a8ac094d09f7fab6de /include/kern | |
parent | 5f1763ec87503527583cb1a7c6deb73604db0dfc (diff) | |
download | stm32l4-ir_leds.tar.gz stm32l4-ir_leds.tar.bz2 stm32l4-ir_leds.zip |
Completed ws2812b 2020 Christmas Lights.ir_leds
Diffstat (limited to 'include/kern')
-rw-r--r-- | include/kern/exti/exti_manager.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/kern/exti/exti_manager.h b/include/kern/exti/exti_manager.h new file mode 100644 index 0000000..aa39b4f --- /dev/null +++ b/include/kern/exti/exti_manager.h @@ -0,0 +1,32 @@ +#ifndef _KERN_EXTI_EXTI_MANAGER_H_ +#define _KERN_EXTI_EXTI_MANAGER_H_ + +#include "kern/common.h" +#include "kern/gpio/gpio_manager.h" +#include "shared/linked_list.h" + +#define EXTI_ERROR_ALREADY_IN_USE 1 + +struct EXTI_HANDLE; + + +typedef struct { + void (*fn)(struct EXTI_HANDLE, void*); + void* closure; +} exti_callback_t; + +LINKED_LIST_DECL(exti_callback_t); +typedef struct EXTI_HANDLE { + uint8_t id; + linked_list_t(exti_callback_t)* callbacks; +} exti_handle_t; + +exti_handle_t* enable_exti_for_gpio(gpio_pin_t gpio_pin, int* ec); + +exti_handle_t* exti_add_callback(exti_handle_t*, exti_callback_t* callback); + +gpio_pin_t exti_gpio_pin(exti_handle_t* handle); + + + +#endif /* _KERN_EXTI_EXTI_MANAGER_H_ */ |