/** @file ACPI high precision event timer table definition, at www.intel.com Specification name is IA-PC HPET (High Precision Event Timers) Specification. Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _HIGH_PRECISION_EVENT_TIMER_TABLE_H_ #define _HIGH_PRECISION_EVENT_TIMER_TABLE_H_ #include // // Ensure proper structure formats // #pragma pack(1) /// /// HPET Event Timer Block ID described in IA-PC HPET Specification, 3.2.4. /// typedef union { struct { UINT32 Revision : 8; UINT32 NumberOfTimers : 5; UINT32 CounterSize : 1; UINT32 Reserved : 1; UINT32 LegacyRoute : 1; UINT32 VendorId : 16; } Bits; UINT32 Uint32; } EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_BLOCK_ID; /// /// High Precision Event Timer Table header definition. /// typedef struct { EFI_ACPI_DESCRIPTION_HEADER Header; UINT32 EventTimerBlockId; EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE BaseAddressLower32Bit; UINT8 HpetNumber; UINT16 MainCounterMinimumClockTickInPeriodicMode; UINT8 PageProtectionAndOemAttribute; } EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER; /// /// HPET Revision (defined in spec) /// #define EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_REVISION 0x01 // // Page protection setting // Values 3 through 15 are reserved for use by the specification // #define EFI_ACPI_NO_PAGE_PROTECTION 0 #define EFI_ACPI_4KB_PAGE_PROTECTION 1 #define EFI_ACPI_64KB_PAGE_PROTECTION 2 #pragma pack() #endif