All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shannon Zhao <shannon.zhao@linaro.org>
To: "Michael S. Tsirkin" <mst@redhat.com>,
	Shannon Zhao <zhaoshenglong@huawei.com>
Cc: peter.maydell@linaro.org, hangaohuai@huawei.com,
	a.spyridakis@virtualopensystems.com, claudio.fontana@huawei.com,
	qemu-devel@nongnu.org, peter.huangpeng@huawei.com,
	alex.bennee@linaro.org, hanjun.guo@linaro.org,
	imammedo@redhat.com, pbonzini@redhat.com, lersek@redhat.com,
	christoffer.dall@linaro.org
Subject: Re: [Qemu-devel] [PATCH v7 14/23] hw/acpi/aml-build: Add ToUUID macro
Date: Tue, 19 May 2015 08:41:39 +0800	[thread overview]
Message-ID: <555A86C3.3070103@linaro.org> (raw)
In-Reply-To: <20150518180850-mutt-send-email-mst@redhat.com>



On 2015/5/19 0:17, Michael S. Tsirkin wrote:
> On Thu, May 14, 2015 at 05:19:33PM +0800, Shannon Zhao wrote:
>> > From: Shannon Zhao <shannon.zhao@linaro.org>
>> > 
>> > Add ToUUID macro, this is useful for generating PCIe ACPI table.
>> > 
>> > Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
>> > Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
>> > ---
>> >  hw/acpi/aml-build.c         | 46 +++++++++++++++++++++++++++++++++++++++++++++
>> >  include/hw/acpi/aml-build.h |  1 +
>> >  2 files changed, 47 insertions(+)
>> > 
>> > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
>> > index 6197896..0e4d35f 100644
>> > --- a/hw/acpi/aml-build.c
>> > +++ b/hw/acpi/aml-build.c
>> > @@ -956,6 +956,52 @@ Aml *aml_qword_memory(AmlDecode dec, AmlMinFixed min_fixed,
>> >                               addr_trans, len, flags);
>> >  }
>> >  
>> > +static uint8_t Hex2Byte(const char *src)
>> > +{
>> > +    int hi = Hex2Digit(*src++);
>> > +    int lo = Hex2Digit(*src);
> 
> Just src[0] src[1] would be clearer.
> 
>> > +
>> > +    g_assert(((hi >= 0) && (hi <= 15)) && ((lo >= 0) && (lo <= 15)));
> Pls use simple assert everywhere, it does not matter
> and rest of acpi uses plain assert.
> 
>> > +    return (hi << 4) | lo;
>> > +}
> Really should be lower-case. We need to fix Hex2Digit too,
> but since Hex2Digit is broken, I'll let this one in
> and we can fix both with a patch on top.
> 
>> > +
>> > +/*
>> > + * ACPI 3.0: 17.5.124 ToUUID (Convert String to UUID Macro)
>> > + * e.g. UUID: aabbccdd-eeff-gghh-iijj-kkllmmnnoopp
>> > + * call aml_touuid("aabbccdd-eeff-gghh-iijj-kkllmmnnoopp");
>> > + */
>> > +Aml *aml_touuid(const char *uuid)
>> > +{
>> > +    Aml *var = aml_bundle(0x11 /* BufferOp */, AML_BUFFER);
>> > +
>> > +    /* format: aabbccdd-eeff-gghh-iijj-kkllmmnnoopp */
> This documents the argument, so really belongs near the
> function's head.
> 
>> > +    g_assert((strlen(uuid) == 36) && (uuid[8] == '-') && (uuid[13] == '-')
>> > +              && (uuid[18] == '-') && (uuid[23] == '-'));
> Does something else validate the parameter?
> It's not friendly to handle errors by assert.
> Why doesn't that something else give us a pre-parse structure then?
> 

a pre-parse structure?

> 
>> > +
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 6)); /* dd - at offset 00 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 4)); /* cc - at offset 01 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 2)); /* bb - at offset 02 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 0)); /* aa - at offset 03 */
>> > +
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 11)); /* ff - at offset 04 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 9)); /* ee - at offset 05 */
>> > +
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 16)); /* hh - at offset 06 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 14)); /* gg - at offset 07 */
>> > +
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 19)); /* ii - at offset 08 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 21)); /* jj - at offset 09 */
>> > +
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 24)); /* kk - at offset 10 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 26)); /* ll - at offset 11 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 28)); /* mm - at offset 12 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 30)); /* nn - at offset 13 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 32)); /* oo - at offset 14 */
>> > +    build_append_byte(var->buf, Hex2Byte(uuid + 34)); /* pp - at offset 15 */
> Can we use strtoull?
> 

