[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] hvmloader: return MPFPS from create_mp_tables()
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1306943247 -3600 # Node ID d943f14c306e7e4e8b5e2ebd81cb6333c667989d # Parent 4f4970d2848df92f7584cf523c705963d172ee30 hvmloader: return MPFPS from create_mp_tables() This is the hook which the mptables hang off, so it is useful to know. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- diff -r 4f4970d2848d -r d943f14c306e tools/firmware/hvmloader/mp_tables.c --- a/tools/firmware/hvmloader/mp_tables.c Wed Jun 01 16:47:04 2011 +0100 +++ b/tools/firmware/hvmloader/mp_tables.c Wed Jun 01 16:47:27 2011 +0100 @@ -260,17 +260,21 @@ } /* create_mp_tables - creates MP tables for the guest based upon config data */ -void create_mp_tables(void *mp_table_base) +unsigned long create_mp_tables(void *_mpfps) { char *p; int vcpu_nr, i, length; + void *base; struct mp_io_intr_entry *mpiie; + struct mp_floating_pointer_struct *mpfps = _mpfps; vcpu_nr = hvm_info->nr_vcpus; printf("Creating MP tables ...\n"); - p = mp_table_base + sizeof(struct mp_config_table); + base = &mpfps[1]; + + p = base + sizeof(struct mp_config_table); for ( i = 0; i < vcpu_nr; i++ ) { @@ -308,14 +312,11 @@ p += sizeof(*mpiie); } - length = p - (char *)mp_table_base; + length = p - (char *)base; - /* find the next 16-byte boundary to place the mp floating pointer */ - while ( (unsigned long)p & 0xF ) - p++; + fill_mp_config_table((struct mp_config_table *)base, length); - fill_mpfps((struct mp_floating_pointer_struct *)p, - (uint32_t)mp_table_base); + fill_mpfps(mpfps, (uint32_t)base); - fill_mp_config_table((struct mp_config_table *)mp_table_base, length); + return (unsigned long)mpfps; } diff -r 4f4970d2848d -r d943f14c306e tools/firmware/hvmloader/util.h --- a/tools/firmware/hvmloader/util.h Wed Jun 01 16:47:04 2011 +0100 +++ b/tools/firmware/hvmloader/util.h Wed Jun 01 16:47:27 2011 +0100 @@ -191,7 +191,7 @@ /* Miscellaneous. */ void cacheattr_init(void); -void create_mp_tables(void *table); +unsigned long create_mp_tables(void *table); int hvm_write_smbios_tables(unsigned long scratch, unsigned long smbios_start, unsigned long smbios_end); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |