2 This driver parses the mSmbiosMiscDataTable structure and reports
3 any generated data using SMBIOS protocol.
5 Copyright (c) 2013-2015 Intel Corporation.
7 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 #include "CommonHeader.h"
21 #include "SmbiosMisc.h"
25 // External definitions referenced by Data Table entries.
28 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_BIOS_VENDOR
, MiscBiosVendor
, MiscBiosVendor
);
29 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_MANUFACTURER
, MiscSystemManufacturer
, MiscSystemManufacturer
);
30 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_MANUFACTURER
, MiscBaseBoardManufacturer
, MiscBaseBoardManufacturer
);
31 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_CHASSIS_MANUFACTURER
, MiscChassisManufacturer
, MiscChassisManufacturer
);
32 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_BOOT_INFORMATION_STATUS
, MiscBootInfoStatus
, MiscBootInfoStatus
);
33 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES
, NumberOfInstallableLanguages
, NumberOfInstallableLanguages
);
34 MISC_SMBIOS_TABLE_EXTERNS (EFI_MISC_SYSTEM_OPTION_STRING
, SystemOptionString
, SystemOptionString
);
35 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_ONBOARD_DEVICE
, MiscOnboardDeviceVideo
, MiscOnboardDevice
);
36 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_OEM_STRING
,MiscOemString
, MiscOemString
);
38 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector1
, MiscPortInternalConnectorDesignator
);
39 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector2
, MiscPortInternalConnectorDesignator
);
40 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector3
, MiscPortInternalConnectorDesignator
);
41 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector4
, MiscPortInternalConnectorDesignator
);
42 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector5
, MiscPortInternalConnectorDesignator
);
43 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector6
, MiscPortInternalConnectorDesignator
);
44 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector7
, MiscPortInternalConnectorDesignator
);
45 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector8
, MiscPortInternalConnectorDesignator
);
46 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector9
, MiscPortInternalConnectorDesignator
);
47 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector10
, MiscPortInternalConnectorDesignator
);
48 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector11
, MiscPortInternalConnectorDesignator
);
49 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector12
, MiscPortInternalConnectorDesignator
);
50 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector13
, MiscPortInternalConnectorDesignator
);
51 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR
, MiscPortConnector14
, MiscPortInternalConnectorDesignator
);
52 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot1
, MiscSystemSlotDesignator
);
53 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot2
, MiscSystemSlotDesignator
);
54 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot3
, MiscSystemSlotDesignator
);
55 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot4
, MiscSystemSlotDesignator
);
56 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot5
, MiscSystemSlotDesignator
);
57 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot6
, MiscSystemSlotDesignator
);
58 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot7
, MiscSystemSlotDesignator
);
59 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot8
, MiscSystemSlotDesignator
);
60 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot9
, MiscSystemSlotDesignator
);
61 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot10
, MiscSystemSlotDesignator
);
62 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot11
, MiscSystemSlotDesignator
);
63 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot12
, MiscSystemSlotDesignator
);
64 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot13
, MiscSystemSlotDesignator
);
65 MISC_SMBIOS_TABLE_EXTERNS(EFI_MISC_SYSTEM_SLOT_DESIGNATION
, MiscSystemSlot14
, MiscSystemSlotDesignator
);
71 EFI_MISC_SMBIOS_DATA_TABLE mSmbiosMiscDataTable
[] = {
72 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscBiosVendor
, MiscBiosVendor
),
73 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemManufacturer
, MiscSystemManufacturer
),
74 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscBaseBoardManufacturer
, MiscBaseBoardManufacturer
),
75 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscChassisManufacturer
, MiscChassisManufacturer
),
76 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector1
, MiscPortInternalConnectorDesignator
),
77 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector2
, MiscPortInternalConnectorDesignator
),
78 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector3
, MiscPortInternalConnectorDesignator
),
79 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector4
, MiscPortInternalConnectorDesignator
),
80 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector5
, MiscPortInternalConnectorDesignator
),
81 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector6
, MiscPortInternalConnectorDesignator
),
82 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector7
, MiscPortInternalConnectorDesignator
),
83 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector8
, MiscPortInternalConnectorDesignator
),
84 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector9
, MiscPortInternalConnectorDesignator
),
85 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector10
, MiscPortInternalConnectorDesignator
),
86 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector11
, MiscPortInternalConnectorDesignator
),
87 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector12
, MiscPortInternalConnectorDesignator
),
88 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector13
, MiscPortInternalConnectorDesignator
),
89 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscPortConnector14
, MiscPortInternalConnectorDesignator
),
90 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot1
, MiscSystemSlotDesignator
),
91 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot2
, MiscSystemSlotDesignator
),
92 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot3
, MiscSystemSlotDesignator
),
93 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot4
, MiscSystemSlotDesignator
),
94 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot5
, MiscSystemSlotDesignator
),
95 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot6
, MiscSystemSlotDesignator
),
96 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot7
, MiscSystemSlotDesignator
),
97 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot8
, MiscSystemSlotDesignator
),
98 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot9
, MiscSystemSlotDesignator
),
99 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot10
, MiscSystemSlotDesignator
),
100 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot11
, MiscSystemSlotDesignator
),
101 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot12
, MiscSystemSlotDesignator
),
102 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot13
, MiscSystemSlotDesignator
),
103 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscSystemSlot14
, MiscSystemSlotDesignator
),
104 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscOnboardDeviceVideo
, MiscOnboardDevice
),
105 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscOemString
, MiscOemString
),
106 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(SystemOptionString
, SystemOptionString
),
107 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NumberOfInstallableLanguages
, NumberOfInstallableLanguages
),
108 MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(MiscBootInfoStatus
, MiscBootInfoStatus
)
112 // Number of Data Table entries.
114 UINTN mSmbiosMiscDataTableEntries
=
115 (sizeof mSmbiosMiscDataTable
) / sizeof(EFI_MISC_SMBIOS_DATA_TABLE
);