]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c
ArmPkg/ArmLib: clean up library includes
[mirror_edk2.git] / ArmPkg / Library / ArmLib / AArch64 / AArch64Lib.c
CommitLineData
25402f5d
HL
1/** @file\r
2\r
3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
01674afd 4 Portions copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>\r
25402f5d 5\r
4059386c 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
25402f5d
HL
7\r
8**/\r
9\r
b58ec859
AB
10#include <Base.h>\r
11\r
25402f5d 12#include <Library/ArmLib.h>\r
b58ec859
AB
13\r
14#include <Chipset/AArch64.h>\r
15\r
25402f5d
HL
16#include "AArch64Lib.h"\r
17#include "ArmLibPrivate.h"\r
18\r
25402f5d
HL
19VOID\r
20AArch64DataCacheOperation (\r
21 IN AARCH64_CACHE_OPERATION DataCacheOperation\r
22 )\r
23{\r
24 UINTN SavedInterruptState;\r
25\r
26 SavedInterruptState = ArmGetInterruptState ();\r
27 ArmDisableInterrupts();\r
28\r
29 AArch64AllDataCachesOperation (DataCacheOperation);\r
30\r
3b149515 31 ArmDataSynchronizationBarrier ();\r
25402f5d
HL
32\r
33 if (SavedInterruptState) {\r
34 ArmEnableInterrupts ();\r
35 }\r
36}\r
37\r
25402f5d
HL
38VOID\r
39EFIAPI\r
40ArmInvalidateDataCache (\r
41 VOID\r
42 )\r
43{\r
3b149515 44 ArmDataSynchronizationBarrier ();\r
25402f5d
HL
45 AArch64DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay);\r
46}\r
47\r
48VOID\r
49EFIAPI\r
50ArmCleanInvalidateDataCache (\r
51 VOID\r
52 )\r
53{\r
3b149515 54 ArmDataSynchronizationBarrier ();\r
25402f5d
HL
55 AArch64DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay);\r
56}\r
57\r
58VOID\r
59EFIAPI\r
60ArmCleanDataCache (\r
61 VOID\r
62 )\r
63{\r
3b149515 64 ArmDataSynchronizationBarrier ();\r
25402f5d
HL
65 AArch64DataCacheOperation (ArmCleanDataCacheEntryBySetWay);\r
66}\r