VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/MdePkg/Include/IndustryStandard/PldmSmbiosTransfer.h

Last change on this file was 101291, checked in by vboxsync, 19 months ago

EFI/FirmwareNew: Make edk2-stable202308 build on all supported platforms (using gcc at least, msvc not tested yet), bugref:4643

  • Property svn:eol-style set to native
File size: 5.5 KB
Line 
1/** @file
2
3 The definitions of DMTF Platform Level Data Model (PLDM)
4 SMBIOS Transfer Specification.
5
6 Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
7 SPDX-License-Identifier: BSD-2-Clause-Patent
8
9 @par Revision Reference:
10 DMTF Platform Level Data Model (PLDM) SMBIOS Transfer Specification
11 Version 1.0.1
12 https://www.dmtf.org/sites/default/files/standards/documents/DSP0246_1.0.1.pdf
13
14**/
15
16#ifndef PLDM_SMBIOS_TRANSFER_H_
17#define PLDM_SMBIOS_TRANSFER_H_
18
19#include <IndustryStandard/Pldm.h>
20
21#pragma pack(1)
22
23///
24/// Smbios-related definitions from PLDM for SMBIOS Transfer
25/// Specification (DMTF DSP0246)
26///
27#define PLDM_GET_SMBIOS_STRUCTURE_TABLE_METADATA_COMMAND_CODE 0x01
28#define PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_COMMAND_CODE 0x02
29#define PLDM_GET_SMBIOS_STRUCTURE_TABLE_COMMAND_CODE 0x03
30#define PLDM_SET_SMBIOS_STRUCTURE_TABLE_COMMAND_CODE 0x04
31#define PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_COMMAND_CODE 0x05
32#define PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_COMMAND_CODE 0x06
33
34///
35/// PLDM SMBIOS transfer command specific completion code.
36///
37#define PLDM_COMPLETION_CODE_INVALID_DATA_TRANSFER_HANDLE 0x80
38#define PLDM_COMPLETION_CODE_INVALID_TRANSFER_OPERATION_FLAG 0x81
39#define PLDM_COMPLETION_CODE_INVALID_TRANSFER_FLAG 0x82
40#define PLDM_COMPLETION_CODE_NO_SMBIOS_STRUCTURE_TABLE_METADATA 0x83
41#define PLDM_COMPLETION_CODE_INVALID_DATA_INTEGRITY_CHECK 0x84
42#define PLDM_COMPLETION_CODE_SMBIOS_STRUCTURE_TABLE_UNAVAILABLE 0x85
43
44///
45/// Get SMBIOS Structure Table Metadata Response.
46///
47typedef struct {
48 UINT8 SmbiosMajorVersion;
49 UINT8 SmbiosMinorVersion;
50 UINT16 MaximumStructureSize;
51 UINT16 SmbiosStructureTableLength;
52 UINT16 NumberOfSmbiosStructures;
53 UINT32 SmbiosStructureTableIntegrityChecksum;
54} PLDM_SMBIOS_STRUCTURE_TABLE_METADATA;
55
56typedef struct {
57 PLDM_RESPONSE_HEADER ResponseHeader;
58 PLDM_SMBIOS_STRUCTURE_TABLE_METADATA SmbiosStructureTableMetadata;
59} PLDM_GET_SMBIOS_STRUCTURE_TABLE_METADATA_RESPONSE_FORMAT;
60
61///
62/// Set SMBIOS Structure Table Metadata Request.
63///
64typedef struct {
65 PLDM_REQUEST_HEADER RequestHeader;
66 PLDM_SMBIOS_STRUCTURE_TABLE_METADATA SmbiosStructureTableMetadata;
67} PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_REQUEST_FORMAT;
68
69///
70/// Set SMBIOS Structure Table Metadata Response.
71///
72typedef struct {
73 PLDM_RESPONSE_HEADER ResponseHeader;
74} PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_RESPONSE_FORMAT;
75
76///
77/// Get SMBIOS Structure Table Request.
78///
79typedef struct {
80 UINT32 DataTransferHandle;
81 UINT8 TransferOperationFlag;
82} PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST;
83
84typedef struct {
85 PLDM_REQUEST_HEADER RequestHeader;
86 PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST GetSmbiosStructureTableRequest;
87} PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST_FORMAT;
88
89///
90/// Get SMBIOS Structure Table Response.
91///
92typedef struct {
93 UINT32 NextDataTransferHandle;
94 UINT8 TransferFlag;
95 UINT8 Table[0];
96} PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE;
97
98typedef struct {
99 PLDM_RESPONSE_HEADER ResponseHeader;
100 PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE GetSmbiosStructureTableResponse;
101} PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE_FORMAT;
102
103///
104/// Set SMBIOS Structure Table Request.
105///
106typedef struct {
107 UINT32 DataTransferHandle;
108 UINT8 TransferFlag;
109 UINT8 Table[0];
110} PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST;
111
112typedef struct {
113 PLDM_REQUEST_HEADER RequestHeader;
114 PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST SetSmbiosStructureTableRequest;
115} PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST_FORMAT;
116
117///
118/// Set SMBIOS Structure Table Response.
119///
120typedef struct {
121 PLDM_RESPONSE_HEADER ResponseHeader;
122 UINT32 NextDataTransferHandle;
123} PLDM_SET_SMBIOS_STRUCTURE_TABLE_RESPONSE_FORMAT;
124
125///
126/// Get SMBIOS Structure by Type Request.
127///
128typedef struct {
129 UINT32 DataTransferHandle;
130 UINT8 TransferOperationFlag;
131 UINT8 Type;
132 UINT16 StructureInstanceId;
133} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST;
134
135typedef struct {
136 PLDM_REQUEST_HEADER RequestHeader;
137 PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST GetSmbiosStructureByTypeRequest;
138} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST_FORMAT;
139
140///
141/// Get SMBIOS Structure by Type Response.
142///
143typedef struct {
144 UINT32 NextDataTransferHandle;
145 UINT8 TransferFlag;
146 UINT8 Table[0];
147} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE;
148
149typedef struct {
150 PLDM_RESPONSE_HEADER ResponseHeader;
151 PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE GetSmbiosStructureByTypeResponse;
152} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE_FORMAT;
153
154///
155/// Get SMBIOS Structure by Handle Request.
156///
157typedef struct {
158 UINT32 DataTransferHandle;
159 UINT8 TransferOperationFlag;
160 UINT16 Handle;
161} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST;
162
163typedef struct {
164 PLDM_REQUEST_HEADER RequestHeader;
165 PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST GetSmbiosStructureByHandleRequest;
166} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST_FORMAT;
167
168///
169/// Get SMBIOS Structure by Handle Response.
170///
171typedef struct {
172 UINT32 NextDataTransferHandle;
173 UINT8 TransferFlag;
174 UINT8 Table[0];
175} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE;
176
177typedef struct {
178 PLDM_RESPONSE_HEADER ResponseHeader;
179 PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE GetSmbiosStructureByTypeResponse;
180} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE_FORMAT;
181#pragma pack()
182
183#endif // PLDM_SMBIOS_TRANSFER_H_
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette