diff --git a/include/intel_galileo_rev_d.h b/include/intel_galileo_rev_d.h index d1ff21d..fda8629 100644 --- a/include/intel_galileo_rev_d.h +++ b/include/intel_galileo_rev_d.h @@ -24,9 +24,7 @@ #pragma once -#include "mraa_adv_func.h" - #define MRAA_INTEL_GALILEO_REV_D_PINCOUNT 25 mraa_board_t* -mraa_intel_galileo_rev_d(mraa_adv_func* adv); +mraa_intel_galileo_rev_d(); diff --git a/include/intel_galileo_rev_g.h b/include/intel_galileo_rev_g.h index 478b178..2550beb 100644 --- a/include/intel_galileo_rev_g.h +++ b/include/intel_galileo_rev_g.h @@ -24,9 +24,7 @@ #pragma once -#include "mraa_adv_func.h" - #define MRAA_INTEL_GALILEO_GEN_2_PINCOUNT 25 mraa_board_t* -mraa_intel_galileo_gen2(mraa_adv_func* adv); +mraa_intel_galileo_gen2(); diff --git a/include/mraa_adv_func.h b/include/mraa_adv_func.h deleted file mode 100644 index 6a71125..0000000 --- a/include/mraa_adv_func.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Author: Thomas Ingleby - * Copyright (c) 2014 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#pragma once - -#include "common.h" -#include "mraa.h" -#include "types.h" - -typedef struct { - mraa_boolean_t gpio_init_pre:1; - mraa_boolean_t gpio_init_post:1; - mraa_boolean_t gpio_mode_replace:1; - mraa_boolean_t gpio_mode_pre:1; - mraa_boolean_t gpio_mode_post:1; - mraa_boolean_t gpio_dir_replace:1; - mraa_boolean_t gpio_dir_pre:1; - mraa_boolean_t gpio_dir_post:1; - mraa_boolean_t gpio_write_pre:1; - mraa_boolean_t gpio_write_post:1; - mraa_boolean_t gpio_mmaped_write_replace:1; - mraa_boolean_t gpio_mmaped_write_pre:1; - mraa_boolean_t gpio_mmaped_write_post:1; -} mraa_adv_def_t; - -typedef struct { - mraa_adv_def_t defined; - int (*gpio_init_pre) (int pin); - void (*gpio_init_post) (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); - - mraa_result_t (*gpio_dir_replace) (mraa_gpio_context dev, gpio_dir_t dir); - mraa_result_t (*gpio_dir_pre) (mraa_gpio_context dev, gpio_dir_t dir); - mraa_result_t (*gpio_dir_post) (mraa_gpio_context dev, gpio_dir_t dir); - - mraa_result_t (*gpio_write_pre) (mraa_gpio_context dev, int value); - mraa_result_t (*gpio_write_post) (mraa_gpio_context dev, int value); - - mraa_result_t (*gpio_mmaped_write_replace) (mraa_gpio_context dev, int value); - mraa_result_t (*gpio_mmaped_write_pre) (mraa_gpio_context dev, int value); - mraa_result_t (*gpio_mmaped_write_post) (mraa_gpio_context dev, int value); -} mraa_adv_func; diff --git a/include/mraa_internal.h b/include/mraa_internal.h index 536c2eb..b55db77 100644 --- a/include/mraa_internal.h +++ b/include/mraa_internal.h @@ -25,7 +25,6 @@ #pragma once #include "common.h" -#include "mraa_adv_func.h" #include "mraa_internal_types.h" /** Setup gpio @@ -78,9 +77,3 @@ mraa_mmap_pin_t* mraa_setup_mmap_gpio(int pin); * @return out direction to setup. 1 for output 0 for input */ mraa_result_t mraa_swap_complex_gpio(int pin, int out); - -/** Get the advance structure. - * - * @return struct containing internal advance information for hooks - */ -mraa_adv_func* mraa_get_advance(); diff --git a/src/gpio/gpio.c b/src/gpio/gpio.c index b929375..05993f4 100644 --- a/src/gpio/gpio.c +++ b/src/gpio/gpio.c @@ -39,8 +39,6 @@ #define MAX_SIZE 64 #define POLL_TIMEOUT -static mraa_adv_func* advance; - static mraa_result_t mraa_gpio_get_valfp(mraa_gpio_context dev) { @@ -69,13 +67,6 @@ mraa_gpio_init(int pin) mraa_gpio_context mraa_gpio_init_raw(int pin) { - advance = mraa_get_advance(); - if (advance->defined.gpio_init_pre) { - if((advance->gpio_init_pre(pin)) != 0) { - printf("MRAA: Error in pre hook\n"); - return NULL; - } - } if (pin < 0) return NULL; @@ -111,29 +102,18 @@ mraa_gpio_init_raw(int pin) close(export); } - if (advance->defined.gpio_init_post) - advance->gpio_init_post(dev); return dev; } static mraa_result_t mraa_gpio_write_register(mraa_gpio_context dev,int value) { - if (advance->defined.gpio_mmaped_write_replace) - return advance->gpio_mmaped_write_replace(dev,value); - if (advance->defined.gpio_mmaped_write_pre) { - mraa_result_t pre_ret = (advance->gpio_mmaped_write_pre(dev,value)); - if(pre_ret != MRAA_SUCCESS) - return pre_ret; - } - if (value == 1) { + if (value == 1) { *((unsigned *)dev->reg) |= (1<reg_bit_pos); return MRAA_SUCCESS; } *((unsigned *)dev->reg) &= ~(1<reg_bit_pos); - if (advance->defined.gpio_mmaped_write_post) - return advance->gpio_mmaped_write_post(dev,value); return MRAA_SUCCESS; } @@ -320,15 +300,6 @@ mraa_gpio_isr_exit(mraa_gpio_context dev) mraa_result_t mraa_gpio_mode(mraa_gpio_context dev, gpio_mode_t mode) { - if (advance->defined.gpio_mode_replace) - return advance->gpio_mode_replace(dev,mode); - - if (advance->defined.gpio_mode_pre) { - mraa_result_t pre_ret = (advance->gpio_mode_pre(dev,mode)); - if(pre_ret != MRAA_SUCCESS) - return pre_ret; - } - if (dev->value_fp != -1) { close(dev->value_fp); dev->value_fp = -1; @@ -370,21 +341,12 @@ mraa_gpio_mode(mraa_gpio_context dev, gpio_mode_t mode) } close(drive); - if (advance->defined.gpio_mode_post) - return advance->gpio_mode_post(dev,mode); return MRAA_SUCCESS; } mraa_result_t mraa_gpio_dir(mraa_gpio_context dev, gpio_dir_t dir) { - if (advance->defined.gpio_dir_replace) - return advance->gpio_dir_replace(dev,dir); - if (advance->defined.gpio_dir_pre) { - mraa_result_t pre_ret = (advance->gpio_dir_pre(dev,dir)); - if(pre_ret != MRAA_SUCCESS) - return pre_ret; - } if (dev == NULL) { return MRAA_ERROR_INVALID_HANDLE; } @@ -429,8 +391,6 @@ mraa_gpio_dir(mraa_gpio_context dev, gpio_dir_t dir) } close(direction); - if (advance->defined.gpio_dir_post) - return advance->gpio_dir_post(dev,dir); return MRAA_SUCCESS; } @@ -462,12 +422,6 @@ mraa_gpio_write(mraa_gpio_context dev, int value) if (dev->mmap == 1) return mraa_gpio_write_register(dev,value); - if (advance->defined.gpio_write_pre) { - mraa_result_t pre_ret = (advance->gpio_write_pre(dev,value)); - if(pre_ret != MRAA_SUCCESS) - return pre_ret; - } - if (dev->value_fp == -1) { mraa_gpio_get_valfp(dev); } @@ -481,8 +435,6 @@ mraa_gpio_write(mraa_gpio_context dev, int value) return MRAA_ERROR_INVALID_HANDLE; } - if (advance->defined.gpio_write_post) - return advance->gpio_write_post(dev,value); return MRAA_SUCCESS; } diff --git a/src/intel_galileo_rev_d.c b/src/intel_galileo_rev_d.c index 38d6950..a8a8e83 100644 --- a/src/intel_galileo_rev_d.c +++ b/src/intel_galileo_rev_d.c @@ -29,7 +29,7 @@ #include "intel_galileo_rev_d.h" mraa_board_t* -mraa_intel_galileo_rev_d(mraa_adv_func* adv) +mraa_intel_galileo_rev_d() { mraa_board_t* b = (mraa_board_t*) malloc(sizeof(mraa_board_t)); if (b == NULL) diff --git a/src/intel_galileo_rev_g.c b/src/intel_galileo_rev_g.c index 2133da4..901fe2e 100644 --- a/src/intel_galileo_rev_g.c +++ b/src/intel_galileo_rev_g.c @@ -30,7 +30,7 @@ #include "intel_galileo_rev_g.h" mraa_board_t* -mraa_intel_galileo_gen2(mraa_adv_func* adv) +mraa_intel_galileo_gen2() { mraa_board_t* b = (mraa_board_t*) malloc(sizeof(mraa_board_t)); if (b == NULL) diff --git a/src/mraa.c b/src/mraa.c index ee81559..6819d74 100644 --- a/src/mraa.c +++ b/src/mraa.c @@ -37,7 +37,6 @@ //static mraa_pininfo_t* pindata; static mraa_board_t* plat = NULL; static mraa_platform_t platform_type = MRAA_UNKNOWN_PLATFORM; -static mraa_adv_func* advance = NULL; const char * mraa_get_version() @@ -85,16 +84,15 @@ mraa_init() free(line); fclose(fh); - advance = (mraa_adv_func*) malloc(sizeof(mraa_adv_func)); switch(platform_type) { case MRAA_INTEL_GALILEO_GEN2: - plat = mraa_intel_galileo_gen2(advance); + plat = mraa_intel_galileo_gen2(); break; case MRAA_INTEL_GALILEO_GEN1: - plat = mraa_intel_galileo_rev_d(advance); + plat = mraa_intel_galileo_rev_d(); break; default: - plat = mraa_intel_galileo_rev_d(advance); + plat = mraa_intel_galileo_rev_d(); fprintf(stderr, "Platform not found, initialising MRAA_INTEL_GALILEO_GEN1\n"); } @@ -455,8 +453,3 @@ mraa_adc_supported_bits() return plat->adc_supported; } - -mraa_adv_func* -mraa_get_advance() { - return advance; -}