All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org, anthony@codemonkey.ws, kraxel@redhat.com
Subject: Re: [Qemu-devel] [RFC 5/9] acpi: add PNP0C02 to PCI0 bus
Date: Sun, 16 Feb 2014 14:06:18 +0200	[thread overview]
Message-ID: <20140216120618.GD30056@redhat.com> (raw)
In-Reply-To: <1391777496-3882-6-git-send-email-imammedo@redhat.com>

On Fri, Feb 07, 2014 at 01:51:32PM +0100, Igor Mammedov wrote:
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
>  hw/i386/acpi-build.c |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 55 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 1dbe5ce..f0bedbd 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -492,6 +492,55 @@ static inline void acpi_add_table(GArray *table_offsets, GArray *table_data)
>      g_array_append_val(table_offsets, offset);
>  }
>  
> +static uint8_t Hex2Digit(char c)
> +{
> +    if (c >= 'A') {
> +        return c - 'A' + 10;
> +    }
> +    return c - '0';
> +}
> +
> +static uint32_t encodeEisaId(const char *str)
> +{
> +    uint32_t ret;
> +    g_assert(strlen(str) == 7);
> +    ret = (str[0] - 0x40) << 26 |
> +          (str[1] - 0x40) << 21 |
> +          (str[2] - 0x40) << 16 |
> +          Hex2Digit(str[3]) << 12 |
> +          Hex2Digit(str[4]) << 8 |
> +          Hex2Digit(str[5]) << 4 |
> +          Hex2Digit(str[6]);
> +    return bswap32(ret);
> +}
> +

Why the camel case here?
Seems uncalled for ...

> +#define ACPI_SCOPE(ctx, name, ...) {\
> +    GArray *name = build_alloc_array(); \
> +    build_append_nameseg(name, stringify(name)); \
> +    __VA_ARGS__; \
> +    build_package(name, ScopeOp, 0); \
> +    build_append_array(ctx, name); \
> +    build_free_array(name); \
> +}
> +
> +#define ACPI_NAME(ctx, name) { \
> +    build_append_byte(ctx, NameOp); \
> +    build_append_nameseg(ctx, name); \
> +}
> +
> +#define ACPI_EISAID(ctx, val) { \
> +    build_append_value(ctx, encodeEisaId(val), sizeof(uint32_t)); \
> +}
> +
> +#define ACPI_DEVICE(ctx, name, ...) {\
> +    GArray *name = build_alloc_array(); \
> +    build_append_nameseg(name, stringify(name)); \
> +    __VA_ARGS__; \
> +    build_extop_package(name, DeviceOp); \
> +    build_append_array(ctx, name); \
> +    build_free_array(name); \
> +}
> +
>  /* FACS */
>  static void
>  build_facs(GArray *table_data, GArray *linker, PcGuestInfo *guest_info)
> @@ -1032,6 +1081,12 @@ build_ssdt(GArray *table_data, GArray *linker,
>              build_pci_bus_state_cleanup(&hotplug_state);
>          }
>  
> +        ACPI_SCOPE(sb_scope, PCI0,
> +            ACPI_DEVICE(PCI0, MRES,
> +                ACPI_NAME(MRES, "_HID"); ACPI_EISAID(MRES, "PNP0C02");
> +            );
> +        );
> +

Wow you managed to make C look like ACPI,
including 4-character identifier limitation.
This needs some thought.

>          build_package(sb_scope, op, 3);
>          build_append_array(table_data, sb_scope);
>          build_free_array(sb_scope);
> -- 
> 1.7.1

  reply	other threads:[~2014-02-16 12:01 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-07 12:51 [Qemu-devel] [RFC 0/9] generate dynamic _CRS for motherboard resources Igor Mammedov
2014-02-07 12:51 ` [Qemu-devel] [RFC 1/9] Revert "pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus resources" Igor Mammedov
2014-02-07 12:51 ` [Qemu-devel] [RFC 2/9] Revert "pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 " Igor Mammedov
2014-02-07 12:51 ` [Qemu-devel] [RFC 3/9] Partial revert "pc: ACPI: expose PRST IO range via _CRS" Igor Mammedov
2014-02-07 12:51 ` [Qemu-devel] [RFC 4/9] acpi: replace opencoded opcodes with defines Igor Mammedov
2014-02-16 12:02   ` Michael S. Tsirkin
2014-02-07 12:51 ` [Qemu-devel] [RFC 5/9] acpi: add PNP0C02 to PCI0 bus Igor Mammedov
2014-02-16 12:06   ` Michael S. Tsirkin [this message]
2014-02-07 12:51 ` [Qemu-devel] [RFC 6/9] acpi: consume GPE0 IO resources in PNP0C02 device Igor Mammedov
2014-02-16 15:20   ` Michael S. Tsirkin
2014-02-07 12:51 ` [Qemu-devel] [RFC 7/9] acpi: consume CPU hotplug IO resource " Igor Mammedov
2014-02-16 15:39   ` Michael S. Tsirkin
2014-02-07 12:51 ` [Qemu-devel] [RFC 8/9] pcihp: expose PCI hotplug MMIO base/length as properties of piix4pm Igor Mammedov
2014-02-16 15:45   ` Michael S. Tsirkin
2014-02-07 12:51 ` [Qemu-devel] [RFC 9/9] acpi: consume PCIHP IO resource in PNP0C02 device Igor Mammedov
2014-02-16 15:53 ` [Qemu-devel] [RFC 0/9] generate dynamic _CRS for motherboard resources Michael S. Tsirkin
2014-02-17  8:32   ` Gerd Hoffmann
2014-02-17 10:28     ` Michael S. Tsirkin
2014-02-17 10:46       ` Gerd Hoffmann
2014-02-17 11:05         ` Michael S. Tsirkin
2014-02-18 16:36     ` Igor Mammedov
2014-02-18 22:04       ` Laszlo Ersek
2014-02-19  8:59         ` Igor Mammedov
2014-02-17 10:33   ` Igor Mammedov
2014-02-17 11:02     ` Michael S. Tsirkin
2014-02-18 11:10       ` Igor Mammedov
2014-02-18 11:33         ` Michael S. Tsirkin
2014-02-18 16:30           ` Igor Mammedov
2014-02-17  8:29 ` Gerd Hoffmann
2014-02-18 16:48   ` 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=20140216120618.GD30056@redhat.com \
    --to=mst@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=imammedo@redhat.com \
    --cc=kraxel@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.