WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] hvmloader: Simplify access to hvm_info_ta

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] hvmloader: Simplify access to hvm_info_table.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 16 Jan 2009 02:50:24 -0800
Delivery-date: Fri, 16 Jan 2009 02:51:24 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1231422545 0
# Node ID f20e5039b168316ef717abc60d3c82a4dc9bf4f2
# Parent  1025a725d45b69be196e02b5c3478feb7df14780
hvmloader: Simplify access to hvm_info_table.

Also require the table to be present.

Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 tools/firmware/hvmloader/acpi/build.c |    4 ++--
 tools/firmware/hvmloader/hvmloader.c  |    4 ++--
 tools/firmware/hvmloader/mp_tables.c  |    4 ++--
 tools/firmware/hvmloader/smbios.c     |    2 +-
 tools/firmware/hvmloader/smp.c        |    2 +-
 tools/firmware/hvmloader/util.c       |   23 ++---------------------
 tools/firmware/hvmloader/util.h       |    6 +++---
 7 files changed, 13 insertions(+), 32 deletions(-)

diff -r 1025a725d45b -r f20e5039b168 tools/firmware/hvmloader/acpi/build.c
--- a/tools/firmware/hvmloader/acpi/build.c     Thu Jan 08 13:37:16 2009 +0000
+++ b/tools/firmware/hvmloader/acpi/build.c     Thu Jan 08 13:49:05 2009 +0000
@@ -150,7 +150,7 @@ static int construct_madt(struct acpi_20
     offset += sizeof(*io_apic);
 
     lapic = (struct acpi_20_madt_lapic *)(io_apic + 1);
-    for ( i = 0; i < get_vcpu_nr(); i++ )
+    for ( i = 0; i < hvm_info->nr_vcpus; i++ )
     {
         memset(lapic, 0, sizeof(*lapic));
         lapic->type    = ACPI_PROCESSOR_LOCAL_APIC;
@@ -201,7 +201,7 @@ static int construct_secondary_tables(ui
     uint16_t *tis_hdr;
 
     /* MADT. */
-    if ( (get_vcpu_nr() > 1) || get_apic_mode() )
+    if ( (hvm_info->nr_vcpus > 1) || hvm_info->apic_mode )
     {
         madt = (struct acpi_20_madt *)&buf[offset];
         offset += construct_madt(madt);
diff -r 1025a725d45b -r f20e5039b168 tools/firmware/hvmloader/hvmloader.c
--- a/tools/firmware/hvmloader/hvmloader.c      Thu Jan 08 13:37:16 2009 +0000
+++ b/tools/firmware/hvmloader/hvmloader.c      Thu Jan 08 13:49:05 2009 +0000
@@ -604,7 +604,7 @@ int main(void)
     apic_setup();
     pci_setup();
 
-    if ( (get_vcpu_nr() > 1) || get_apic_mode() )
+    if ( (hvm_info->nr_vcpus > 1) || hvm_info->apic_mode )
         create_mp_tables();
 
     switch ( virtual_vga )
@@ -640,7 +640,7 @@ int main(void)
     option_rom_phys_addr = etherboot_phys_addr + etherboot_sz;
     option_rom_sz = pci_load_option_roms(option_rom_phys_addr);
 
-    if ( get_acpi_enabled() )
+    if ( hvm_info->acpi_enabled )
     {
         printf("Loading ACPI ...\n");
         acpi_build_tables();
diff -r 1025a725d45b -r f20e5039b168 tools/firmware/hvmloader/mp_tables.c
--- a/tools/firmware/hvmloader/mp_tables.c      Thu Jan 08 13:37:16 2009 +0000
+++ b/tools/firmware/hvmloader/mp_tables.c      Thu Jan 08 13:49:05 2009 +0000
@@ -155,7 +155,7 @@ static void fill_mp_config_table(struct 
     int vcpu_nr, i;
     uint8_t checksum;
 
-    vcpu_nr = get_vcpu_nr();
+    vcpu_nr = hvm_info->nr_vcpus;
 
     /* fill in the MP configuration table signature, "PCMP" */
     mpct->signature[0] = 'P';
@@ -317,7 +317,7 @@ void create_mp_tables(void)
     char *p;
     int vcpu_nr, i, length;
 
-    vcpu_nr = get_vcpu_nr();
+    vcpu_nr = hvm_info->nr_vcpus;
 
     printf("Creating MP tables ...\n");
 
diff -r 1025a725d45b -r f20e5039b168 tools/firmware/hvmloader/smbios.c
--- a/tools/firmware/hvmloader/smbios.c Thu Jan 08 13:37:16 2009 +0000
+++ b/tools/firmware/hvmloader/smbios.c Thu Jan 08 13:49:05 2009 +0000
@@ -229,7 +229,7 @@ hvm_write_smbios_tables(void)
 
     /* SCRATCH_PHYSICAL_ADDRESS is a safe large memory area for scratch. */
     len = write_smbios_tables((void *)SCRATCH_PHYSICAL_ADDRESS,
-                              get_vcpu_nr(), get_memsize(),
+                              hvm_info->nr_vcpus, get_memsize(),
                               uuid, xen_version_str,
                               xen_major_version, xen_minor_version);
     if ( len > SMBIOS_MAXIMUM_SIZE )
diff -r 1025a725d45b -r f20e5039b168 tools/firmware/hvmloader/smp.c
--- a/tools/firmware/hvmloader/smp.c    Thu Jan 08 13:37:16 2009 +0000
+++ b/tools/firmware/hvmloader/smp.c    Thu Jan 08 13:49:05 2009 +0000
@@ -121,7 +121,7 @@ static void boot_cpu(unsigned int cpu)
 
 void smp_initialise(void)
 {
-    unsigned int i, nr_cpus = get_vcpu_nr();
+    unsigned int i, nr_cpus = hvm_info->nr_vcpus;
 
     memcpy((void *)AP_BOOT_EIP, ap_boot_start, ap_boot_end - ap_boot_start);
 
diff -r 1025a725d45b -r f20e5039b168 tools/firmware/hvmloader/util.c
--- a/tools/firmware/hvmloader/util.c   Thu Jan 08 13:37:16 2009 +0000
+++ b/tools/firmware/hvmloader/util.c   Thu Jan 08 13:49:05 2009 +0000
@@ -25,7 +25,6 @@
 #include <stdint.h>
 #include <xen/xen.h>
 #include <xen/memory.h>
-#include <xen/hvm/hvm_info_table.h>
 
 void wrmsr(uint32_t idx, uint64_t v)
 {
@@ -566,7 +565,7 @@ static int validate_hvm_info(struct hvm_
     return (sum == 0);
 }
 
-static struct hvm_info_table *get_hvm_info_table(void)
+struct hvm_info_table *get_hvm_info_table(void)
 {
     static struct hvm_info_table *table;
     struct hvm_info_table *t;
@@ -579,30 +578,12 @@ static struct hvm_info_table *get_hvm_in
     if ( !validate_hvm_info(t) )
     {
         printf("Bad hvm info table\n");
-        return NULL;
+        BUG();
     }
 
     table = t;
 
     return table;
-}
-
-int get_vcpu_nr(void)
-{
-    struct hvm_info_table *t = get_hvm_info_table();
-    return (t ? t->nr_vcpus : 1);
-}
-
-int get_acpi_enabled(void)
-{
-    struct hvm_info_table *t = get_hvm_info_table();
-    return (t ? t->acpi_enabled : 1);
-}
-
-int get_apic_mode(void)
-{
-    struct hvm_info_table *t = get_hvm_info_table();
-    return (t ? t->apic_mode : 1);
 }
 
 uint16_t get_cpu_mhz(void)
diff -r 1025a725d45b -r f20e5039b168 tools/firmware/hvmloader/util.h
--- a/tools/firmware/hvmloader/util.h   Thu Jan 08 13:37:16 2009 +0000
+++ b/tools/firmware/hvmloader/util.h   Thu Jan 08 13:49:05 2009 +0000
@@ -3,6 +3,7 @@
 
 #include <stdarg.h>
 #include <stdint.h>
+#include <xen/hvm/hvm_info_table.h>
 
 #undef offsetof
 #define offsetof(t, m) ((unsigned long)&((t *)0)->m)
@@ -103,9 +104,8 @@ static inline void cpu_relax(void)
 })
 
 /* HVM-builder info. */
-int get_vcpu_nr(void);
-int get_acpi_enabled(void);
-int get_apic_mode(void);
+struct hvm_info_table *get_hvm_info_table(void);
+#define hvm_info (get_hvm_info_table())
 
 /* String and memory functions */
 int strcmp(const char *cs, const char *ct);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] hvmloader: Simplify access to hvm_info_table., Xen patchbot-unstable <=