From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>,
drjones@redhat.com, claudio.fontana@huawei.com,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC 42/47] acpi: make tables linker-loader available to other targets
Date: Mon, 19 Jan 2015 23:54:31 +0200 [thread overview]
Message-ID: <20150119215431.GB11452@redhat.com> (raw)
In-Reply-To: <54BCFA54.50209@redhat.com>
On Mon, Jan 19, 2015 at 01:36:36PM +0100, Paolo Bonzini wrote:
>
>
> On 19/12/2014 03:02, Igor Mammedov wrote:
> > keeping bios-linker-loader.c i386 specific would break build
> > of mips target which is built with CONFIG_ACPI which would
> > dependend on it in following patch that adds acpi_def_block()
> > term. Also UEFI for ARM target is going to use linker as well
> > so it makes sense to move it into generic target independent
> > ACPI part.
>
> Makes sense now that fw_cfg was added "officially" to -M virt.
>
> Paolo
I'm not sure why doesn't git detect this as a move.
Did you also change files at the same time? Please don't: this makes
the patch extremely hard to check. You can use tricks e.g. using the
preprocessor to split move away from code changes.
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > hw/acpi/Makefile.objs | 2 +-
> > hw/acpi/acpi_gen_utils.c | 1 +
> > hw/acpi/bios-linker-loader.c | 157 +++++++++++++++++++++++++++++++++++
> > hw/i386/Makefile.objs | 1 -
> > hw/i386/acpi-build.c | 2 +-
> > hw/i386/bios-linker-loader.c | 157 -----------------------------------
> > hw/i386/bios-linker-loader.h | 27 ------
> > include/hw/acpi/bios-linker-loader.h | 27 ++++++
> > 8 files changed, 187 insertions(+), 187 deletions(-)
> > create mode 100644 hw/acpi/bios-linker-loader.c
> > delete mode 100644 hw/i386/bios-linker-loader.c
> > delete mode 100644 hw/i386/bios-linker-loader.h
> > create mode 100644 include/hw/acpi/bios-linker-loader.h
> >
> > diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs
> > index 4237232..02ca4ed 100644
> > --- a/hw/acpi/Makefile.objs
> > +++ b/hw/acpi/Makefile.objs
> > @@ -1,4 +1,4 @@
> > common-obj-$(CONFIG_ACPI) += core.o piix4.o ich9.o pcihp.o cpu_hotplug.o
> > common-obj-$(CONFIG_ACPI) += memory_hotplug.o
> > common-obj-$(CONFIG_ACPI) += acpi_interface.o
> > -common-obj-$(CONFIG_ACPI) += acpi_gen_utils.o
> > +common-obj-$(CONFIG_ACPI) += acpi_gen_utils.o bios-linker-loader.o
> > diff --git a/hw/acpi/acpi_gen_utils.c b/hw/acpi/acpi_gen_utils.c
> > index 39cbab7..cc2fa03 100644
> > --- a/hw/acpi/acpi_gen_utils.c
> > +++ b/hw/acpi/acpi_gen_utils.c
> > @@ -5,6 +5,7 @@
> > #include <string.h>
> > #include "hw/acpi/acpi_gen_utils.h"
> > #include "qemu/bswap.h"
> > +#include "hw/acpi/bios-linker-loader.h"
> >
> > GArray *build_alloc_array(void)
> > {
> > diff --git a/hw/acpi/bios-linker-loader.c b/hw/acpi/bios-linker-loader.c
> > new file mode 100644
> > index 0000000..5cc4d90
> > --- /dev/null
> > +++ b/hw/acpi/bios-linker-loader.c
> > @@ -0,0 +1,157 @@
> > +/* Dynamic linker/loader of ACPI tables
> > + *
> > + * Copyright (C) 2013 Red Hat Inc
> > + *
> > + * Author: Michael S. Tsirkin <mst@redhat.com>
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > +
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
> > +
> > + * You should have received a copy of the GNU General Public License along
> > + * with this program; if not, see <http://www.gnu.org/licenses/>.
> > + */
> > +
> > +#include "qemu-common.h"
> > +#include "hw/acpi/bios-linker-loader.h"
> > +#include "hw/nvram/fw_cfg.h"
> > +
> > +#include "qemu/bswap.h"
> > +
> > +#define BIOS_LINKER_LOADER_FILESZ FW_CFG_MAX_FILE_PATH
> > +
> > +struct BiosLinkerLoaderEntry {
> > + uint32_t command;
> > + union {
> > + /*
> > + * COMMAND_ALLOCATE - allocate a table from @alloc.file
> > + * subject to @alloc.align alignment (must be power of 2)
> > + * and @alloc.zone (can be HIGH or FSEG) requirements.
> > + *
> > + * Must appear exactly once for each file, and before
> > + * this file is referenced by any other command.
> > + */
> > + struct {
> > + char file[BIOS_LINKER_LOADER_FILESZ];
> > + uint32_t align;
> > + uint8_t zone;
> > + } alloc;
> > +
> > + /*
> > + * COMMAND_ADD_POINTER - patch the table (originating from
> > + * @dest_file) at @pointer.offset, by adding a pointer to the table
> > + * originating from @src_file. 1,2,4 or 8 byte unsigned
> > + * addition is used depending on @pointer.size.
> > + */
> > + struct {
> > + char dest_file[BIOS_LINKER_LOADER_FILESZ];
> > + char src_file[BIOS_LINKER_LOADER_FILESZ];
> > + uint32_t offset;
> > + uint8_t size;
> > + } pointer;
> > +
> > + /*
> > + * COMMAND_ADD_CHECKSUM - calculate checksum of the range specified by
> > + * @cksum_start and @cksum_length fields,
> > + * and then add the value at @cksum.offset.
> > + * Checksum simply sums -X for each byte X in the range
> > + * using 8-bit math.
> > + */
> > + struct {
> > + char file[BIOS_LINKER_LOADER_FILESZ];
> > + uint32_t offset;
> > + uint32_t start;
> > + uint32_t length;
> > + } cksum;
> > +
> > + /* padding */
> > + char pad[124];
> > + };
> > +} QEMU_PACKED;
> > +typedef struct BiosLinkerLoaderEntry BiosLinkerLoaderEntry;
> > +
> > +enum {
> > + BIOS_LINKER_LOADER_COMMAND_ALLOCATE = 0x1,
> > + BIOS_LINKER_LOADER_COMMAND_ADD_POINTER = 0x2,
> > + BIOS_LINKER_LOADER_COMMAND_ADD_CHECKSUM = 0x3,
> > +};
> > +
> > +enum {
> > + BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH = 0x1,
> > + BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG = 0x2,
> > +};
> > +
> > +GArray *bios_linker_loader_init(void)
> > +{
> > + return g_array_new(false, true /* clear */, 1);
> > +}
> > +
> > +/* Free linker wrapper and return the linker array. */
> > +void *bios_linker_loader_cleanup(GArray *linker)
> > +{
> > + return g_array_free(linker, false);
> > +}
> > +
> > +void bios_linker_loader_alloc(GArray *linker,
> > + const char *file,
> > + uint32_t alloc_align,
> > + bool alloc_fseg)
> > +{
> > + BiosLinkerLoaderEntry entry;
> > +
> > + memset(&entry, 0, sizeof entry);
> > + strncpy(entry.alloc.file, file, sizeof entry.alloc.file - 1);
> > + entry.command = cpu_to_le32(BIOS_LINKER_LOADER_COMMAND_ALLOCATE);
> > + entry.alloc.align = cpu_to_le32(alloc_align);
> > + entry.alloc.zone = cpu_to_le32(alloc_fseg ?
> > + BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG :
> > + BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH);
> > +
> > + /* Alloc entries must come first, so prepend them */
> > + g_array_prepend_vals(linker, &entry, sizeof entry);
> > +}
> > +
> > +void bios_linker_loader_add_checksum(GArray *linker, const char *file,
> > + void *table,
> > + void *start, unsigned size,
> > + uint8_t *checksum)
> > +{
> > + BiosLinkerLoaderEntry entry;
> > +
> > + memset(&entry, 0, sizeof entry);
> > + strncpy(entry.cksum.file, file, sizeof entry.cksum.file - 1);
> > + entry.command = cpu_to_le32(BIOS_LINKER_LOADER_COMMAND_ADD_CHECKSUM);
> > + entry.cksum.offset = cpu_to_le32(checksum - (uint8_t *)table);
> > + entry.cksum.start = cpu_to_le32((uint8_t *)start - (uint8_t *)table);
> > + entry.cksum.length = cpu_to_le32(size);
> > +
> > + g_array_append_vals(linker, &entry, sizeof entry);
> > +}
> > +
> > +void bios_linker_loader_add_pointer(GArray *linker,
> > + const char *dest_file,
> > + const char *src_file,
> > + GArray *table, void *pointer,
> > + uint8_t pointer_size)
> > +{
> > + BiosLinkerLoaderEntry entry;
> > +
> > + memset(&entry, 0, sizeof entry);
> > + strncpy(entry.pointer.dest_file, dest_file,
> > + sizeof entry.pointer.dest_file - 1);
> > + strncpy(entry.pointer.src_file, src_file,
> > + sizeof entry.pointer.src_file - 1);
> > + entry.command = cpu_to_le32(BIOS_LINKER_LOADER_COMMAND_ADD_POINTER);
> > + entry.pointer.offset = cpu_to_le32((gchar *)pointer - table->data);
> > + entry.pointer.size = pointer_size;
> > + assert(pointer_size == 1 || pointer_size == 2 ||
> > + pointer_size == 4 || pointer_size == 8);
> > +
> > + g_array_append_vals(linker, &entry, sizeof entry);
> > +}
> > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
> > index 790a56c..6c8705d 100644
> > --- a/hw/i386/Makefile.objs
> > +++ b/hw/i386/Makefile.objs
> > @@ -7,7 +7,6 @@ obj-$(CONFIG_XEN) += ../xenpv/ xen/
> >
> > obj-y += kvmvapic.o
> > obj-y += acpi-build.o
> > -obj-y += bios-linker-loader.o
> > hw/i386/acpi-build.o: hw/i386/acpi-build.c hw/i386/acpi-dsdt.hex \
> > hw/i386/ssdt-misc.hex hw/i386/q35-acpi-dsdt.hex \
> > hw/i386/ssdt-tpm.hex
> > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > index b425156..e0fa30a 100644
> > --- a/hw/i386/acpi-build.c
> > +++ b/hw/i386/acpi-build.c
> > @@ -36,7 +36,7 @@
> > #include "hw/i386/acpi-defs.h"
> > #include "hw/acpi/acpi.h"
> > #include "hw/nvram/fw_cfg.h"
> > -#include "bios-linker-loader.h"
> > +#include "hw/acpi/bios-linker-loader.h"
> > #include "hw/loader.h"
> > #include "hw/isa/isa.h"
> > #include "hw/acpi/memory_hotplug.h"
> > diff --git a/hw/i386/bios-linker-loader.c b/hw/i386/bios-linker-loader.c
> > deleted file mode 100644
> > index aa56184..0000000
> > --- a/hw/i386/bios-linker-loader.c
> > +++ /dev/null
> > @@ -1,157 +0,0 @@
> > -/* Dynamic linker/loader of ACPI tables
> > - *
> > - * Copyright (C) 2013 Red Hat Inc
> > - *
> > - * Author: Michael S. Tsirkin <mst@redhat.com>
> > - *
> > - * This program is free software; you can redistribute it and/or modify
> > - * it under the terms of the GNU General Public License as published by
> > - * the Free Software Foundation; either version 2 of the License, or
> > - * (at your option) any later version.
> > -
> > - * This program is distributed in the hope that it will be useful,
> > - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > - * GNU General Public License for more details.
> > -
> > - * You should have received a copy of the GNU General Public License along
> > - * with this program; if not, see <http://www.gnu.org/licenses/>.
> > - */
> > -
> > -#include "qemu-common.h"
> > -#include "bios-linker-loader.h"
> > -#include "hw/nvram/fw_cfg.h"
> > -
> > -#include "qemu/bswap.h"
> > -
> > -#define BIOS_LINKER_LOADER_FILESZ FW_CFG_MAX_FILE_PATH
> > -
> > -struct BiosLinkerLoaderEntry {
> > - uint32_t command;
> > - union {
> > - /*
> > - * COMMAND_ALLOCATE - allocate a table from @alloc.file
> > - * subject to @alloc.align alignment (must be power of 2)
> > - * and @alloc.zone (can be HIGH or FSEG) requirements.
> > - *
> > - * Must appear exactly once for each file, and before
> > - * this file is referenced by any other command.
> > - */
> > - struct {
> > - char file[BIOS_LINKER_LOADER_FILESZ];
> > - uint32_t align;
> > - uint8_t zone;
> > - } alloc;
> > -
> > - /*
> > - * COMMAND_ADD_POINTER - patch the table (originating from
> > - * @dest_file) at @pointer.offset, by adding a pointer to the table
> > - * originating from @src_file. 1,2,4 or 8 byte unsigned
> > - * addition is used depending on @pointer.size.
> > - */
> > - struct {
> > - char dest_file[BIOS_LINKER_LOADER_FILESZ];
> > - char src_file[BIOS_LINKER_LOADER_FILESZ];
> > - uint32_t offset;
> > - uint8_t size;
> > - } pointer;
> > -
> > - /*
> > - * COMMAND_ADD_CHECKSUM - calculate checksum of the range specified by
> > - * @cksum_start and @cksum_length fields,
> > - * and then add the value at @cksum.offset.
> > - * Checksum simply sums -X for each byte X in the range
> > - * using 8-bit math.
> > - */
> > - struct {
> > - char file[BIOS_LINKER_LOADER_FILESZ];
> > - uint32_t offset;
> > - uint32_t start;
> > - uint32_t length;
> > - } cksum;
> > -
> > - /* padding */
> > - char pad[124];
> > - };
> > -} QEMU_PACKED;
> > -typedef struct BiosLinkerLoaderEntry BiosLinkerLoaderEntry;
> > -
> > -enum {
> > - BIOS_LINKER_LOADER_COMMAND_ALLOCATE = 0x1,
> > - BIOS_LINKER_LOADER_COMMAND_ADD_POINTER = 0x2,
> > - BIOS_LINKER_LOADER_COMMAND_ADD_CHECKSUM = 0x3,
> > -};
> > -
> > -enum {
> > - BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH = 0x1,
> > - BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG = 0x2,
> > -};
> > -
> > -GArray *bios_linker_loader_init(void)
> > -{
> > - return g_array_new(false, true /* clear */, 1);
> > -}
> > -
> > -/* Free linker wrapper and return the linker array. */
> > -void *bios_linker_loader_cleanup(GArray *linker)
> > -{
> > - return g_array_free(linker, false);
> > -}
> > -
> > -void bios_linker_loader_alloc(GArray *linker,
> > - const char *file,
> > - uint32_t alloc_align,
> > - bool alloc_fseg)
> > -{
> > - BiosLinkerLoaderEntry entry;
> > -
> > - memset(&entry, 0, sizeof entry);
> > - strncpy(entry.alloc.file, file, sizeof entry.alloc.file - 1);
> > - entry.command = cpu_to_le32(BIOS_LINKER_LOADER_COMMAND_ALLOCATE);
> > - entry.alloc.align = cpu_to_le32(alloc_align);
> > - entry.alloc.zone = cpu_to_le32(alloc_fseg ?
> > - BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG :
> > - BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH);
> > -
> > - /* Alloc entries must come first, so prepend them */
> > - g_array_prepend_vals(linker, &entry, sizeof entry);
> > -}
> > -
> > -void bios_linker_loader_add_checksum(GArray *linker, const char *file,
> > - void *table,
> > - void *start, unsigned size,
> > - uint8_t *checksum)
> > -{
> > - BiosLinkerLoaderEntry entry;
> > -
> > - memset(&entry, 0, sizeof entry);
> > - strncpy(entry.cksum.file, file, sizeof entry.cksum.file - 1);
> > - entry.command = cpu_to_le32(BIOS_LINKER_LOADER_COMMAND_ADD_CHECKSUM);
> > - entry.cksum.offset = cpu_to_le32(checksum - (uint8_t *)table);
> > - entry.cksum.start = cpu_to_le32((uint8_t *)start - (uint8_t *)table);
> > - entry.cksum.length = cpu_to_le32(size);
> > -
> > - g_array_append_vals(linker, &entry, sizeof entry);
> > -}
> > -
> > -void bios_linker_loader_add_pointer(GArray *linker,
> > - const char *dest_file,
> > - const char *src_file,
> > - GArray *table, void *pointer,
> > - uint8_t pointer_size)
> > -{
> > - BiosLinkerLoaderEntry entry;
> > -
> > - memset(&entry, 0, sizeof entry);
> > - strncpy(entry.pointer.dest_file, dest_file,
> > - sizeof entry.pointer.dest_file - 1);
> > - strncpy(entry.pointer.src_file, src_file,
> > - sizeof entry.pointer.src_file - 1);
> > - entry.command = cpu_to_le32(BIOS_LINKER_LOADER_COMMAND_ADD_POINTER);
> > - entry.pointer.offset = cpu_to_le32((gchar *)pointer - table->data);
> > - entry.pointer.size = pointer_size;
> > - assert(pointer_size == 1 || pointer_size == 2 ||
> > - pointer_size == 4 || pointer_size == 8);
> > -
> > - g_array_append_vals(linker, &entry, sizeof entry);
> > -}
> > diff --git a/hw/i386/bios-linker-loader.h b/hw/i386/bios-linker-loader.h
> > deleted file mode 100644
> > index 498c0af..0000000
> > --- a/hw/i386/bios-linker-loader.h
> > +++ /dev/null
> > @@ -1,27 +0,0 @@
> > -#ifndef BIOS_LINKER_LOADER_H
> > -#define BIOS_LINKER_LOADER_H
> > -
> > -#include <glib.h>
> > -#include <stdbool.h>
> > -#include <inttypes.h>
> > -
> > -GArray *bios_linker_loader_init(void);
> > -
> > -void bios_linker_loader_alloc(GArray *linker,
> > - const char *file,
> > - uint32_t alloc_align,
> > - bool alloc_fseg);
> > -
> > -void bios_linker_loader_add_checksum(GArray *linker, const char *file,
> > - void *table,
> > - void *start, unsigned size,
> > - uint8_t *checksum);
> > -
> > -void bios_linker_loader_add_pointer(GArray *linker,
> > - const char *dest_file,
> > - const char *src_file,
> > - GArray *table, void *pointer,
> > - uint8_t pointer_size);
> > -
> > -void *bios_linker_loader_cleanup(GArray *linker);
> > -#endif
> > diff --git a/include/hw/acpi/bios-linker-loader.h b/include/hw/acpi/bios-linker-loader.h
> > new file mode 100644
> > index 0000000..498c0af
> > --- /dev/null
> > +++ b/include/hw/acpi/bios-linker-loader.h
> > @@ -0,0 +1,27 @@
> > +#ifndef BIOS_LINKER_LOADER_H
> > +#define BIOS_LINKER_LOADER_H
> > +
> > +#include <glib.h>
> > +#include <stdbool.h>
> > +#include <inttypes.h>
> > +
> > +GArray *bios_linker_loader_init(void);
> > +
> > +void bios_linker_loader_alloc(GArray *linker,
> > + const char *file,
> > + uint32_t alloc_align,
> > + bool alloc_fseg);
> > +
> > +void bios_linker_loader_add_checksum(GArray *linker, const char *file,
> > + void *table,
> > + void *start, unsigned size,
> > + uint8_t *checksum);
> > +
> > +void bios_linker_loader_add_pointer(GArray *linker,
> > + const char *dest_file,
> > + const char *src_file,
> > + GArray *table, void *pointer,
> > + uint8_t pointer_size);
> > +
> > +void *bios_linker_loader_cleanup(GArray *linker);
> > +#endif
> >
next prev parent reply other threads:[~2015-01-19 21:54 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-19 2:01 [Qemu-devel] [RFC 00/47] ACPI refactoring: replace template patching with C ASL API Igor Mammedov
2014-12-19 2:01 ` [Qemu-devel] [RFC 01/47] acpi: introduce AML composer aml_append() Igor Mammedov
2014-12-19 2:01 ` [Qemu-devel] [RFC 02/47] acpi: add acpi_scope() term Igor Mammedov
2014-12-19 2:01 ` [Qemu-devel] [RFC 03/47] acpi: add acpi_device() term Igor Mammedov
2014-12-19 2:01 ` [Qemu-devel] [RFC 04/47] acpi: add acpi_method() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 05/47] acpi: add acpi_if() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 06/47] acpi: add acpi_name() & acpi_name_decl() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 07/47] acpi: factor out ACPI const int packing out build_append_value() Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 08/47] acpi: extend build_append_{value|int}() to support 64-bit values Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 09/47] acpi: add acpi_int() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 10/47] acpi: add acpi_return() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 11/47] acpi: add acpi_arg0(), acpi_arg1(), acpi_arg2(), acpi_arg3() terms Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 12/47] acpi: add acpi_store() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 13/47] acpi: add acpi_and() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 14/47] acpi: add acpi_notify() term Igor Mammedov
2015-01-19 12:32 ` Paolo Bonzini
2015-01-20 9:40 ` Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 15/47] acpi: add acpi_call1(), acpi_call2(), acpi_call3(), acpi_call4() helpers Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 16/47] pc: acpi-build: drop template patching and create PCI bus tree dinamically Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 17/47] acpi: add acpi_package() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 18/47] pc: acpi-build: drop unsupported PM1b_CNT.SLP_TYP Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 19/47] pc: acpi-build: generate _S[345] packages dynamically Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 20/47] acpi: add acpi_buffer() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 21/47] acpi: add acpi_resource_template() helper Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 22/47] acpi: add acpi_io() helper Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 23/47] acpi: include PkgLength size only when requested Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 24/47] acpi: add acpi_operation_region() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 25/47] acpi: add acpi_field() & acpi_named_field() terms Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 26/47] acpi: add acpi_local0() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 27/47] acpi: add acpi_string() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 28/47] pc: acpi-build: generate pvpanic device description dynamically Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 29/47] acpi: add acpi_varpackage() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 30/47] acpi: add acpi_equal() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 31/47] acpi: add acpi_processor() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 32/47] acpi: add acpi_eisaid() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 33/47] pc: acpi-build: drop template patching and CPU hotplug objects dynamically Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 34/47] pc: acpi-build: create CPU hotplug IO region dynamically Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 35/47] acpi: add acpi_reserved_field() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 36/47] pc: acpi-build: drop template patching and memory hotplug objects dynamically Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 37/47] pc: acpi-build: create memory hotplug IO region dynamically Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 38/47] acpi: add acpi_word_bus_number(), acpi_word_io(), acpi_dword_memory(), acpi_qword_memory() terms Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 39/47] pc: pcihp: expose MMIO base and len as properties Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 40/47] pc: acpi-build: reserve PCIHP MMIO resources Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 41/47] pc: acpi-build: create PCI0._CRS dynamically Igor Mammedov
2015-01-19 12:42 ` Paolo Bonzini
2015-01-19 21:55 ` Michael S. Tsirkin
2015-01-20 9:37 ` Marcel Apfelbaum
2015-01-20 9:42 ` Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 42/47] acpi: make tables linker-loader available to other targets Igor Mammedov
2015-01-19 12:36 ` Paolo Bonzini
2015-01-19 21:54 ` Michael S. Tsirkin [this message]
2015-01-19 22:05 ` Michael S. Tsirkin
2015-01-20 9:43 ` Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 43/47] acpi: add acpi_def_block() term Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 44/47] pc: acpi-build: prepare to make ACPI tables blob opaque for table building functions Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 45/47] pc: acpi-build: drop remaining ssdt_misc template and use acpi_def_block() Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 46/47] pc: acpi: update DSTD blobs Igor Mammedov
2014-12-19 2:02 ` [Qemu-devel] [RFC 47/47] tests: acpi: update reference DSDT/SSDT tables Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150119215431.GB11452@redhat.com \
--to=mst@redhat.com \
--cc=claudio.fontana@huawei.com \
--cc=drjones@redhat.com \
--cc=imammedo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.