📄 ixtimesyncacc_p.h
字号:
IXP400_TIMESYNCACC_TSE_SNM);} /* end of ixTimeSyncAccEventAmmsFlagClear() function *//* Clear Auxiliary Slave Mode Snapshot Captured event */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccEventAsmsFlagClear(void){ /* CLEAR the sns bit by writing '1' onto it */ IXP400_TIMESYNCACC_BIT_SET(ixTsRegisters.blRegisters.tsEvent, IXP400_TIMESYNCACC_TSE_SNS);} /* end of ixTimeSyncAccEventAsmsFlagClear() function *//* Clear Target Time Reached event */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccEventTtmFlagClear(void){ /* CLEAR the ttipend bit by writing '1' onto it */ IXP400_TIMESYNCACC_BIT_SET(ixTsRegisters.blRegisters.tsEvent, IXP400_TIMESYNCACC_TSE_TTIPEND);} /* end of ixTimeSyncAccEventTtmFlagClear() function *//* * ------------------------------------------------------------------ * * Block level timestamp support functions definitions * ------------------------------------------------------------------ * *//* Set System Time value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccSystemTimeSnapshotSet ( UINT32 systemTimeLow, UINT32 systemTimeHigh){ /* Update the System Time Low Register contents */ IXP400_TIMESYNCACC_REG_WRITE(ixTsRegisters.blRegisters.tsSysTimeLo, systemTimeLow); /* Update the System Time High Register contents */ IXP400_TIMESYNCACC_REG_WRITE(ixTsRegisters.blRegisters.tsSysTimeHi, systemTimeHigh);} /* end of ixTimeSyncAccSystemTimeSnapshotSet() function *//* Get System Time Low value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccSystemTimeSnapshotGet( UINT32 *systemTimeLow, UINT32 *systemTimeHigh){ /* Fetch the System Time Low Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsSysTimeLo, systemTimeLow); /* Fetch the System Time High Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsSysTimeHi, systemTimeHigh);} /* end of ixTimeSyncAccSystemTimeSnapshotGet() function *//* Set Target Time value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccTargetTimeSnapshotSet ( UINT32 targetTimeLow, UINT32 targetTimeHigh){ /* Update the Target Time Low Register contents */ IXP400_TIMESYNCACC_REG_WRITE(ixTsRegisters.blRegisters.tsTrgtLo, targetTimeLow); /* Update the Target Time High Register contents */ IXP400_TIMESYNCACC_REG_WRITE(ixTsRegisters.blRegisters.tsTrgtHi, targetTimeHigh);} /* end of ixTimeSyncAccTargetTimeSnapshotSet() function *//* Get Target Time value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccTargetTimeSnapshotGet( UINT32 *targetTimeLow, UINT32 *targetTimeHigh){ /* Fetch the Target Time Low Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsTrgtLo, targetTimeLow); /* Fetch the Target Time High Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsTrgtHi, targetTimeHigh);} /* end of ixTimeSyncAccTargetTimeSnapshotGet() function *//* Set Frequency Scaling Value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccAddendFsvSet (UINT32 fsv){ /* Update the Addend Register contents */ IXP400_TIMESYNCACC_REG_WRITE(ixTsRegisters.blRegisters.tsAddend, fsv);} /* end of ixTimeSyncAccAddendFsvSet() function *//* Get Frequency Scaling Value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccAddendFsvGet (UINT32 *fsv){ /* Fetch the Addend Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsAddend, fsv);} /* end of ixTimeSyncAccAddendFsvGet() function *//* Get AMMS value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccAuxMasterModeSnapshotGet ( UINT32 *ammsLow, UINT32 *ammsHigh){ /* Fetch the Auxiliary Master Mode Snapshot Low Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsAMMSLo, ammsLow); /* Fetch the Auxiliary Master Mode Snapshot High Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsAMMSHi, ammsHigh);} /* end of ixTimeSyncAccAuxMasterModeSnapshotGet() function *//* Get AMMS value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccAuxSlaveModeSnapshotGet ( UINT32 *asmsLow, UINT32 *asmsHigh){ /* Fetch the Auxiliary Slave Mode Snapshot Low Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsASMSLo, asmsLow); /* Fetch the Auxiliary Slave Mode Snapshot High Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.blRegisters.tsASMSHi, asmsHigh);} /* end of ixTimeSyncAccAuxSlaveModeSnapshotGet() function *//* * ------------------------------------------------------------------ * * Port level configuration support functions definitions * ------------------------------------------------------------------ * *//* Set the channel mode to 1588 Master */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccControlPTPPortMasterModeSet ( UINT32 ptpPort, BOOL masterMode){ /* SET or CLEAR the Master Mode */ if (TRUE == masterMode) { /* SET the mm bit */ IXP400_TIMESYNCACC_BIT_SET( ixTsRegisters.plRegisters[ptpPort].tsChControl, IXP400_TIMESYNCACC_CC_MM); } else /* else of if (TRUE == masterMode) */ { /* CLEAR the mm bit */ IXP400_TIMESYNCACC_BIT_CLEAR( ixTsRegisters.plRegisters[ptpPort].tsChControl, IXP400_TIMESYNCACC_CC_MM); } /* if (TRUE == masterMode) */} /* end of ixTimeSyncAccControlPTPPortMasterModeSet() function *//* Check for 1588 master mode of channel */PRIVATE IXP400_TIMESYNCACC_INLINE BOOLixTimeSyncAccControlPTPPortMasterModeGet (UINT32 ptpPort){ /* Is the mm bit SET? */ return IXP400_TIMESYNCACC_BIT_SET_CHECK( ixTsRegisters.plRegisters[ptpPort].tsChControl, IXP400_TIMESYNCACC_CC_MM);} /* end of ixTimeSyncAccControlPTPPortMasterModeGet() function *//* Set Timestamp all or only PTP messages flag */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccControlPTPPortPTPMsgTimestampSet ( UINT32 ptpPort, BOOL allMsg){ /* SET or CLEAR the All Message Timestamping */ if (TRUE == allMsg) { /* SET the ta bit */ IXP400_TIMESYNCACC_BIT_SET( ixTsRegisters.plRegisters[ptpPort].tsChControl, IXP400_TIMESYNCACC_CC_TA); } else /* else of if (TRUE == allMsg) */ { /* CLEAR the ta bit */ IXP400_TIMESYNCACC_BIT_CLEAR( ixTsRegisters.plRegisters[ptpPort].tsChControl, IXP400_TIMESYNCACC_CC_TA); } /* if (TRUE == allMsg) */} /* end of ixTimeSyncAccControlPTPPortPTPMsgTimestampSet() function *//* Check for Timestamp all or only PTP messages flag */PRIVATE IXP400_TIMESYNCACC_INLINE BOOLixTimeSyncAccControlPTPPortPTPMsgTimestampGet(UINT32 ptpPort){ /* Is the ta bit SET? */ return IXP400_TIMESYNCACC_BIT_SET_CHECK( ixTsRegisters.plRegisters[ptpPort].tsChControl, IXP400_TIMESYNCACC_CC_TA);} /* end of ixTimeSyncAccControlPTPPortPTPMsgTimestampGet() function *//* * ------------------------------------------------------------------ * * Port level timestamp support functions definitions * ------------------------------------------------------------------ * *//* Receive Timestamp available */PRIVATE IXP400_TIMESYNCACC_INLINE BOOLixTimeSyncAccControlPTPPortRxsFlagGet (UINT32 ptpPort){ /* Is the rxs bit SET? */ return IXP400_TIMESYNCACC_BIT_SET_CHECK( ixTsRegisters.plRegisters[ptpPort].tsChEvent, IXP400_TIMESYNCACC_CE_RXS);} /* end of ixTimeSyncAccControlPTPPortRxsFlagGet() function *//* Transmit Timestamp available */PRIVATE IXP400_TIMESYNCACC_INLINE BOOLixTimeSyncAccControlPTPPortTxsFlagGet (UINT32 ptpPort){ /* Is the txs bit SET? */ return IXP400_TIMESYNCACC_BIT_SET_CHECK( ixTsRegisters.plRegisters[ptpPort].tsChEvent, IXP400_TIMESYNCACC_CE_TXS);} /* end of ixTimeSyncAccControlPTPPortTxsFlagGet() function *//* Clear Receive Timestamp available event */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccControlPTPPortRxsFlagClear(UINT32 ptpPort){ /* CLEAR the rxs bit by writing '1' onto it */ IXP400_TIMESYNCACC_REG_WRITE(ixTsRegisters.plRegisters[ptpPort].tsChEvent, IXP400_TIMESYNCACC_CE_RXS);} /* end of ixTimeSyncAccControlPTPPortRxsFlagClear() function *//* Clear Transmit Timestamp available event */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccControlPTPPortTxsFlagClear(UINT32 ptpPort){ /* CLEAR the txs bit by writing '1' onto it */ IXP400_TIMESYNCACC_REG_WRITE(ixTsRegisters.plRegisters[ptpPort].tsChEvent, IXP400_TIMESYNCACC_CE_TXS);} /* end of ixTimeSyncAccControlPTPPortTxsFlagClear() function *//* Get PTP Port Rx Timestamp value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccPTPPortReceiveSnapshotGet ( UINT32 ptpPort, UINT32 *rxsLow, UINT32 *rxsHigh){ /* Fetch the Receive Timestamp/Snapshot Low Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.plRegisters[ptpPort].tsRxSnapLo, rxsLow); /* Fetch the Receive Timestamp/Snapshot High Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.plRegisters[ptpPort].tsRxSnapHi, rxsHigh);} /* end of ixTimeSyncAccPTPPortReceiveSnapshotGet() function *//* Get PTP Port Tx Timestamp value */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccPTPPortTransmitSnapshotGet ( UINT32 ptpPort, UINT32 *txsLow, UINT32 *txsHigh){ /* Fetch the Transmit Timestamp/Snapshot Low Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.plRegisters[ptpPort].tsTxSnapLo, txsLow); /* Fetch the Transmit Timestamp/Snapshot High Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.plRegisters[ptpPort].tsTxSnapHi, txsHigh);} /* end of ixTimeSyncAccPTPPortTransmitSnapshotGet() function *//* Get UUID High (16-bit value) & Sequence ID (16-bit value) of PTP message */PRIVATE IXP400_TIMESYNCACC_INLINE voidixTimeSyncAccPTPMsgUuidSeqIdGet ( UINT32 ptpPort, UINT32 *uuidLow, UINT16 *uuidHigh, UINT16 *seqId){ /* Local variables */ UINT32 seqIdUuidHigh = 0; /* Fetch the UUID Low Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.plRegisters[ptpPort].tsSrcUUIDLo, uuidLow); /* Fetch the Sequence ID and Source UUID High Register contents */ IXP400_TIMESYNCACC_REG_READ(ixTsRegisters.plRegisters[ptpPort].tsSrcUUIDHi, &seqIdUuidHigh); *seqId = (seqIdUuidHigh >> IXP400_TIMESYNCACC_SID_LOC); *uuidHigh = (IXP400_TIMESYNCACC_LSB_SHORT_MASK & seqIdUuidHigh);} /* end of ixTimeSyncAccPTPMsgUuidHighSeqIdGet() function */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -