Files | |
| file | gptpbasetypes.h |
| File contains base datatypes used, as per IEEE 802.1AS Standard Documentation. | |
| file | gptpmasterclock.h |
| file contains gptp master clock related functions. | |
Data Structures | |
| struct | PortIdentity |
| The portIdentity identifies a port of a time-aware system. More... | |
| struct | ClockQuality |
| The clock quality represents quality of clock. More... | |
| struct | UInteger48 |
| 48bit variable, lsb is 32 bits More... | |
| struct | UInteger48m32 |
| 48bit variable, msb is 32 bits More... | |
| struct | UInteger112 |
| UInteger112 (802.1AS, 10.3.2 systemIdentity) More... | |
| struct | UInteger224 |
| UInteger224 (802.1AS, 10.3.4 time-synchronization spanning tree priority vectors ) More... | |
| struct | ScaledNs |
| The ScaledNs type represents signed values of time and time interval in units of 2e-16 ns. More... | |
| struct | UScaledNs |
| The ScaledNs type represents unsigned values of time and time interval in units of 2^-16 ns. More... | |
| struct | TimeInterval |
| struct | Timestamp |
| The Timestamp type represents a positive time with respect to the epoch. More... | |
| struct | ExtendedTimestamp |
| The ExtendTimestamp type represents a positive time with respect to the epoch. The fractionalNanoseconds member is the fractional portion of the timestamp in units of 2^16 ns. More... | |
Functions | |
| int | gptpmasterclock_init (const char *shmem_name) |
| initialize to get gptp clock from tsn_gptp daemon. if previously initialized, it will simply return 0. More... | |
| int | gptpmasterclock_close (void) |
| close gptpmasterclcock More... | |
| int | gptpmasterclock_gm_domainIndex (void) |
| return the domainIndex which is currently used as systeme wide gptp clock. More... | |
| int64_t | gptpmasterclock_getts64 (void) |
| get 64-bit nsec unit ts of system wide gptp clock More... | |
| int | gptpmasterclock_wait_until_ts64 (int64_t tts, int64_t vclose, int64_t toofar) |
| Wait until tts comes. More... | |
| uint64_t | gptpmasterclock_expand_timestamp (uint32_t timestamp) |
| expand 32-bit nsec time to 64 bit with aligning to gptp clock. More... | |
| uint64_t | gptpmasterclock_expand_timestamp_ts64 (uint32_t timestamp, int64_t ts64) |
expand 32-bit nsec time to 64 bit with aligning to gptp clock at the time ts64. More... | |
| int | gptpmasterclock_gmchange_ind (void) |
| get GM change indicator, the number is incremented whenever GM is changed More... | |
| int | gptpmasterclock_get_max_domains (void) |
| get maximum number of domains More... | |
| int | gptpmasterclock_get_domain_ts64 (int64_t *ts64, int domainIndex) |
| get a synchronized clock value on specific domain More... | |
| void | gptpmasterclock_dump_offset (void) |
| print phase offset for all domains More... | |
Typedefs | |
| typedef uint8_t | ClockIdentity[CLOCK_IDENTITY_LENGTH] |
| typedef uint8_t | Nibble |
| Primitive data types specifications for IEEE 802.1AS. All non-primitive data types are derived from the primitive types, signed integers are represented as two's complement form. More... | |
| typedef uint8_t | Octet |
| typedef uint8_t | Octet2[2] |
| typedef uint8_t | Octet3[3] |
| typedef uint8_t | Octet4[4] |
| typedef uint8_t | Enumeration2 |
| typedef uint8_t | Enumeration4 |
| typedef uint8_t | Enumeration8 |
| typedef uint16_t | Enumeration16 |
| typedef uint32_t | Enumeration24 |
| typedef uint8_t | UInteger4 |
Enumerations | |
| enum | TimeSource { ATOMIC_CLOCK = 0x10, GPS = 0x20, TERRESTRIAL_RADIO = 0x30, PTP = 0x40, NTP = 0x50, HAND_SET = 0x60, OTHER = 0x90, INTERNAL_OSCILLATOR = 0xA0 } |
| the type of source of time used by a ClockMaster(802.1AS, 8.6.2.7 timeSource) More... | |
| enum | PTPPortState { DisabledPort = 3, MasterPort = 6, PassivePort = 7, SlavePort = 9 } |
| value of the port state (802.1AS 14.8.3 portState) More... | |
| enum | gmsync_status_t { GMSYNC_UNSYNC =0, GMSYNC_SYNC, GMSYNC_SYNC_STABLE } |
Macros | |
| #define | MAX_PATH_TRACE_N 179 |
| Macro to define maximum path trace. More... | |
| #define | CLOCK_IDENTITY_LENGTH 8 |
| Macro which defines Clock Identity Length. More... | |
| #define | SCALEDNS_FACTOR 0x10000 |
| #define | VALUE_DISABLED 0u |
| #define | VALUE_ENABLED 1u |
| #define MAX_PATH_TRACE_N 179 |
Macro to define maximum path trace.
| #define CLOCK_IDENTITY_LENGTH 8 |
Macro which defines Clock Identity Length.
| #define SCALEDNS_FACTOR 0x10000 |
| #define VALUE_DISABLED 0u |
| #define VALUE_ENABLED 1u |
| typedef uint8_t ClockIdentity[CLOCK_IDENTITY_LENGTH] |
| typedef uint8_t Nibble |
Primitive data types specifications for IEEE 802.1AS. All non-primitive data types are derived from the primitive types, signed integers are represented as two's complement form.
See the following Table
| Data Types | Definition |
|---|---|
| EnumerationN | N-bit enumerated value |
| UIntegerN | N-bit unsigned integer |
| Nibble | 4-bit field not interpreted as a number |
| Octet | 8-bit field not interpreted as a number |
| OctetN | N-octet fiels not interpreted as a number |
| Double | Double precision (64-bit) floating-point vlaue |
| typedef uint8_t Octet |
| typedef uint8_t Octet2[2] |
| typedef uint8_t Octet3[3] |
| typedef uint8_t Octet4[4] |
| typedef uint8_t Enumeration2 |
| typedef uint8_t Enumeration4 |
| typedef uint8_t Enumeration8 |
| typedef uint16_t Enumeration16 |
| typedef uint32_t Enumeration24 |
| typedef uint8_t UInteger4 |
| enum TimeSource |
| enum PTPPortState |
| enum gmsync_status_t |
| int gptpmasterclock_init | ( | const char * | shmem_name | ) |
initialize to get gptp clock from tsn_gptp daemon. if previously initialized, it will simply return 0.
| shmem_name | shared memory node name. set NULL to use the default |
| int gptpmasterclock_close | ( | void | ) |
close gptpmasterclcock
| int gptpmasterclock_gm_domainIndex | ( | void | ) |
return the domainIndex which is currently used as systeme wide gptp clock.
| int64_t gptpmasterclock_getts64 | ( | void | ) |
get 64-bit nsec unit ts of system wide gptp clock
| int gptpmasterclock_wait_until_ts64 | ( | int64_t | tts, |
| int64_t | vclose, | ||
| int64_t | toofar | ||
| ) |
Wait until tts comes.
| tts | target time in nano second unit |
| vclose | nano second unit; treated as very close, and stop waiting even ttv is still in future |
| toofar | nano second unit; treated as too far, and stop waiting |
| uint64_t gptpmasterclock_expand_timestamp | ( | uint32_t | timestamp | ) |
expand 32-bit nsec time to 64 bit with aligning to gptp clock.
| timestamp | timestamp which we are going to convert into 32bit to 64 bit. |
| uint64_t gptpmasterclock_expand_timestamp_ts64 | ( | uint32_t | timestamp, |
| int64_t | ts64 | ||
| ) |
expand 32-bit nsec time to 64 bit with aligning to gptp clock at the time ts64.
| timestamp | timestamp which we are going to convert into 32bit to 64 bit. |
| ts64 | the gptp clock time that the timestamp will be aligned to. |
| int gptpmasterclock_gmchange_ind | ( | void | ) |
get GM change indicator, the number is incremented whenever GM is changed
| int gptpmasterclock_get_max_domains | ( | void | ) |
get maximum number of domains
| int gptpmasterclock_get_domain_ts64 | ( | int64_t * | ts64, |
| int | domainIndex | ||
| ) |
get a synchronized clock value on specific domain
| ts64 | pointer to return clock value |
| domainIndex | domain index number |
| void gptpmasterclock_dump_offset | ( | void | ) |
print phase offset for all domains