2 Header file for the SmbiosMisc Driver.
4 Copyright (c) 2013-2015 Intel Corporation.
6 SPDX-License-Identifier: BSD-2-Clause-Patent
11 #ifndef _SMBIOS_MISC_H
12 #define _SMBIOS_MISC_H
14 #include "MiscDevicePath.h"
15 #include <Library/UefiBootServicesTableLib.h>
16 #include <Library/PrintLib.h>
19 /// Reference SMBIOS 2.6, chapter 3.1.3.
20 /// Each text string is limited to 64 significant characters due to system MIF limitations.
22 #define SMBIOS_STRING_MAX_LENGTH 64
23 #define SMBIOS_PORT_CONNECTOR_MAX_NUM 14
26 CHAR16 PortInternalConnectorDesignator
[SMBIOS_STRING_MAX_LENGTH
];
27 CHAR16 PortExternalConnectorDesignator
[SMBIOS_STRING_MAX_LENGTH
];
28 UINT8 PortInternalConnectorType
;
29 UINT8 PortExternalConnectorType
;
31 } SMBIOS_PORT_CONNECTOR_DESIGNATOR
;
34 UINT8 SMBIOSConnectorNumber
;
35 SMBIOS_PORT_CONNECTOR_DESIGNATOR SMBIOSPortConnector
[SMBIOS_PORT_CONNECTOR_MAX_NUM
];
36 } SMBIOS_PORT_CONNECTOR_DESIGNATOR_COFNIG
;
38 #define SMBIOS_SYSTEM_SLOT_MAX_NUM 14
41 CHAR16 SlotDesignation
[SMBIOS_STRING_MAX_LENGTH
];
43 UINT8 SlotDataBusWidth
;
47 UINT32 SlotCharacteristics
;
48 } SMBIOS_SLOT_DESIGNATION
;
51 UINT8 SMBIOSSystemSlotNumber
;
52 SMBIOS_SLOT_DESIGNATION SMBIOSSystemSlot
[SMBIOS_SYSTEM_SLOT_MAX_NUM
];
56 // Data table entry update function.
58 typedef EFI_STATUS (EFIAPI EFI_MISC_SMBIOS_DATA_FUNCTION
) (
60 IN EFI_SMBIOS_PROTOCOL
*Smbios
65 // Data table entry definition.
69 // intermediat input data for SMBIOS record
72 EFI_MISC_SMBIOS_DATA_FUNCTION
*Function
;
73 } EFI_MISC_SMBIOS_DATA_TABLE
;
76 // Data Table extern definitions.
78 #define MISC_SMBIOS_DATA_TABLE_POINTER(NAME1) \
82 // Data Table extern definitions.
84 #define MISC_SMBIOS_DATA_TABLE_EXTERNS(NAME1, NAME2) \
85 extern NAME1 NAME2 ## Data
88 // Data and function Table extern definitions.
90 #define MISC_SMBIOS_TABLE_EXTERNS(NAME1, NAME2, NAME3) \
91 extern NAME1 NAME2 ## Data; \
92 extern EFI_MISC_SMBIOS_DATA_FUNCTION NAME3 ## Function
99 #define MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2) \
102 & NAME2 ## Function \
107 // Global definition macros.
109 #define MISC_SMBIOS_TABLE_DATA(NAME1, NAME2) \
112 #define MISC_SMBIOS_TABLE_FUNCTION(NAME2) \
113 EFI_STATUS EFIAPI NAME2 ## Function( \
114 IN VOID *RecordData, \
115 IN EFI_SMBIOS_PROTOCOL *Smbios \
121 extern EFI_MISC_SMBIOS_DATA_TABLE mSmbiosMiscDataTable
[];
124 // Data Table Array Entries
126 extern UINTN mSmbiosMiscDataTableEntries
;
127 extern EFI_HII_HANDLE mHiiHandle
;
132 PiSmbiosMiscEntryPoint (
133 IN EFI_HANDLE ImageHandle
,
134 IN EFI_SYSTEM_TABLE
*SystemTable