28#include "generated/airframe.h"
29#include "generated/modules.h"
36#define GPIO_EXT_NOT_PROVIDED NULL
38#ifndef GPIO_EXT_PROVIDER1
39#define GPIO_EXT_PROVIDER1 GPIO_EXT_NOT_PROVIDED
41#ifndef GPIO_EXT_PROVIDER2
42#define GPIO_EXT_PROVIDER2 GPIO_EXT_NOT_PROVIDED
44#ifndef GPIO_EXT_PROVIDER3
45#define GPIO_EXT_PROVIDER3 GPIO_EXT_NOT_PROVIDED
47#ifndef GPIO_EXT_PROVIDER4
48#define GPIO_EXT_PROVIDER4 GPIO_EXT_NOT_PROVIDED
62#define SAFE_CALL(_port, _fn, _args...) if(gpio_ext_impl[_port - GPIOEXT1] && gpio_ext_impl[_port - GPIOEXT1]->_fn) gpio_ext_impl[_port - GPIOEXT1]->_fn(_args);
Some architecture independent helper functions for GPIOs.
void __wrap_gpio_set(uint32_t port, uint32_t gpios)
uint32_t __wrap_gpio_get(uint32_t port, uint32_t gpios)
#define GPIO_EXT_PROVIDER2
void __wrap_gpio_toggle(uint32_t port, uint32_t gpios)
#define GPIO_EXT_PROVIDER1
void __real_gpio_set(uint32_t port, uint32_t gpios)
#define GPIO_EXT_PROVIDER3
void __wrap_gpio_setup_input(uint32_t port, uint32_t gpios)
#define GPIO_EXT_PROVIDER4
uint32_t __real_gpio_get(uint32_t port, uint32_t gpios)
#define SAFE_CALL(_port, _fn, _args...)
void __real_gpio_clear(uint32_t port, uint32_t gpios)
void __real_gpio_setup_output(uint32_t port, uint32_t gpios)
void __real_gpio_toggle(uint32_t port, uint32_t gpios)
void __real_gpio_setup_input(uint32_t port, uint32_t gpios)
static struct gpio_ext_functions * gpio_ext_impl[GPIOEXT_NB]
void __wrap_gpio_clear(uint32_t port, uint32_t gpios)
void __wrap_gpio_setup_output(uint32_t port, uint32_t gpios)
void(* setup_output)(uint32_t port, uint32_t gpios)
void(* setup_input)(uint32_t port, uint32_t gpios)
uint32_t(* get)(uint32_t port, uint32_t gpios)
void(* clear)(uint32_t port, uint32_t gpios)
void(* toggle)(uint32_t port, uint32_t gpios)
void(* set)(uint32_t port, uint32_t gpios)
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.