/*++ Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent Module Name: MiscSubclassDriver.h Abstract: Header file for MiscSubclass Driver. **/ #ifndef _MISC_SUBCLASS_DRIVER_H #define _MISC_SUBCLASS_DRIVER_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // // Data table entry update function. // typedef EFI_STATUS (EFIAPI EFI_MISC_SMBIOS_DATA_FUNCTION) ( IN VOID *RecordData, IN EFI_SMBIOS_PROTOCOL *Smbios ); // // Data table entry definition. // typedef struct { // // intermediat input data for SMBIOS record // VOID *RecordData; EFI_MISC_SMBIOS_DATA_FUNCTION *Function; } EFI_MISC_SMBIOS_DATA_TABLE; // // Data Table extern definitions. // #define MISC_SMBIOS_TABLE_EXTERNS(NAME1, NAME2, NAME3) \ extern NAME1 NAME2 ## Data; \ extern EFI_MISC_SMBIOS_DATA_FUNCTION NAME3 ## Function // // Data Table entries // #define MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2) \ { \ & NAME1 ## Data, \ & NAME2 ## Function \ } // // Global definition macros. // #define MISC_SMBIOS_TABLE_DATA(NAME1, NAME2) \ NAME1 NAME2 ## Data #define MISC_SMBIOS_TABLE_FUNCTION(NAME2) \ EFI_STATUS EFIAPI NAME2 ## Function( \ IN VOID *RecordData, \ IN EFI_SMBIOS_PROTOCOL *Smbios \ ) // // Data Table Array // extern EFI_MISC_SMBIOS_DATA_TABLE mMiscSubclassDataTable[]; // // Data Table Array Entries // extern UINTN mMiscSubclassDataTableEntries; extern UINT8 MiscSubclassStrings[]; extern EFI_HII_HANDLE mHiiHandle; /** Add an SMBIOS record. @param Smbios The EFI_SMBIOS_PROTOCOL instance. @param SmbiosHandle A unique handle will be assigned to the SMBIOS record. @param Record The data for the fixed portion of the SMBIOS record. The format of the record is determined by EFI_SMBIOS_TABLE_HEADER.Type. The size of the formatted area is defined by EFI_SMBIOS_TABLE_HEADER.Length and either followed by a double-null (0x0000) or a set of null terminated strings and a null. @retval EFI_SUCCESS Record was added. @retval EFI_OUT_OF_RESOURCES Record was not added due to lack of system resources. **/ EFI_STATUS AddSmbiosRecord ( IN EFI_SMBIOS_PROTOCOL *Smbios, OUT EFI_SMBIOS_HANDLE *SmbiosHandle, IN EFI_SMBIOS_TABLE_HEADER *Record ); #endif /* _MISC_SUBCLASS_DRIVER_H */ /* eof - MiscSubclassDriver.h */