]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassCache.h
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Guid / DataHubRecords / DataHubSubClassCache.h
1 /*++
2
3 Copyright (c) 2004, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 DataHubSubClassCache.h
15
16 Abstract:
17
18 Definitions for Cache sub class data records
19
20 Revision History
21
22 --*/
23
24 #ifndef _DATAHUB_SUBCLASS_CACHE_H_
25 #define _DATAHUB_SUBCLASS_CACHE_H_
26
27 #define EFI_CACHE_SUBCLASS_VERSION 0x00010000
28
29 #define EFI_CACHE_SUBCLASS_GUID \
30 { 0x7f0013a7, 0xdc79, 0x4b22, 0x80, 0x99, 0x11, 0xf7, 0x5f, 0xdc, 0x82, 0x9d }
31
32 typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;
33
34 typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;
35
36 typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;
37
38 typedef STRING_REF EFI_CACHE_SOCKET_DATA;
39
40 typedef struct {
41 UINT32 Other :1;
42 UINT32 Unknown :1;
43 UINT32 NonBurst :1;
44 UINT32 Burst :1;
45 UINT32 PipelineBurst :1;
46 UINT32 Asynchronous :1;
47 UINT32 Synchronous :1;
48 UINT32 Reserved :25;
49 } EFI_CACHE_SRAM_TYPE_DATA;
50
51 typedef enum {
52 EfiCacheErrorOther = 1,
53 EfiCacheErrorUnknown = 2,
54 EfiCacheErrorNone = 3,
55 EfiCacheErrorParity = 4,
56 EfiCacheErrorSingleBit = 5,
57 EfiCacheErrorMultiBit = 6
58 } EFI_CACHE_ERROR_TYPE_DATA;
59
60 typedef enum {
61 EfiCacheTypeOther = 1,
62 EfiCacheTypeUnknown = 2,
63 EfiCacheTypeInstruction = 3,
64 EfiCacheTypeData = 4,
65 EfiCacheTypeUnified = 5
66 } EFI_CACHE_TYPE_DATA;
67
68 typedef enum {
69 EfiCacheAssociativityOther = 1,
70 EfiCacheAssociativityUnknown = 2,
71 EfiCacheAssociativityDirectMapped = 3,
72 EfiCacheAssociativity2Way = 4,
73 EfiCacheAssociativity4Way = 5,
74 EfiCacheAssociativityFully = 6,
75 EfiCacheAssociativity8Way = 7,
76 EfiCacheAssociativity16Way = 8,
77 EfiCacheAssociativity24Way = 9
78 } EFI_CACHE_ASSOCIATIVITY_DATA;
79
80 typedef struct {
81 UINT32 Level :3;
82 UINT32 Socketed :1;
83 UINT32 Reserved2 :1;
84 UINT32 Location :2;
85 UINT32 Enable :1;
86 UINT32 OperationalMode :2;
87 UINT32 Reserved1 :22;
88 } EFI_CACHE_CONFIGURATION_DATA;
89
90 #define EFI_CACHE_L1 1
91 #define EFI_CACHE_L2 2
92 #define EFI_CACHE_L3 3
93 #define EFI_CACHE_L4 4
94 #define EFI_CACHE_LMAX EFI_CACHE_L4
95
96 #define EFI_CACHE_SOCKETED 1
97 #define EFI_CACHE_NOT_SOCKETED 0
98
99 typedef enum {
100 EfiCacheInternal = 0,
101 EfiCacheExternal = 1,
102 EfiCacheReserved = 2,
103 EfiCacheUnknown = 3
104 } EFI_CACHE_LOCATION;
105
106 #define EFI_CACHE_ENABLED 1
107 #define EFI_CACHE_DISABLED 0
108
109 typedef enum {
110 EfiCacheWriteThrough = 0,
111 EfiCacheWriteBack = 1,
112 EfiCacheDynamicMode = 2,
113 EfiCacheUnknownMode = 3
114 } EFI_CACHE_OPERATIONAL_MODE;
115
116
117
118 typedef enum {
119 CacheSizeRecordType = 1,
120 MaximumSizeCacheRecordType = 2,
121 CacheSpeedRecordType = 3,
122 CacheSocketRecordType = 4,
123 CacheSramTypeRecordType = 5,
124 CacheInstalledSramTypeRecordType = 6,
125 CacheErrorTypeRecordType = 7,
126 CacheTypeRecordType = 8,
127 CacheAssociativityRecordType = 9,
128 CacheConfigRecordType = 10
129 } EFI_CACHE_VARIABLE_RECORD_TYPE;
130
131
132 typedef union {
133 EFI_CACHE_SIZE_DATA CacheSize;
134 EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;
135 EFI_CACHE_SPEED_DATA CacheSpeed;
136 EFI_CACHE_SOCKET_DATA CacheSocket;
137 EFI_CACHE_SRAM_TYPE_DATA CacheSramType;
138 EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;
139 EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;
140 EFI_CACHE_TYPE_DATA CacheType;
141 EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;
142 EFI_CACHE_CONFIGURATION_DATA CacheConfig;
143 EFI_CACHE_ASSOCIATION_DATA CacheAssociation;
144 } EFI_CACHE_VARIABLE_RECORD;
145
146 typedef struct {
147 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
148 EFI_CACHE_VARIABLE_RECORD VariableRecord;
149 } EFI_CACHE_DATA_RECORD;
150
151
152 #endif