/***************************************************************************\ PRIVATE ADA FUNCTIONS \***************************************************************************/ static uint32_t vda_create(NCS_LIB_REQ_INFO *req) { NCS_SPLR_REQ_INFO splr_req; NCS_SPIR_REQ_INFO spir_req; memset(&splr_req, 0, sizeof(splr_req)); /* STEP : Register VDA as a service provider */ splr_req.i_sp_abstract_name = m_VDA_SP_ABST_NAME; splr_req.type = NCS_SPLR_REQ_REG; splr_req.info.reg.instantiation_api = vda_lib_req; splr_req.info.reg.instantiation_flags = NCS_SPLR_INSTANTIATION_PER_INST_NAME; splr_req.info.reg.user_se_api = (NCSCONTEXT)ncsvda_api; if (ncs_splr_api(&splr_req) != NCSCC_RC_SUCCESS) { return NCSCC_RC_FAILURE; } /* STEP : Get the MDS-handle to the ADEST */ memset(&spir_req, 0, sizeof(spir_req)); spir_req.type = NCS_SPIR_REQ_LOOKUP_CREATE_INST; spir_req.i_environment_id = 1; spir_req.i_instance_name = m_MDS_SPIR_ADEST_NAME; spir_req.i_sp_abstract_name = m_MDS_SP_ABST_NAME; spir_req.info.lookup_create_inst.i_inst_attrs.number = 0; if (ncs_spir_api(&spir_req) != NCSCC_RC_SUCCESS) { return m_LEAP_DBG_SINK(NCSCC_RC_FAILURE); } gl_vda_info.mds_adest_pwe1_hdl = (MDS_HDL)spir_req.info.lookup_create_inst.o_handle; return NCSCC_RC_SUCCESS; }
static uns32 ada_destroy(NCS_LIB_REQ_INFO *req) { NCS_SPLR_REQ_INFO splr_req; memset(&splr_req, 0, sizeof(splr_req)); /* STEP : TODO : Reset ADEST stuff */ /* STEP : Register VDA as a service provider */ splr_req.i_sp_abstract_name = "NCS_ADA"; splr_req.type = NCS_SPLR_REQ_DEREG; splr_req.info.dereg.dummy = 0; if (ncs_splr_api(&splr_req) != NCSCC_RC_SUCCESS) { return NCSCC_RC_FAILURE; } m_NCSADA_TRACE_ARG1("ADA:LIB_DESTROY:DONE\n"); return NCSCC_RC_SUCCESS; }
static uint32_t vda_destroy(NCS_LIB_REQ_INFO *req) { NCS_SPLR_REQ_INFO splr_req; NCS_SPIR_REQ_INFO spir_req; NCSMDS_INFO svc_info; if (vda_vdest_create == true) { /* STEP : Uninstall from ADEST with MDS as service NCSMDS_SVC_ID_VDA. */ memset(&svc_info, 0, sizeof(svc_info)); svc_info.i_mds_hdl = gl_vda_info.mds_adest_pwe1_hdl; svc_info.i_svc_id = NCSMDS_SVC_ID_VDA; svc_info.i_op = MDS_UNINSTALL; svc_info.info.svc_uninstall.i_msg_free_cb = NULL; /* NULL for callback-model services */ /* Invoke MDS api */ if (ncsmds_api(&svc_info) != NCSCC_RC_SUCCESS) return m_LEAP_DBG_SINK(NCSCC_RC_FAILURE); } /* STEP : Release the use of ADEST MDS handle */ memset(&spir_req, 0, sizeof(spir_req)); spir_req.type = NCS_SPIR_REQ_REL_INST; spir_req.i_environment_id = 1; spir_req.i_instance_name = m_MDS_SPIR_ADEST_NAME; spir_req.i_sp_abstract_name = m_MDS_SP_ABST_NAME; spir_req.info.rel_inst = 0; /* dummy value */ if (ncs_spir_api(&spir_req) != NCSCC_RC_SUCCESS) { return m_LEAP_DBG_SINK(NCSCC_RC_FAILURE); } gl_vda_info.mds_adest_pwe1_hdl = 0; /* STEP : Deregister VDA as a service provider */ memset(&splr_req, 0, sizeof(splr_req)); splr_req.i_sp_abstract_name = m_VDA_SP_ABST_NAME; splr_req.type = NCS_SPLR_REQ_DEREG; splr_req.info.dereg.dummy = 0; if (ncs_splr_api(&splr_req) != NCSCC_RC_SUCCESS) { return NCSCC_RC_FAILURE; } vda_vdest_create = false; return NCSCC_RC_SUCCESS; }
static uns32 ada_create(NCS_LIB_REQ_INFO *req) { NCS_SPLR_REQ_INFO splr_req; memset(&splr_req, 0, sizeof(splr_req)); /* STEP : Register VDA as a service provider */ splr_req.i_sp_abstract_name = m_ADA_SP_ABST_NAME; splr_req.type = NCS_SPLR_REQ_REG; splr_req.info.reg.instantiation_api = ada_lib_req; splr_req.info.reg.instantiation_flags = 0; splr_req.info.reg.user_se_api = (NCSCONTEXT)ncsada_api; if (ncs_splr_api(&splr_req) != NCSCC_RC_SUCCESS) { return NCSCC_RC_FAILURE; } m_NCSADA_TRACE_ARG1("ADA:LIB_CREATE:DONE\n"); return NCSCC_RC_SUCCESS; }