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