/* introduce function I3C_SlaveTransferHandleGetStatusFlags. This function was deal get status flag.  */
static bool I3C_SlaveTransferHandleGetStatusFlags(I3C_Type *base, i3c_slave_handle_t *handle, i3c_slave_handleIrq_param_t *stateParams)
/* introduce function I3C_SlaveTransferHandleGetStatusFlags. This function was deal get status flag.  */
static bool I3C_SlaveTransferHandleGetStatusFlags(I3C_Type *base, i3c_slave_handle_t *handle, i3c_slave_handleIrq_param_t *stateParams)
{
    assert(NULL != base && NULL != handle && NULL != stateParams);
    uint32_t errFlags;
    stateParams->flags = I3C_SlaveGetStatusFlags(base);
    errFlags           = I3C_SlaveGetErrorStatusFlags(base);
    stateParams->pendingInts = I3C_SlaveGetPendingInterrupts(base);
    stateParams->enabledInts = I3C_SlaveGetEnabledInterrupts(base);
    if (0UL != (errFlags & (uint32_t)kSlaveErrorFlags))
    {
        handle->transfer.event            = (uint32_t)kI3C_SlaveCompletionEvent;
        handle->transfer.completionStatus = I3C_SlaveCheckAndClearError(base, errFlags);
        if ((0UL != (handle->eventMask & (uint32_t)kI3C_SlaveCompletionEvent)) && (NULL != handle->callback))
        {
            handle->callback(base, &handle->transfer, handle->userData);
        }
        return false;
    }
    return true;
}