+/**\r
+ Field Filling Function for Misc SubClass record type 35 -- Management Device Component.\r
+ \r
+ @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.\r
+ @param Offset Offset of SMBIOS record which RecordData will be filled.\r
+ @param RecordData RecordData buffer will be filled.\r
+ @param RecordDataSize The size of RecordData buffer.\r
+ \r
+ @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.\r
+**/\r
+EFI_STATUS\r
+SmbiosFldMiscType35 (\r
+ IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
+ IN UINT32 Offset,\r
+ IN VOID *RecordData,\r
+ IN UINT32 RecordDataSize\r
+ )\r
+{\r
+ EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION *ManagementDeviceComponent;\r
+ EFI_INTER_LINK_DATA ManagementDeviceLink;\r
+ EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
+ EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;\r
+ \r
+ ManagementDeviceComponent = (EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION *)RecordData;\r
+ CopyMem (\r
+ &ManagementDeviceLink,\r
+ &ManagementDeviceComponent->ManagementDeviceLink,\r
+ sizeof (EFI_INTER_LINK_DATA)\r
+ );\r
+ CopyMem (\r
+ &ManagementDeviceComponentLink,\r
+ &ManagementDeviceComponent->ManagementDeviceComponentLink,\r
+ sizeof (EFI_INTER_LINK_DATA)\r
+ );\r
+ CopyMem (&ManagementDeviceThresholdLink,\r
+ &ManagementDeviceComponent->ManagementDeviceThresholdLink,\r
+ sizeof (EFI_INTER_LINK_DATA)\r
+ );\r
+\r
+ //\r
+ // ManagementDeviceComponentDescription\r
+ //\r
+ SmbiosFldString (\r
+ StructureNode,\r
+ OFFSET_OF (SMBIOS_TABLE_TYPE35, Description),\r
+ &ManagementDeviceComponent->ManagementDeviceComponentDescription,\r
+ 2 // 64 * sizeof(CHAR16)\r
+ );\r
+\r
+ //\r
+ // ManagementDeviceLink\r
+ //\r
+ SmbiosFldInterLink (\r
+ StructureNode,\r
+ (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE35, ManagementDeviceHandle),\r
+ 34, // SMBIOS type 34 - Management Device\r
+ &ManagementDeviceLink,\r
+ &gEfiMiscSubClassGuid\r
+ );\r
+\r
+ //\r
+ // ManagementDeviceComponentLink\r
+ //\r
+ SmbiosFldInterLink (\r
+ StructureNode,\r
+ (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE35, ComponentHandle),\r
+ ManagementDeviceComponent->ComponentType, // SMBIOS type, according to SMBIOS spec, it can be Type 26, 27, 28, 29\r
+ &ManagementDeviceComponentLink,\r
+ &gEfiMiscSubClassGuid\r
+ );\r
+\r
+ //\r
+ // ManagementDeviceThresholdLink\r
+ //\r
+ SmbiosFldInterLink (\r
+ StructureNode,\r
+ (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE35, ThresholdHandle),\r
+ 36, // SMBIOS type 36 - Management Device Threshold Data\r
+ &ManagementDeviceThresholdLink,\r
+ &gEfiMiscSubClassGuid\r
+ );\r
+\r
+ return EFI_SUCCESS;\r
+}\r
+\r