libptpmgmt 2.0
libptpmgmt library that provides the functionality of linuxptp pmc
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-3.0-or-later
2 SPDX-FileCopyrightText: Copyright © 2021 Erez Geva <ErezGeva2@gmail.com> */
3
13#ifndef __PTPMGMT_C_TYPES_H
14#define __PTPMGMT_C_TYPES_H
15
16#ifdef __PTPMGMT_HAVE_SYS_TYPES_H
17#include <sys/types.h>
18#else
20typedef long ssize_t;
22#endif /* __PTPMGMT_HAVE_SYS_TYPES_H */
23#include "c/mngIds.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#ifndef INT48_MIN
31static const int64_t INT48_MIN = -INT64_C(0x7fffffffffff) - 1;
32#endif
33#ifndef INT48_MAX
35static const int64_t INT48_MAX = INT64_C(0x7fffffffffff);
36#endif
37#ifndef UINT48_MAX
39static const uint64_t UINT48_MAX = UINT64_C(0xffffffffffff);
40#endif
41
43typedef uint8_t Nibble_t;
45typedef uint8_t UInteger8_t;
47typedef uint16_t UInteger16_t;
49typedef uint32_t UInteger32_t;
51typedef uint64_t UInteger48_t;
53static const size_t ptpmgmt_sizeof_UInteger48_t = 6;
55typedef uint64_t UInteger64_t;
57typedef int8_t Integer8_t;
59typedef int16_t Integer16_t;
61typedef int32_t Integer32_t;
63typedef int64_t Integer48_t;
65static const size_t ptpmgmt_sizeof_Integer48_t = 6;
67typedef int64_t Integer64_t;
69typedef uint8_t Octet_t;
71typedef double Float64_t;
73typedef long double float_seconds;
75typedef long double float_nanoseconds;
76
386enum {
388 PTPMGMT_F_LI_61 = (1 << 0),
390 PTPMGMT_F_LI_59 = (1 << 1),
392 PTPMGMT_F_UTCV = (1 << 2),
394 PTPMGMT_F_PTP = (1 << 3),
396 PTPMGMT_F_TTRA = (1 << 4),
399 PTPMGMT_F_FTRA = (1 << 5),
400};
445 uint8_t lengthField;
446 const char *textField;
447};
462
476
481
488
560
561#ifdef __cplusplus
562}
563#endif
564
565#endif /* __PTPMGMT_C_TYPES_H */
Management IDs enumerator.
ptpmgmt_linuxptpTimeStamp_e
Definition types.h:354
@ PTPMGMT_TS_P2P1STEP
Definition types.h:365
@ PTPMGMT_TS_ONESTEP
Definition types.h:363
@ PTPMGMT_TS_LEGACY_HW
Definition types.h:361
@ PTPMGMT_TS_HARDWARE
Definition types.h:359
@ PTPMGMT_TS_SOFTWARE
Definition types.h:356
int64_t Integer48_t
Definition types.h:63
uint16_t UInteger16_t
Definition types.h:47
uint64_t UInteger48_t
Definition types.h:51
ptpmgmt_implementSpecific_e
Definition types.h:329
@ ptpmgmt_linuxptp
Definition types.h:331
@ ptpmgmt_noImplementSpecific
Definition types.h:330
ptpmgmt_linuxptpPowerProfileVersion_e
Definition types.h:370
@ PTPMGMT_IEEE_C37_238_VERSION_NONE
Definition types.h:372
@ PTPMGMT_IEEE_C37_238_VERSION_2011
Definition types.h:374
@ PTPMGMT_IEEE_C37_238_VERSION_2017
Definition types.h:376
ptpmgmt_faultRecord_e
Definition types.h:267
@ ptpmgmt_F_Alert
Definition types.h:269
@ ptpmgmt_F_Error
Definition types.h:271
@ ptpmgmt_F_Warning
Definition types.h:272
@ ptpmgmt_F_Informational
Definition types.h:274
@ ptpmgmt_F_Critical
Definition types.h:270
@ ptpmgmt_F_Emergency
Definition types.h:268
@ ptpmgmt_F_Debug
Definition types.h:275
@ ptpmgmt_F_Notice
Definition types.h:273
ptpmgmt_networkProtocol_e
Definition types.h:227
@ ptpmgmt_IEEE_802_3
Definition types.h:230
@ ptpmgmt_ControlNet
Definition types.h:232
@ ptpmgmt_UDP_IPv6
Definition types.h:229
@ ptpmgmt_UDP_IPv4
Definition types.h:228
@ ptpmgmt_PROFINET
Definition types.h:233
@ ptpmgmt_DeviceNet
Definition types.h:231
ptpmgmt_MNG_PARSE_ERROR_e
Definition types.h:78
@ PTPMGMT_MNG_PARSE_ERROR_HEADER
Definition types.h:102
@ PTPMGMT_MNG_PARSE_ERROR_TOO_SMALL
Definition types.h:96
@ PTPMGMT_MNG_PARSE_ERROR_SIZE_MISS
Definition types.h:94
@ PTPMGMT_MNG_PARSE_ERROR_OK
Definition types.h:80
@ PTPMGMT_MNG_PARSE_ERROR_MISMATCH_TLV
Definition types.h:92
@ PTPMGMT_MNG_PARSE_ERROR_MEM
Definition types.h:108
@ PTPMGMT_MNG_PARSE_ERROR_SIG
Definition types.h:84
@ PTPMGMT_MNG_PARSE_ERROR_SIZE
Definition types.h:98
@ PTPMGMT_MNG_PARSE_ERROR_VAL
Definition types.h:100
@ PTPMGMT_MNG_PARSE_ERROR_AUTH
Definition types.h:110
@ PTPMGMT_MNG_PARSE_ERROR_MSG
Definition types.h:82
@ PTPMGMT_MNG_PARSE_ERROR_UNSUPPORT
Definition types.h:106
@ PTPMGMT_MNG_PARSE_ERROR_SMPTE
Definition types.h:86
@ PTPMGMT_MNG_PARSE_ERROR_AUTH_NONE
Definition types.h:112
@ PTPMGMT_MNG_PARSE_ERROR_AUTH_WRONG
Definition types.h:114
@ PTPMGMT_MNG_PARSE_ERROR_AUTH_NOKEY
Definition types.h:116
@ PTPMGMT_MNG_PARSE_ERROR_INVALID_ID
Definition types.h:88
@ PTPMGMT_MNG_PARSE_ERROR_INVALID_TLV
Definition types.h:90
@ PTPMGMT_MNG_PARSE_ERROR_ACTION
Definition types.h:104
uint8_t Nibble_t
Definition types.h:43
uint8_t UInteger8_t
Definition types.h:45
ptpmgmt_MsgParams_RcvAuth_e
Definition types.h:464
@ PTPMGMT_RCV_AUTH_SIG_ALL
Definition types.h:471
@ PTPMGMT_RCV_AUTH_ALL
Definition types.h:472
@ PTPMGMT_RCV_AUTH_MNG
Definition types.h:467
@ PTPMGMT_RCV_AUTH_IGNORE
Definition types.h:474
@ PTPMGMT_RCV_AUTH_NONE
Definition types.h:465
@ PTPMGMT_RCV_AUTH_SIG_LAST
Definition types.h:469
ptpmgmt_pMsgParams ptpmgmt_MsgParams_alloc()
ptpmgmt_msgType_e
Definition types.h:121
@ ptpmgmt_Management
Definition types.h:143
@ ptpmgmt_Pdelay_Resp_Follow_Up
Definition types.h:137
@ ptpmgmt_Announce
Definition types.h:139
@ ptpmgmt_Delay_Req
Definition types.h:126
@ ptpmgmt_Sync
Definition types.h:124
@ ptpmgmt_Signaling
Definition types.h:141
@ ptpmgmt_Pdelay_Resp
Definition types.h:130
@ ptpmgmt_Delay_Resp
Definition types.h:135
@ ptpmgmt_Follow_Up
Definition types.h:133
@ ptpmgmt_Pdelay_Req
Definition types.h:128
ptpmgmt_managementErrorId_e
Definition types.h:206
@ PTPMGMT_GENERAL_ERROR
Definition types.h:213
@ PTPMGMT_WRONG_LENGTH
Definition types.h:209
@ PTPMGMT_NO_SUCH_ID
Definition types.h:208
@ PTPMGMT_NOT_SETABLE
Definition types.h:211
@ PTPMGMT_NOT_SUPPORTED
Definition types.h:212
@ PTPMGMT_WRONG_VALUE
Definition types.h:210
@ PTPMGMT_RESPONSE_TOO_BIG
Definition types.h:207
struct ptpmgmt_MsgParams * ptpmgmt_pMsgParams
Definition types.h:478
ptpmgmt_portState_e
Definition types.h:291
@ PTPMGMT_UNCALIBRATED
Definition types.h:301
@ PTPMGMT_PASSIVE
Definition types.h:300
@ PTPMGMT_FAULTY
Definition types.h:293
@ PTPMGMT_DISABLED
Definition types.h:294
@ PTPMGMT_MASTER
Definition types.h:298
@ PTPMGMT_PRE_TIME_TRANSMITTER
Definition types.h:297
@ PTPMGMT_TIME_TRANSMITTER
Definition types.h:299
@ PTPMGMT_SLAVE
Definition types.h:302
@ PTPMGMT_TIME_RECEIVER
Definition types.h:303
@ PTPMGMT_LISTENING
Definition types.h:295
@ PTPMGMT_PRE_MASTER
Definition types.h:296
@ PTPMGMT_INITIALIZING
Definition types.h:292
uint64_t UInteger64_t
Definition types.h:55
@ PTPMGMT_F_TTRA
Definition types.h:396
@ PTPMGMT_F_FTRA
Definition types.h:399
@ PTPMGMT_F_UTCV
Definition types.h:392
@ PTPMGMT_F_LI_61
Definition types.h:388
@ PTPMGMT_F_PTP
Definition types.h:394
@ PTPMGMT_F_LI_59
Definition types.h:390
ptpmgmt_tlvType_e
Definition types.h:149
@ PTPMGMT_TLV_PAD
Definition types.h:190
@ PTPMGMT_ALTERNATE_TIME_OFFSET_INDICATOR
Definition types.h:167
@ PTPMGMT_ORGANIZATION_EXTENSION
Definition types.h:155
@ PTPMGMT_SLAVE_RX_SYNC_COMPUTED_DATA
Definition types.h:184
@ PTPMGMT_SLAVE_TX_EVENT_TIMESTAMPS
Definition types.h:186
@ PTPMGMT_PATH_TRACE
Definition types.h:165
@ PTPMGMT_MANAGEMENT_ERROR_STATUS
Definition types.h:153
@ PTPMGMT_PROTOCOL_ADDRESS
Definition types.h:180
@ PTPMGMT_L1_SYNC
Definition types.h:176
@ PTPMGMT_ORGANIZATION_EXTENSION_PROPAGATE
Definition types.h:170
@ PTPMGMT_ACKNOWLEDGE_CANCEL_UNICAST_TRANSMISSION
Definition types.h:163
@ PTPMGMT_MANAGEMENT
Definition types.h:151
@ PTPMGMT_CUMULATIVE_RATE_RATIO
Definition types.h:188
@ PTPMGMT_SLAVE_RX_SYNC_TIMING_DATA
Definition types.h:182
@ PTPMGMT_ORGANIZATION_EXTENSION_DO_NOT_PROPAGATE
Definition types.h:174
@ PTPMGMT_SLAVE_DELAY_TIMING_DATA_NP
Definition types.h:195
@ PTPMGMT_REQUEST_UNICAST_TRANSMISSION
Definition types.h:157
@ PTPMGMT_PORT_COMMUNICATION_AVAILABILITY
Definition types.h:178
@ PTPMGMT_ENHANCED_ACCURACY_METRICS
Definition types.h:172
@ PTPMGMT_AUTHENTICATION
Definition types.h:192
@ PTPMGMT_GRANT_UNICAST_TRANSMISSION
Definition types.h:159
@ PTPMGMT_CANCEL_UNICAST_TRANSMISSION
Definition types.h:161
ptpmgmt_linuxptpUnicastState_e
Definition types.h:379
@ PTPMGMT_UC_HAVE_ANN
Definition types.h:381
@ PTPMGMT_UC_WAIT
Definition types.h:380
@ PTPMGMT_UC_HAVE_SYDY
Definition types.h:383
@ PTPMGMT_UC_NEED_SYDY
Definition types.h:382
long double float_nanoseconds
Definition types.h:75
uint32_t UInteger32_t
Definition types.h:49
int8_t Integer8_t
Definition types.h:57
ptpmgmt_delayMechanism_e
Definition types.h:306
@ PTPMGMT_NO_MECHANISM
Definition types.h:317
@ PTPMGMT_SPECIAL
Definition types.h:324
@ PTPMGMT_E2E
Definition types.h:313
@ PTPMGMT_AUTO
Definition types.h:311
@ PTPMGMT_COMMON_P2P
Definition types.h:322
@ PTPMGMT_P2P
Definition types.h:315
ptpmgmt_SMPTEmasterLockingStatus_e
Definition types.h:334
@ PTPMGMT_SMPTE_LOCKED
Definition types.h:349
@ PTPMGMT_SMPTE_WARM_LOCKING
Definition types.h:348
@ PTPMGMT_SMPTE_NOT_IN_USE
Definition types.h:335
@ PTPMGMT_SMPTE_FREE_RUN
Definition types.h:336
@ PTPMGMT_SMPTE_COLD_LOCKING
Definition types.h:342
uint8_t Octet_t
Definition types.h:69
ptpmgmt_timeSource_e
Definition types.h:278
@ PTPMGMT_GPS
Definition types.h:281
@ PTPMGMT_HAND_SET
Definition types.h:286
@ PTPMGMT_INTERNAL_OSCILLATOR
Definition types.h:288
@ PTPMGMT_NTP
Definition types.h:285
@ PTPMGMT_SERIAL_TIME_CODE
Definition types.h:283
@ PTPMGMT_GNSS
Definition types.h:280
@ PTPMGMT_PTP
Definition types.h:284
@ PTPMGMT_OTHER
Definition types.h:287
@ PTPMGMT_TERRESTRIAL_RADIO
Definition types.h:282
@ PTPMGMT_ATOMIC_CLOCK
Definition types.h:279
int16_t Integer16_t
Definition types.h:59
int32_t Integer32_t
Definition types.h:61
int64_t Integer64_t
Definition types.h:67
ptpmgmt_clockAccuracy_e
Definition types.h:236
@ ptpmgmt_Accurate_within_10ps
Definition types.h:239
@ ptpmgmt_Accurate_within_100ns
Definition types.h:247
@ ptpmgmt_Accurate_within_25ns
Definition types.h:246
@ ptpmgmt_Accurate_within_25ps
Definition types.h:240
@ ptpmgmt_Accurate_within_25ms
Definition types.h:258
@ ptpmgmt_Accurate_within_250ns
Definition types.h:248
@ ptpmgmt_Accurate_within_1ms
Definition types.h:255
@ ptpmgmt_Accurate_within_2_5ns
Definition types.h:244
@ ptpmgmt_Accurate_within_10ns
Definition types.h:245
@ ptpmgmt_Accurate_Unknown
Definition types.h:264
@ ptpmgmt_Accurate_within_250ms
Definition types.h:260
@ ptpmgmt_Accurate_within_2_5ps
Definition types.h:238
@ ptpmgmt_Accurate_within_250us
Definition types.h:254
@ ptpmgmt_Accurate_within_100ms
Definition types.h:259
@ ptpmgmt_Accurate_within_2_5ms
Definition types.h:256
@ ptpmgmt_Accurate_within_100us
Definition types.h:253
@ ptpmgmt_Accurate_within_250ps
Definition types.h:242
@ ptpmgmt_Accurate_more_10s
Definition types.h:263
@ ptpmgmt_Accurate_within_10s
Definition types.h:262
@ ptpmgmt_Accurate_within_1ps
Definition types.h:237
@ ptpmgmt_Accurate_within_1s
Definition types.h:261
@ ptpmgmt_Accurate_within_25us
Definition types.h:252
@ ptpmgmt_Accurate_within_1us
Definition types.h:249
@ ptpmgmt_Accurate_within_10us
Definition types.h:251
@ ptpmgmt_Accurate_within_1ns
Definition types.h:243
@ ptpmgmt_Accurate_within_100ps
Definition types.h:241
@ ptpmgmt_Accurate_within_10ms
Definition types.h:257
@ ptpmgmt_Accurate_within_2_5us
Definition types.h:250
ptpmgmt_clockType_e
Definition types.h:219
@ ptpmgmt_e2eTransparentClock
Definition types.h:223
@ ptpmgmt_ordinaryClock
Definition types.h:220
@ ptpmgmt_boundaryClock
Definition types.h:221
@ ptpmgmt_managementClock
Definition types.h:224
@ ptpmgmt_p2pTransparentClock
Definition types.h:222
const struct ptpmgmt_MsgParams * ptpmgmt_cpMsgParams
Definition types.h:480
long double float_seconds
Definition types.h:73
double Float64_t
Definition types.h:71
ptpmgmt_actionField_e
Definition types.h:198
@ PTPMGMT_RESPONSE
Definition types.h:201
@ PTPMGMT_GET
Definition types.h:199
@ PTPMGMT_SET
Definition types.h:200
@ PTPMGMT_COMMAND
Definition types.h:202
@ PTPMGMT_ACKNOWLEDGE
Definition types.h:203
Definition types.h:458
struct ptpmgmt_PortIdentity_t acceptablePortIdentity
Definition types.h:459
uint8_t alternatePriority1
Definition types.h:460
Definition types.h:411
Octet_t v[8]
Definition types.h:412
Definition types.h:432
uint16_t offsetScaledLogVariance
Definition types.h:435
UInteger8_t clockClass
Definition types.h:433
enum ptpmgmt_clockAccuracy_e clockAccuracy
Definition types.h:434
Definition types.h:449
struct ptpmgmt_PTPText_t faultValue
Definition types.h:454
struct ptpmgmt_Timestamp_t faultTime
Definition types.h:451
enum ptpmgmt_faultRecord_e severityCode
Definition types.h:452
struct ptpmgmt_PTPText_t faultName
Definition types.h:453
uint16_t faultRecordLength
Definition types.h:450
struct ptpmgmt_PTPText_t faultDescription
Definition types.h:455
Definition types.h:550
struct ptpmgmt_ClockQuality_t clockQuality
Definition types.h:552
UInteger8_t priority1
Definition types.h:556
uint8_t selected
Definition types.h:553
UInteger8_t priority2
Definition types.h:557
enum ptpmgmt_linuxptpUnicastState_e portState
Definition types.h:555
struct ptpmgmt_PortIdentity_t portIdentity
Definition types.h:551
struct ptpmgmt_PortAddress_t portAddress
Definition types.h:558
Definition types.h:490
uint8_t boundaryHops
Definition types.h:496
uint8_t transportSpecific
Definition types.h:494
struct ptpmgmt_PortIdentity_t self_id
Definition types.h:502
struct ptpmgmt_PortIdentity_t target
Definition types.h:501
bool sendAuth
Definition types.h:511
bool rcvSignaling
Definition types.h:504
uint8_t minorVersion
Definition types.h:497
uint8_t rcvAuth
Definition types.h:517
void(* removeSigTlv)(ptpmgmt_pMsgParams mp, enum ptpmgmt_tlvType_e type)
Definition types.h:529
size_t(* countSigTlvs)(ptpmgmt_cpMsgParams m)
Definition types.h:542
bool filterSignaling
Definition types.h:505
void(* allowSigTlv)(ptpmgmt_pMsgParams mp, enum ptpmgmt_tlvType_e type)
Definition types.h:523
bool useZeroGet
Definition types.h:503
void(* free)(ptpmgmt_pMsgParams mp)
Definition types.h:547
bool isUnicast
Definition types.h:498
uint8_t domainNumber
Definition types.h:495
enum ptpmgmt_implementSpecific_e implementSpecific
Definition types.h:500
bool(* isSigTlv)(ptpmgmt_cpMsgParams m, enum ptpmgmt_tlvType_e type)
Definition types.h:536
bool rcvSMPTEOrg
Definition types.h:506
Definition types.h:438
const char * textField
Definition types.h:446
uint8_t lengthField
Definition types.h:445
Definition types.h:420
UInteger16_t addressLength
Definition types.h:428
uint8_t * addressField
Definition types.h:429
enum ptpmgmt_networkProtocol_e networkProtocol
Definition types.h:421
Definition types.h:415
struct ptpmgmt_ClockIdentity_t clockIdentity
Definition types.h:416
UInteger16_t portNumber
Definition types.h:417
Definition types.h:402
Integer64_t scaledNanoseconds
Definition types.h:403
Definition types.h:406
UInteger32_t nanosecondsField
Definition types.h:408
UInteger48_t secondsField
Definition types.h:407
__PTPMGMT_NAMESPACE_BEGIN const int64_t INT48_MIN
Definition types.h:24
const int64_t INT48_MAX
Definition types.h:28
const uint64_t UINT48_MAX
Definition types.h:32