void SysUsbRpc_GenReq(InterTaskMsg_t *msg)
{
    UInt32 cid, tid;
    Boolean rsp = FALSE;

    if(!msg)
    {
        Log_DebugPrintf(LOGID_USB, "%s SysUsbRpc_GenReq: Null Msg\n", PROC_TYPE);
        return;
    }

    cid = *(UInt32 *)&msg->sender[0];
    tid = *(UInt32 *)&msg->sender[4];

//    Log_DebugPrintf(LOGID_USB, "%s SysUsbRpc_GenReq: Msg:%p type:%d", PROC_TYPE, msg, msg->msgType);
    if(sSysUsbRpc_Handler)
        rsp = sSysUsbRpc_Handler(msg);

    if(rsp)
    {
        IPC_SendInterTask_RSP(tid, cid, msg);
        FreeInterTaskMsg(msg);
    }
    
}
Esempio n. 2
0
Boolean SysUsbAp_MsgHandler(InterTaskMsg_t *msg)
{
    Boolean result = 0;
    Boolean rsp = TRUE;
    SYS_TRACE("AP SysUsbAp_MsgHandler msg:%p", msg);

     Log_EnableLogging(LOGID_USB,TRUE);

     if(!msg)
     {
         Log_DebugPrintf(LOGID_USB, "%s SysUsbAp_MsgHandler: NULL msg!!\n", PROC_TYPE);
         return FALSE;        
     }
     switch(msg->msgType)
     {
        case USB_IPC_MSC_INIT:
             Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_INIT call ipcMsc_Init", PROC_TYPE);
             break;
        case USB_IPC_MSC_UNINIT:
             Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_UNINIT Nothing to do", PROC_TYPE);
             break;
        case USB_IPC_MSC_MEDIA_INSERT:
            Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_MEDIA_INSERT ", PROC_TYPE);
            sysMscRpc_Insert(msg);
            break;
        case USB_IPC_MSC_MEDIA_MOUNT:
            Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_MEDIA_MOUNT ", PROC_TYPE);
            sysMscRpc_Mount(msg);
            rsp = FALSE;
            break;
        case USB_IPC_MSC_MEDIA_REMOVE:
            Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_MEDIA_REMOVE ", PROC_TYPE);
            sysMscRpc_Remove(msg);
            break;
        case USB_IPC_MSC_DEVICE_ATTACH:
            Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_DEVICE_ATTACH Nothing to do", PROC_TYPE);
            break;
        case USB_IPC_MSC_DEVICE_DETACH:
            Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_DEVICE_DETACH Nothing to do", PROC_TYPE);
            break;
        case USB_IPC_MSC_READ:
            Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_READ Nothing to do", PROC_TYPE);
            break;
        case USB_IPC_MSC_WRITE:
            Log_DebugPrintf(LOGID_USB, "%s USB_IPC_MSC_WRITE Nothing to do", PROC_TYPE);
            break;

#if defined (ENABLE_USB_MEGASIM)
        case USB_IPC_EEM_CTRL:
        {
            usbEemCtrl_t *ctrl = (usbEemCtrl_t *)msg->dataBuf;
            
            Log_DebugPrintf(LOGID_SYSEEMRPC, "EEM_Task MSG USB_IPC_EEM_CTRL Recvd EEM Msg:%d Value:%d", ctrl->msg, ctrl->value);
            result = JusbAdapter_SendMsg(0, (USB_MSG_TYPES)ctrl->msg, &ctrl->value, sizeof(ctrl->value));
            FreeInterTaskMsg(msg);
            rsp = FALSE;
            break;
        }
        case USB_IPC_NOTIFY:
            Log_DebugPrintf(LOGID_USB, "%s usb cb USB_IPC_NOTIFY val:%d ", PROC_TYPE, *(UInt32 *)msg->dataBuf);
            if(sysUsbRpcNotifyCb)
            {
                sysUsbRpcNotifyCb(*(UInt32 *)msg->dataBuf);
            }
            break;
#endif            
        default:
        Log_DebugPrintf(LOGID_USB, "%s USB msg Default Type:%d len:%d buf:%p", PROC_TYPE, msg->msgType, msg->dataLength, msg->dataBuf);
    }
    if(!result)
    {
        Log_DebugPrintf(LOGID_USB, "%s USB JusbAdapter_SendMsg failed type:%d", PROC_TYPE, msg->msgType);
    }

    return rsp;
}