Add definitions for High Precision Event Timer
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in -59m21s
Builds / ExectOS (amd64, release) (push) Successful in -59m22s
Builds / ExectOS (i686, release) (push) Successful in -59m27s
Builds / ExectOS (i686, debug) (push) Successful in -59m25s

This commit is contained in:
2026-04-28 10:48:16 +02:00
parent e2e2b05bc6
commit 3ad10b8b07
4 changed files with 82 additions and 0 deletions

View File

@@ -84,6 +84,25 @@
/* PIC vector definitions */
#define PIC1_VECTOR_SPURIOUS 0x37
/* HPET General Capabilities definitions */
#define HPET_CAPABILITY_64BIT 0x2000
#define HPET_CAPABILITY_LEGACY_REPLACEMENT 0x8000
/* HPET General Configuration definitions */
#define HPET_CONFIG_ENABLE 0x0001
#define HPET_CONFIG_LEGACY_REPLACEMENT 0x0002
/* HPET Timer Configuration definitions */
#define HPET_TIMER_CONFIG_LEVEL_TRIGGERED 0x0002
#define HPET_TIMER_CONFIG_ENABLED 0x0004
#define HPET_TIMER_CONFIG_PERIODIC 0x0008
#define HPET_TIMER_CONFIG_SUPPORTS_PERIODIC 0x0010
#define HPET_TIMER_CONFIG_SUPPORTS_64BIT 0x0020
#define HPET_TIMER_CONFIG_VALUE_ACCUMULATOR 0x0040
#define HPET_TIMER_CONFIG_FORCE_32BIT 0x0100
#define HPET_TIMER_CONFIG_FSB_ENABLED 0x4000
#define HPET_TIMER_CONFIG_SUPPORTS_FSB 0x8000
/* PIT ports definitions */
#define PIT_COMMAND_PORT 0x43
#define PIT_DATA_PORT0 0x40
@@ -438,6 +457,27 @@ typedef union _PIC_I8259_ICW4
UCHAR Bits;
} PIC_I8259_ICW4, *PPIC_I8259_ICW4;
/* HPET Registers structure definition */
typedef struct _HPET_REGISTERS
{
VOLATILE ULONGLONG GeneralCapabilities;
VOLATILE ULONGLONG Reserved0;
VOLATILE ULONGLONG GeneralConfiguration;
VOLATILE ULONGLONG Reserved1;
VOLATILE ULONGLONG GeneralInterruptStatus;
VOLATILE ULONGLONG Reserved2;
VOLATILE ULONGLONG Reserved3[2][12];
VOLATILE ULONGLONG MainCounterValue;
VOLATILE ULONGLONG Reserved4;
struct
{
VOLATILE ULONGLONG Configuration;
VOLATILE ULONGLONG Comparator;
VOLATILE ULONGLONG FsbInterruptRoute;
VOLATILE ULONGLONG Reserved;
} Timers[];
} HPET_REGISTERS, *PHPET_REGISTERS;
typedef struct _TIMER_CAPABILITIES
{
BOOLEAN Arat;

View File

@@ -46,6 +46,7 @@ typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
typedef struct _CPUID_SIGNATURE CPUID_SIGNATURE, *PCPUID_SIGNATURE;
typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
typedef struct _HPET_REGISTERS HPET_REGISTERS, *PHPET_REGISTERS;
typedef struct _IOAPIC_DATA IOAPIC_DATA, *PIOAPIC_DATA;
typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR;
typedef struct _KEXCEPTION_FRAME KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;

View File

@@ -92,6 +92,25 @@
/* PIC vector definitions */
#define PIC1_VECTOR_SPURIOUS 0x37
/* HPET General Capabilities definitions */
#define HPET_CAPABILITY_64BIT 0x2000
#define HPET_CAPABILITY_LEGACY_REPLACEMENT 0x8000
/* HPET General Configuration definitions */
#define HPET_CONFIG_ENABLE 0x0001
#define HPET_CONFIG_LEGACY_REPLACEMENT 0x0002
/* HPET Timer Configuration definitions */
#define HPET_TIMER_CONFIG_LEVEL_TRIGGERED 0x0002
#define HPET_TIMER_CONFIG_ENABLED 0x0004
#define HPET_TIMER_CONFIG_PERIODIC 0x0008
#define HPET_TIMER_CONFIG_SUPPORTS_PERIODIC 0x0010
#define HPET_TIMER_CONFIG_SUPPORTS_64BIT 0x0020
#define HPET_TIMER_CONFIG_VALUE_ACCUMULATOR 0x0040
#define HPET_TIMER_CONFIG_FORCE_32BIT 0x0100
#define HPET_TIMER_CONFIG_FSB_ENABLED 0x4000
#define HPET_TIMER_CONFIG_SUPPORTS_FSB 0x8000
/* PIT ports definitions */
#define PIT_COMMAND_PORT 0x43
#define PIT_DATA_PORT0 0x40
@@ -446,6 +465,27 @@ typedef union _PIC_I8259_ICW4
UCHAR Bits;
} PIC_I8259_ICW4, *PPIC_I8259_ICW4;
/* HPET Registers structure definition */
typedef struct _HPET_REGISTERS
{
VOLATILE ULONGLONG GeneralCapabilities;
VOLATILE ULONGLONG Reserved0;
VOLATILE ULONGLONG GeneralConfiguration;
VOLATILE ULONGLONG Reserved1;
VOLATILE ULONGLONG GeneralInterruptStatus;
VOLATILE ULONGLONG Reserved2;
VOLATILE ULONGLONG Reserved3[2][12];
VOLATILE ULONGLONG MainCounterValue;
VOLATILE ULONGLONG Reserved4;
struct
{
VOLATILE ULONGLONG Configuration;
VOLATILE ULONGLONG Comparator;
VOLATILE ULONGLONG FsbInterruptRoute;
VOLATILE ULONGLONG Reserved;
} Timers[];
} HPET_REGISTERS, *PHPET_REGISTERS;
/* Timer Capabilities */
typedef struct _TIMER_CAPABILITIES
{

View File

@@ -49,6 +49,7 @@ typedef struct _FX_SAVE_AREA FX_SAVE_AREA, *PFX_SAVE_AREA;
typedef struct _FX_SAVE_FORMAT FX_SAVE_FORMAT, *PFX_SAVE_FORMAT;
typedef struct _HARDWARE_LEGACY_PTE HARDWARE_LEGACY_PTE, *PHARDWARE_LEGACY_PTE;
typedef struct _HARDWARE_MODERN_PTE HARDWARE_MODERN_PTE, *PHARDWARE_MODERN_PTE;
typedef struct _HPET_REGISTERS HPET_REGISTERS, *PHPET_REGISTERS;
typedef struct _IOAPIC_DATA IOAPIC_DATA, *PIOAPIC_DATA;
typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR;
typedef struct _KEXCEPTION_FRAME KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;