// SPDX-License-Identifier: Apache-2.0 // Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org) // Licensed under the Apache License, Version 2.0 (see LICENSE file) // Official repository: https://github.com/ne-foss-org/nekernel #ifndef HPET_CONFIG_H #define HPET_CONFIG_H #include #include namespace Kernel { struct PACKED HPETAddressStructure final { Kernel::UInt8 AddressSpaceId; // 0 - system memory, 1 - system I/O Kernel::UInt8 RegisterBitWidth; Kernel::UInt8 RegisterBitOffset; Kernel::UInt8 Reserved; Kernel::UInt64 Address; }; struct PACKED HPETHeader final : public SDT { Kernel::UInt8 HardwareRevId; Kernel::UInt8 ComparatorCount : 5; Kernel::UInt8 CounterSize : 1; Kernel::UInt8 Reserved : 1; Kernel::UInt8 LegacyReplacement : 1; Kernel::UInt16 PciVendorId; HPETAddressStructure Address; Kernel::UInt8 HpetNumber; Kernel::UInt16 MinimumTick; Kernel::UInt8 PageProtection; }; } // namespace Kernel #endif