gpio.c: Add close replace function hook
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
@@ -37,6 +37,7 @@ typedef struct {
|
|||||||
mraa_result_t (*gpio_init_post) (mraa_gpio_context dev);
|
mraa_result_t (*gpio_init_post) (mraa_gpio_context dev);
|
||||||
|
|
||||||
mraa_result_t (*gpio_close_pre) (mraa_gpio_context dev);
|
mraa_result_t (*gpio_close_pre) (mraa_gpio_context dev);
|
||||||
|
mraa_result_t (*gpio_close_replace) (mraa_gpio_context dev);
|
||||||
|
|
||||||
mraa_result_t (*gpio_mode_replace) (mraa_gpio_context dev, mraa_gpio_mode_t mode);
|
mraa_result_t (*gpio_mode_replace) (mraa_gpio_context dev, mraa_gpio_mode_t mode);
|
||||||
mraa_result_t (*gpio_mode_pre) (mraa_gpio_context dev, mraa_gpio_mode_t mode);
|
mraa_result_t (*gpio_mode_pre) (mraa_gpio_context dev, mraa_gpio_mode_t mode);
|
||||||
|
|||||||
@@ -414,6 +414,13 @@ mraa_firmata_gpio_dir_replace(mraa_gpio_context dev, mraa_gpio_dir_t dir)
|
|||||||
return MRAA_SUCCESS;
|
return MRAA_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static mraa_result_t
|
||||||
|
mraa_firmata_gpio_close_replace(mraa_gpio_context dev)
|
||||||
|
{
|
||||||
|
free(dev);
|
||||||
|
return MRAA_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static mraa_pwm_context
|
static mraa_pwm_context
|
||||||
mraa_firmata_pwm_init_internal_replace(void* func_table, int pin)
|
mraa_firmata_pwm_init_internal_replace(void* func_table, int pin)
|
||||||
{
|
{
|
||||||
@@ -575,6 +582,7 @@ mraa_firmata_plat_init(const char* uart_dev)
|
|||||||
b->adv_func->gpio_dir_replace = &mraa_firmata_gpio_dir_replace;
|
b->adv_func->gpio_dir_replace = &mraa_firmata_gpio_dir_replace;
|
||||||
b->adv_func->gpio_read_replace = &mraa_firmata_gpio_read_replace;
|
b->adv_func->gpio_read_replace = &mraa_firmata_gpio_read_replace;
|
||||||
b->adv_func->gpio_write_replace = &mraa_firmata_gpio_write_replace;
|
b->adv_func->gpio_write_replace = &mraa_firmata_gpio_write_replace;
|
||||||
|
b->adv_func->gpio_close_replace = &mraa_firmata_gpio_close_replace;
|
||||||
|
|
||||||
b->adv_func->aio_init_internal_replace = &mraa_firmata_aio_init_internal_replace;
|
b->adv_func->aio_init_internal_replace = &mraa_firmata_aio_init_internal_replace;
|
||||||
b->adv_func->aio_read_replace = &mraa_firmata_aio_read;
|
b->adv_func->aio_read_replace = &mraa_firmata_aio_read;
|
||||||
|
|||||||
@@ -705,6 +705,11 @@ mraa_gpio_close(mraa_gpio_context dev)
|
|||||||
{
|
{
|
||||||
mraa_result_t result = MRAA_SUCCESS;
|
mraa_result_t result = MRAA_SUCCESS;
|
||||||
|
|
||||||
|
if (IS_FUNC_DEFINED(dev, gpio_close_replace)) {
|
||||||
|
return dev->advance_func->gpio_close_replace(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (IS_FUNC_DEFINED(dev, gpio_close_pre)) {
|
if (IS_FUNC_DEFINED(dev, gpio_close_pre)) {
|
||||||
result = dev->advance_func->gpio_close_pre(dev);
|
result = dev->advance_func->gpio_close_pre(dev);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user