1 /** @file
2 
3   Copyright (c) 2008 - 2009, Apple Inc. 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_V7_LIB_H__
16 #define __ARM_V7_LIB_H__
17 
18 #define ID_MMFR0_SHARELVL_SHIFT       12
19 #define ID_MMFR0_SHARELVL_MASK       0xf
20 #define ID_MMFR0_SHARELVL_ONE          0
21 #define ID_MMFR0_SHARELVL_TWO          1
22 
23 #define ID_MMFR0_INNERSHR_SHIFT       28
24 #define ID_MMFR0_INNERSHR_MASK       0xf
25 #define ID_MMFR0_OUTERSHR_SHIFT        8
26 #define ID_MMFR0_OUTERSHR_MASK       0xf
27 
28 #define ID_MMFR0_SHR_IMP_UNCACHED      0
29 #define ID_MMFR0_SHR_IMP_HW_COHERENT   1
30 #define ID_MMFR0_SHR_IGNORED         0xf
31 
32 typedef VOID (*ARM_V7_CACHE_OPERATION)(UINT32);
33 
34 VOID
35 ArmV7AllDataCachesOperation (
36   IN  ARM_V7_CACHE_OPERATION  DataCacheOperation
37   );
38 
39 UINTN
40 EFIAPI
41 ArmReadIdMmfr0 (
42   VOID
43   );
44 
45 BOOLEAN
46 EFIAPI
47 ArmHasMpExtensions (
48   VOID
49   );
50 
51 #endif // __ARM_V7_LIB_H__
52 
53