//------------------------------------------------------------------------------------------------- // IOCtrl Driver functions //------------------------------------------------------------------------------------------------- int _MDrv_MBXIO_IOC_Init(struct file *filp, unsigned long arg) { MS_MBX_INIT_INFO stInitInfo; if(copy_from_user(&stInitInfo, (MS_MBX_REGISTER_MSG __user *)arg, sizeof(MS_MBX_INIT_INFO))) return EFAULT; stInitInfo.mbxResult = MDrv_MBX_Init((MS_U32)filp, stInitInfo.eHKCPU, stInitInfo.eHostRole, stInitInfo.u32TimeoutMillSecs); return __put_user(stInitInfo.mbxResult, &(((MS_MBX_INIT_INFO __user *)arg)->mbxResult)); }
MS_BOOL MsApi_MBX_Init(void) { MBX_CPU_ID eHKCPU; MS_U32 u32TimeoutMillSecs = 1500; eHKCPU = E_MBX_CPU_MIPS; if( E_MBX_SUCCESS != MDrv_MBX_Init(eHKCPU, E_MBX_ROLE_HK, u32TimeoutMillSecs)) { printf("Error> MBX init failed !!\n"); while(1); } else { MDrv_MBX_Enable(TRUE); return TRUE; } }