]>
Commit | Line | Data |
---|---|---|
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 | |
47 | typedef 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 | |
52 | typedef 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 | |
61 | typedef 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 | |
83 | typedef 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 | |
109 | typedef 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 |