Igor and I have a discussion on this. I used strtol before and we got an
agreement on current approach.

-- 
Shannon

  parent reply	other threads:[~2015-05-19  0:41 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-14  9:19 [Qemu-devel] [PATCH v7 00/23] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 01/23] hw/arm/virt: Move common definitions to virt.h Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 02/23] hw/arm/virt: Record PCIe ranges in MemMapEntry array Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 03/23] hw/arm/virt-acpi-build: Basic framework for building ACPI tables on ARM Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 04/23] hw/acpi/aml-build: Add aml_memory32_fixed() term Shannon Zhao
2015-05-18 16:06   ` Michael S. Tsirkin
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 05/23] hw/acpi/aml-build: Add aml_interrupt() term Shannon Zhao
2015-05-18 16:07   ` Michael S. Tsirkin
2015-05-20  4:23   ` [Qemu-devel] [RESEND PATCH " Shannon Zhao
2015-05-20 11:05     ` Igor Mammedov
2015-05-20 11:28       ` Shannon Zhao
2015-05-20 13:49         ` Igor Mammedov
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 06/23] hw/arm/virt-acpi-build: Generation of DSDT table for virt devices Shannon Zhao
2015-05-21 14:30   ` Alex Bennée
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 07/23] hw/arm/virt-acpi-build: Generate FADT table and update ACPI headers Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 08/23] hw/arm/virt-acpi-build: Generate MADT table Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 09/23] hw/arm/virt-acpi-build: Generate GTDT table Shannon Zhao
2015-05-21 14:31   ` Alex Bennée
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 10/23] hw/arm/virt-acpi-build: Generate RSDT table Shannon Zhao
2015-05-21 14:38   ` Alex Bennée
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 11/23] hw/arm/virt-acpi-build: Generate RSDP table Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 12/23] hw/arm/virt-acpi-build: Generate MCFG table Shannon Zhao
2015-05-21 14:38   ` Alex Bennée
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 13/23] hw/acpi/aml-build: Make aml_buffer() definition consistent with the spec Shannon Zhao
2015-05-18 16:08   ` Michael S. Tsirkin
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 14/23] hw/acpi/aml-build: Add ToUUID macro Shannon Zhao
2015-05-18 16:17   ` Michael S. Tsirkin
2015-05-18 18:34     ` Laszlo Ersek
2015-05-19  0:41     ` Shannon Zhao [this message]
2015-05-19  8:37       ` Michael S. Tsirkin
2015-05-20  4:19   ` [Qemu-devel] [RESEND PATCH " Shannon Zhao
2015-05-20 10:57     ` Igor Mammedov
2015-05-20 11:02       ` Shannon Zhao
2015-05-20 13:41         ` Igor Mammedov
2015-05-20 13:46           ` Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 15/23] hw/acpi/aml-build: Add aml_or() term Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 16/23] hw/acpi/aml-build: Add aml_lnot() term Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 17/23] hw/acpi/aml-build: Add aml_else() term Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 18/23] hw/acpi/aml-build: Add aml_create_dword_field() term Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 19/23] hw/acpi/aml-build: Add aml_dword_io() term Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 20/23] hw/acpi/aml-build: Add Unicode macro Shannon Zhao
2015-05-18 16:18   ` Michael S. Tsirkin
2015-05-20  5:00   ` [Qemu-devel] [RESEND PATCH " Shannon Zhao
2015-05-20 11:01     ` Igor Mammedov
2015-05-20 11:12       ` Shannon Zhao
2015-05-20 13:47         ` Igor Mammedov
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 21/23] hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 22/23] ACPI: split CONFIG_ACPI into 4 pieces Shannon Zhao
2015-05-18 16:19   ` Michael S. Tsirkin
2015-05-20  5:02   ` [Qemu-devel] [RESEND PATCH " Shannon Zhao
2015-05-14  9:19 ` [Qemu-devel] [PATCH v7 23/23] hw/arm/virt: Enable dynamic generation of ACPI v5.1 tables Shannon Zhao
2015-05-18 15:59 ` [Qemu-devel] [PATCH v7 00/23] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM Peter Maydell

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=555A86C3.3070103@linaro.org \
    --to=shannon.zhao@linaro.org \
    --cc=a.spyridakis@virtualopensystems.com \
    --cc=alex.bennee@linaro.org \
    --cc=christoffer.dall@linaro.org \
    --cc=claudio.fontana@huawei.com \
    --cc=hangaohuai@huawei.com \
    --cc=hanjun.guo@linaro.org \
    --cc=imammedo@redhat.com \
    --cc=lersek@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=zhaoshenglong@huawei.com \
    /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.