⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ixtimesyncacc.c

📁 有关ARM开发板上的IXP400网络驱动程序的源码以。
💻 C
📖 第 1 页 / 共 4 页
字号:
/* * Disable the interrupt for the indicated mode of Auxiliary Time Stamp * in the IEEE 1588 hardware assist block */PUBLIC IxTimeSyncAccStatusixTimeSyncAccAuxTimeInterruptDisable(IxTimeSyncAccAuxMode auxMode){    /* Verify the parameters */    if (IX_TIMESYNCACC_AUXMODE_INVALID <= auxMode)    {        return IX_TIMESYNCACC_INVALIDPARAM;    } /* if (IX_TIMESYNCACC_AUXMODE_INVALID <= auxMode) */    /* Initialised before? */    IXP400_TIMESYNCACC_INIT_CHECK();    /* Unregister the Callback and CLEAR the amm/asm bits on */    if (IX_TIMESYNCACC_AUXMODE_MASTER == auxMode)    {        ixTimeSyncAccControlAmmsInterruptMaskClear();        ixTsAuxMasterTimeCallback = (IxTimeSyncAccAuxTimeCallback) NULL;    }    /* else of if (IX_TIMESYNCACC_AUXMODE_MASTER == auxMode) */    else    {        ixTimeSyncAccControlAsmsInterruptMaskClear();        ixTsAuxSlaveTimeCallback = (IxTimeSyncAccAuxTimeCallback) NULL;    } /* end of if (IX_TIMESYNCACC_AUXMODE_MASTER == auxMode) */    return IX_TIMESYNCACC_SUCCESS;} /* end of ixTimeSyncAccAuxTimeInterruptDisable() function *//* * Poll for the Auxiliary Time Stamp captured for the mode indicated  * (Master or Slave) */PUBLIC IxTimeSyncAccStatusixTimeSyncAccAuxTimePoll(IxTimeSyncAccAuxMode auxMode,    BOOL *auxPollFlag,    IxTimeSyncAccTimeValue *auxTime){    /* Local variables */    BOOL ammsFlag = FALSE;    BOOL asmsFlag = FALSE;    /* Verify the parameters */    if (((BOOL *)NULL == auxPollFlag) ||        (IX_TIMESYNCACC_AUXMODE_INVALID <= auxMode) ||        ((IxTimeSyncAccTimeValue *)NULL == auxTime))    {        return IX_TIMESYNCACC_INVALIDPARAM;    } /* end of if (((BOOL *)NULL == auxPollFlag) ||                    (IX_TIMESYNCACC_AUXMODE_INVALID <= auxMode) ||                    ((IxTimeSyncAccTimeValue *)NULL == auxTime)) */    /* Initialised before? */    IXP400_TIMESYNCACC_INIT_CHECK();    /* Fetch Auxiliary Master/Slave Mode Snapshot */    if (IX_TIMESYNCACC_AUXMODE_MASTER == auxMode)    {        /* Is interrupt mode of processing is enabled? */        if ((IxTimeSyncAccAuxTimeCallback) NULL != ixTsAuxMasterTimeCallback)        {            return IX_TIMESYNCACC_INTERRUPTMODEINUSE;        } /* end of if ((IxTimeSyncAccAuxTimeCallback) NULL !=                         ixTsAuxMasterTimeCallback) */        /* Is the Auxiliary Master Mode Snapshot available? */        ammsFlag = ixTimeSyncAccEventAmmsFlagGet();        if (FALSE == ammsFlag)        {            *auxPollFlag = FALSE;            auxTime->timeValueLowWord =0;            auxTime->timeValueHighWord = 0;            return IX_TIMESYNCACC_SUCCESS;        } /* end of if (FALSE == ammsFlag) */        /* Fetch Auxiliary Master Snapshot */        ixTimeSyncAccAuxMasterModeSnapshotGet(&auxTime->timeValueLowWord,                                              &auxTime->timeValueHighWord);        *auxPollFlag = TRUE;        /* Clear the snapshot availability condition */        ixTimeSyncAccEventAmmsFlagClear();    }    /* else of if (IX_TIMESYNCACC_AUXMODE_MASTER == auxMode) */    else    {        /* Is interrupt mode of processing is enabled? */        if ((IxTimeSyncAccAuxTimeCallback) NULL != ixTsAuxSlaveTimeCallback)        {            return IX_TIMESYNCACC_INTERRUPTMODEINUSE;        } /* end of if ((IxTimeSyncAccAuxTimeCallback) NULL !=                         ixTsAuxSlaveTimeCallback) */        /* Is the Auxiliary Slave Mode Snapshot available? */        asmsFlag = ixTimeSyncAccEventAsmsFlagGet();        if (FALSE == asmsFlag)        {            *auxPollFlag = FALSE;            auxTime->timeValueLowWord =0;            auxTime->timeValueHighWord = 0;            return IX_TIMESYNCACC_SUCCESS;        } /* end of if (FALSE == asmsFlag) */        /* Fetch Auxiliary Slave Snapshot */        ixTimeSyncAccAuxSlaveModeSnapshotGet(&auxTime->timeValueLowWord,                                             &auxTime->timeValueHighWord);        *auxPollFlag = TRUE;        /* Clear the snapshot availability condition */        ixTimeSyncAccEventAsmsFlagClear();    } /* end of if (IX_TIMESYNCACC_AUXMODE_MASTER == auxMode) */    return IX_TIMESYNCACC_SUCCESS;} /* end of ixTimeSyncAccAuxTimePoll() function *//* Reset the IEEE 1588 hardware assist block */PUBLIC IxTimeSyncAccStatusixTimeSyncAccReset(void){    /* Initialised before? */    IXP400_TIMESYNCACC_INIT_CHECK();    /* Reset Hardware Assist */    ixTimeSyncAccControlReset();    /* Clear Stats */    ixTsStats.rxMsgs = ixTsStats.txMsgs = 0;    /* Unregister any Callback Routines */    ixTsTargetTimeCallback    = (IxTimeSyncAccTargetTimeCallback) NULL;    ixTsAuxMasterTimeCallback = (IxTimeSyncAccAuxTimeCallback) NULL;    ixTsAuxSlaveTimeCallback  = (IxTimeSyncAccAuxTimeCallback) NULL;    return IX_TIMESYNCACC_SUCCESS;} /* end of ixTimeSyncAccReset() function *//* Return the IxTimeSyncAcc Statistics */PUBLIC IxTimeSyncAccStatusixTimeSyncAccStatsGet(IxTimeSyncAccStats *timeSyncStats){    /* Verify the parameter */    if ((IxTimeSyncAccStats *) NULL == timeSyncStats)    {        return IX_TIMESYNCACC_INVALIDPARAM;    } /* end of ((IxTimeSyncAccStats *) NULL == timeSyncStats) */    /* Return Stats */    timeSyncStats->rxMsgs = ixTsStats.rxMsgs;     timeSyncStats->txMsgs = ixTsStats.txMsgs;     return IX_TIMESYNCACC_SUCCESS;} /* end of ixTimeSyncAccStatsGet() function *//* Reset Time Sync statistics */PUBLIC voidixTimeSyncAccStatsReset(void){    /* Clear Stats */    ixTsStats.rxMsgs = ixTsStats.txMsgs = 0;    return;} /* end of ixTimeSyncAccStatsReset() function *//* Display the Time Sync current status */PUBLIC IxTimeSyncAccStatusixTimeSyncAccShow(void){    /* Local Varaiables */    UINT32 regValue = 0;    UINT32 regLowValue = 0;    UINT32 regHighValue = 0;    UINT16 seqId = 0;    UINT32 uuIdLow = 0;    UINT16 uuIdHigh = 0;    BOOL   bitSet   = FALSE;    UINT32 ptpPortNum = 0;    /* Initialised before? */    IXP400_TIMESYNCACC_INIT_CHECK();    /* Dump Block Level Status */    /* System Time registers contents */    regLowValue = 0;    regHighValue = 0;    ixTimeSyncAccSystemTimeSnapshotGet(&regLowValue, &regHighValue);    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "System Test (Low:High): %x : %x\n",        regLowValue, regHighValue,0,0,0,0);    /* Frequency Scaling Value */    regValue = 0;    ixTimeSyncAccAddendFsvGet(&regValue);    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Frequency Scaling Value: %x\n",        regValue,0,0,0,0,0);    /* Target time reached/exceeded interrupt mask value */    bitSet = ixTimeSyncAccControlTtmInterruptMaskGet();    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Target Time Reached/Exceeded Interrupt Mask: %s\n",        (INT32)((TRUE == bitSet) ? "ENABLED":"DISABLED"),0,0,0,0,0);    /* Target time reached/exceeded event flag value */    bitSet = ixTimeSyncAccEventTtmFlagGet();    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Target Time Reached/Exceeded Event Flag: %s\n",        (INT32)((TRUE == bitSet) ? "SET":"CLEAR"),0,0,0,0,0);    /* Target Time registers contents  */    regLowValue = 0;    regHighValue = 0;    ixTimeSyncAccTargetTimeSnapshotGet(&regLowValue, &regHighValue);    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Target Time (Low:High): %x : %x\n",        regLowValue, regHighValue,0,0,0,0);    /* Auxiliary Master Mode Snapshot interrupt mask value */    bitSet = ixTimeSyncAccControlAmmsInterruptMaskGet();    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Auxiliary Master Mode Snapshot Interrupt Mask: %s\n",        (INT32)((TRUE == bitSet) ? "ENABLED":"DISABLED"),0,0,0,0,0);    /* Auxiliary Master Mode Snapshot event flag value */    bitSet = ixTimeSyncAccEventAmmsFlagGet();    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Auxiliary Master Mode Snapshot Event Flag: %s\n",        (INT32)((TRUE == bitSet) ? "SET":"CLEAR"),0,0,0,0,0);    /* Auxiliary Master Snapshot registers */    regLowValue = 0;    regHighValue = 0;    ixTimeSyncAccAuxMasterModeSnapshotGet(&regLowValue, &regHighValue);    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,       "Auxiliary Master Mode Snapshot (Low:High): %x : %x\n",        regLowValue, regHighValue,0,0,0,0);    /* Auxiliary Slave Mode Snapshot interrupt mask value */    bitSet = ixTimeSyncAccControlAsmsInterruptMaskGet();    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Auxiliary Slave Mode Snapshot Interrupt Mask: %s\n",        (INT32)((TRUE == bitSet) ? "ENABLED":"DISABLED"),0,0,0,0,0);    /* Auxiliary Slave Mode Snapshot event flag value */    bitSet = ixTimeSyncAccEventAsmsFlagGet();    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Auxiliary Slave Mode Snapshot Event Flag: %s\n",        (INT32)((TRUE == bitSet) ? "SET":"CLEAR"),0,0,0,0,0);        /* Auxiliary Slave Snapshot registers */    regLowValue = 0;    regHighValue = 0;    ixTimeSyncAccAuxSlaveModeSnapshotGet(&regLowValue, &regHighValue);    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Auxiliary Slave Mode Snapshot (Low:High) : %x : %x\n",        regLowValue, regHighValue,0,0,0,0);    /* Dump Port Level Status */    for (ptpPortNum = 0;         ptpPortNum < IXP400_TIMESYNCACC_MAX_1588PTP_PORT;         ptpPortNum++)    {        /* Display the port number */        ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,            "PTP Port #: %u %s\n",            ptpPortNum,            (INT32)((TRUE == ixTsNpeEnabled[ptpPortNum]) ? "***FUSED-OUT***":""),            0,0,0,0);        /* Get the Master Mode and Timestamp All PTP messages status */        bitSet = ixTimeSyncAccControlPTPPortMasterModeGet(ptpPortNum);        ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,            "\tMaster Mode: %s\n",            (INT32)((TRUE == bitSet) ? "SET":"CLEAR"),0,0,0,0,0);        bitSet = ixTimeSyncAccControlPTPPortPTPMsgTimestampGet(ptpPortNum);        ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,            "\tTimestamp All Mode: %s\n",            (INT32)((TRUE == bitSet) ? "SET":"CLEAR"),0,0,0,0,0);        /* Receive Timestamp Event Flag */        bitSet = ixTimeSyncAccControlPTPPortRxsFlagGet(ptpPortNum);        ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,            "\tReceive Timestamp Event Flag: %s\n",            (INT32)((TRUE == bitSet) ? "SET":"CLEAR"),0,0,0,0,0);        /* Receive timestamp registers */        regLowValue = 0;        regHighValue = 0;        ixTimeSyncAccPTPPortReceiveSnapshotGet(ptpPortNum,            &regLowValue, &regHighValue);        ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,            "\tReceive Timestamp (Low:High): %x : %x\n",            regLowValue,regHighValue,0,0,0,0);        /* UUID and Seq# */        ixTimeSyncAccPTPMsgUuidSeqIdGet(ptpPortNum, &uuIdLow, &uuIdHigh, &seqId);        ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,            "\tUUID (Low: High (16-Bits)): %x : %x \n"            "Seq# (16Bits Only): %x\n",            uuIdLow, uuIdHigh, seqId,0,0,0);        /* Transmit Timestamp Event Flag */        bitSet = ixTimeSyncAccControlPTPPortTxsFlagGet(ptpPortNum);        ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,            "\tTransmit Timestamp Event Flag: %s\n",            (INT32)((TRUE == bitSet) ? "SET":"CLEAR"),0,0,0,0,0);        /* Transmit timestamp registers */        regLowValue = 0;        regHighValue = 0;        ixTimeSyncAccPTPPortTransmitSnapshotGet(ptpPortNum,            &regLowValue,&regHighValue);        ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,            "\tTransmit Timestamp (Low:High): %x : %x\n",            regLowValue,regHighValue,0,0,0,0);    } /* end of for (ptpPortNum = 0;                     ptpPortNum < IXP400_TIMESYNCACC_MAX_1588PTP_PORT;                     ptpPortNum++) */    /* Stats */    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Receive Timestamps Count: %u\n"        "Transmit Timestamp Count: %u\n",        ixTsStats.rxMsgs, ixTsStats.txMsgs,0,0,0,0);    /* Callback Routine Addresses */    ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT,        "Target Time Callback: %p\n"        "Auxiliary Master Mode Snapshot Callback: %p\n"        "Auxiliary Slave Mode Snapshot Callback: %p\n",        (UINT32)ixTsTargetTimeCallback,        (UINT32)ixTsAuxMasterTimeCallback,        (UINT32)ixTsAuxSlaveTimeCallback,        0,0,0);    return IX_TIMESYNCACC_SUCCESS;} /* end of ixTimeSyncAccShow() function */#endif /* __ixp46X */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -