]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2DeviceRefCodePkg/AcpiTablesPCAT/Madt/Madt.h
BaseTools: Remove unused code from Misc
[mirror_edk2.git] / Vlv2DeviceRefCodePkg / AcpiTablesPCAT / Madt / Madt.h
CommitLineData
3cbfba02
DW
1/*++\r
2\r
3Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
4\r
5 This program and the accompanying materials are licensed and made available under\r
6 the terms and conditions of the BSD License that accompanies this distribution.\r
7 The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php.\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13\r
14Module Name:\r
15\r
16 Madt.h\r
17\r
18Abstract:\r
19\r
20 This file describes the contents of the ACPI Multiple APIC Description\r
21 Table (MADT). Some additional ACPI values are defined in Acpi1_0.h and\r
22 Acpi2_0.h.\r
23 To make changes to the MADT, it is necessary to update the count for the\r
24 APIC structure being updated, and to modify table found in Madt.c.\r
25\r
26--*/\r
27\r
28#ifndef _MADT_H\r
29#define _MADT_H\r
30\r
31//\r
32// Statements that include other files\r
33//\r
34#include "AcpiTablePlatform.h"\r
35#include <IndustryStandard/Acpi10.h>\r
36#include <IndustryStandard/Acpi20.h>\r
37#include <IndustryStandard/Acpi30.h>\r
38#include "Platform.h"\r
39\r
40//\r
41// MADT Definitions\r
42//\r
43#define EFI_ACPI_OEM_MADT_REVISION 0x00000000\r
44//\r
45// Multiple APIC Flags are defined in AcpiX.0.h\r
46//\r
47#define EFI_ACPI_1_0_MULTIPLE_APIC_FLAGS (EFI_ACPI_1_0_PCAT_COMPAT)\r
48#define EFI_ACPI_2_0_MULTIPLE_APIC_FLAGS (EFI_ACPI_2_0_PCAT_COMPAT)\r
49#define EFI_ACPI_3_0_MULTIPLE_APIC_FLAGS (EFI_ACPI_3_0_PCAT_COMPAT)\r
50#define EFI_ACPI_4_0_MULTIPLE_APIC_FLAGS (EFI_ACPI_4_0_PCAT_COMPAT)\r
51\r
52//\r
53// Define the number of each table type.\r
54// This is where the table layout is modified.\r
55//\r
56#define EFI_ACPI_PROCESSOR_LOCAL_APIC_COUNT MAX_CPU_NUM\r
57#define EFI_ACPI_LOCAL_APIC_NMI_COUNT MAX_CPU_NUM\r
58#define EFI_ACPI_IO_APIC_COUNT 1\r
59#define EFI_ACPI_INTERRUPT_SOURCE_OVERRIDE_COUNT 2\r
60#define EFI_ACPI_NON_MASKABLE_INTERRUPT_SOURCE_COUNT 0\r
61#define EFI_ACPI_LOCAL_APIC_ADDRESS_OVERRIDE_COUNT 0\r
62#define EFI_ACPI_IO_SAPIC_COUNT 0\r
63#define EFI_ACPI_PROCESSOR_LOCAL_SAPIC_COUNT 0\r
64#define EFI_ACPI_PLATFORM_INTERRUPT_SOURCES_COUNT 0\r
65\r
66//\r
67// MADT structure\r
68//\r
69//\r
70// Ensure proper structure formats\r
71//\r
72#pragma pack(1)\r
73//\r
74// ACPI 1.0 Table structure\r
75//\r
76typedef struct {\r
77 EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header;\r
78\r
79#if EFI_ACPI_PROCESSOR_LOCAL_APIC_COUNT > 0\r
80 EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE LocalApic[EFI_ACPI_PROCESSOR_LOCAL_APIC_COUNT];\r
81#endif\r
82\r
83#if EFI_ACPI_IO_APIC_COUNT > 0\r
84 EFI_ACPI_1_0_IO_APIC_STRUCTURE IoApic[EFI_ACPI_IO_APIC_COUNT];\r
85#endif\r
86\r
87#if EFI_ACPI_INTERRUPT_SOURCE_OVERRIDE_COUNT > 0\r
88 EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE Iso[EFI_ACPI_INTERRUPT_SOURCE_OVERRIDE_COUNT];\r
89#endif\r
90\r
91#if EFI_ACPI_NON_MASKABLE_INTERRUPT_SOURCE_COUNT > 0\r
92 EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE NmiSource[EFI_ACPI_NON_MASKABLE_INTERRUPT_SOURCE_COUNT];\r
93#endif\r
94\r
95#if EFI_ACPI_LOCAL_APIC_NMI_COUNT > 0\r
96 EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE LocalApicNmi[EFI_ACPI_LOCAL_APIC_NMI_COUNT];\r
97#endif\r
98\r
99#if EFI_ACPI_LOCAL_APIC_ADDRESS_OVERRIDE_COUNT > 0\r
100 EFI_ACPI_1_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE LocalApicOverride[EFI_ACPI_LOCAL_APIC_ADDRESS_OVERRIDE_COUNT];\r
101#endif\r
102\r
103} EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE;\r
104\r
105//\r
106// ACPI 2.0 Table structure\r
107//\r
108typedef struct {\r
109 EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header;\r
110\r
111#if EFI_ACPI_PROCESSOR_LOCAL_APIC_COUNT > 0\r
112 EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE LocalApic[EFI_ACPI_PROCESSOR_LOCAL_APIC_COUNT];\r
113#endif\r
114\r
115#if EFI_ACPI_IO_APIC_COUNT > 0\r
116 EFI_ACPI_2_0_IO_APIC_STRUCTURE IoApic[EFI_ACPI_IO_APIC_COUNT];\r
117#endif\r
118\r
119#if EFI_ACPI_INTERRUPT_SOURCE_OVERRIDE_COUNT > 0\r
120 EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE Iso[EFI_ACPI_INTERRUPT_SOURCE_OVERRIDE_COUNT];\r
121#endif\r
122\r
123#if EFI_ACPI_NON_MASKABLE_INTERRUPT_SOURCE_COUNT > 0\r
124 EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE NmiSource[EFI_ACPI_NON_MASKABLE_INTERRUPT_SOURCE_COUNT];\r
125#endif\r
126\r
127#if EFI_ACPI_LOCAL_APIC_NMI_COUNT > 0\r
128 EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE LocalApicNmi[EFI_ACPI_LOCAL_APIC_NMI_COUNT];\r
129#endif\r
130\r
131#if EFI_ACPI_LOCAL_APIC_ADDRESS_OVERRIDE_COUNT > 0\r
132 EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE LocalApicOverride[EFI_ACPI_LOCAL_APIC_ADDRESS_OVERRIDE_COUNT];\r
133#endif\r
134\r
135#if EFI_ACPI_IO_SAPIC_COUNT > 0\r
136 EFI_ACPI_2_0_IO_SAPIC_STRUCTURE IoSapic[EFI_ACPI_IO_SAPIC_COUNT];\r
137#endif\r
138\r
139#if EFI_ACPI_PROCESSOR_LOCAL_SAPIC_COUNT > 0\r
140 EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE LocalSapic[EFI_ACPI_PROCESSOR_LOCAL_SAPIC_COUNT];\r
141#endif\r
142\r
143#if EFI_ACPI_PLATFORM_INTERRUPT_SOURCES_COUNT > 0\r
144 EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE PlatformInterruptSources[EFI_ACPI_PLATFORM_INTERRUPT_SOURCES_COUNT];\r
145#endif\r
146\r
147} EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE;\r
148\r
149//\r
150// ACPI 3.0 Table structure\r
151//\r
152typedef struct {\r
153 EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header;\r
154\r
155#if EFI_ACPI_PROCESSOR_LOCAL_APIC_COUNT > 0 // Type 0x00\r
156 EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE LocalApic[EFI_ACPI_PROCESSOR_LOCAL_APIC_COUNT];\r
157#endif\r
158\r
159#if EFI_ACPI_IO_APIC_COUNT > 0 // Type 0x01\r
160 EFI_ACPI_3_0_IO_APIC_STRUCTURE IoApic[EFI_ACPI_IO_APIC_COUNT];\r
161#endif\r
162\r
163#if EFI_ACPI_INTERRUPT_SOURCE_OVERRIDE_COUNT > 0 // Type 0x02\r
164 EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE Iso[EFI_ACPI_INTERRUPT_SOURCE_OVERRIDE_COUNT];\r
165#endif\r
166\r
167#if EFI_ACPI_NON_MASKABLE_INTERRUPT_SOURCE_COUNT > 0 // Type 0x03\r
168 EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE NmiSource[EFI_ACPI_NON_MASKABLE_INTERRUPT_SOURCE_COUNT];\r
169#endif\r
170\r
171#if EFI_ACPI_LOCAL_APIC_NMI_COUNT > 0 // Type 0x04\r
172 EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE LocalApicNmi[EFI_ACPI_LOCAL_APIC_NMI_COUNT];\r
173#endif\r
174\r
175#if EFI_ACPI_LOCAL_APIC_ADDRESS_OVERRIDE_COUNT > 0 // Type 0x05\r
176 EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE LocalApicOverride[EFI_ACPI_LOCAL_APIC_ADDRESS_OVERRIDE_COUNT];\r
177#endif\r
178\r
179#if EFI_ACPI_IO_SAPIC_COUNT > 0 // Type 0x06\r
180 EFI_ACPI_3_0_IO_SAPIC_STRUCTURE IoSapic[EFI_ACPI_IO_SAPIC_COUNT];\r
181#endif\r
182\r
183#if EFI_ACPI_PROCESSOR_LOCAL_SAPIC_COUNT > 0 // Type 0x07 : This table changes in madt 2.0\r
184 EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE LocalSapic[EFI_ACPI_PROCESSOR_LOCAL_SAPIC_COUNT];\r
185#endif\r
186\r
187#if EFI_ACPI_PLATFORM_INTERRUPT_SOURCES_COUNT > 0 // Type 0x08\r
188 EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE PlatformInterruptSources[EFI_ACPI_PLATFORM_INTERRUPT_SOURCES_COUNT];\r
189#endif\r
190\r
191} EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE;\r
192\r
193#pragma pack()\r
194\r
195#endif\r