]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c
ArmPkg/ArmLib: move set/way helper functions into private header
[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
10#include <Uefi.h>\r
11#include <Chipset/AArch64.h>\r
12#include <Library/ArmLib.h>\r
13#include <Library/BaseLib.h>\r
14#include <Library/IoLib.h>\r
15#include "AArch64Lib.h"\r
16#include "ArmLibPrivate.h"\r
17\r
25402f5d
HL
18VOID\r
19AArch64DataCacheOperation (\r
20 IN AARCH64_CACHE_OPERATION DataCacheOperation\r
21 )\r
22{\r
23 UINTN SavedInterruptState;\r
24\r
25 SavedInterruptState = ArmGetInterruptState ();\r
26 ArmDisableInterrupts();\r
27\r
28 AArch64AllDataCachesOperation (DataCacheOperation);\r
29\r
3b149515 30 ArmDataSynchronizationBarrier ();\r
25402f5d
HL
31\r
32 if (SavedInterruptState) {\r
33 ArmEnableInterrupts ();\r
34 }\r
35}\r
36\r
25402f5d
HL
37VOID\r
38EFIAPI\r
39ArmInvalidateDataCache (\r
40 VOID\r
41 )\r
42{\r
3b149515 43 ArmDataSynchronizationBarrier ();\r
25402f5d
HL
44 AArch64DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay);\r
45}\r
46\r
47VOID\r
48EFIAPI\r
49ArmCleanInvalidateDataCache (\r
50 VOID\r
51 )\r
52{\r
3b149515 53 ArmDataSynchronizationBarrier ();\r
25402f5d
HL
54 AArch64DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay);\r
55}\r
56\r
57VOID\r
58EFIAPI\r
59ArmCleanDataCache (\r
60 VOID\r
61 )\r
62{\r
3b149515 63 ArmDataSynchronizationBarrier ();\r
25402f5d
HL
64 AArch64DataCacheOperation (ArmCleanDataCacheEntryBySetWay);\r
65}\r