Reactos
at master 59 lines 1.3 kB view raw
1#pragma once 2 3// 4// ARM Headers 5// 6#include <internal/arm/ke.h> 7#include <internal/arm/intrin_i.h> 8 9// 10// Versatile Peripherals 11// 12#include <peripherals/pl011.h> 13#include <peripherals/pl190.h> 14#include <peripherals/sp804.h> 15 16#define PRIMARY_VECTOR_BASE 0x00 17 18/* Usage flags */ 19#define IDT_REGISTERED 0x01 20#define IDT_LATCHED 0x02 21#define IDT_INTERNAL 0x11 22#define IDT_DEVICE 0x21 23 24typedef struct _IDTUsageFlags 25{ 26 UCHAR Flags; 27} IDTUsageFlags; 28 29typedef struct 30{ 31 KIRQL Irql; 32 UCHAR BusReleativeVector; 33} IDTUsage; 34 35VOID 36NTAPI 37HalpRegisterVector(IN UCHAR Flags, 38 IN ULONG BusVector, 39 IN ULONG SystemVector, 40 IN KIRQL Irql); 41 42VOID 43NTAPI 44HalpEnableInterruptHandler(IN UCHAR Flags, 45 IN ULONG BusVector, 46 IN ULONG SystemVector, 47 IN KIRQL Irql, 48 IN PVOID Handler, 49 IN KINTERRUPT_MODE Mode); 50 51VOID HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock); 52VOID HalpInitPhase1(VOID); 53 54VOID HalpInitializeInterrupts(VOID); 55VOID HalpInitializeClock(VOID); 56VOID HalpClockInterrupt(VOID); 57VOID HalpProfileInterrupt(VOID); 58 59extern ULONG HalpCurrentTimeIncrement, HalpNextTimeIncrement, HalpNextIntervalCount;