| /* |
| * This file is auto-generated. Modifications will be lost. |
| * |
| * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ |
| * for more information. |
| */ |
| #ifndef __VMCLOCK_ABI_H__ |
| #define __VMCLOCK_ABI_H__ |
| #include <linux/types.h> |
| struct vmclock_abi { |
| __le32 magic; |
| #define VMCLOCK_MAGIC 0x4b4c4356 |
| __le32 size; |
| __le16 version; |
| __u8 counter_id; |
| #define VMCLOCK_COUNTER_ARM_VCNT 0 |
| #define VMCLOCK_COUNTER_X86_TSC 1 |
| #define VMCLOCK_COUNTER_INVALID 0xff |
| __u8 time_type; |
| #define VMCLOCK_TIME_UTC 0 |
| #define VMCLOCK_TIME_TAI 1 |
| #define VMCLOCK_TIME_MONOTONIC 2 |
| #define VMCLOCK_TIME_INVALID_SMEARED 3 |
| #define VMCLOCK_TIME_INVALID_MAYBE_SMEARED 4 |
| __le32 seq_count; |
| __le64 disruption_marker; |
| __le64 flags; |
| #define VMCLOCK_FLAG_TAI_OFFSET_VALID (1 << 0) |
| #define VMCLOCK_FLAG_DISRUPTION_SOON (1 << 1) |
| #define VMCLOCK_FLAG_DISRUPTION_IMMINENT (1 << 2) |
| #define VMCLOCK_FLAG_PERIOD_ESTERROR_VALID (1 << 3) |
| #define VMCLOCK_FLAG_PERIOD_MAXERROR_VALID (1 << 4) |
| #define VMCLOCK_FLAG_TIME_ESTERROR_VALID (1 << 5) |
| #define VMCLOCK_FLAG_TIME_MAXERROR_VALID (1 << 6) |
| #define VMCLOCK_FLAG_TIME_MONOTONIC (1 << 7) |
| __u8 pad[2]; |
| __u8 clock_status; |
| #define VMCLOCK_STATUS_UNKNOWN 0 |
| #define VMCLOCK_STATUS_INITIALIZING 1 |
| #define VMCLOCK_STATUS_SYNCHRONIZED 2 |
| #define VMCLOCK_STATUS_FREERUNNING 3 |
| #define VMCLOCK_STATUS_UNRELIABLE 4 |
| __u8 leap_second_smearing_hint; |
| #define VMCLOCK_SMEARING_STRICT 0 |
| #define VMCLOCK_SMEARING_NOON_LINEAR 1 |
| #define VMCLOCK_SMEARING_UTC_SLS 2 |
| __le16 tai_offset_sec; |
| __u8 leap_indicator; |
| #define VMCLOCK_LEAP_NONE 0x00 |
| #define VMCLOCK_LEAP_PRE_POS 0x01 |
| #define VMCLOCK_LEAP_PRE_NEG 0x02 |
| #define VMCLOCK_LEAP_POS 0x03 |
| #define VMCLOCK_LEAP_POST_POS 0x04 |
| #define VMCLOCK_LEAP_POST_NEG 0x05 |
| __u8 counter_period_shift; |
| __le64 counter_value; |
| __le64 counter_period_frac_sec; |
| __le64 counter_period_esterror_rate_frac_sec; |
| __le64 counter_period_maxerror_rate_frac_sec; |
| __le64 time_sec; |
| __le64 time_frac_sec; |
| __le64 time_esterror_nanosec; |
| __le64 time_maxerror_nanosec; |
| }; |
| #endif |