--- src/msg/Makefile.am | 10 +- src/msg/agent/{mqa_api.c => mqa_api.cc} | 231 ++++++++++++++-------------- src/msg/agent/{mqa_clbk.c => mqa_clbk.cc} | 38 +++-- src/msg/agent/mqa_def.h | 13 +- src/msg/agent/{mqa_init.c => mqa_init.cc} | 20 +++ src/msg/agent/{mqa_mds.c => mqa_mds.cc} | 73 +++++---- src/msg/agent/mqa_mem.h | 14 +- src/msg/agent/{mqa_queue.c => mqa_queue.cc} | 29 ++-- src/msg/common/mqsv_asapi.c | 13 +- src/msg/common/mqsv_asapi.h | 12 +- src/msg/common/mqsv_common.h | 8 + src/msg/common/mqsv_edu.h | 8 + src/msg/common/mqsv_mem.h | 6 +- 13 files changed, 275 insertions(+), 200 deletions(-) rename src/msg/agent/{mqa_api.c => mqa_api.cc} (97%) rename src/msg/agent/{mqa_clbk.c => mqa_clbk.cc} (98%) rename src/msg/agent/{mqa_init.c => mqa_init.cc} (99%) rename src/msg/agent/{mqa_mds.c => mqa_mds.cc} (96%) rename src/msg/agent/{mqa_queue.c => mqa_queue.cc} (95%)
diff --git a/src/msg/Makefile.am b/src/msg/Makefile.am index c3080727b..0f8a7058a 100644 --- a/src/msg/Makefile.am +++ b/src/msg/Makefile.am @@ -42,11 +42,11 @@ nodist_EXTRA_lib_libmsg_common_la_SOURCES = dummy.cc lib_LTLIBRARIES += lib/libSaMsg.la lib_libSaMsg_la_SOURCES = \ - src/msg/agent/mqa_api.c \ - src/msg/agent/mqa_mds.c \ - src/msg/agent/mqa_clbk.c \ - src/msg/agent/mqa_queue.c \ - src/msg/agent/mqa_init.c + src/msg/agent/mqa_api.cc \ + src/msg/agent/mqa_clbk.cc \ + src/msg/agent/mqa_init.cc \ + src/msg/agent/mqa_mds.cc \ + src/msg/agent/mqa_queue.cc nodist_EXTRA_lib_libSaMsg_la_SOURCES = dummy.cc diff --git a/src/msg/agent/mqa_api.c b/src/msg/agent/mqa_api.cc similarity index 97% rename from src/msg/agent/mqa_api.c rename to src/msg/agent/mqa_api.cc index 0070aaf0a..739d7a69f 100644 --- a/src/msg/agent/mqa_api.c +++ b/src/msg/agent/mqa_api.cc @@ -47,11 +47,11 @@ static SaAisErrorT mqa_send_to_destination_async(MQA_CB *mqa_cb, MDS_DEST *mqnd_mds_dest, MQSV_DSEND_EVT *qsend_evt, uint32_t length); -static uint32_t mqa_send_to_group(MQA_CB *mqa_cb, ASAPi_OPR_INFO *asapi_or, - MQSV_DSEND_EVT *qsend_evt, - SaMsgAckFlagsT ackFlags, - MQA_SEND_MESSAGE_PARAM *param, - uint32_t length); +static SaAisErrorT mqa_send_to_group(MQA_CB *mqa_cb, ASAPi_OPR_INFO *asapi_or, + MQSV_DSEND_EVT *qsend_evt, + SaMsgAckFlagsT ackFlags, + MQA_SEND_MESSAGE_PARAM *param, + uint32_t length); static SaAisErrorT mqa_send_message(SaMsgHandleT msgHandle, const SaNameT *destination, const SaMsgMessageT *message, SaMsgAckFlagsT ackFlags, @@ -109,6 +109,7 @@ SaAisErrorT mqa_queue_name_to_destination(const SaNameT *queueName, { ASAPi_OPR_INFO asapi_or; SaAisErrorT rc; + TRACE_ENTER(); memset(&asapi_or, 0, sizeof(asapi_or)); @@ -160,12 +161,12 @@ SaAisErrorT saMsgInitialize(SaMsgHandleT *msgHandle, TRACE_ENTER(); /* Initialize the environment */ - if ((rc = ncs_agents_startup()) != NCSCC_RC_SUCCESS) { + if (ncs_agents_startup() != NCSCC_RC_SUCCESS) { TRACE_4("ERR_LIBRARY: NCS Agents Startup Failed:%d", rc); return SA_AIS_ERR_LIBRARY; } - if ((rc = ncs_mqa_startup()) != NCSCC_RC_SUCCESS) { + if (ncs_mqa_startup() != NCSCC_RC_SUCCESS) { TRACE_4("ERR_LIBRARY: NCS Agents Startup Failed:%d", rc); ncs_agents_shutdown(); return SA_AIS_ERR_LIBRARY; @@ -202,8 +203,7 @@ SaAisErrorT saMsgInitialize(SaMsgHandleT *msgHandle, goto final1; } - if ((rc = m_NCS_LOCK(&mqa_cb->cb_lock, NCS_LOCK_WRITE)) != - NCSCC_RC_SUCCESS) { + if (m_NCS_LOCK(&mqa_cb->cb_lock, NCS_LOCK_WRITE) != NCSCC_RC_SUCCESS) { TRACE_4("ERR_LIBRARY: Lock failed for control block write"); rc = SA_AIS_ERR_LIBRARY; goto final2; @@ -915,11 +915,11 @@ saMsgQueueOpen(SaMsgHandleT msgHandle, const SaNameT *queueName, int policy = SCHED_OTHER; /*root defaults */ int prio_val = sched_get_priority_min(policy); - rc = m_NCS_TASK_CREATE( - (NCS_OS_CB)mqa_queue_reader, (NCSCONTEXT)openRsp, - (char *)"OSAF_MQA", prio_val, policy, - NCS_STACKSIZE_HUGE, &thread_handle); - if (rc != NCSCC_RC_SUCCESS) { + if (m_NCS_TASK_CREATE( + (NCS_OS_CB)mqa_queue_reader, + (NCSCONTEXT)openRsp, (char *)"OSAF_MQA", + prio_val, policy, NCS_STACKSIZE_HUGE, + &thread_handle) != NCSCC_RC_SUCCESS) { TRACE_4( "ERR_RESOURCES: Queue Reader Thread Task Create Failed"); rc = SA_AIS_ERR_NO_RESOURCES; @@ -928,8 +928,8 @@ saMsgQueueOpen(SaMsgHandleT msgHandle, const SaNameT *queueName, goto done; } - rc = m_NCS_TASK_START(thread_handle); - if (rc != NCSCC_RC_SUCCESS) { + if (m_NCS_TASK_START(thread_handle) != + NCSCC_RC_SUCCESS) { m_NCS_TASK_DETACH(thread_handle); TRACE_4( "ERR_RESOURCES: Queue Reader Thread Task Start Failed"); @@ -1244,7 +1244,7 @@ SaAisErrorT saMsgQueueClose(SaMsgQueueHandleT queueHandle) if (queue_node->client_info->version.majorVersion == MQA_MAJOR_VERSION) { if ((!mqa_cb->clm_node_joined || - queue_node->client_info->isStale) && + queue_node->client_info->isStale) && (!queue_node->client_info->finalize)) { TRACE_2("ERR_UNAVAILABLE: node is not cluster member"); rc = SA_AIS_ERR_UNAVAILABLE; @@ -1556,7 +1556,7 @@ SaAisErrorT saMsgQueueRetentionTimeSet(SaMsgQueueHandleT queueHandle, if (queue_node->client_info->version.majorVersion == MQA_MAJOR_VERSION) { if (!mqa_cb->clm_node_joined || - queue_node->client_info->isStale) { + queue_node->client_info->isStale) { TRACE_2("ERR_UNAVAILABLE: node is not cluster member"); rc = SA_AIS_ERR_UNAVAILABLE; m_NCS_UNLOCK(&mqa_cb->cb_lock, NCS_LOCK_WRITE); @@ -1911,12 +1911,13 @@ SaAisErrorT mqa_send_to_destination_async(MQA_CB *mqa_cb, Notes : None ******************************************************************************/ -uint32_t mqa_send_to_group(MQA_CB *mqa_cb, ASAPi_OPR_INFO *asapi_or, - MQSV_DSEND_EVT *qsend_evt, SaMsgAckFlagsT ackFlags, - MQA_SEND_MESSAGE_PARAM *param, uint32_t length) +SaAisErrorT mqa_send_to_group(MQA_CB *mqa_cb, ASAPi_OPR_INFO *asapi_or, + MQSV_DSEND_EVT *qsend_evt, + SaMsgAckFlagsT ackFlags, + MQA_SEND_MESSAGE_PARAM *param, uint32_t length) { - uint32_t num_queues, status, to_dest_ver, o_msg_fmt_ver = 0; + uint32_t num_queues, to_dest_ver, o_msg_fmt_ver = 0; MDS_DEST destination_mqnd; uint8_t unicast = 0; SaAisErrorT rc = SA_AIS_ERR_NO_RESOURCES; @@ -2078,6 +2079,8 @@ uint32_t mqa_send_to_group(MQA_CB *mqa_cb, ASAPi_OPR_INFO *asapi_or, * message */ qsend_evt->msg_fmt_version = o_msg_fmt_ver; + SaAisErrorT status; + if (!param->async_flag) status = mqa_send_to_destination( mqa_cb, &destination_mqnd, qsend_evt, @@ -2086,7 +2089,7 @@ uint32_t mqa_send_to_group(MQA_CB *mqa_cb, ASAPi_OPR_INFO *asapi_or, status = mqa_send_to_destination_async( mqa_cb, &destination_mqnd, qsend_evt, length); - if (status != NCSCC_RC_SUCCESS) + if (status != SA_AIS_OK) TRACE_2("Message Send through MDS Failure %d", status); @@ -2691,7 +2694,7 @@ SaAisErrorT mqa_receive_message(SaMsgQueueHandleT queueHandle, if (queue_node->client_info->version.majorVersion == MQA_MAJOR_VERSION) { if (!mqa_cb->clm_node_joined || - queue_node->client_info->isStale) { + queue_node->client_info->isStale) { TRACE_2("ERR_UNAVAILABLE: MQD or MQND is down"); rc = SA_AIS_ERR_UNAVAILABLE; goto done; @@ -2743,10 +2746,7 @@ SaAisErrorT mqa_receive_message(SaMsgQueueHandleT queueHandle, /* Start timer = TimeOut value */ if ((timeout != 0) && (timeout != SA_TIME_MAX)) { - - m_NCS_TMR_CREATE(tmr_id, timeout, msgget_timer_expired, - (void *)&timer_arg); - + tmr_id = ncs_tmr_alloc(const_cast<char *>(__FILE__), __LINE__); if (tmr_id == NULL) { TRACE_4("ERR_RESOURCES: Tmr Create Failed"); rc = SA_AIS_ERR_NO_RESOURCES; @@ -2765,10 +2765,9 @@ SaAisErrorT mqa_receive_message(SaMsgQueueHandleT queueHandle, memset(timer_arg, 0, sizeof(MQP_CANCEL_REQ)); timer_arg->queueHandle = queueHandle; timer_arg->timerId = tmr_id; - - m_NCS_TMR_START(tmr_id, timeout, msgget_timer_expired, - (void *)&timer_arg); - + tmr_id = ncs_tmr_start(tmr_id, timeout, msgget_timer_expired, + &timer_arg, const_cast<char *>(__FILE__), + __LINE__); is_timer_present = true; } @@ -3261,6 +3260,7 @@ SaAisErrorT saMsgMessageGet(SaMsgQueueHandleT queueHandle, SaMsgSenderIdT *senderId, SaTimeT timeout) { SaAisErrorT rc = SA_AIS_OK; + TRACE_ENTER2(" SaMsgQueueHandle %llu ", queueHandle); if (m_NCS_SA_IS_VALID_TIME_DURATION(timeout) == false) { @@ -3342,7 +3342,7 @@ SaAisErrorT saMsgMessageCancel(SaMsgQueueHandleT queueHandle) if (queue_node->client_info->version.majorVersion == MQA_MAJOR_VERSION) { if (!mqa_cb->clm_node_joined || - queue_node->client_info->isStale) { + queue_node->client_info->isStale) { TRACE_2("ERR_UNAVAILABLE: node is not cluster member"); rc = SA_AIS_ERR_UNAVAILABLE; m_NCS_UNLOCK(&mqa_cb->cb_lock, NCS_LOCK_WRITE); @@ -3499,7 +3499,7 @@ SaAisErrorT saMsgMessageSendReceive(SaMsgHandleT msgHandle, { MQA_CB *mqa_cb; MQA_CLIENT_INFO *client_info; - SaAisErrorT rc = SA_AIS_OK, rc1 = SA_AIS_OK; + SaAisErrorT rc = SA_AIS_OK; ASAPi_OPR_INFO asapi_or; MQSV_DSEND_EVT *qreply_evt = NULL; MQSV_DSEND_EVT *qsend_evt = NULL; @@ -3867,12 +3867,10 @@ send_del_callback: .invocation = qreply_evt->info.replyAsyncMsg.invocation; - /* Send using async send */ - rc1 = mqa_mds_msg_async_send( - (mqa_cb->mqa_mds_hdl), &reply_mds_dest, - &msg_dlvr_ack, NCSMDS_SVC_ID_MQA); - - if (rc1 != NCSCC_RC_SUCCESS) { + if (mqa_mds_msg_async_send( + (mqa_cb->mqa_mds_hdl), &reply_mds_dest, + &msg_dlvr_ack, + NCSMDS_SVC_ID_MQA) != NCSCC_RC_SUCCESS) { TRACE_4( "ERR_RESOURCES: Message Send through MDS Failure %" PRIx64, mqa_cb->mqa_mds_dest); @@ -5613,9 +5611,11 @@ done: Notes : None ******************************************************************************/ -SaAisErrorT saMsgQueueCapacityThresholdsSet(SaMsgQueueHandleT queueHandle, - const SaMsgQueueThresholdsT *thresholds) +SaAisErrorT +saMsgQueueCapacityThresholdsSet(SaMsgQueueHandleT queueHandle, + const SaMsgQueueThresholdsT *thresholds) { + TRACE_ENTER2("SaMsgQueueHandle %llu ", queueHandle); SaAisErrorT rc = SA_AIS_OK; MQA_CB *mqa_cb; bool locked = false; @@ -5627,21 +5627,19 @@ SaAisErrorT saMsgQueueCapacityThresholdsSet(SaMsgQueueHandleT queueHandle, uint8_t mds_rc; int i; - TRACE_ENTER2("SaMsgQueueHandle %llu ", queueHandle); - /* retrieve MQA CB */ mqa_cb = (MQA_CB *)m_MQSV_MQA_RETRIEVE_MQA_CB; if (!mqa_cb) { TRACE_2("ERR_BAD_HANDLE: Control block retrieval " - "failed"); + "failed"); rc = SA_AIS_ERR_BAD_HANDLE; break; } if (m_NCS_LOCK(&mqa_cb->cb_lock, NCS_LOCK_WRITE) != - NCSCC_RC_SUCCESS) { + NCSCC_RC_SUCCESS) { TRACE_4("ERR_LIBRARY: Lock failed for control block " - "write"); + "write"); rc = SA_AIS_ERR_LIBRARY; break; } @@ -5650,23 +5648,23 @@ SaAisErrorT saMsgQueueCapacityThresholdsSet(SaMsgQueueHandleT queueHandle, /* Check if queueHandle is present in the tree */ if ((queue_node = mqa_queue_tree_find_and_add( - mqa_cb, queueHandle, false, NULL, 0)) == NULL) { + mqa_cb, queueHandle, false, NULL, 0)) == NULL) { TRACE_2("ERR_BAD_HANDLE: Queue Database Find Failed"); rc = SA_AIS_ERR_BAD_HANDLE; break; } if (queue_node->client_info->version.majorVersion < - MQA_MAJOR_VERSION) { + MQA_MAJOR_VERSION) { TRACE_2("ERR_VERSION: client not B.03.01"); rc = SA_AIS_ERR_VERSION; break; } if (queue_node->client_info->version.majorVersion == - MQA_MAJOR_VERSION) { + MQA_MAJOR_VERSION) { if (!mqa_cb->clm_node_joined || - queue_node->client_info->isStale) { + queue_node->client_info->isStale) { TRACE_2("ERR_UNAVAILABLE: node is not cluster " "member"); rc = SA_AIS_ERR_UNAVAILABLE; @@ -5681,12 +5679,11 @@ SaAisErrorT saMsgQueueCapacityThresholdsSet(SaMsgQueueHandleT queueHandle, } for (i = SA_MSG_MESSAGE_HIGHEST_PRIORITY; - i <= SA_MSG_MESSAGE_LOWEST_PRIORITY; - i++) { + i <= SA_MSG_MESSAGE_LOWEST_PRIORITY; i++) { if (thresholds->capacityAvailable[i] > - thresholds->capacityReached[i]) { + thresholds->capacityReached[i]) { TRACE_2("ERR_INVALID_PARAM: Available greater " - "than Reached"); + "than Reached"); rc = SA_AIS_ERR_INVALID_PARAM; break; } @@ -5706,41 +5703,39 @@ SaAisErrorT saMsgQueueCapacityThresholdsSet(SaMsgQueueHandleT queueHandle, memset(&cap_evt, 0, sizeof(MQSV_EVT)); cap_evt.type = MQSV_EVT_MQP_REQ; cap_evt.msg.mqp_req.type = MQP_EVT_CAP_SET_REQ; - cap_evt.msg.mqp_req.info.capacity.queueHandle = queueHandle;; + cap_evt.msg.mqp_req.info.capacity.queueHandle = queueHandle; cap_evt.msg.mqp_req.info.capacity.thresholds = *thresholds; cap_evt.msg.mqp_req.agent_mds_dest = mqa_cb->mqa_mds_dest; /* send the request to the MQND */ mds_rc = mqa_mds_msg_sync_send(mqa_cb->mqa_mds_hdl, - &mqa_cb->mqnd_mds_dest, - &cap_evt, - &out_evt, - MQSV_WAIT_TIME); + &mqa_cb->mqnd_mds_dest, &cap_evt, + &out_evt, MQSV_WAIT_TIME); switch (mds_rc) { - case NCSCC_RC_SUCCESS: - break; + case NCSCC_RC_SUCCESS: + break; - case NCSCC_RC_REQ_TIMOUT: - TRACE_2("ERR_TIMEOUT: Message Send through MDS " - "Timeout %" PRIx64, - mqa_cb->mqa_mds_dest); - rc = SA_AIS_ERR_TIMEOUT; - break; + case NCSCC_RC_REQ_TIMOUT: + TRACE_2("ERR_TIMEOUT: Message Send through MDS " + "Timeout %" PRIx64, + mqa_cb->mqa_mds_dest); + rc = SA_AIS_ERR_TIMEOUT; + break; - case NCSCC_RC_FAILURE: - TRACE_2("ERR_TRY_AGAIN: Message Send through " - "MDS Failure %" PRIx64, - mqa_cb->mqa_mds_dest); - rc = SA_AIS_ERR_TRY_AGAIN; - break; + case NCSCC_RC_FAILURE: + TRACE_2("ERR_TRY_AGAIN: Message Send through " + "MDS Failure %" PRIx64, + mqa_cb->mqa_mds_dest); + rc = SA_AIS_ERR_TRY_AGAIN; + break; - default: - TRACE_4("ERR_RESOURCES: Message Send through " - "MDS Failure %" PRIx64, - mqa_cb->mqa_mds_dest); - rc = SA_AIS_ERR_NO_RESOURCES; - break; + default: + TRACE_4("ERR_RESOURCES: Message Send through " + "MDS Failure %" PRIx64, + mqa_cb->mqa_mds_dest); + rc = SA_AIS_ERR_NO_RESOURCES; + break; } if (mds_rc != NCSCC_RC_SUCCESS) @@ -5751,7 +5746,7 @@ SaAisErrorT saMsgQueueCapacityThresholdsSet(SaMsgQueueHandleT queueHandle, m_MMGR_FREE_MQA_EVT(out_evt); } else { TRACE_4("ERR_RESOURCES: Response not received from " - "MQND"); + "MQND"); rc = SA_AIS_ERR_NO_RESOURCES; } } while (false); @@ -5785,8 +5780,9 @@ SaAisErrorT saMsgQueueCapacityThresholdsSet(SaMsgQueueHandleT queueHandle, Notes : None ******************************************************************************/ SaAisErrorT saMsgQueueCapacityThresholdsGet(SaMsgQueueHandleT queueHandle, - SaMsgQueueThresholdsT *thresholds) + SaMsgQueueThresholdsT *thresholds) { + TRACE_ENTER2("SaMsgQueueHandle %llu ", queueHandle); SaAisErrorT rc = SA_AIS_OK; MQA_CB *mqa_cb; bool locked = false; @@ -5797,21 +5793,19 @@ SaAisErrorT saMsgQueueCapacityThresholdsGet(SaMsgQueueHandleT queueHandle, MQA_QUEUE_INFO *queue_node; uint8_t mds_rc; - TRACE_ENTER2("SaMsgQueueHandle %llu ", queueHandle); - /* retrieve MQA CB */ mqa_cb = (MQA_CB *)m_MQSV_MQA_RETRIEVE_MQA_CB; if (!mqa_cb) { TRACE_2("ERR_BAD_HANDLE: Control block retrieval " - "failed"); + "failed"); rc = SA_AIS_ERR_BAD_HANDLE; break; } if (m_NCS_LOCK(&mqa_cb->cb_lock, NCS_LOCK_WRITE) != - NCSCC_RC_SUCCESS) { + NCSCC_RC_SUCCESS) { TRACE_4("ERR_LIBRARY: Lock failed for control block " - "write"); + "write"); rc = SA_AIS_ERR_LIBRARY; break; } @@ -5820,23 +5814,23 @@ SaAisErrorT saMsgQueueCapacityThresholdsGet(SaMsgQueueHandleT queueHandle, /* Check if queueHandle is present in the tree */ if ((queue_node = mqa_queue_tree_find_and_add( - mqa_cb, queueHandle, false, NULL, 0)) == NULL) { + mqa_cb, queueHandle, false, NULL, 0)) == NULL) { TRACE_2("ERR_BAD_HANDLE: Queue Database Find Failed"); rc = SA_AIS_ERR_BAD_HANDLE; break; } if (queue_node->client_info->version.majorVersion < - MQA_MAJOR_VERSION) { + MQA_MAJOR_VERSION) { TRACE_2("ERR_VERSION: client not B.03.01"); rc = SA_AIS_ERR_VERSION; break; } if (queue_node->client_info->version.majorVersion == - MQA_MAJOR_VERSION) { + MQA_MAJOR_VERSION) { if (!mqa_cb->clm_node_joined || - queue_node->client_info->isStale) { + queue_node->client_info->isStale) { TRACE_2("ERR_UNAVAILABLE: node is not cluster " "member"); rc = SA_AIS_ERR_UNAVAILABLE; @@ -5861,40 +5855,38 @@ SaAisErrorT saMsgQueueCapacityThresholdsGet(SaMsgQueueHandleT queueHandle, memset(&cap_evt, 0, sizeof(MQSV_EVT)); cap_evt.type = MQSV_EVT_MQP_REQ; cap_evt.msg.mqp_req.type = MQP_EVT_CAP_GET_REQ; - cap_evt.msg.mqp_req.info.capacity.queueHandle = queueHandle;; + cap_evt.msg.mqp_req.info.capacity.queueHandle = queueHandle; cap_evt.msg.mqp_req.agent_mds_dest = mqa_cb->mqa_mds_dest; /* send the request to the MQND */ mds_rc = mqa_mds_msg_sync_send(mqa_cb->mqa_mds_hdl, - &mqa_cb->mqnd_mds_dest, - &cap_evt, - &out_evt, - MQSV_WAIT_TIME); + &mqa_cb->mqnd_mds_dest, &cap_evt, + &out_evt, MQSV_WAIT_TIME); switch (mds_rc) { - case NCSCC_RC_SUCCESS: - break; + case NCSCC_RC_SUCCESS: + break; - case NCSCC_RC_REQ_TIMOUT: - TRACE_2("ERR_TIMEOUT: Message Send through MDS " - "Timeout %" PRIx64, - mqa_cb->mqa_mds_dest); - rc = SA_AIS_ERR_TIMEOUT; - break; + case NCSCC_RC_REQ_TIMOUT: + TRACE_2("ERR_TIMEOUT: Message Send through MDS " + "Timeout %" PRIx64, + mqa_cb->mqa_mds_dest); + rc = SA_AIS_ERR_TIMEOUT; + break; - case NCSCC_RC_FAILURE: - TRACE_2("ERR_TRY_AGAIN: Message Send through " - "MDS Failure %" PRIx64, - mqa_cb->mqa_mds_dest); - rc = SA_AIS_ERR_TRY_AGAIN; - break; + case NCSCC_RC_FAILURE: + TRACE_2("ERR_TRY_AGAIN: Message Send through " + "MDS Failure %" PRIx64, + mqa_cb->mqa_mds_dest); + rc = SA_AIS_ERR_TRY_AGAIN; + break; - default: - TRACE_4("ERR_RESOURCES: Message Send through " - "MDS Failure %" PRIx64, - mqa_cb->mqa_mds_dest); - rc = SA_AIS_ERR_NO_RESOURCES; - break; + default: + TRACE_4("ERR_RESOURCES: Message Send through " + "MDS Failure %" PRIx64, + mqa_cb->mqa_mds_dest); + rc = SA_AIS_ERR_NO_RESOURCES; + break; } if (mds_rc != NCSCC_RC_SUCCESS) @@ -5904,14 +5896,14 @@ SaAisErrorT saMsgQueueCapacityThresholdsGet(SaMsgQueueHandleT queueHandle, rc = out_evt->msg.mqp_rsp.error; if (rc == SA_AIS_OK) { - *thresholds = out_evt->msg.mqp_rsp.info. - capacity.thresholds; + *thresholds = out_evt->msg.mqp_rsp.info.capacity + .thresholds; } m_MMGR_FREE_MQA_EVT(out_evt); } else { TRACE_4("ERR_RESOURCES: Response not received from " - "MQND"); + "MQND"); rc = SA_AIS_ERR_NO_RESOURCES; } } while (false); @@ -5950,6 +5942,7 @@ static void msgget_timer_expired(void *arg) NCS_OS_MQ_MSG mq_msg; uint32_t rc; MQP_CANCEL_REQ **cancel_req = (MQP_CANCEL_REQ **)arg; + TRACE_ENTER(); mqsv_message = (MQSV_MESSAGE *)mq_msg.data; diff --git a/src/msg/agent/mqa_clbk.c b/src/msg/agent/mqa_clbk.cc similarity index 98% rename from src/msg/agent/mqa_clbk.c rename to src/msg/agent/mqa_clbk.cc index baf25b459..f35219993 100644 --- a/src/msg/agent/mqa_clbk.c +++ b/src/msg/agent/mqa_clbk.cc @@ -184,7 +184,6 @@ static void mqa_process_callback(MQA_CB *cb, SaMsgHandleT msgHandle, MQSV_MSGQ_OPEN_PARAM *param = &callback->params.qOpen; MQA_QUEUE_INFO *queue_info; NCSCONTEXT thread_handle; - SaAisErrorT rc; /* We need to start the reader thread only if the Queue has been * successfully opened/created by the MQND */ @@ -229,20 +228,20 @@ static void mqa_process_callback(MQA_CB *cb, SaMsgHandleT msgHandle, int policy = SCHED_OTHER; /*root defaults */ int prio_val = sched_get_priority_min(policy); - rc = m_NCS_TASK_CREATE( - (NCS_OS_CB)mqa_queue_reader, - (NCSCONTEXT)openRsp, - (char *)"OSAF_MQA_CLBK", prio_val, policy, - NCS_STACKSIZE_HUGE, &thread_handle); - if (rc != NCSCC_RC_SUCCESS) { + if (m_NCS_TASK_CREATE( + (NCS_OS_CB)mqa_queue_reader, + (NCSCONTEXT)openRsp, + const_cast<char *>("OSAF_MQA_CLBK"), + prio_val, policy, NCS_STACKSIZE_HUGE, + &thread_handle) != NCSCC_RC_SUCCESS) { TRACE_4( "ERR_RESOURCES: Queue Reader Thread Task Create Failed"); param->error = SA_AIS_ERR_NO_RESOURCES; mqa_queue_tree_delete_node( cb, param->queueHandle); } else { - rc = m_NCS_TASK_START(thread_handle); - if (rc != NCSCC_RC_SUCCESS) { + if (m_NCS_TASK_START(thread_handle) != + NCSCC_RC_SUCCESS) { TRACE_4( "ERR_RESOURCES: Queue Reader Thread Task Start Failed"); m_NCS_TASK_DETACH( @@ -338,15 +337,16 @@ static void mqa_process_callback(MQA_CB *cb, SaMsgHandleT msgHandle, Arguments : cb - ptr to the MQA control block client_info - ptr to the client info - Return Values : NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE + Return Values : SaAisErrorT Notes : None ******************************************************************************/ -uint32_t mqa_hdl_callbk_dispatch_one(MQA_CB *cb, SaMsgHandleT msgHandle) +SaAisErrorT mqa_hdl_callbk_dispatch_one(MQA_CB *cb, SaMsgHandleT msgHandle) { MQP_ASYNC_RSP_MSG *callback; MQA_CLIENT_INFO *client_info; SaAisErrorT rc = SA_AIS_OK; + TRACE_ENTER(); /* get the client_info */ @@ -383,14 +383,15 @@ uint32_t mqa_hdl_callbk_dispatch_one(MQA_CB *cb, SaMsgHandleT msgHandle) Arguments : cb - ptr to the MQA control block client_info - ptr to the client info - Return Values : NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE + Return Values : SaAisErrorT Notes : None ******************************************************************************/ -uint32_t mqa_hdl_callbk_dispatch_all(MQA_CB *cb, SaMsgHandleT msgHandle) +SaAisErrorT mqa_hdl_callbk_dispatch_all(MQA_CB *cb, SaMsgHandleT msgHandle) { MQP_ASYNC_RSP_MSG *callback; MQA_CLIENT_INFO *client_info; + TRACE_ENTER(); /* get the client_info */ @@ -440,15 +441,17 @@ uint32_t mqa_hdl_callbk_dispatch_all(MQA_CB *cb, SaMsgHandleT msgHandle) Arguments : cb - ptr to the MQA control block client_info - ptr to the client info - Return Values : NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE + Return Values : SaAisErrorT Notes : None ******************************************************************************/ -uint32_t mqa_hdl_callbk_dispatch_block(MQA_CB *mqa_cb, SaMsgHandleT msgHandle) +SaAisErrorT mqa_hdl_callbk_dispatch_block(MQA_CB *mqa_cb, + SaMsgHandleT msgHandle) { MQP_ASYNC_RSP_MSG *callback = 0; SYSF_MBX *callbk_mbx; MQA_CLIENT_INFO *client_info; + TRACE("mqa_hdl_callbk_dispatch_block is called"); /* get the client_info */ @@ -527,6 +530,7 @@ static uint32_t mqa_notify_clients(ASAPi_MSG_INFO *asapi_msg) SaMsgHandleT temp_hdl; MQA_CB *mqa_cb; uint32_t len; + TRACE_ENTER(); /* If this track notification is not for a Queue Group then return */ @@ -619,6 +623,7 @@ uint32_t mqa_notify_changes(MQA_CLIENT_INFO *client_info, uint32_t track_index; uint32_t i; uint32_t j = 0; + TRACE_ENTER(); if ((asapi_msg->info.tntfy.opr == ASAPi_QUEUE_MQND_DOWN) || @@ -861,6 +866,7 @@ uint32_t mqa_notify_changes_only(MQA_CLIENT_INFO *client_info, SaMsgQueueGroupNotificationT *callback_buffer = NULL; MQA_CB *mqa_cb; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); if ((asapi_msg->info.tntfy.opr == ASAPi_QUEUE_MQND_DOWN) || @@ -1115,6 +1121,7 @@ uint32_t mqsv_mqa_callback_queue_write(MQA_CB *mqa_cb, SaMsgHandleT handle, { MQA_CLIENT_INFO *client_info = NULL; uint32_t rc = NCSCC_RC_FAILURE; + TRACE_ENTER(); /* Search for the node from the client tree */ @@ -1192,6 +1199,7 @@ void mqa_queue_reader(NCSCONTEXT arg) MQA_CB *mqa_cb; MQP_ASYNC_RSP_MSG *mqa_callbk_info = NULL; uint32_t existing_msg_count; + TRACE_ENTER(); /* retrieve MQA CB */ diff --git a/src/msg/agent/mqa_def.h b/src/msg/agent/mqa_def.h index 5472c3e30..659cbf9b5 100644 --- a/src/msg/agent/mqa_def.h +++ b/src/msg/agent/mqa_def.h @@ -30,6 +30,8 @@ #ifndef MSG_AGENT_MQA_DEF_H_ #define MSG_AGENT_MQA_DEF_H_ +#include <saAis.h> + /* All the defines go here. */ #define MQA_RELEASE_CODE 'B' #define MQA_MAJOR_VERSION 3 @@ -46,7 +48,7 @@ #define MQSV_SENDERID_CLEANUP_INTERVAL 100 /* timeout in s */ #define MQA_TRY_AGAIN_WAIT m_NCS_TASK_SLEEP(200) /*Time in milli seconds */ #define m_MQSV_MQA_RETRIEVE_MQA_CB \ - ncshm_take_hdl(NCS_SERVICE_ID_MQA, gl_mqa_hdl) + static_cast<MQA_CB *>(ncshm_take_hdl(NCS_SERVICE_ID_MQA, gl_mqa_hdl)) #define m_MQSV_MQA_GIVEUP_MQA_CB ncshm_give_hdl(gl_mqa_hdl) /* function prototypes for client handling*/ @@ -88,9 +90,12 @@ uint32_t mqsv_mqa_callback_queue_write(struct mqa_cb *mqa_cb, MQP_ASYNC_RSP_MSG *clbk_info); /* callback prototypes */ -uint32_t mqa_hdl_callbk_dispatch_one(struct mqa_cb *cb, SaMsgHandleT msgHandle); -uint32_t mqa_hdl_callbk_dispatch_all(struct mqa_cb *cb, SaMsgHandleT msgHandle); -uint32_t mqa_hdl_callbk_dispatch_block(MQA_CB *mqa_cb, SaMsgHandleT msgHandle); +SaAisErrorT mqa_hdl_callbk_dispatch_one(struct mqa_cb *cb, + SaMsgHandleT msgHandle); +SaAisErrorT mqa_hdl_callbk_dispatch_all(struct mqa_cb *cb, + SaMsgHandleT msgHandle); +SaAisErrorT mqa_hdl_callbk_dispatch_block(MQA_CB *mqa_cb, + SaMsgHandleT msgHandle); uint32_t mqa_asapi_msghandler(ASAPi_MSG_INFO *asapi_msg); uint32_t mqa_mds_msg_sync_send(uint32_t mqa_mds_hdl, MDS_DEST *destination, diff --git a/src/msg/agent/mqa_init.c b/src/msg/agent/mqa_init.cc similarity index 99% rename from src/msg/agent/mqa_init.c rename to src/msg/agent/mqa_init.cc index d799e43e8..ee1b69375 100644 --- a/src/msg/agent/mqa_init.c +++ b/src/msg/agent/mqa_init.cc @@ -69,6 +69,7 @@ static uint32_t mqa_queue_tree_init(MQA_CB *cb); uint32_t mqa_lib_req(NCS_LIB_REQ_INFO *req_info) { uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); switch (req_info->i_op) { @@ -187,6 +188,7 @@ static uint32_t mqa_create(NCS_LIB_CREATE *create_info) MQA_CB *cb = &mqa_cb; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* validate create info */ @@ -313,6 +315,7 @@ error1: static uint32_t mqa_destroy(NCS_LIB_DESTROY *destroy_info) { MQA_CB *cb = 0; + TRACE_ENTER(); /* validate the CB */ @@ -373,6 +376,7 @@ static uint32_t mqa_asapi_register(MQA_CB *cb) { ASAPi_OPR_INFO asapi_or; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* Register with ASAPi library */ @@ -408,6 +412,7 @@ static void mqa_asapi_unregister(MQA_CB *cb) { ASAPi_OPR_INFO asapi_or; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* Register with ASAPi library */ @@ -436,6 +441,7 @@ static void mqa_asapi_unregister(MQA_CB *cb) static uint32_t mqa_client_tree_init(MQA_CB *cb) { NCS_PATRICIA_PARAMS param; + TRACE_ENTER(); memset(¶m, 0, sizeof(NCS_PATRICIA_PARAMS)); @@ -464,6 +470,7 @@ static uint32_t mqa_client_tree_init(MQA_CB *cb) static void mqa_client_tree_destroy(MQA_CB *mqa_cb) { uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* take the cb lock */ @@ -501,6 +508,7 @@ static void mqa_client_tree_cleanup(MQA_CB *mqa_cb) MQA_CLIENT_INFO *client_info; SaMsgHandleT *temp_ptr = 0; SaMsgHandleT temp_hdl = 0; + TRACE_ENTER(); /* scan the entire handle db & delete each record */ @@ -574,6 +582,7 @@ uint32_t mqa_client_tree_delete_node(MQA_CB *mqa_cb, SaNameT temp_name; uint8_t *value = NULL; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* scan the entire group track db & delete each record */ @@ -634,6 +643,7 @@ MQA_CLIENT_INFO *mqa_client_tree_find_and_add(MQA_CB *mqa_cb, MQA_CLIENT_INFO *client_info = NULL; NCS_PATRICIA_PARAMS param; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); client_info = (MQA_CLIENT_INFO *)ncs_patricia_tree_get( @@ -697,6 +707,7 @@ MQA_CLIENT_INFO *mqa_client_tree_find_and_add(MQA_CB *mqa_cb, MQA_CLIENT_INFO *mqa_client_tree_find_next(MQA_CB *mqa_cb, SaMsgHandleT hdl_id) { MQA_CLIENT_INFO *client_info = NULL; + TRACE_ENTER(); client_info = (MQA_CLIENT_INFO *)ncs_patricia_tree_getnext( @@ -728,6 +739,7 @@ MQA_TRACK_INFO *mqa_track_tree_find_and_add(MQA_CLIENT_INFO *client_info, { MQA_TRACK_INFO *track_info = NULL; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); track_info = (MQA_TRACK_INFO *)ncs_patricia_tree_get( @@ -782,6 +794,7 @@ bool mqa_track_tree_find_and_del(MQA_CLIENT_INFO *client_info, SaNameT *group) { MQA_TRACK_INFO *track_info = NULL; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); track_info = (MQA_TRACK_INFO *)ncs_patricia_tree_get( @@ -824,9 +837,11 @@ bool mqa_track_tree_find_and_del(MQA_CLIENT_INFO *client_info, SaNameT *group) static uint32_t mqa_queue_tree_init(MQA_CB *cb) { NCS_PATRICIA_PARAMS param; + TRACE_ENTER(); uint32_t rc = NCSCC_RC_SUCCESS; + memset(¶m, 0, sizeof(NCS_PATRICIA_PARAMS)); param.key_size = sizeof(SaMsgQueueHandleT); if ((rc = ncs_patricia_tree_init(&cb->mqa_queue_tree, ¶m)) != @@ -852,6 +867,7 @@ static uint32_t mqa_queue_tree_init(MQA_CB *cb) static void mqa_queue_tree_destroy(MQA_CB *mqa_cb) { uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* take the cb lock */ @@ -891,6 +907,7 @@ static void mqa_queue_tree_cleanup(MQA_CB *mqa_cb) SaMsgQueueHandleT *temp_ptr = NULL; SaMsgQueueHandleT temp_hdl; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* scan the entire handle db & delete each record */ @@ -939,6 +956,7 @@ MQA_QUEUE_INFO *mqa_queue_tree_find_and_add(MQA_CB *mqa_cb, { MQA_QUEUE_INFO *queue_info = NULL; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* read lock taken by the caller. */ @@ -993,6 +1011,7 @@ uint32_t mqa_queue_tree_delete_node(MQA_CB *mqa_cb, SaMsgQueueHandleT hdl_id) MQA_QUEUE_INFO *queue_info = NULL; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); queue_info = (MQA_QUEUE_INFO *)ncs_patricia_tree_get( @@ -1082,6 +1101,7 @@ unsigned int ncs_mqa_startup(void) unsigned int ncs_mqa_shutdown(void) { uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); osaf_mutex_lock_ordie(&s_agent_startup_mutex); diff --git a/src/msg/agent/mqa_mds.c b/src/msg/agent/mqa_mds.cc similarity index 96% rename from src/msg/agent/mqa_mds.c rename to src/msg/agent/mqa_mds.cc index 569d5e5f8..106dc9005 100644 --- a/src/msg/agent/mqa_mds.c +++ b/src/msg/agent/mqa_mds.cc @@ -96,6 +96,7 @@ uint32_t mqa_mds_register(MQA_CB *cb) NCSMDS_INFO svc_info; MDS_SVC_ID subs_id[2] = {NCSMDS_SVC_ID_MQND, NCSMDS_SVC_ID_MQD}; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); /* STEP1: Get the MDS Handle */ @@ -276,6 +277,7 @@ static uint32_t mqa_mds_cpy(MQA_CB *cb, MDS_CALLBACK_COPY_INFO *cpy) { MQSV_EVT *pEvt = 0; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); pEvt = m_MMGR_ALLOC_MQSV_EVT(NCS_SERVICE_ID_MQA); @@ -313,8 +315,10 @@ static uint32_t mqa_mds_cpy(MQA_CB *cb, MDS_CALLBACK_COPY_INFO *cpy) static uint32_t mqa_mds_enc(MQA_CB *cb, MDS_CALLBACK_ENC_INFO *enc_info) { MQSV_EVT *msg_ptr; - EDU_ERR ederror = 0; + + EDU_ERR ederror{}; uint32_t rc = NCSCC_RC_SUCCESS; + TRACE_ENTER(); msg_ptr = (MQSV_EVT *)enc_info->i_msg; @@ -372,9 +376,11 @@ static uint32_t mqa_mds_enc(MQA_CB *cb, MDS_CALLBACK_ENC_INFO *enc_info) static uint32_t mqa_mds_dec(MQA_CB *cb, MDS_CALLBACK_DEC_INFO *dec_info) { MQSV_EVT *msg_ptr; - EDU_ERR ederror = 0; + + EDU_ERR ederror{}; uint32_t rc = NCSCC_RC_SUCCESS; bool is_valid_msg_fmt = false; + TRACE_ENTER(); if (dec_info->i_fr_svc_id == NCSMDS_SVC_ID_MQND) { @@ -505,16 +511,17 @@ static uint32_t mqa_mds_rcv(MQA_CB *cb, MDS_CALLBACK_RECEIVE_INFO *rcv_info) if (!cb->clm_node_joined) { /* tell all clients they are stale now */ - MQA_CLIENT_INFO *client_info; - SaMsgHandleT msgHandle = 0; - for (client_info = - mqa_client_tree_find_next(cb, msgHandle); - client_info; - client_info = mqa_client_tree_find_next( - cb, client_info->msgHandle)) { - client_info->isStale = true; - } - } + MQA_CLIENT_INFO *client_info; + SaMsgHandleT msgHandle = 0; + + for (client_info = + mqa_client_tree_find_next(cb, msgHandle); + client_info; + client_info = mqa_client_tree_find_next( + cb, client_info->msgHandle)) { + client_info->isStale = true; + } + } return rc; } @@ -545,6 +552,7 @@ static uint32_t mqa_mds_svc_evt(MQA_CB *cb, MDS_CALLBACK_SVC_EVENT_INFO *svc_evt) { uint32_t to_dest_slotid, o_msg_fmt_ver; + TRACE_ENTER(); /* TBD: The MQND and MQD restarts are to be implemented post April @@ -674,6 +682,7 @@ uint32_t mqa_mds_msg_sync_send(uint32_t mqa_mds_hdl, MDS_DEST *destination, NCSMDS_INFO mds_info; uint32_t rc; MQA_CB *mqa_cb; + TRACE_ENTER(); if (!i_evt) { @@ -723,7 +732,8 @@ uint32_t mqa_mds_msg_sync_send(uint32_t mqa_mds_hdl, MDS_DEST *destination, m_NCS_LOCK(&mqa_cb->cb_lock, NCS_LOCK_WRITE); if (rc == NCSCC_RC_SUCCESS) - *o_evt = mds_info.info.svc_send.info.sndrsp.o_rsp; + *o_evt = static_cast<MQSV_EVT *>( + mds_info.info.svc_send.info.sndrsp.o_rsp); else TRACE_2("FAILURE: Message Send through MDS Failure"); @@ -759,6 +769,7 @@ uint32_t mqa_mds_msg_sync_send_direct(uint32_t mqa_mds_hdl, MQA_CB *mqa_cb; MQSV_DSEND_EVT *pEvt = NULL; bool endianness = machineEndianness(), is_valid_msg_fmt = false; + TRACE_ENTER(); if (!i_evt) { @@ -792,7 +803,8 @@ uint32_t mqa_mds_msg_sync_send_direct(uint32_t mqa_mds_hdl, mds_info.i_op = MDS_DIRECT_SEND; /* fill the send structure */ - mds_info.info.svc_direct_send.i_direct_buff = (NCSCONTEXT)i_evt; + mds_info.info.svc_direct_send.i_direct_buff = + reinterpret_cast<MDS_DIRECT_BUFF>(i_evt); mds_info.info.svc_direct_send.i_direct_buff_len = length; mds_info.info.svc_direct_send.i_priority = MDS_SEND_PRIORITY_MEDIUM; @@ -830,14 +842,15 @@ uint32_t mqa_mds_msg_sync_send_direct(uint32_t mqa_mds_hdl, if (pEvt->endianness != endianness) { - pEvt->type.rsp_type = - m_MQSV_REVERSE_ENDIAN_L(&pEvt->type, endianness); + pEvt->type.rsp_type = static_cast<MQP_RSP_TYPE>( + m_MQSV_REVERSE_ENDIAN_L(&pEvt->type, endianness)); if (pEvt->type.rsp_type == MQP_EVT_SEND_MSG_RSP) { /* saMsgMessageSend response from MQND */ pEvt->info.sendMsgRsp.error = - m_MQSV_REVERSE_ENDIAN_L( - &pEvt->info.sendMsgRsp.error, - endianness); + static_cast<SaAisErrorT>( + m_MQSV_REVERSE_ENDIAN_L( + &pEvt->info.sendMsgRsp.error, + endianness)); pEvt->info.sendMsgRsp.msgHandle = m_MQSV_REVERSE_ENDIAN_LL( &pEvt->info.sendMsgRsp.msgHandle, @@ -885,11 +898,11 @@ uint32_t mqa_mds_msg_sync_send_direct(uint32_t mqa_mds_hdl, endianness); pEvt->info.replyMsg.messageInfo - .sendReceive = + .sendReceive = static_cast<SaBoolT>( m_MQSV_REVERSE_ENDIAN_L( &pEvt->info.replyMsg.messageInfo .sendReceive, - endianness); + endianness)); pEvt->info.replyMsg.messageInfo.sender .senderId = @@ -952,11 +965,12 @@ uint32_t mqa_mds_msg_sync_send_direct(uint32_t mqa_mds_hdl, endianness); pEvt->info.replyAsyncMsg.reply - .messageInfo.sendReceive = + .messageInfo + .sendReceive = static_cast<SaBoolT>( m_MQSV_REVERSE_ENDIAN_LL( &pEvt->info.replyAsyncMsg.reply .messageInfo.sendReceive, - endianness); + endianness)); pEvt->info.replyAsyncMsg.reply .messageInfo.sender.senderId = @@ -1014,6 +1028,7 @@ uint32_t mqa_mds_msg_sync_reply_direct(uint32_t mqa_mds_hdl, NCSMDS_INFO mds_info; uint32_t rc; MQA_CB *mqa_cb; + TRACE_ENTER(); if (!i_evt) { @@ -1047,7 +1062,8 @@ uint32_t mqa_mds_msg_sync_reply_direct(uint32_t mqa_mds_hdl, mds_info.i_op = MDS_DIRECT_SEND; /* fill the send structure */ - mds_info.info.svc_direct_send.i_direct_buff = (NCSCONTEXT)i_evt; + mds_info.info.svc_direct_send.i_direct_buff = + reinterpret_cast<MDS_DIRECT_BUFF>(i_evt); mds_info.info.svc_direct_send.i_direct_buff_len = length; mds_info.info.svc_direct_send.i_priority = MDS_SEND_PRIORITY_MEDIUM; @@ -1095,6 +1111,7 @@ uint32_t mqa_mds_msg_async_send(uint32_t mqa_mds_hdl, MDS_DEST *destination, NCSMDS_INFO mds_info; uint32_t rc; MQA_CB *mqa_cb; + TRACE_ENTER(); if (!i_evt) { @@ -1172,6 +1189,7 @@ uint32_t mqa_mds_msg_async_send_direct(uint32_t mqa_mds_hdl, NCSMDS_INFO mds_info; uint32_t rc; MQA_CB *mqa_cb; + TRACE_ENTER(); if (!i_evt) { @@ -1205,7 +1223,8 @@ uint32_t mqa_mds_msg_async_send_direct(uint32_t mqa_mds_hdl, mds_info.i_op = MDS_DIRECT_SEND; /* fill the send structure */ - mds_info.info.svc_direct_send.i_direct_buff = (NCSCONTEXT)i_evt; + mds_info.info.svc_direct_send.i_direct_buff = + reinterpret_cast<MDS_DIRECT_BUFF>(i_evt); mds_info.info.svc_direct_send.i_direct_buff_len = length; mds_info.info.svc_direct_send.i_priority = priority; @@ -1251,6 +1270,7 @@ uint32_t mqa_mds_msg_async_reply_direct(uint32_t mqa_mds_hdl, NCSMDS_INFO mds_info; uint32_t rc; MQA_CB *mqa_cb; + TRACE_ENTER(); if (!i_evt) { @@ -1284,7 +1304,8 @@ uint32_t mqa_mds_msg_async_reply_direct(uint32_t mqa_mds_hdl, mds_info.i_op = MDS_DIRECT_SEND; /* fill the send structure */ - mds_info.info.svc_direct_send.i_direct_buff = (NCSCONTEXT)i_evt; + mds_info.info.svc_direct_send.i_direct_buff = + reinterpret_cast<MDS_DIRECT_BUFF>(i_evt); mds_info.info.svc_direct_send.i_direct_buff_len = length; mds_info.info.svc_direct_send.i_priority = MDS_SEND_PRIORITY_MEDIUM; diff --git a/src/msg/agent/mqa_mem.h b/src/msg/agent/mqa_mem.h index 3e8deb2f3..3131e4359 100644 --- a/src/msg/agent/mqa_mem.h +++ b/src/msg/agent/mqa_mem.h @@ -148,18 +148,20 @@ typedef enum { m_NCS_MEM_FREE(p, NCS_MEM_REGION_PERSISTENT, NCS_SERVICE_ID_MQA, \ NCS_SERVICE_MQA_SUB_ID_MQA_MQSV_MESSAGE) -#define m_MMGR_ALLOC_MQA_CANCEL_REQ(size) \ - (void *)m_NCS_MEM_ALLOC(size, NCS_MEM_REGION_PERSISTENT, NCS_SERVICE_ID_MQA, \ - NCS_SERVICE_MQA_SUB_ID_MQA_MQP_CANCEL_REQ) +#define m_MMGR_ALLOC_MQA_CANCEL_REQ(size) \ + static_cast<MQP_CANCEL_REQ *>( \ + m_NCS_MEM_ALLOC(size, NCS_MEM_REGION_PERSISTENT, NCS_SERVICE_ID_MQA, \ + NCS_SERVICE_MQA_SUB_ID_MQA_MQP_CANCEL_REQ)) #define m_MMGR_FREE_MQA_CANCEL_REQ(p) \ if (p) \ m_NCS_MEM_FREE(p, NCS_MEM_REGION_PERSISTENT, NCS_SERVICE_ID_MQA, \ NCS_SERVICE_MQA_SUB_ID_MQA_MQP_CANCEL_REQ) -#define m_MMGR_ALLOC_MQA_OPEN_RSP(size) \ - (void *)m_NCS_MEM_ALLOC(size, NCS_MEM_REGION_PERSISTENT, NCS_SERVICE_ID_MQA, \ - NCS_SERVICE_MQA_SUB_ID_MQA_MQP_OPEN_RSP) +#define m_MMGR_ALLOC_MQA_OPEN_RSP(size) \ + static_cast<MQP_OPEN_RSP *>( \ + m_NCS_MEM_ALLOC(size, NCS_MEM_REGION_PERSISTENT, NCS_SERVICE_ID_MQA, \ + NCS_SERVICE_MQA_SUB_ID_MQA_MQP_OPEN_RSP)) #define m_MMGR_FREE_MQA_OPEN_RSP(p) \ if (p) \ diff --git a/src/msg/agent/mqa_queue.c b/src/msg/agent/mqa_queue.cc similarity index 95% rename from src/msg/agent/mqa_queue.c rename to src/msg/agent/mqa_queue.cc index 233bb4c5b..c1d4fbe64 100644 --- a/src/msg/agent/mqa_queue.c +++ b/src/msg/agent/mqa_queue.cc @@ -66,7 +66,7 @@ uint32_t mqa_timer_table_init(MQA_CB *mqa_cb) } tmr_init_info.callback_arg = NULL; - tmr_init_info.svc_id = NCSMDS_SVC_ID_MQA; + tmr_init_info.svc_id = static_cast<NCS_SERVICE_ID>(NCSMDS_SVC_ID_MQA); tmr_init_info.svc_sub_id = 0; tmr_init_info.tmr_callback = mqa_main_timeout_handler; tmr_init_info.tmr_ganularity = 1; /* in secs */ @@ -181,7 +181,6 @@ static void mqa_node_timeout_handler(void *arg) MQA_CB *mqa_cb; SaInvocationT key; - MQA_TMR_NODE *tmr_node; MQP_ASYNC_RSP_MSG *mqa_callback = (MQP_ASYNC_RSP_MSG *)arg; @@ -205,8 +204,9 @@ static void mqa_node_timeout_handler(void *arg) return; } - tmr_node = ncs_find_item(&(mqa_cb->mqa_timer_list), - NCS_INT64_TO_PTR_CAST(key), match_invocation); + MQA_TMR_NODE *tmr_node = static_cast<MQA_TMR_NODE *>( + ncs_find_item(&(mqa_cb->mqa_timer_list), NCS_INT64_TO_PTR_CAST(key), + match_invocation)); if (tmr_node == NULL) { m_MQSV_MQA_GIVEUP_MQA_CB; @@ -375,7 +375,6 @@ uint32_t mqa_stop_and_delete_timer(MQP_ASYNC_RSP_MSG *mqa_callbk_info) { MQA_CB *mqa_cb; SaInvocationT key; - MQA_TMR_NODE *tmr_node; uint32_t rc = NCSCC_RC_FAILURE; /* retrieve MQA CB */ @@ -397,8 +396,9 @@ uint32_t mqa_stop_and_delete_timer(MQP_ASYNC_RSP_MSG *mqa_callbk_info) return rc; } - tmr_node = ncs_find_item(&(mqa_cb->mqa_timer_list), - NCS_INT64_TO_PTR_CAST(key), match_invocation); + MQA_TMR_NODE *tmr_node = static_cast<MQA_TMR_NODE *>( + ncs_find_item(&(mqa_cb->mqa_timer_list), NCS_INT64_TO_PTR_CAST(key), + match_invocation)); if (tmr_node == NULL) { m_MQSV_MQA_GIVEUP_MQA_CB; return rc; @@ -452,7 +452,6 @@ uint32_t mqa_stop_and_delete_timer(MQP_ASYNC_RSP_MSG *mqa_callbk_info) uint32_t mqa_stop_and_delete_timer_by_invocation(void *key) { MQA_CB *mqa_cb; - MQA_TMR_NODE *tmr_node; uint32_t rc = NCSCC_RC_FAILURE; /* retrieve MQA CB */ @@ -462,8 +461,8 @@ uint32_t mqa_stop_and_delete_timer_by_invocation(void *key) return rc; } - tmr_node = - ncs_find_item(&(mqa_cb->mqa_timer_list), key, match_invocation); + MQA_TMR_NODE *tmr_node = static_cast<MQA_TMR_NODE *>( + ncs_find_item(&(mqa_cb->mqa_timer_list), key, match_invocation)); if (tmr_node == NULL) { m_MQSV_MQA_GIVEUP_MQA_CB; return rc; @@ -537,8 +536,9 @@ static void mqa_cleanup_senderid(void *arg) return; } - while ((senderid_node = ncs_remove_item(&(mqa_cb->mqa_senderid_list), - NULL, match_expiry)) != NULL) { + while ( + (senderid_node = static_cast<MQA_SENDERID_INFO *>(ncs_remove_item( + &(mqa_cb->mqa_senderid_list), NULL, match_expiry))) != NULL) { m_MMGR_FREE_MQA_SENDERID(senderid_node); } @@ -623,8 +623,9 @@ uint32_t mqa_destroy_senderid_timers(MQA_CB *mqa_cb) MQA_SENDERID_INFO *senderid_node = NULL; uint32_t rc = NCSCC_RC_SUCCESS; - while ((senderid_node = ncs_remove_item(&(mqa_cb->mqa_senderid_list), - NULL, match_all)) != NULL) { + while ( + (senderid_node = static_cast<MQA_SENDERID_INFO *>(ncs_remove_item( + &(mqa_cb->mqa_senderid_list), NULL, match_all))) != NULL) { m_MMGR_FREE_MQA_SENDERID(senderid_node); } diff --git a/src/msg/common/mqsv_asapi.c b/src/msg/common/mqsv_asapi.c index 1d5d62943..936d6690b 100644 --- a/src/msg/common/mqsv_asapi.c +++ b/src/msg/common/mqsv_asapi.c @@ -76,9 +76,9 @@ static uint32_t asapi_cpy_track_info(ASAPi_GROUP_INFO *, ARGUMENTS : msg - Pointer to structure containing info on the request RETURNS : SA_AIS_OK - All went well - SA_AIS_ERROR - internal processing didn't like something. +- SA_AIS_ERROR - internal processing didn't like something. \****************************************************************************/ -uint32_t asapi_opr_hdlr(ASAPi_OPR_INFO *opr) +SaAisErrorT asapi_opr_hdlr(ASAPi_OPR_INFO *opr) { uint32_t rc = NCSCC_RC_SUCCESS; @@ -649,10 +649,10 @@ static uint32_t asapi_cache_update(ASAPi_OBJECT_INFO *pInfo, m_NCS_UNLOCK(&pCache->clock, NCS_LOCK_WRITE); /* Unlock the cache */ } else { /* Node deosn't exist */ - if (ASAPi_QUEUE_DEL == opr || ASAPi_GROUP_DEL == opr) { - /* no need to add node as this is a deletion */ - return rc; - } + if (ASAPi_QUEUE_DEL == opr || ASAPi_GROUP_DEL == opr) { + /* no need to add node as this is a deletion */ + return rc; + } /* Allocate the Cache Informaton node */ pCache = m_MMGR_ALLOC_ASAPi_CACHE_INFO(asapi.my_svc_id); @@ -778,6 +778,7 @@ static uint32_t asapi_grp_upd(ASAPi_GROUP_INFO *pGrp, ASAPi_OBJECT_INFO *pInfo, ASAPi_QUEUE_INFO *pQprev = 0, *pQnext = 0; NCS_Q_ITR itr; + itr.state = 0; pQnext = (ASAPi_QUEUE_INFO *) ncs_queue_get_next(&pGrp->qlist, diff --git a/src/msg/common/mqsv_asapi.h b/src/msg/common/mqsv_asapi.h index bef3cdd8d..3112cdd1e 100644 --- a/src/msg/common/mqsv_asapi.h +++ b/src/msg/common/mqsv_asapi.h @@ -32,10 +32,14 @@ #ifndef MSG_COMMON_MQSV_ASAPI_H_ #define MSG_COMMON_MQSV_ASAPI_H_ -/* ASAPi Headers */ +#include <saAis.h> #include "msg/common/mqsv_asapi_mem.h" #include "base/ncsencdec_pub.h" +#ifdef __cplusplus +extern "C" { +#endif + /*****************************************************************************\ C O N S T A N T S \*****************************************************************************/ @@ -406,7 +410,7 @@ extern ASAPi_CB asapi; This API is used by the USER of the ASAPi layer, who want's to use the ASAPi functionality. This is a SE API with diffrent request options. \*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -uint32_t asapi_opr_hdlr(struct asapi_opr_info *); +SaAisErrorT asapi_opr_hdlr(struct asapi_opr_info *); /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*\ MDS ENCODE/DECODE/COPY ROUTINES @@ -452,4 +456,8 @@ uint32_t asapi_dbg_sink(uint32_t, char *, uint32_t); #define m_ASAPi_DBG_VOID #endif +#ifdef __cplusplus +} +#endif + #endif // MSG_COMMON_MQSV_ASAPI_H_ diff --git a/src/msg/common/mqsv_common.h b/src/msg/common/mqsv_common.h index e3ee31fe8..993c4d813 100644 --- a/src/msg/common/mqsv_common.h +++ b/src/msg/common/mqsv_common.h @@ -29,6 +29,10 @@ #ifndef MSG_COMMON_MQSV_COMMON_H_ #define MSG_COMMON_MQSV_COMMON_H_ +#ifdef __cplusplus +extern "C" { +#endif + #define MQSV_LITTLE_ENDIAN 0 #define MQSV_BIG_ENDIAN 1 @@ -81,4 +85,8 @@ typedef unsigned int MSG_FRMT_VER; #define NCSFL_LC_MQSV_QGRP_MGMT 0x00002000 /* MQSV Group Apis flows */ #define NCSFL_LC_MQSV_SEND_RCV 0x00001000 /* MQSV New Logs */ +#ifdef __cplusplus +} +#endif + #endif // MSG_COMMON_MQSV_COMMON_H_ diff --git a/src/msg/common/mqsv_edu.h b/src/msg/common/mqsv_edu.h index 4aab6257d..5fa2a5e11 100644 --- a/src/msg/common/mqsv_edu.h +++ b/src/msg/common/mqsv_edu.h @@ -30,6 +30,10 @@ #ifndef MSG_COMMON_MQSV_EDU_H_ #define MSG_COMMON_MQSV_EDU_H_ +#ifdef __cplusplus +extern "C" { +#endif + #define m_NCS_EDP_SAMSGHANDLET m_NCS_EDP_SAUINT64T #define m_NCS_EDP_SAMSGQUEUECREATIONFLAGST m_NCS_EDP_SAUINT32T #define m_NCS_EDP_SAMSGOPENFLAGST m_NCS_EDP_SAUINT32T @@ -41,4 +45,8 @@ uint32_t mqsv_edp_mqsv_evt(EDU_HDL *hdl, EDU_TKN *edu_tkn, NCSCONTEXT ptr, uint32_t *ptr_data_len, EDU_BUF_ENV *buf_env, EDP_OP_TYPE op, EDU_ERR *o_err); +#ifdef __cplusplus +} +#endif + #endif // MSG_COMMON_MQSV_EDU_H_ diff --git a/src/msg/common/mqsv_mem.h b/src/msg/common/mqsv_mem.h index e61735312..38759da5b 100644 --- a/src/msg/common/mqsv_mem.h +++ b/src/msg/common/mqsv_mem.h @@ -48,9 +48,9 @@ typedef enum { Memory Allocation and Release Macros @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ -#define m_MMGR_ALLOC_MQSV_EVT(svc_id) \ - m_NCS_MEM_ALLOC(sizeof(MQSV_EVT), NCS_MEM_REGION_PERSISTENT, svc_id, \ - NCS_SERVICE_MQSV_SUB_ID_MQSV_EVT) +#define m_MMGR_ALLOC_MQSV_EVT(svc_id) \ + (MQSV_EVT*)m_NCS_MEM_ALLOC(sizeof(MQSV_EVT), NCS_MEM_REGION_PERSISTENT, \ + svc_id, NCS_SERVICE_MQSV_SUB_ID_MQSV_EVT) #define m_MMGR_FREE_MQSV_EVT(p, scv_id) \ m_NCS_MEM_FREE(p, NCS_MEM_REGION_PERSISTENT, scv_id, \ -- 2.13.3 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel