From 21d88d15ebabf34e49b8a05f99ebfc3147d9b1a4 Mon Sep 17 00:00:00 2001 From: Kurt Eckhardt Date: Thu, 18 Dec 2014 14:20:14 +0000 Subject: [PATCH] gpio.c: add advance_func->gpio_close_pre Signed-off-by: Kurt Eckhardt Signed-off-by: Brendan Le Foll --- include/mraa_adv_func.h | 2 ++ src/gpio/gpio.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/mraa_adv_func.h b/include/mraa_adv_func.h index 78962c5..cdc625d 100644 --- a/include/mraa_adv_func.h +++ b/include/mraa_adv_func.h @@ -32,6 +32,8 @@ typedef struct { mraa_result_t (*gpio_init_pre) (int pin); mraa_result_t (*gpio_init_post) (mraa_gpio_context dev); + mraa_result_t (*gpio_close_pre) (mraa_gpio_context dev); + mraa_result_t (*gpio_mode_replace) (mraa_gpio_context dev, gpio_mode_t mode); mraa_result_t (*gpio_mode_pre) (mraa_gpio_context dev, gpio_mode_t mode); mraa_result_t (*gpio_mode_post) (mraa_gpio_context dev, gpio_mode_t mode); diff --git a/src/gpio/gpio.c b/src/gpio/gpio.c index 7a570db..721a5ca 100644 --- a/src/gpio/gpio.c +++ b/src/gpio/gpio.c @@ -539,12 +539,18 @@ mraa_gpio_unexport(mraa_gpio_context dev) mraa_result_t mraa_gpio_close(mraa_gpio_context dev) { + mraa_result_t result = MRAA_SUCCESS; + + if (advance_func->gpio_close_pre != NULL) { + result = advance_func->gpio_close_pre(dev); + } + if (dev->value_fp != -1) { close(dev->value_fp); } mraa_gpio_unexport(dev); free(dev); - return MRAA_SUCCESS; + return result; } mraa_result_t