diff --git a/mtapi_c/include/embb/mtapi/c/mtapi_ext.h b/mtapi_c/include/embb/mtapi/c/mtapi_ext.h index 84ff46e..274c9f5 100644 --- a/mtapi_c/include/embb/mtapi/c/mtapi_ext.h +++ b/mtapi_c/include/embb/mtapi/c/mtapi_ext.h @@ -64,23 +64,6 @@ mtapi_action_hndl_t mtapi_ext_plugin_action_create( ); -typedef void(*mtapi_ext_control_plugin_initialize_function_t)( - MTAPI_IN mtapi_domain_t domain_id, - MTAPI_IN mtapi_node_t node_id, - MTAPI_OUT mtapi_status_t* status -); - -typedef void(*mtapi_ext_control_plugin_finalize_function_t)( - MTAPI_OUT mtapi_status_t* status -); - -void mtapi_ext_register_control_plugin( - MTAPI_IN mtapi_ext_control_plugin_initialize_function_t initialize_function, - MTAPI_IN mtapi_ext_control_plugin_finalize_function_t finalize_function, - MTAPI_OUT mtapi_status_t* status -); - - #ifdef __cplusplus } #endif diff --git a/mtapi_c/src/embb_mtapi_control_plugin_t.c b/mtapi_c/src/embb_mtapi_control_plugin_t.c deleted file mode 100644 index 67a2b8e..0000000 --- a/mtapi_c/src/embb_mtapi_control_plugin_t.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2014, Siemens AG. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include - -#include - -#include -#include - - -/* ---- POOL STORAGE ------------------------------------------------------- */ - -#define MTAPI_MAX_CONTROL_PLUGINS 32 -static embb_mtapi_control_plugin_t control_plugin_pool[MTAPI_MAX_CONTROL_PLUGINS]; -static embb_atomic_int control_plugin_count = { 0 }; - - -/* ---- CLASS MEMBERS ------------------------------------------------------ */ - -void embb_mtapi_ext_control_plugin_initialize( - MTAPI_IN mtapi_domain_t domain_id, - MTAPI_IN mtapi_node_t node_id, - MTAPI_OUT mtapi_status_t* status - ) { - mtapi_status_t local_status = MTAPI_SUCCESS; - - for (int ii = 0; ii < embb_atomic_load_int(&control_plugin_count); ii++) { - mtapi_status_t plugin_status = MTAPI_ERR_UNKNOWN; - control_plugin_pool[ii].initialize_function(domain_id, node_id, &plugin_status); - if (plugin_status != MTAPI_SUCCESS) { - local_status = plugin_status; - control_plugin_pool[ii].initialized = MTAPI_FALSE; - } else { - control_plugin_pool[ii].initialized = MTAPI_TRUE; - } - } - - mtapi_status_set(status, local_status); -} - -void embb_mtapi_ext_control_plugin_finalize( - MTAPI_OUT mtapi_status_t* status - ) { - mtapi_status_t local_status = MTAPI_SUCCESS; - - for (int ii = 0; ii < embb_atomic_load_int(&control_plugin_count); ii++) { - mtapi_status_t plugin_status = MTAPI_ERR_UNKNOWN; - if (control_plugin_pool[ii].initialized) { - control_plugin_pool[ii].finalize_function(&plugin_status); - if (plugin_status != MTAPI_SUCCESS) { - local_status = plugin_status; - } else { - control_plugin_pool[ii].initialized = MTAPI_FALSE; - } - } - } - - mtapi_status_set(status, local_status); -} - - -/* ---- INTERFACE FUNCTIONS ------------------------------------------------ */ - -void mtapi_ext_register_control_plugin( - MTAPI_IN mtapi_ext_control_plugin_initialize_function_t initialize_function, - MTAPI_IN mtapi_ext_control_plugin_finalize_function_t finalize_function, - MTAPI_OUT mtapi_status_t* status) { - mtapi_status_t local_status = MTAPI_ERR_UNKNOWN; - - int index = embb_atomic_fetch_and_add_int(&control_plugin_count, 1); - if (index < MTAPI_MAX_CONTROL_PLUGINS) { - control_plugin_pool[index].initialize_function = initialize_function; - control_plugin_pool[index].finalize_function = finalize_function; - local_status = MTAPI_SUCCESS; - } else { - embb_atomic_store_int(&control_plugin_count, MTAPI_MAX_CONTROL_PLUGINS); - local_status = MTAPI_ERR_PARAMETER; - } - - mtapi_status_set(status, local_status); -} diff --git a/mtapi_c/src/embb_mtapi_control_plugin_t.h b/mtapi_c/src/embb_mtapi_control_plugin_t.h deleted file mode 100644 index 0d1fd51..0000000 --- a/mtapi_c/src/embb_mtapi_control_plugin_t.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2014, Siemens AG. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef MTAPI_C_SRC_EMBB_MTAPI_CONTROL_PLUGIN_T_H_ -#define MTAPI_C_SRC_EMBB_MTAPI_CONTROL_PLUGIN_T_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* ---- CLASS DECLARATION -------------------------------------------------- */ - -/** - * \internal - * Action class. - * - * \ingroup INTERNAL - */ -struct embb_mtapi_control_plugin_struct { - mtapi_ext_control_plugin_initialize_function_t initialize_function; - mtapi_ext_control_plugin_finalize_function_t finalize_function; - mtapi_boolean_t initialized; -}; - -typedef struct embb_mtapi_control_plugin_struct embb_mtapi_control_plugin_t; - -/** - * Default constructor. - * \memberof embb_mtapi_action_struct - */ -void embb_mtapi_ext_control_plugin_initialize( - MTAPI_IN mtapi_domain_t domain_id, - MTAPI_IN mtapi_node_t node_id, - MTAPI_OUT mtapi_status_t* status -); - -/** - * Destructor. - * \memberof embb_mtapi_action_struct - */ -void embb_mtapi_ext_control_plugin_finalize( - MTAPI_OUT mtapi_status_t* status -); - - -#ifdef __cplusplus -} -#endif - -#endif // MTAPI_C_SRC_EMBB_MTAPI_CONTROL_PLUGIN_T_H_ diff --git a/mtapi_c/src/embb_mtapi_node_t.c b/mtapi_c/src/embb_mtapi_node_t.c index 66cbcdf..f7a7ad7 100644 --- a/mtapi_c/src/embb_mtapi_node_t.c +++ b/mtapi_c/src/embb_mtapi_node_t.c @@ -38,7 +38,6 @@ #include #include #include -#include static embb_mtapi_node_t* embb_mtapi_node_instance = NULL; @@ -133,10 +132,6 @@ void mtapi_initialize( /* initialization succeeded, tell workers to start working */ embb_atomic_store_int(&node->is_scheduler_running, MTAPI_TRUE); - /* initialize plugins */ - embb_mtapi_ext_control_plugin_initialize( - domain_id, node_id, &local_status); - if (MTAPI_SUCCESS != local_status) { mtapi_finalize(MTAPI_NULL); local_status = MTAPI_ERR_NODE_INITFAILED; @@ -164,9 +159,6 @@ void mtapi_finalize(MTAPI_OUT mtapi_status_t* status) { if (embb_mtapi_node_is_initialized()) { embb_mtapi_node_t* node = embb_mtapi_node_get_instance(); - /* finalize plugins */ - embb_mtapi_ext_control_plugin_finalize(MTAPI_NULL); - /* finalize scheduler */ if (MTAPI_NULL != node->scheduler) { embb_mtapi_scheduler_delete(node->scheduler);