]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Include/Library/ArmMmuLib.h
ArmPkg/ArmMmuLib AARCH64: get rid of needless TLB invalidation
[mirror_edk2.git] / ArmPkg / Include / Library / ArmMmuLib.h
1 /** @file
2
3 Copyright (c) 2015 - 2016, Linaro 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_MMU_LIB__
16 #define __ARM_MMU_LIB__
17
18 #include <Uefi/UefiBaseType.h>
19
20 #include <Library/ArmLib.h>
21
22 EFI_STATUS
23 EFIAPI
24 ArmConfigureMmu (
25 IN ARM_MEMORY_REGION_DESCRIPTOR *MemoryTable,
26 OUT VOID **TranslationTableBase OPTIONAL,
27 OUT UINTN *TranslationTableSize OPTIONAL
28 );
29
30 EFI_STATUS
31 EFIAPI
32 ArmSetMemoryRegionNoExec (
33 IN EFI_PHYSICAL_ADDRESS BaseAddress,
34 IN UINT64 Length
35 );
36
37 EFI_STATUS
38 EFIAPI
39 ArmClearMemoryRegionNoExec (
40 IN EFI_PHYSICAL_ADDRESS BaseAddress,
41 IN UINT64 Length
42 );
43
44 EFI_STATUS
45 EFIAPI
46 ArmSetMemoryRegionReadOnly (
47 IN EFI_PHYSICAL_ADDRESS BaseAddress,
48 IN UINT64 Length
49 );
50
51 EFI_STATUS
52 EFIAPI
53 ArmClearMemoryRegionReadOnly (
54 IN EFI_PHYSICAL_ADDRESS BaseAddress,
55 IN UINT64 Length
56 );
57
58 VOID
59 EFIAPI
60 ArmReplaceLiveTranslationEntry (
61 IN UINT64 *Entry,
62 IN UINT64 Value,
63 IN UINT64 RegionStart
64 );
65
66 EFI_STATUS
67 ArmSetMemoryAttributes (
68 IN EFI_PHYSICAL_ADDRESS BaseAddress,
69 IN UINT64 Length,
70 IN UINT64 Attributes
71 );
72
73 #endif