/** @file | |
The definitions of DMTF Platform Level Data Model (PLDM) | |
SMBIOS Transfer Specification. | |
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved. | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
@par Revision Reference: | |
DMTF Platform Level Data Model (PLDM) SMBIOS Transfer Specification | |
Version 1.0.1 | |
https://www.dmtf.org/sites/default/files/standards/documents/DSP0246_1.0.1.pdf | |
**/ | |
#ifndef PLDM_SMBIOS_TRANSFER_H_ | |
#define PLDM_SMBIOS_TRANSFER_H_ | |
#include <IndustryStandard/Pldm.h> | |
#pragma pack(1) | |
/// | |
/// Smbios-related definitions from PLDM for SMBIOS Transfer | |
/// Specification (DMTF DSP0246) | |
/// | |
#define PLDM_GET_SMBIOS_STRUCTURE_TABLE_METADATA_COMMAND_CODE 0x01 | |
#define PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_COMMAND_CODE 0x02 | |
#define PLDM_GET_SMBIOS_STRUCTURE_TABLE_COMMAND_CODE 0x03 | |
#define PLDM_SET_SMBIOS_STRUCTURE_TABLE_COMMAND_CODE 0x04 | |
#define PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_COMMAND_CODE 0x05 | |
#define PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_COMMAND_CODE 0x06 | |
/// | |
/// PLDM SMBIOS transfer command specific completion code. | |
/// | |
#define PLDM_COMPLETION_CODE_INVALID_DATA_TRANSFER_HANDLE 0x80 | |
#define PLDM_COMPLETION_CODE_INVALID_TRANSFER_OPERATION_FLAG 0x81 | |
#define PLDM_COMPLETION_CODE_INVALID_TRANSFER_FLAG 0x82 | |
#define PLDM_COMPLETION_CODE_NO_SMBIOS_STRUCTURE_TABLE_METADATA 0x83 | |
#define PLDM_COMPLETION_CODE_INVALID_DATA_INTEGRITY_CHECK 0x84 | |
#define PLDM_COMPLETION_CODE_SMBIOS_STRUCTURE_TABLE_UNAVAILABLE 0x85 | |
/// | |
/// Get SMBIOS Structure Table Metadata Response. | |
/// | |
typedef struct { | |
UINT8 SmbiosMajorVersion; | |
UINT8 SmbiosMinorVersion; | |
UINT16 MaximumStructureSize; | |
UINT16 SmbiosStructureTableLength; | |
UINT16 NumberOfSmbiosStructures; | |
UINT32 SmbiosStructureTableIntegrityChecksum; | |
} PLDM_SMBIOS_STRUCTURE_TABLE_METADATA; | |
typedef struct { | |
PLDM_RESPONSE_HEADER ResponseHeader; | |
PLDM_SMBIOS_STRUCTURE_TABLE_METADATA SmbiosStructureTableMetadata; | |
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_METADATA_RESPONSE_FORMAT; | |
/// | |
/// Set SMBIOS Structure Table Metadata Request. | |
/// | |
typedef struct { | |
PLDM_REQUEST_HEADER RequestHeader; | |
PLDM_SMBIOS_STRUCTURE_TABLE_METADATA SmbiosStructureTableMetadata; | |
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_REQUEST_FORMAT; | |
/// | |
/// Set SMBIOS Structure Table Metadata Response. | |
/// | |
typedef struct { | |
PLDM_RESPONSE_HEADER ResponseHeader; | |
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_RESPONSE_FORMAT; | |
/// | |
/// Get SMBIOS Structure Table Request. | |
/// | |
typedef struct { | |
UINT32 DataTransferHandle; | |
UINT8 TransferOperationFlag; | |
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST; | |
typedef struct { | |
PLDM_REQUEST_HEADER RequestHeader; | |
PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST GetSmbiosStructureTableRequest; | |
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST_FORMAT; | |
/// | |
/// Get SMBIOS Structure Table Response. | |
/// | |
typedef struct { | |
UINT32 NextDataTransferHandle; | |
UINT8 TransferFlag; | |
UINT8 Table[0]; | |
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE; | |
typedef struct { | |
PLDM_RESPONSE_HEADER ResponseHeader; | |
PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE GetSmbiosStructureTableResponse; | |
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE_FORMAT; | |
/// | |
/// Set SMBIOS Structure Table Request. | |
/// | |
typedef struct { | |
UINT32 DataTransferHandle; | |
UINT8 TransferFlag; | |
UINT8 Table[0]; | |
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST; | |
typedef struct { | |
PLDM_REQUEST_HEADER RequestHeader; | |
PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST SetSmbiosStructureTableRequest; | |
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST_FORMAT; | |
/// | |
/// Set SMBIOS Structure Table Response. | |
/// | |
typedef struct { | |
PLDM_RESPONSE_HEADER ResponseHeader; | |
UINT32 NextDataTransferHandle; | |
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_RESPONSE_FORMAT; | |
/// | |
/// Get SMBIOS Structure by Type Request. | |
/// | |
typedef struct { | |
UINT32 DataTransferHandle; | |
UINT8 TransferOperationFlag; | |
UINT8 Type; | |
UINT16 StructureInstanceId; | |
} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST; | |
typedef struct { | |
PLDM_REQUEST_HEADER RequestHeader; | |
PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST GetSmbiosStructureByTypeRequest; | |
} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST_FORMAT; | |
/// | |
/// Get SMBIOS Structure by Type Response. | |
/// | |
typedef struct { | |
UINT32 NextDataTransferHandle; | |
UINT8 TransferFlag; | |
UINT8 Table[0]; | |
} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE; | |
typedef struct { | |
PLDM_RESPONSE_HEADER ResponseHeader; | |
PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE GetSmbiosStructureByTypeResponse; | |
} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE_FORMAT; | |
/// | |
/// Get SMBIOS Structure by Handle Request. | |
/// | |
typedef struct { | |
UINT32 DataTransferHandle; | |
UINT8 TransferOperationFlag; | |
UINT16 Handle; | |
} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST; | |
typedef struct { | |
PLDM_REQUEST_HEADER RequestHeader; | |
PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST GetSmbiosStructureByHandleRequest; | |
} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST_FORMAT; | |
/// | |
/// Get SMBIOS Structure by Handle Response. | |
/// | |
typedef struct { | |
UINT32 NextDataTransferHandle; | |
UINT8 TransferFlag; | |
UINT8 Table[0]; | |
} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE; | |
typedef struct { | |
PLDM_RESPONSE_HEADER ResponseHeader; | |
PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE GetSmbiosStructureByTypeResponse; | |
} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE_FORMAT; | |
#pragma pack() | |
#endif // PLDM_SMBIOS_TRANSFER_H_ |