CcmStatus CCM_StaticInit(void) { CcmStatus status; CcmImStatus imStatus; ECCM_VAC_Status vacStatus; /* Used to init once only */ static McpBool firstInit = MCP_TRUE; MCP_FUNC_START("CCM_StaticInit"); if (firstInit == MCP_FALSE) { MCP_LOG_INFO(("_CCM_StaticInit Already Initialized, Exiting Successfully")); MCP_RET(CCM_STATUS_SUCCESS); } firstInit = MCP_FALSE; status = _CCM_StaticInit(); MCP_VERIFY_FATAL((status == CCM_STATUS_SUCCESS), CCM_STATUS_INTERNAL_ERROR, ("_CCM_StaticInit")); /* Initialize contained entities (IM, PM, VAC) */ imStatus = CCM_IM_StaticInit(); MCP_VERIFY_FATAL((imStatus == CCM_IM_STATUS_SUCCESS), CCM_STATUS_INTERNAL_ERROR, ("CCM_IM_StaticInit")); vacStatus = CCM_VAC_StaticInit(); MCP_VERIFY_FATAL ((CCM_VAC_STATUS_SUCCESS == vacStatus), CCM_STATUS_INTERNAL_ERROR, ("CCM_StaticInit: VAC initialization failed with status %d", vacStatus)); CCM_CAL_StaticInit(); status = CCM_STATUS_SUCCESS; MCP_FUNC_END(); return status; }
void main() { CcmImStatus imStatus; CcmImObj *imObj = NULL; imStatus = CCM_IM_StaticInit(); assert(imStatus == CCM_IM_STATUS_SUCCESS); imStatus = CCM_IM_Create(MCP_HAL_CHIP_ID_0, &imObj, NULL, NULL); assert(imStatus == CCM_IM_STATUS_SUCCESS); imStatus = CCM_IM_RegisterStack(imObj, CCM_IM_STACK_ID_BT, CcmImBtCb); assert(imStatus == CCM_IM_STATUS_SUCCESS); VerifyStackState(CCM_IM_STACK_ID_BT, CCM_IM_STACK_STATE_OFF); imStatus = CCM_IM_BtOn(imObj); assert(imStatus == CCM_IM_STATUS_SUCCESS); VerifyStackState(CCM_IM_STACK_ID_BT, CCM_IM_STACK_STATE_ON); imStatus = CCM_IM_BtOnAbort(imObj); assert(imStatus == CCM_IM_STATUS_IMPROPER_STATE); VerifyStackState(CCM_IM_STACK_ID_BT, CCM_IM_STACK_STATE_ON); imStatus = CCM_IM_BtOff(imObj); assert(imStatus == CCM_IM_STATUS_SUCCESS); VerifyStackState(CCM_IM_STACK_ID_BT, CCM_IM_STACK_STATE_OFF); imStatus = CCM_IM_DeregisterStack(imObj, CCM_IM_STACK_ID_BT); assert(imStatus == CCM_IM_STATUS_SUCCESS); imStatus = CCM_IM_Destroy(&imObj); assert(imStatus == CCM_IM_STATUS_SUCCESS); }