Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 May 2004 11:37:26 -0700 (PDT)
From:      Nate Lawson <nate@root.org>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        arch@freebsd.org
Subject:   Re: New ACPI blacklist format
Message-ID:  <20040508113421.R58706@root.org>
In-Reply-To: <20040508.054429.99235478.imp@bsdimp.com>
References:  <20040507231846.F52653@root.org> <20040508.054429.99235478.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 8 May 2004, M. Warner Losh wrote:
> In message: <20040507231846.F52653@root.org>
>             Nate Lawson <nate@root.org> writes:
> : I have extracted a set of known-broken tables/versions from various
> : sources.  Since. as far as I know, C does not allow variable length
> : initializers, I've settled on the following format:
>
> It does.
>
> : struct acpi_table_desc {
> :     char        *signature;
> :     char        *oem_id;
> :     char        *oem_table_id;
> :     char        *oem_rev_op;
> :     char        *oem_revision;
> :     char        *creator_id;
> :     char        *creator_rev_op;
> :     char        *creator_revision;
> : };
> :
> : struct acpi_blacklist {
> :     int         quirk;
> :     struct      acpi_table_desc *match;
> : };
> :
> : #define ACPI_BROKEN     0x1
> :
> : static struct acpi_table_desc Abit_BP6[] = {
> :     { "FACP", "AWARD", "AWRDACPI", "<=", "30302e31", "", "", "" },
> : };
>
> { .signature = "FACP", .oem_id="AWARD", .oem_table_id="AWARDACPI",
>   .oem_rev_op = "<=", }
>
> :The op values will be "<=", "=", and ">=".
>
> These are likely better as a enum.
>
> : Is there any better way to compact this?
>
> Using shorter structure names would get it all onthe same line.

Sure, good comments.  What I meant by compacting was to get a variable
number of acpi_table_desc elements in a single blacklist entry without
defining a separate static.  Something like this:

static struct acpi_blacklist blacklist[] = {
    {
        .quirk = ACPI_BROKEN,
        {
            { "FACP", ... },
            { "DSDT", ... }
        }
    },
    {
        .quirk = ...
    }
};

The compiler didn't allow this.

-Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040508113421.R58706>