1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #ifndef ZEPHYR_INCLUDE_SHARED_IRQ_H_
- #define ZEPHYR_INCLUDE_SHARED_IRQ_H_
- #include <autoconf.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef int (*isr_t)(const struct device *dev);
- typedef int (*shared_irq_register_t)(const struct device *dev,
- isr_t isr_func,
- const struct device *isr_dev);
- typedef int (*shared_irq_enable_t)(const struct device *dev,
- const struct device *isr_dev);
- typedef int (*shared_irq_disable_t)(const struct device *dev,
- const struct device *isr_dev);
- struct shared_irq_driver_api {
- shared_irq_register_t isr_register;
- shared_irq_enable_t enable;
- shared_irq_disable_t disable;
- };
- static inline int shared_irq_isr_register(const struct device *dev,
- isr_t isr_func,
- const struct device *isr_dev)
- {
- const struct shared_irq_driver_api *api =
- (const struct shared_irq_driver_api *)dev->api;
- return api->isr_register(dev, isr_func, isr_dev);
- }
- static inline int shared_irq_enable(const struct device *dev,
- const struct device *isr_dev)
- {
- const struct shared_irq_driver_api *api =
- (const struct shared_irq_driver_api *)dev->api;
- return api->enable(dev, isr_dev);
- }
- static inline int shared_irq_disable(const struct device *dev,
- const struct device *isr_dev)
- {
- const struct shared_irq_driver_api *api =
- (const struct shared_irq_driver_api *)dev->api;
- return api->disable(dev, isr_dev);
- }
- #ifdef __cplusplus
- }
- #endif
- #endif
|