Загрузка данных


static int32_t SystemPowerUpdate(const scmi_caller_t *caller, uint32_t lmId,
    uint32_t systemState, bool graceful, bool *noReturn)
{
    int32_t status = SM_ERR_SUCCESS;

    /* New state? */
    switch (systemState)
    {
        case SYS_STATE_SHUTDOWN:
            /* Shutdown */
            status = LMM_SystemLmShutdown(caller->lmId, caller->instAgentId,
                lmId, graceful, &g_swReason);
            break;
        case SYS_STATE_COLD_RESET:
            /* Cold Reset */
            status = LMM_SystemLmReset(caller->lmId, caller->instAgentId,
                lmId, false, graceful, &g_swReason);
            break;
        case SYS_STATE_WARM_RESET:
            /* Warm Reset */
            status = LMM_SystemLmReset(caller->lmId, caller->instAgentId,
                lmId, true, graceful, &g_swReason);
            break;
        case SYS_STATE_POWER_UP:
            /* Power up */
            status = SM_ERR_NOT_SUPPORTED;
            break;
        case SYS_STATE_SUSPEND:
        case SYS_STATE_WAKE:
            /* Suspend */
            status = SM_ERR_NOT_SUPPORTED;
            break;
        case SYS_STATE_FULL_SHUTDOWN:
            /* System shutdown */
            status = LMM_SystemShutdown(caller->lmId,
                caller->instAgentId, graceful, &g_swReason);
            break;
        case SYS_STATE_FULL_RESET:
            /* System reset*/
            status = LMM_SystemReset(caller->lmId,
                caller->instAgentId, graceful, &g_swReason);
            break;
        case SYS_STATE_FULL_SUSPEND:
            /* System suspend */
            status = LMM_SystemSuspend(caller->lmId,
                caller->instAgentId);
            *noReturn = false;
            break;
        case SYS_STATE_FULL_WAKE:
            /* System wake*/
            status = LMM_SystemWake(caller->lmId,
                caller->instAgentId);
            *noReturn = false;
            break;
        case SYS_STATE_GRP_SHUTDOWN:
            /* System shutdown */
            status = LMM_SystemGrpShutdown(caller->lmId,
                caller->instAgentId, graceful, &g_swReason, 0U,
                noReturn);
            break;
        case SYS_STATE_GRP_RESET:
            /* System reset*/
            status = LMM_SystemGrpReset(caller->lmId,
                caller->instAgentId, graceful, &g_swReason, 0U,
                noReturn);
            break;
        default:
            status = SM_ERR_INVALID_PARAMETERS;
            break;
    }

    /* Return status */
    return status;
}