From owner-freebsd-acpi@FreeBSD.ORG Sat May 8 11:37:27 2004 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 183EA16A4CE for ; Sat, 8 May 2004 11:37:27 -0700 (PDT) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with SMTP id 0C4F043D49 for ; Sat, 8 May 2004 11:37:26 -0700 (PDT) (envelope-from nate@root.org) Received: (qmail 58715 invoked by uid 1000); 8 May 2004 18:37:26 -0000 Date: Sat, 8 May 2004 11:37:26 -0700 (PDT) From: Nate Lawson To: "M. Warner Losh" In-Reply-To: <20040508.054429.99235478.imp@bsdimp.com> Message-ID: <20040508113421.R58706@root.org> References: <20040507231846.F52653@root.org> <20040508.054429.99235478.imp@bsdimp.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: acpi@freebsd.org cc: arch@freebsd.org Subject: Re: New ACPI blacklist format X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 May 2004 18:37:27 -0000 On Sat, 8 May 2004, M. Warner Losh wrote: > In message: <20040507231846.F52653@root.org> > Nate Lawson 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