]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Drivers/ArmGic/ArmGicDxe.h
ArmPkg: Replace BSD License with BSD+Patent License
[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
9#ifndef __ARM_GIC_DXE_H__\r
10#define __ARM_GIC_DXE_H__\r
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
OM
23\r
24extern UINTN mGicNumInterrupts;\r
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
69b5dc9f
OM
32 IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler,\r
33 IN EFI_EVENT_NOTIFY ExitBootServicesEvent\r
34 );\r
35\r
0458b423
OM
36EFI_STATUS\r
37EFIAPI\r
38RegisterInterruptSource (\r
39 IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This,\r
40 IN HARDWARE_INTERRUPT_SOURCE Source,\r
41 IN HARDWARE_INTERRUPT_HANDLER Handler\r
42 );\r
43\r
f5241b57 44// GicV2 API\r
f5241b57
OM
45EFI_STATUS\r
46GicV2DxeInitialize (\r
47 IN EFI_HANDLE ImageHandle,\r
48 IN EFI_SYSTEM_TABLE *SystemTable\r
49 );\r
50\r
5f81082e 51// GicV3 API\r
5f81082e
OM
52EFI_STATUS\r
53GicV3DxeInitialize (\r
54 IN EFI_HANDLE ImageHandle,\r
55 IN EFI_SYSTEM_TABLE *SystemTable\r
56 );\r
57\r
8659306a
AB
58\r
59// Shared code\r
60\r
61/**\r
62 Calculate GICD_ICFGRn base address and corresponding bit\r
63 field Int_config[1] of the GIC distributor register.\r
64\r
65 @param Source Hardware source of the interrupt.\r
66 @param RegAddress Corresponding GICD_ICFGRn base address.\r
67 @param Config1Bit Bit number of F Int_config[1] bit in the register.\r
68\r
69 @retval EFI_SUCCESS Source interrupt supported.\r
70 @retval EFI_UNSUPPORTED Source interrupt is not supported.\r
71**/\r
72EFI_STATUS\r
73GicGetDistributorIcfgBaseAndBit (\r
74 IN HARDWARE_INTERRUPT_SOURCE Source,\r
75 OUT UINTN *RegAddress,\r
76 OUT UINTN *Config1Bit\r
77 );\r
78\r
69b5dc9f 79#endif\r