]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Drivers/ArmGic/ArmGicDxe.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / ArmPkg / Drivers / ArmGic / ArmGicDxe.h
CommitLineData
69b5dc9f
OM
1/*++\r
2\r
b0393756 3Copyright (c) 2013-2017, ARM Ltd. All rights reserved.<BR>\r
69b5dc9f 4\r
4059386c 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
69b5dc9f
OM
6\r
7--*/\r
8\r
cc15a619
PG
9#ifndef ARM_GIC_DXE_H_\r
10#define ARM_GIC_DXE_H_\r
69b5dc9f 11\r
f5241b57 12#include <Library/ArmGicLib.h>\r
69b5dc9f
OM
13#include <Library/ArmLib.h>\r
14#include <Library/DebugLib.h>\r
f5241b57 15#include <Library/IoLib.h>\r
69b5dc9f
OM
16#include <Library/MemoryAllocationLib.h>\r
17#include <Library/UefiBootServicesTableLib.h>\r
61a7b0ec 18#include <Library/UefiLib.h>\r
69b5dc9f
OM
19\r
20#include <Protocol/Cpu.h>\r
21#include <Protocol/HardwareInterrupt.h>\r
8659306a 22#include <Protocol/HardwareInterrupt2.h>\r
69b5dc9f 23\r
429309e0 24extern UINTN mGicNumInterrupts;\r
69b5dc9f
OM
25extern HARDWARE_INTERRUPT_HANDLER *gRegisteredInterruptHandlers;\r
26\r
69b5dc9f 27// Common API\r
69b5dc9f
OM
28EFI_STATUS\r
29InstallAndRegisterInterruptService (\r
30 IN EFI_HARDWARE_INTERRUPT_PROTOCOL *InterruptProtocol,\r
8659306a 31 IN EFI_HARDWARE_INTERRUPT2_PROTOCOL *Interrupt2Protocol,\r
429309e0
MK
32 IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler,\r
33 IN EFI_EVENT_NOTIFY ExitBootServicesEvent\r
69b5dc9f
OM
34 );\r
35\r
0458b423
OM
36EFI_STATUS\r
37EFIAPI\r
38RegisterInterruptSource (\r
429309e0
MK
39 IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This,\r
40 IN HARDWARE_INTERRUPT_SOURCE Source,\r
41 IN HARDWARE_INTERRUPT_HANDLER Handler\r
0458b423
OM
42 );\r
43\r
f5241b57 44// GicV2 API\r
f5241b57
OM
45EFI_STATUS\r
46GicV2DxeInitialize (\r
429309e0
MK
47 IN EFI_HANDLE ImageHandle,\r
48 IN EFI_SYSTEM_TABLE *SystemTable\r
f5241b57
OM
49 );\r
50\r
5f81082e 51// GicV3 API\r
5f81082e
OM
52EFI_STATUS\r
53GicV3DxeInitialize (\r
429309e0
MK
54 IN EFI_HANDLE ImageHandle,\r
55 IN EFI_SYSTEM_TABLE *SystemTable\r
5f81082e
OM
56 );\r
57\r
8659306a
AB
58// Shared code\r
59\r
60/**\r
61 Calculate GICD_ICFGRn base address and corresponding bit\r
62 field Int_config[1] of the GIC distributor register.\r
63\r
64 @param Source Hardware source of the interrupt.\r
65 @param RegAddress Corresponding GICD_ICFGRn base address.\r
66 @param Config1Bit Bit number of F Int_config[1] bit in the register.\r
67\r
68 @retval EFI_SUCCESS Source interrupt supported.\r
69 @retval EFI_UNSUPPORTED Source interrupt is not supported.\r
70**/\r
71EFI_STATUS\r
72GicGetDistributorIcfgBaseAndBit (\r
429309e0
MK
73 IN HARDWARE_INTERRUPT_SOURCE Source,\r
74 OUT UINTN *RegAddress,\r
75 OUT UINTN *Config1Bit\r
8659306a
AB
76 );\r
77\r
cc15a619 78#endif // ARM_GIC_DXE_H_\r