[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [ARM SMBIOS V1 PATCH 3/6] smbios: pass ram size as a parame
From: |
Wei Huang |
Subject: |
[Qemu-devel] [ARM SMBIOS V1 PATCH 3/6] smbios: pass ram size as a parameter to build smbios tables |
Date: |
Tue, 28 Jul 2015 02:00:12 -0400 |
This patch adds a new parameter, mem_size, to smbios_get_tables()
function. This step is required to make smbios code architecture
independent.
Signed-off-by: Wei Huang <address@hidden>
---
hw/i386/pc.c | 2 +-
hw/i386/smbios.c | 8 ++++----
include/hw/i386/smbios.h | 2 ++
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 34e9133..944d5b1 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -742,7 +742,7 @@ static void pc_build_smbios(FWCfgState *fw_cfg)
array_count++;
}
}
- smbios_get_tables(mem_array, array_count,
+ smbios_get_tables(mem_array, array_count, ram_size,
&smbios_tables, &smbios_tables_len,
&smbios_anchor, &smbios_anchor_len);
g_free(mem_array);
diff --git a/hw/i386/smbios.c b/hw/i386/smbios.c
index 6f715c6..12aee90 100644
--- a/hw/i386/smbios.c
+++ b/hw/i386/smbios.c
@@ -19,10 +19,9 @@
#include "qemu/error-report.h"
#include "sysemu/sysemu.h"
#include "sysemu/cpus.h"
-#include "hw/i386/pc.h"
#include "hw/i386/smbios.h"
#include "hw/loader.h"
-
+#include "exec/cpu-common.h"
/* legacy structures and constants for <= 2.0 machines */
struct smbios_header {
@@ -649,7 +648,7 @@ static void smbios_build_type_4_table(unsigned instance)
#define MAX_T16_STD_SZ 0x80000000 /* 2T in Kilobytes */
-static void smbios_build_type_16_table(unsigned dimm_cnt)
+static void smbios_build_type_16_table(unsigned dimm_cnt, ram_addr_t ram_size)
{
uint64_t size_kb;
@@ -833,6 +832,7 @@ static void smbios_entry_point_setup(void)
void smbios_get_tables(const struct smbios_phys_mem_area *mem_array,
const unsigned int mem_array_size,
+ const ram_addr_t ram_size,
uint8_t **tables, size_t *tables_len,
uint8_t **anchor, size_t *anchor_len)
{
@@ -863,7 +863,7 @@ void smbios_get_tables(const struct smbios_phys_mem_area
*mem_array,
dimm_cnt = QEMU_ALIGN_UP(ram_size, MAX_DIMM_SZ) / MAX_DIMM_SZ;
- smbios_build_type_16_table(dimm_cnt);
+ smbios_build_type_16_table(dimm_cnt, ram_size);
for (i = 0; i < dimm_cnt; i++) {
smbios_build_type_17_table(i, GET_DIMM_SZ);
diff --git a/include/hw/i386/smbios.h b/include/hw/i386/smbios.h
index 4269aab..e727233 100644
--- a/include/hw/i386/smbios.h
+++ b/include/hw/i386/smbios.h
@@ -14,6 +14,7 @@
*/
#include "qemu/option.h"
+#include "exec/cpu-common.h"
#define SMBIOS_MAX_TYPE 127
@@ -31,6 +32,7 @@ void smbios_set_defaults(const char *manufacturer, const char
*product,
uint8_t *smbios_get_table_legacy(size_t *length);
void smbios_get_tables(const struct smbios_phys_mem_area *mem_array,
const unsigned int mem_array_size,
+ const ram_addr_t ram_size,
uint8_t **tables, size_t *tables_len,
uint8_t **anchor, size_t *anchor_len);
--
1.8.3.1
- [Qemu-devel] [ARM SMBIOS V1 PATCH 0/6] SMBIOS Support for ARM, Wei Huang, 2015/07/28
- [Qemu-devel] [ARM SMBIOS V1 PATCH 1/6] smbios: extract x86 smbios building code into a function, Wei Huang, 2015/07/28
- [Qemu-devel] [ARM SMBIOS V1 PATCH 6/6] smbios: implement smbios support for mach-virt, Wei Huang, 2015/07/28
- [Qemu-devel] [ARM SMBIOS V1 PATCH 5/6] smbios: add smbios 3.0 support, Wei Huang, 2015/07/28
- [Qemu-devel] [ARM SMBIOS V1 PATCH 3/6] smbios: pass ram size as a parameter to build smbios tables,
Wei Huang <=
- [Qemu-devel] [ARM SMBIOS V1 PATCH 2/6] smbios: remove dependency on x86 e820 tables, Wei Huang, 2015/07/28
- [Qemu-devel] [ARM SMBIOS V1 PATCH 4/6] smbios: move smbios code into a common folder, Wei Huang, 2015/07/28