New ACPI blacklist format
Nate Lawson
nate at root.org
Sat May 8 11:37:27 PDT 2004
On Sat, 8 May 2004, M. Warner Losh wrote:
> In message: <20040507231846.F52653 at root.org>
> Nate Lawson <nate at 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
More information about the freebsd-acpi
mailing list