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_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_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;
|
||||
}
|
||||
|
||||
static mraa_result_t
|
||||
mraa_firmata_gpio_close_replace(mraa_gpio_context dev)
|
||||
{
|
||||
free(dev);
|
||||
return MRAA_SUCCESS;
|
||||
}
|
||||
|
||||
static mraa_pwm_context
|
||||
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_read_replace = &mraa_firmata_gpio_read_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_read_replace = &mraa_firmata_aio_read;
|
||||
|
||||
@@ -705,6 +705,11 @@ mraa_gpio_close(mraa_gpio_context dev)
|
||||
{
|
||||
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)) {
|
||||
result = dev->advance_func->gpio_close_pre(dev);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user