Hi Thang, I think it would be nice you can separate two commits, one for test, one for gcc/g++ 10 code changes.
Thanks, Minh ________________________________ From: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au> Sent: Wednesday, March 16, 2022 11:44 AM To: Hieu Hong Hoang <hieu.h.ho...@dektech.com.au>; Thien Minh Huynh <thien.m.hu...@dektech.com.au>; Minh Hon Chau <minh.c...@dektech.com.au> Cc: opensaf-devel@lists.sourceforge.net <opensaf-devel@lists.sourceforge.net>; Thang Duc Nguyen <thang.d.ngu...@dektech.com.au> Subject: [PATCH 1/1] osaf: support compile with gcc/g++ 10 [#3307] - Fix error to support gcc/g++ 10. - Fix memleak in api test. --- src/ckpt/agent/cpa_cb.h | 2 +- src/ckpt/apitest/test_cpa.c | 2 + src/ckpt/apitest/test_cpa_util.c | 13 ++- src/ckpt/apitest/test_cpsv_conf.h | 2 +- src/ckpt/ckptd/cpd_amf.c | 1 - src/ckpt/ckptd/cpd_init.h | 2 +- src/evt/agent/eda.h | 2 +- src/evt/apitest/tet_eda.c | 32 ++++++++ src/evt/apitest/tet_eda.h | 80 ++++++++++++------- src/evt/apitest/tet_edsv_func.c | 1 + src/evt/evtd/eds.h | 2 +- src/evt/evtd/eds_amf.h | 6 +- src/evt/evtd/eds_cb.h | 2 +- .../test_saImmOmThreadInterference.c | 4 +- src/imm/immd/immd.h | 2 +- src/lck/apitest/tet_gld.c | 1 - src/lck/apitest/tet_glnd.c | 2 - src/lck/lckd/gld_dl_api.h | 2 +- src/lck/lcknd/glnd_cb.h | 4 +- src/log/apitest/logtest.c | 6 ++ src/log/apitest/logtest.h | 6 +- src/log/logd/lgs_dest.cc | 4 +- src/mds/apitest/mdstipc.h | 30 +++---- src/mds/apitest/mdstipc_api.c | 17 ++++ src/mds/mds_core.h | 30 +++---- src/mds/mds_dt_common.c | 3 + src/mds/mds_dt_tcp.c | 3 +- src/mds/mds_dt_tcp.h | 2 +- src/mds/mds_dt_tipc.c | 2 - src/mds/mds_main.c | 47 +++++++++++ src/msg/msgnd/mqnd_db.h | 2 +- tools/devel/fenced/node_state_hdlr_pl.cc | 1 + 32 files changed, 224 insertions(+), 91 deletions(-) diff --git a/src/ckpt/agent/cpa_cb.h b/src/ckpt/agent/cpa_cb.h index ac48c6c4f..d6335830f 100644 --- a/src/ckpt/agent/cpa_cb.h +++ b/src/ckpt/agent/cpa_cb.h @@ -119,7 +119,7 @@ typedef struct cpa_cb { } CPA_CB; -uint32_t gl_cpa_hdl; +extern uint32_t gl_cpa_hdl; typedef struct cpa_prcess_evt_sync { NCS_QELEM qelem; diff --git a/src/ckpt/apitest/test_cpa.c b/src/ckpt/apitest/test_cpa.c index 6c37e91d5..0093b91ea 100644 --- a/src/ckpt/apitest/test_cpa.c +++ b/src/ckpt/apitest/test_cpa.c @@ -364,6 +364,7 @@ void fill_testcase_data() *(ckpt_name + length) = '.'; saAisNameLend(ckpt_name, &tcd.all_replicas_ckpt_with_valid_extended_name_length); + free(ckpt_name); ckpt_name = malloc(INVALID_EXTENDED_NAME_LENGTH); memset(ckpt_name, 0, INVALID_EXTENDED_NAME_LENGTH); @@ -374,6 +375,7 @@ void fill_testcase_data() *(ckpt_name + length) = '.'; saAisNameLend(ckpt_name, &tcd.all_replicas_ckpt_with_invalid_extended_name_length); + free(ckpt_name); /* Variables for sec create */ tcd.sec_id1 = (SaUint8T *)"11"; diff --git a/src/ckpt/apitest/test_cpa_util.c b/src/ckpt/apitest/test_cpa_util.c index 474e76f0d..7da36e0c1 100644 --- a/src/ckpt/apitest/test_cpa_util.c +++ b/src/ckpt/apitest/test_cpa_util.c @@ -24,6 +24,7 @@ extern const char *saf_error_string[]; int gl_try_again_cnt; int gl_tmout_cnt; int gl_sync_pointnum; +NCSCONTEXT gl_task_hdl = NULL; int tmoutFlag; int cpsv_test_result(SaAisErrorT rc, SaAisErrorT exp_out, char *test_case, @@ -651,23 +652,24 @@ void selection_thread_blocking(NCSCONTEXT arg) m_TEST_CPSV_PRINTF("\n Dispatching FAILED %d \n", rc); else m_TEST_CPSV_PRINTF("\n Thread selected \n"); + m_NCS_TASK_RELEASE(gl_task_hdl); } void cpsv_createthread(SaCkptHandleT *cl_hdl) { SaAisErrorT rc; - NCSCONTEXT thread_handle; rc = m_NCS_TASK_CREATE((NCS_OS_CB)selection_thread_blocking, (NCSCONTEXT)cl_hdl, "cpsv_block_test", 0, - SCHED_OTHER, 8000, &thread_handle); + SCHED_OTHER, 8000, &gl_task_hdl); if (rc != NCSCC_RC_SUCCESS) { m_TEST_CPSV_PRINTF(" Failed to create thread\n"); return; } - rc = m_NCS_TASK_START(thread_handle); + rc = m_NCS_TASK_START(gl_task_hdl); if (rc != NCSCC_RC_SUCCESS) { + m_NCS_TASK_RELEASE(gl_task_hdl); m_TEST_CPSV_PRINTF(" Failed to start thread\n"); return; } @@ -3007,6 +3009,11 @@ static void ntfCallback(SaNtfSubscriptionIdT subscriptionId, break; } } while (false); + + if (notification->notificationType == SA_NTF_TYPE_STATE_CHANGE) + saNtfNotificationFree( + notification->notification.stateChangeNotification + .notificationHandle); } int test_ckptNtfStateChange(int i, CONFIG_FLAG cfg_flg) diff --git a/src/ckpt/apitest/test_cpsv_conf.h b/src/ckpt/apitest/test_cpsv_conf.h index d33be6779..2d35f5dc1 100644 --- a/src/ckpt/apitest/test_cpsv_conf.h +++ b/src/ckpt/apitest/test_cpsv_conf.h @@ -154,7 +154,7 @@ struct cpsv_testcase_data { int ntfTest; }; -struct cpsv_testcase_data tcd; +extern struct cpsv_testcase_data tcd; extern int test_ckptInitialize(int i, CONFIG_FLAG cfg_flg); extern int test_ckptSelectionObject(int i, CONFIG_FLAG cfg_flg); diff --git a/src/ckpt/ckptd/cpd_amf.c b/src/ckpt/ckptd/cpd_amf.c index 48d06c167..0d0cd3cf4 100644 --- a/src/ckpt/ckptd/cpd_amf.c +++ b/src/ckpt/ckptd/cpd_amf.c @@ -37,7 +37,6 @@ #include "ckpt/ckptd/cpd_imm.h" #define NCS_2_0 1 #if NCS_2_0 /* Required for NCS 2.0 */ -extern uint32_t gl_cpd_cb_hdl; extern const SaImmOiImplementerNameT implementer_name; /**************************************************************************** diff --git a/src/ckpt/ckptd/cpd_init.h b/src/ckpt/ckptd/cpd_init.h index 0c02642e4..cf3466bb1 100644 --- a/src/ckpt/ckptd/cpd_init.h +++ b/src/ckpt/ckptd/cpd_init.h @@ -33,7 +33,7 @@ #include <saAmf.h> #include "cpd_cb.h" -uint32_t gl_cpd_cb_hdl; +extern uint32_t gl_cpd_cb_hdl; /* Macro to get the component name for the component type */ #define m_CPD_TASKNAME "CPD" diff --git a/src/evt/agent/eda.h b/src/evt/agent/eda.h index 4d1991cd9..138c91010 100644 --- a/src/evt/agent/eda.h +++ b/src/evt/agent/eda.h @@ -39,7 +39,7 @@ #include "base/logtrace.h" /* EDA CB global handle declaration */ -uint32_t gl_eda_hdl; +extern uint32_t gl_eda_hdl; /* EDA Default MDS timeout value */ #define EDA_MDS_DEF_TIMEOUT 100 diff --git a/src/evt/apitest/tet_eda.c b/src/evt/apitest/tet_eda.c index 4c551df9c..bc56233e6 100644 --- a/src/evt/apitest/tet_eda.c +++ b/src/evt/apitest/tet_eda.c @@ -16,6 +16,38 @@ int gl_minor_version = 0x01; SaEvtLimitIdT gl_limitId; SaLimitValueT gl_limitValue; +int gl_tNode1, gl_tNode2, gl_tNode3, gl_node_id, gl_jCount, gl_allocatedNumber, + gl_patternLength, gl_tCount, gl_tCase, gl_iteration, gl_listNumber, + gl_error, subCount, gl_err, gl_cbk, iCmpCount, tempDataSize, gl_hide; +char gl_eventData[20]; +NCSCONTEXT gl_t_handle; +SaEvtHandleT gl_evtHandle; +SaEvtHandleT gl_threadEvtHandle; +SaVersionT gl_version; +SaAisErrorT gl_rc; +SaSelectionObjectT gl_selObject; +SaDispatchFlagsT gl_dispatchFlags; +SaNameT gl_channelName; +SaNameT gl_publisherName; +SaEvtChannelOpenFlagsT gl_channelOpenFlags; +SaTimeT gl_timeout; +SaTimeT gl_retentionTime; +SaTimeT gl_publishTime; +SaEvtChannelHandleT gl_channelHandle; +SaInvocationT gl_invocation; +SaEvtEventHandleT gl_eventHandle; +SaEvtEventHandleT gl_eventDeliverHandle; +SaEvtEventIdT gl_evtId; +SaEvtEventPatternArrayT gl_patternArray; +SaEvtEventPriorityT gl_priority; +SaSizeT gl_eventDataSize; +SaEvtEventFilterArrayT gl_filterArray; +SaEvtSubscriptionIdT gl_subscriptionId; +SaEvtSubscriptionIdT gl_dupSubscriptionId; +SaEvtEventPatternT gl_pattern[2]; +SaEvtEventFilterT gl_filter[1]; +NCSCONTEXT eda_thread_handle; +NCSCONTEXT subscription_handle; SaTimeT gl_timeout = 100000000000.0; SaInvocationT gl_invocation = 3; diff --git a/src/evt/apitest/tet_eda.h b/src/evt/apitest/tet_eda.h index 8240f92ae..ec33abbe6 100644 --- a/src/evt/apitest/tet_eda.h +++ b/src/evt/apitest/tet_eda.h @@ -44,33 +44,54 @@ void tet_result(int result); -int gl_act; -int gl_tNode1, gl_tNode2, gl_tNode3, gl_node_id, gl_jCount, gl_allocatedNumber, - gl_patternLength, gl_tCount, gl_tCase, gl_iteration, gl_listNumber, - gl_error, subCount, gl_err, gl_cbk, iCmpCount, tempDataSize, gl_hide; -char *gl_saf_msg, *tempData; -char gl_eventData[20]; -NCSCONTEXT gl_t_handle; -SaEvtHandleT gl_evtHandle, gl_threadEvtHandle; -SaVersionT gl_version; -SaAisErrorT gl_rc; -SaSelectionObjectT gl_selObject; -SaDispatchFlagsT gl_dispatchFlags; -SaNameT gl_channelName, gl_publisherName; -SaEvtChannelOpenFlagsT gl_channelOpenFlags; -SaTimeT gl_timeout, gl_retentionTime, gl_publishTime; -SaEvtChannelHandleT gl_channelHandle; -SaInvocationT gl_invocation; -SaEvtEventHandleT gl_eventHandle, gl_eventDeliverHandle; -SaEvtEventIdT gl_evtId; -SaEvtEventPatternArrayT gl_patternArray; -SaEvtEventPriorityT gl_priority; -SaSizeT gl_eventDataSize; -SaEvtEventFilterArrayT gl_filterArray; -SaEvtSubscriptionIdT gl_subscriptionId, gl_dupSubscriptionId; -SaEvtEventPatternT gl_pattern[2]; -SaEvtEventFilterT gl_filter[1]; -SaEvtCallbacksT gl_evtCallbacks; +extern int gl_tNode1; +extern int gl_tNode2; +extern int gl_tNode3; +extern int gl_node_id; +extern int gl_jCount; +extern int gl_allocatedNumber; +extern int gl_patternLength; +extern int gl_tCount; +extern int gl_tCase; +extern int gl_iteration; +extern int gl_listNumber; +extern int gl_error; +extern int subCount; +extern int gl_err; +extern int gl_cbk; +extern int iCmpCount; +extern int tempDataSize; +extern int gl_hide; +extern char *gl_saf_msg; +extern char *tempData; +extern char gl_eventData[20]; +extern NCSCONTEXT gl_t_handle; +extern SaEvtHandleT gl_evtHandle; +extern SaEvtHandleT gl_threadEvtHandle; +extern SaVersionT gl_version; +extern SaAisErrorT gl_rc; +extern SaSelectionObjectT gl_selObject; +extern SaDispatchFlagsT gl_dispatchFlags; +extern SaNameT gl_channelName; +extern SaNameT gl_publisherName; +extern SaEvtChannelOpenFlagsT gl_channelOpenFlags; +extern SaTimeT gl_timeout; +extern SaTimeT gl_retentionTime; +extern SaTimeT gl_publishTime; +extern SaEvtChannelHandleT gl_channelHandle; +extern SaInvocationT gl_invocation; +extern SaEvtEventHandleT gl_eventHandle; +extern SaEvtEventHandleT gl_eventDeliverHandle; +extern SaEvtEventIdT gl_evtId; +extern SaEvtEventPatternArrayT gl_patternArray; +extern SaEvtEventPriorityT gl_priority; +extern SaSizeT gl_eventDataSize; +extern SaEvtEventFilterArrayT gl_filterArray; +extern SaEvtSubscriptionIdT gl_subscriptionId; +extern SaEvtSubscriptionIdT gl_dupSubscriptionId; +extern SaEvtEventPatternT gl_pattern[2]; +extern SaEvtEventFilterT gl_filter[1]; +extern SaEvtCallbacksT gl_evtCallbacks; void EvtOpenCallback(SaInvocationT invocationCallback, SaEvtChannelHandleT asyncChannelHandle, SaAisErrorT error); void EvtDeliverCallback(SaEvtSubscriptionIdT subscriptionId, @@ -85,9 +106,10 @@ struct gl_list { char *gl_eventData; }; -NCSCONTEXT eda_thread_handle, subscription_handle; +extern NCSCONTEXT eda_thread_handle; +extern NCSCONTEXT subscription_handle; /*******String Constants*******/ -const char *gl_saf_error[32]; +extern const char *gl_saf_error[32]; typedef enum { EDSV_TEST = 1, diff --git a/src/evt/apitest/tet_edsv_func.c b/src/evt/apitest/tet_edsv_func.c index 18a17c398..991961978 100644 --- a/src/evt/apitest/tet_edsv_func.c +++ b/src/evt/apitest/tet_edsv_func.c @@ -11,6 +11,7 @@ extern SaEvtEventPatternT gl_pattern[2]; extern SaEvtEventFilterT gl_filter[1]; extern const char *gl_saf_error[32]; int gl_b03_flag = 0; +char *tempData; /***********************************************/ /*************Functionality Testing*************/ /***********************************************/ diff --git a/src/evt/evtd/eds.h b/src/evt/evtd/eds.h index bc9c4296d..3545d7757 100644 --- a/src/evt/evtd/eds.h +++ b/src/evt/evtd/eds.h @@ -72,6 +72,6 @@ #include "base/daemon.h" /* EDS CB global handle declaration */ -uint32_t gl_eds_hdl; +extern uint32_t gl_eds_hdl; #endif // EVT_EVTD_EDS_H_ diff --git a/src/evt/evtd/eds_amf.h b/src/evt/evtd/eds_amf.h index e9aeaa6c6..b8e85a0d3 100644 --- a/src/evt/evtd/eds_amf.h +++ b/src/evt/evtd/eds_amf.h @@ -46,11 +46,13 @@ uint32_t eds_active_state_handler(EDS_CB *cb, SaInvocationT invocation); uint32_t eds_standby_state_handler(EDS_CB *cb, SaInvocationT invocation); uint32_t eds_quiescing_state_handler(EDS_CB *cb, SaInvocationT invocation); uint32_t eds_quiesced_state_handler(EDS_CB *cb, SaInvocationT invocation); +/* +// AMF HA state can transit to a maximum of the two defined states. struct next_HAState { uint8_t nextState1; uint8_t nextState2; -} nextStateInfo; /* AMF HA state can transit to a maximum of the two defined - states */ +} nextStateInfo; +*/ #define VALIDATE_STATE(curr, next) \ ((curr > MAX_HA_STATE) || (next > MAX_HA_STATE)) \ diff --git a/src/evt/evtd/eds_cb.h b/src/evt/evtd/eds_cb.h index c127ead2d..19c48cd25 100644 --- a/src/evt/evtd/eds_cb.h +++ b/src/evt/evtd/eds_cb.h @@ -40,7 +40,7 @@ #include "base/ncssysf_tmr.h" /* global variables */ -uint32_t gl_eds_hdl; +extern uint32_t gl_eds_hdl; struct eda_reg_list_tag; diff --git a/src/imm/apitest/management/test_saImmOmThreadInterference.c b/src/imm/apitest/management/test_saImmOmThreadInterference.c index ea63b978a..6db239228 100644 --- a/src/imm/apitest/management/test_saImmOmThreadInterference.c +++ b/src/imm/apitest/management/test_saImmOmThreadInterference.c @@ -40,7 +40,7 @@ static void saImmOiAdminOperationCallback( immutil_saImmOiAdminOperationResult(immOiHandle, invocation, SA_AIS_OK); } -SaImmOiCallbacksT_2 immOiCallbacks = { +SaImmOiCallbacksT_2 immOiCallbacks_1 = { saImmOiAdminOperationCallback, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; static void *implementer_thread(void *arg) @@ -139,7 +139,7 @@ void saImmOmThreadInterference_01(void) isOiDone = 0; isOmDone = 0; safassert( - immutil_saImmOiInitialize_2(&immOiHandle, &immOiCallbacks, &immVersion), + immutil_saImmOiInitialize_2(&immOiHandle, &immOiCallbacks_1, &immVersion), SA_AIS_OK); safassert(immutil_saImmOiImplementerSet(immOiHandle, implementerName), SA_AIS_OK); diff --git a/src/imm/immd/immd.h b/src/imm/immd/immd.h index d8456d3c1..28fbac1e3 100644 --- a/src/imm/immd/immd.h +++ b/src/imm/immd/immd.h @@ -43,7 +43,7 @@ #include "immd_sbedu.h" #include "base/ncs_mda_pvt.h" -IMMD_CB *immd_cb; +extern IMMD_CB *immd_cb; extern uint32_t initialize_for_assignment(IMMD_CB *cb, SaAmfHAStateT ha_state); diff --git a/src/lck/apitest/tet_gld.c b/src/lck/apitest/tet_gld.c index 7180d00db..cf63720b6 100644 --- a/src/lck/apitest/tet_gld.c +++ b/src/lck/apitest/tet_gld.c @@ -2,7 +2,6 @@ #include "tet_glsv.h" -extern uint32_t gl_gld_hdl; void tet_run_gld() { tet_create_gld(); } diff --git a/src/lck/apitest/tet_glnd.c b/src/lck/apitest/tet_glnd.c index 9bd2bab57..c017f4b92 100644 --- a/src/lck/apitest/tet_glnd.c +++ b/src/lck/apitest/tet_glnd.c @@ -2,8 +2,6 @@ #include "tet_glsv.h" -extern uint32_t gl_glnd_hdl; - void tet_run_glnd() { diff --git a/src/lck/lckd/gld_dl_api.h b/src/lck/lckd/gld_dl_api.h index 6476a7181..c4412918b 100644 --- a/src/lck/lckd/gld_dl_api.h +++ b/src/lck/lckd/gld_dl_api.h @@ -33,7 +33,7 @@ #include "base/ncsgl_defs.h" #include "base/ncs_lib.h" -uint32_t gl_gld_hdl; +extern uint32_t gl_gld_hdl; uint32_t gld_lib_req(NCS_LIB_REQ_INFO *req_info); #endif // LCK_LCKD_GLD_DL_API_H_ diff --git a/src/lck/lcknd/glnd_cb.h b/src/lck/lcknd/glnd_cb.h index 3b82f605f..77a1f889b 100644 --- a/src/lck/lcknd/glnd_cb.h +++ b/src/lck/lcknd/glnd_cb.h @@ -28,8 +28,8 @@ extern "C" { #endif /* global variables */ -uint32_t gl_glnd_hdl; -NCSCONTEXT gl_glnd_task_hdl; +extern uint32_t gl_glnd_hdl; +extern NCSCONTEXT gl_glnd_task_hdl; /* macros for the global varibales */ #define m_GLND_RETRIEVE_GLND_CB_HDL gl_glnd_hdl diff --git a/src/log/apitest/logtest.c b/src/log/apitest/logtest.c index d86a2d0ab..730db1199 100644 --- a/src/log/apitest/logtest.c +++ b/src/log/apitest/logtest.c @@ -61,6 +61,12 @@ SaNameT saNameT_appstream_name_256; static char buf[2048]; +bool tag_flg; + +bool silent_flg; + +bool verbose_flg; + SaLogBufferT alarmStreamBuffer = { .logBuf = (SaUint8T *)buf, .logBufSize = 0, }; diff --git a/src/log/apitest/logtest.h b/src/log/apitest/logtest.h index e04492086..5dba510e8 100644 --- a/src/log/apitest/logtest.h +++ b/src/log/apitest/logtest.h @@ -81,20 +81,20 @@ const static SaVersionT kLogVersion = {'A', 0x02, 0x03}; const static SaVersionT kImmVersion = {'A', 02, 11}; /* Vebose mode. If set some test cases will print extra information */ -bool verbose_flg; +extern bool verbose_flg; void printf_v(const char *format, ...) __attribute__((format(printf, 1, 2))); /* Silent mode. If set test cases printing information will be silent * Only affects stdout. Do not affect default printouts for PASS/FAIL info */ -bool silent_flg; +extern bool silent_flg; void printf_s(const char *format, ...) __attribute__((format(printf, 1, 2))); /* Tag mode. Same as silent mode except that a TAG is printed on stdout when * time to take an external action. E.g. TAG_ND means stop SC nodes. * The tag is printed on a separate line. */ -bool tag_flg; +extern bool tag_flg; void print_t(const char *format, ...) __attribute__((format(printf, 1, 2))); /* Extra test cases */ diff --git a/src/log/logd/lgs_dest.cc b/src/log/logd/lgs_dest.cc index bf5064d21..943de15ea 100644 --- a/src/log/logd/lgs_dest.cc +++ b/src/log/logd/lgs_dest.cc @@ -199,14 +199,14 @@ void DestinationHandler::FormCfgDestMsg(const std::string& dest, if (tmp.size() > 1) { strncpy(msg->type, tmp[kType].c_str(), kMaxChar - 1); } - if (tmp.size() == kSize) strncpy(msg->value, tmp[kValue].c_str(), kMaxChar); + if (tmp.size() == kSize) memcpy(msg->value, tmp[kValue].c_str(), kMaxChar); } void DestinationHandler::FormDelDestMsg(const std::string& dest, DelDestMsg* msg) { osafassert(msg != nullptr); const VectorString tmp = logutil::Parser(dest, kDelimeter); - strncpy(msg->name, tmp[kName].c_str(), kMaxChar); + memcpy(msg->name, tmp[kName].c_str(), kMaxChar); } bool DestinationHandler::VectorFind(const VectorString& vec, diff --git a/src/mds/apitest/mdstipc.h b/src/mds/apitest/mdstipc.h index b84c303e6..7d288802f 100644 --- a/src/mds/apitest/mdstipc.h +++ b/src/mds/apitest/mdstipc.h @@ -152,24 +152,24 @@ typedef struct COUNTER { } COUNTER; /********************* GLOBAL variables ********************/ -TET_ADEST gl_tet_adest; -TET_VDEST +extern TET_ADEST gl_tet_adest; +extern TET_VDEST gl_tet_vdest[4]; /*change it to 6 to run VDS Redundancy: 101 for Stress*/ -TET_SVC gl_tet_svc; -TET_MDS_RECVD_MSG_INFO gl_rcvdmsginfo, gl_direct_rcvmsginfo; -TET_EVENT_INFO gl_event_data; -int gl_vdest_indx; -MDS_DIRECT_BUFF direct_buff; +extern TET_SVC gl_tet_svc; +extern TET_MDS_RECVD_MSG_INFO gl_rcvdmsginfo; +extern TET_MDS_RECVD_MSG_INFO gl_direct_rcvmsginfo; +extern TET_EVENT_INFO gl_event_data; +extern int gl_vdest_indx; +extern MDS_DIRECT_BUFF direct_buff; /*Callback Failure*/ -int gl_COPY_CB_FAIL; -int gl_SYS_EVENT_CB_FAIL; -int gl_ENC_CB_FAIL; -int gl_DEC_CB_FAIL; -int gl_ENC_FLAT_CB_FAIL; -int gl_DEC_FLAT_CB_FAIL; -int gl_RECEIVE_CB_FAIL; -int gl_COPY_CB_FAIL; +extern int gl_COPY_CB_FAIL; +extern int gl_SYS_EVENT_CB_FAIL; +extern int gl_ENC_CB_FAIL; +extern int gl_DEC_CB_FAIL; +extern int gl_ENC_FLAT_CB_FAIL; +extern int gl_DEC_FLAT_CB_FAIL; +extern int gl_RECEIVE_CB_FAIL; uint32_t tet_mds_svc_callback(NCSMDS_CALLBACK_INFO *); /******************MDS call back routines *********************************/ diff --git a/src/mds/apitest/mdstipc_api.c b/src/mds/apitest/mdstipc_api.c index 581ea53f3..8d09761e1 100644 --- a/src/mds/apitest/mdstipc_api.c +++ b/src/mds/apitest/mdstipc_api.c @@ -39,6 +39,23 @@ MDS_SVC_ID svc_ids[3] = {2006, 2007, 2008}; pthread_mutex_t safe_printf_mutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t gl_mutex = PTHREAD_MUTEX_INITIALIZER; +int gl_vdest_indx; +TET_ADEST gl_tet_adest; +TET_VDEST gl_tet_vdest[4]; +TET_SVC gl_tet_svc; +TET_MDS_RECVD_MSG_INFO gl_rcvdmsginfo, gl_direct_rcvmsginfo; +TET_EVENT_INFO gl_event_data; +MDS_DIRECT_BUFF direct_buff; + +/*Callback Failure*/ +int gl_COPY_CB_FAIL; +int gl_SYS_EVENT_CB_FAIL; +int gl_ENC_CB_FAIL; +int gl_DEC_CB_FAIL; +int gl_ENC_FLAT_CB_FAIL; +int gl_DEC_FLAT_CB_FAIL; +int gl_RECEIVE_CB_FAIL; + void safe_printf(const char* format, ... ) { pthread_mutex_lock(&safe_printf_mutex); va_list args; diff --git a/src/mds/mds_core.h b/src/mds/mds_core.h index dad62cdc5..661bd85ea 100644 --- a/src/mds/mds_core.h +++ b/src/mds/mds_core.h @@ -600,65 +600,65 @@ extern "C" { /* ******************************************** */ /* Initialization of MDTM Module */ -uint32_t (*mds_mdtm_init)(NODE_ID node_id, uint32_t *mds_tipc_ref); +extern uint32_t (*mds_mdtm_init)(NODE_ID node_id, uint32_t *mds_tipc_ref); /* Destroying the MDTM Module*/ -uint32_t (*mds_mdtm_destroy)(void); +extern uint32_t (*mds_mdtm_destroy)(void); -uint32_t (*mds_mdtm_send)(MDTM_SEND_REQ *req); +extern uint32_t (*mds_mdtm_send)(MDTM_SEND_REQ *req); /* SVC Install */ -uint32_t (*mds_mdtm_svc_install)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, +extern uint32_t (*mds_mdtm_svc_install)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, NCSMDS_SCOPE_TYPE install_scope, V_DEST_RL role, MDS_VDEST_ID vdest_id, NCS_VDEST_TYPE vdest_policy, MDS_SVC_PVT_SUB_PART_VER mds_svc_pvt_ver); /* SVC Uninstall */ -uint32_t (*mds_mdtm_svc_uninstall)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, +extern uint32_t (*mds_mdtm_svc_uninstall)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, NCSMDS_SCOPE_TYPE install_scope, V_DEST_RL role, MDS_VDEST_ID vdest_id, NCS_VDEST_TYPE vdest_policy, MDS_SVC_PVT_SUB_PART_VER mds_svc_pvt_ver); /* SVC Subscribe */ -uint32_t (*mds_mdtm_svc_subscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, +extern uint32_t (*mds_mdtm_svc_subscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, NCSMDS_SCOPE_TYPE subscribe_scope, MDS_SVC_HDL local_svc_hdl, MDS_SUBTN_REF_VAL *subtn_ref_val); /* added svc_hdl */ /* SVC Unsubscribe */ -uint32_t (*mds_mdtm_svc_unsubscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, +extern uint32_t (*mds_mdtm_svc_unsubscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, NCSMDS_SCOPE_TYPE subscribe_scope, MDS_SUBTN_REF_VAL subtn_ref_val); /* VDEST Install */ -uint32_t (*mds_mdtm_vdest_install)(MDS_VDEST_ID vdest_id); +extern uint32_t (*mds_mdtm_vdest_install)(MDS_VDEST_ID vdest_id); /* VDEST Uninstall */ -uint32_t (*mds_mdtm_vdest_uninstall)(MDS_VDEST_ID vdest_id); +extern uint32_t (*mds_mdtm_vdest_uninstall)(MDS_VDEST_ID vdest_id); /* VDEST Subscribe */ -uint32_t (*mds_mdtm_vdest_subscribe)(MDS_VDEST_ID vdest_id, +extern uint32_t (*mds_mdtm_vdest_subscribe)(MDS_VDEST_ID vdest_id, MDS_SUBTN_REF_VAL *subtn_ref_val); /* VDEST Unsubscribe */ -uint32_t (*mds_mdtm_vdest_unsubscribe)(MDS_VDEST_ID vdest_id, +extern uint32_t (*mds_mdtm_vdest_unsubscribe)(MDS_VDEST_ID vdest_id, MDS_SUBTN_REF_VAL subtn_ref_val); /* Tx Register (For incrementing the use count) */ -uint32_t (*mds_mdtm_tx_hdl_register)(MDS_DEST adest); +extern uint32_t (*mds_mdtm_tx_hdl_register)(MDS_DEST adest); /* Tx Unregister (For decrementing the use count) */ -uint32_t (*mds_mdtm_tx_hdl_unregister)(MDS_DEST adest); +extern uint32_t (*mds_mdtm_tx_hdl_unregister)(MDS_DEST adest); /* Node subscription */ -uint32_t (*mds_mdtm_node_subscribe)(MDS_SVC_HDL svc_hdl, +extern uint32_t (*mds_mdtm_node_subscribe)(MDS_SVC_HDL svc_hdl, MDS_SUBTN_REF_VAL *subtn_ref_val); /* Node unsubscription */ -uint32_t (*mds_mdtm_node_unsubscribe)(MDS_SUBTN_REF_VAL subtn_ref_val); +extern uint32_t (*mds_mdtm_node_unsubscribe)(MDS_SUBTN_REF_VAL subtn_ref_val); #ifdef __cplusplus } diff --git a/src/mds/mds_dt_common.c b/src/mds/mds_dt_common.c index 6f1bd8a2e..85784e4b6 100644 --- a/src/mds/mds_dt_common.c +++ b/src/mds/mds_dt_common.c @@ -24,6 +24,9 @@ #include "base/osaf_utility.h" #include "base/osaf_secutil.h" +MDTM_REF_HDL_LIST *mdtm_ref_hdl_list_hdr; +NCS_PATRICIA_TREE mdtm_reassembly_list; + static SYSF_MBX mdtm_mbx_common; static MDTM_TX_TYPE mdtm_transport; static uint32_t mdtm_fill_data(MDTM_REASSEMBLY_QUEUE *reassem_queue, diff --git a/src/mds/mds_dt_tcp.c b/src/mds/mds_dt_tcp.c index 0aa1c59d5..a79317b6d 100644 --- a/src/mds/mds_dt_tcp.c +++ b/src/mds/mds_dt_tcp.c @@ -66,8 +66,7 @@ extern MDS_SUBTN_REF_VAL mdtm_handle; extern uint32_t mdtm_global_frag_num_tcp; uint32_t mds_socket_domain = AF_UNIX; -MDTM_REF_HDL_LIST *mdtm_ref_hdl_list_hdr; -NCS_PATRICIA_TREE mdtm_reassembly_list; +MDTM_TCP_CB *tcp_cb; /* Get the pid of the process */ pid_t mdtm_pid; diff --git a/src/mds/mds_dt_tcp.h b/src/mds/mds_dt_tcp.h index 1065464b8..350d53490 100644 --- a/src/mds/mds_dt_tcp.h +++ b/src/mds/mds_dt_tcp.h @@ -50,7 +50,7 @@ typedef struct mdtm_tcp_cb { } MDTM_TCP_CB; -MDTM_TCP_CB *tcp_cb; +extern MDTM_TCP_CB *tcp_cb; typedef enum mds_mdtm_dtm_msg_types { MDS_MDTM_DTM_PID_TYPE = 1, diff --git a/src/mds/mds_dt_tipc.c b/src/mds/mds_dt_tipc.c index 5c4260c08..5da5cdeaf 100644 --- a/src/mds/mds_dt_tipc.c +++ b/src/mds/mds_dt_tipc.c @@ -160,8 +160,6 @@ struct sockaddr_tipc topsrv; static MDS_SUBTN_REF_VAL handle; static uint16_t num_subscriptions; -MDTM_REF_HDL_LIST *mdtm_ref_hdl_list_hdr; -NCS_PATRICIA_TREE mdtm_reassembly_list; uint32_t mdtm_global_frag_num; diff --git a/src/mds/mds_main.c b/src/mds/mds_main.c index 0bcb2f996..9f0a9aa45 100644 --- a/src/mds/mds_main.c +++ b/src/mds/mds_main.c @@ -53,6 +53,53 @@ #define MDS_MDTM_CONNECT_PATH PKGLOCALSTATEDIR "/osaf_dtm_intra_server" #endif +/* Initialization of MDTM Module */ +uint32_t (*mds_mdtm_init)(NODE_ID node_id, uint32_t *mds_tipc_ref); +/* Destroying the MDTM Module*/ +uint32_t (*mds_mdtm_destroy)(void); +uint32_t (*mds_mdtm_send)(MDTM_SEND_REQ *req); +/* SVC Install */ +uint32_t (*mds_mdtm_svc_install)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, + NCSMDS_SCOPE_TYPE install_scope, + V_DEST_RL role, MDS_VDEST_ID vdest_id, + NCS_VDEST_TYPE vdest_policy, + MDS_SVC_PVT_SUB_PART_VER mds_svc_pvt_ver); +/* SVC Uninstall */ +uint32_t (*mds_mdtm_svc_uninstall)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, + NCSMDS_SCOPE_TYPE install_scope, + V_DEST_RL role, MDS_VDEST_ID vdest_id, + NCS_VDEST_TYPE vdest_policy, + MDS_SVC_PVT_SUB_PART_VER mds_svc_pvt_ver); +/* SVC Subscribe */ +uint32_t (*mds_mdtm_svc_subscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, + NCSMDS_SCOPE_TYPE subscribe_scope, + MDS_SVC_HDL local_svc_hdl, + MDS_SUBTN_REF_VAL *subtn_ref_val); +/* added svc_hdl */ +/* SVC Unsubscribe */ +uint32_t (*mds_mdtm_svc_unsubscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id, + NCSMDS_SCOPE_TYPE subscribe_scope, + MDS_SUBTN_REF_VAL subtn_ref_val); +/* VDEST Install */ +uint32_t (*mds_mdtm_vdest_install)(MDS_VDEST_ID vdest_id); +/* VDEST Uninstall */ +uint32_t (*mds_mdtm_vdest_uninstall)(MDS_VDEST_ID vdest_id); +/* VDEST Subscribe */ +uint32_t (*mds_mdtm_vdest_subscribe)(MDS_VDEST_ID vdest_id, + MDS_SUBTN_REF_VAL *subtn_ref_val); +/* VDEST Unsubscribe */ +uint32_t (*mds_mdtm_vdest_unsubscribe)(MDS_VDEST_ID vdest_id, + MDS_SUBTN_REF_VAL subtn_ref_val); +/* Tx Register (For incrementing the use count) */ +uint32_t (*mds_mdtm_tx_hdl_register)(MDS_DEST adest); +/* Tx Unregister (For decrementing the use count) */ +uint32_t (*mds_mdtm_tx_hdl_unregister)(MDS_DEST adest); +/* Node subscription */ +uint32_t (*mds_mdtm_node_subscribe)(MDS_SVC_HDL svc_hdl, + MDS_SUBTN_REF_VAL *subtn_ref_val); +/* Node unsubscription */ +uint32_t (*mds_mdtm_node_unsubscribe)(MDS_SUBTN_REF_VAL subtn_ref_val); + extern uint32_t mds_socket_domain; void mds_init_transport(void); bool tipc_mode_enabled = false; diff --git a/src/msg/msgnd/mqnd_db.h b/src/msg/msgnd/mqnd_db.h index b78024e22..fee43e58a 100644 --- a/src/msg/msgnd/mqnd_db.h +++ b/src/msg/msgnd/mqnd_db.h @@ -33,7 +33,7 @@ #include <saClm.h> #include <saImmOi.h> /* Decleration for global variable */ -uint32_t gl_mqnd_cb_hdl; +extern uint32_t gl_mqnd_cb_hdl; /* Macros for reading global database */ #define m_MQND_STORE_HDL(hdl) (gl_mqnd_cb_hdl = (hdl)) diff --git a/tools/devel/fenced/node_state_hdlr_pl.cc b/tools/devel/fenced/node_state_hdlr_pl.cc index 6bf032e5a..db76d649a 100644 --- a/tools/devel/fenced/node_state_hdlr_pl.cc +++ b/tools/devel/fenced/node_state_hdlr_pl.cc @@ -26,6 +26,7 @@ #include <cstring> #include <thread> #include <utility> +#include <cstdlib> NodeStateHdlrPl::NodeStateHdlrPl() { syslog(LOG_INFO, "NodeStateHdlrPl instantiated"); -- 2.25.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel