Private
Public Access
2
0

gpio.c: Add close replace function hook

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Brendan Le Foll
2016-03-16 18:56:07 +00:00
parent 1d4f721d4f
commit 334a57be11
3 changed files with 14 additions and 0 deletions

View File

@@ -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);

View File

@@ -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;

View File

@@ -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);
}