]> git.proxmox.com Git - mirror_edk2.git/blame - DynamicTablesPkg/Include/StandardNameSpaceObjects.h
DynamicTablesPkg: Standard NameSpace Objects
[mirror_edk2.git] / DynamicTablesPkg / Include / StandardNameSpaceObjects.h
CommitLineData
6872900e
SM
1/** @file\r
2\r
3 Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.\r
4\r
5 This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. 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 @par Glossary:\r
14 - Cm or CM - Configuration Manager\r
15 - Obj or OBJ - Object\r
16 - Std or STD - Standard\r
17**/\r
18\r
19#ifndef STANDARD_NAMESPACE_OBJECTS_H_\r
20#define STANDARD_NAMESPACE_OBJECTS_H_\r
21\r
22#include <AcpiTableGenerator.h>\r
23#include <SmbiosTableGenerator.h>\r
24\r
25#pragma pack(1)\r
26\r
27/** A macro defining a reserved zero/NULL token value that\r
28 does not identify any object.\r
29*/\r
30#define CM_NULL_TOKEN 0\r
31\r
32/** A reference token that the Configuration Manager can use\r
33 to identify a Configuration Manager object.\r
34\r
35 This can be used to differentiate between instances of\r
36 objects of the same types. The identification scheme is\r
37 implementation defined and is defined by the Configuration\r
38 Manager.\r
39\r
40 Typically the token is used to identify a specific instance\r
41 from a set of objects in a call to the GetObject()/SetObject(),\r
42 implemented by the Configuration Manager protocol.\r
43\r
44 Note: The token value 0 is reserved for a NULL token and does\r
45 not identify any object.\r
46**/\r
47typedef UINTN CM_OBJECT_TOKEN;\r
48\r
49/** The ESTD_OBJECT_ID enum describes the Object IDs\r
50 in the Standard Namespace.\r
51*/\r
52typedef enum StdObjectID {\r
53 EStdObjCfgMgrInfo = 0x00000000, ///< 0 - Configuration Manager Info\r
54 EStdObjAcpiTableList, ///< 1 - ACPI table Info List\r
55 EStdObjSmbiosTableList, ///< 2 - SMBIOS table Info List\r
56 EStdObjMax\r
57} ESTD_OBJECT_ID;\r
58\r
59/** A structure that describes the Configuration Manager Information.\r
60*/\r
61typedef struct CmStdObjConfigurationManagerInfo {\r
62 /// The Configuration Manager Revision.\r
63 UINT32 Revision;\r
64\r
65 /** The OEM ID. This information is used to\r
66 populate the ACPI table header information.\r
67 */\r
68 UINT8 OemId[6];\r
69} CM_STD_OBJ_CONFIGURATION_MANAGER_INFO;\r
70\r
71/** A structure used to describe the ACPI table generators to be invoked.\r
72\r
73 The AcpiTableData member of this structure may be used to directly provide\r
74 the binary ACPI table data which is required by the following standard\r
75 generators:\r
76 - RAW\r
77 - DSDT\r
78 - SSDT\r
79\r
80 Providing the ACPI table data is optional and depends on the generator\r
81 that is being invoked. If unused, set AcpiTableData to NULL.\r
82*/\r
83typedef struct CmAStdObjAcpiTableInfo {\r
84 /// The signature of the ACPI Table to be installed\r
85 UINT32 AcpiTableSignature;\r
86\r
87 /// The ACPI table revision\r
88 UINT32 AcpiTableRevision;\r
89\r
90 /// The ACPI Table Generator ID\r
91 ACPI_TABLE_GENERATOR_ID TableGeneratorId;\r
92\r
93 /// Optional pointer to the ACPI table data\r
94 EFI_ACPI_DESCRIPTION_HEADER * AcpiTableData;\r
95\r
96} CM_STD_OBJ_ACPI_TABLE_INFO;\r
97\r
98/** A structure used to describe the SMBIOS table generators to be invoked.\r
99\r
100 The SmbiosTableData member of this structure is used to provide\r
101 the SMBIOS table data which is required by the following standard\r
102 generator(s):\r
103 - RAW\r
104\r
105 Providing the SMBIOS table data is optional and depends on the\r
106 generator that is being invoked. If unused, set the SmbiosTableData\r
107 to NULL.\r
108*/\r
109typedef struct CmStdObjSmbiosTableInfo {\r
110 /// The SMBIOS Table Generator ID\r
111 SMBIOS_TABLE_GENERATOR_ID TableGeneratorId;\r
112\r
113 /// Optional pointer to the SMBIOS table data\r
114 SMBIOS_STRUCTURE * SmbiosTableData;\r
115} CM_STD_OBJ_SMBIOS_TABLE_INFO;\r
116\r
117#pragma pack()\r
118\r
119#endif // STANDARD_NAMESPACE_OBJECTS_H_\r