summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h
diff options
context:
space:
mode:
authorElvin Li <elvin.li@intel.com>2015-03-16 02:41:48 +0000
committerli-elvin <li-elvin@Edk2>2015-03-16 02:41:48 +0000
commite63f3308e056bc1f312f417bce7db0c48174bb07 (patch)
tree26805b007d54fc0a26b5ec5beb5a1d8a68ea0318 /MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h
parent09d190dc973b568893ceb2da238f76e33f63dbab (diff)
downloadedk2-platforms-e63f3308e056bc1f312f417bce7db0c48174bb07.tar.xz
MdeModulePkg: Add SMBIOS 64-bit support for SMBIOS 3.0.
Add SMBIOS 64-bit entry point and 64-bit table support for SMBIOS 3.0. Introduce PcdSmbiosEntryPointProvideMethod to produce 32-bit or 64-bit SMBIOS table. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Elvin Li <elvin.li@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17051 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h')
-rw-r--r--MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h
index e81b543672..f87c8de8ca 100644
--- a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h
+++ b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h
@@ -1,7 +1,7 @@
/** @file
This code supports the implementation of the Smbios protocol
-Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -38,6 +38,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
#define SMBIOS_TABLE_MAX_LENGTH 0xFFFF
+//
+// For SMBIOS 3.0, Structure table maximum size in Entry Point structure is DWORD field limited to 0xFFFFFFFF bytes.
+//
+#define SMBIOS_3_0_TABLE_MAX_LENGTH 0xFFFFFFFF
+
#define SMBIOS_INSTANCE_SIGNATURE SIGNATURE_32 ('S', 'B', 'i', 's')
typedef struct {
UINT32 Signature;
@@ -89,6 +94,11 @@ typedef struct {
LIST_ENTRY Link;
EFI_SMBIOS_RECORD_HEADER *RecordHeader;
UINTN RecordSize;
+ //
+ // Indicate which table this record is added to.
+ //
+ BOOLEAN Smbios32BitTable;
+ BOOLEAN Smbios64BitTable;
} EFI_SMBIOS_ENTRY;
#define SMBIOS_ENTRY_FROM_LINK(link) CR (link, EFI_SMBIOS_ENTRY, Link, EFI_SMBIOS_ENTRY_SIGNATURE)
@@ -117,11 +127,16 @@ typedef struct {
/**
Create Smbios Table and installs the Smbios Table to the System Table.
+
+ @param Smbios32BitTable The flag to update 32-bit table.
+ @param Smbios64BitTable The flag to update 64-bit table.
+
**/
VOID
EFIAPI
SmbiosTableConstruction (
- VOID
+ BOOLEAN Smbios32BitTable,
+ BOOLEAN Smbios64BitTable
);
#endif