1 /*++ 2 3 Copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR> 4 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 --*/ 14 15 #ifndef __ARM_GIC_DXE_H__ 16 #define __ARM_GIC_DXE_H__ 17 18 #include <Library/ArmGicLib.h> 19 #include <Library/ArmLib.h> 20 #include <Library/DebugLib.h> 21 #include <Library/IoLib.h> 22 #include <Library/MemoryAllocationLib.h> 23 #include <Library/UefiBootServicesTableLib.h> 24 25 #include <Protocol/Cpu.h> 26 #include <Protocol/HardwareInterrupt.h> 27 28 extern UINTN mGicNumInterrupts; 29 extern HARDWARE_INTERRUPT_HANDLER *gRegisteredInterruptHandlers; 30 31 // 32 // Common API 33 // 34 EFI_STATUS 35 InstallAndRegisterInterruptService ( 36 IN EFI_HARDWARE_INTERRUPT_PROTOCOL *InterruptProtocol, 37 IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler, 38 IN EFI_EVENT_NOTIFY ExitBootServicesEvent 39 ); 40 41 EFI_STATUS 42 EFIAPI 43 RegisterInterruptSource ( 44 IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, 45 IN HARDWARE_INTERRUPT_SOURCE Source, 46 IN HARDWARE_INTERRUPT_HANDLER Handler 47 ); 48 49 // 50 // GicV2 API 51 // 52 EFI_STATUS 53 GicV2DxeInitialize ( 54 IN EFI_HANDLE ImageHandle, 55 IN EFI_SYSTEM_TABLE *SystemTable 56 ); 57 58 // 59 // GicV3 API 60 // 61 EFI_STATUS 62 GicV3DxeInitialize ( 63 IN EFI_HANDLE ImageHandle, 64 IN EFI_SYSTEM_TABLE *SystemTable 65 ); 66 67 #endif 68