From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54881) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBObR-0002kA-03 for qemu-devel@nongnu.org; Tue, 22 Dec 2015 10:11:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aBObM-0005KS-TU for qemu-devel@nongnu.org; Tue, 22 Dec 2015 10:11:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47189) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBObM-0005KF-OL for qemu-devel@nongnu.org; Tue, 22 Dec 2015 10:11:48 -0500 Date: Tue, 22 Dec 2015 17:11:46 +0200 From: "Michael S. Tsirkin" Message-ID: <20151222170959-mutt-send-email-mst@redhat.com> References: <1449704528-289297-27-git-send-email-imammedo@redhat.com> <1450277255-69201-1-git-send-email-imammedo@redhat.com> <20151220153542-mutt-send-email-mst@redhat.com> <20151221183140.6cd7dd97@nial.brq.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151221183140.6cd7dd97@nial.brq.redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 26/74] pc: acpi: memhp: move MHPD._STA method into SSDT List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: qemu-devel@nongnu.org, marcel.apfelbaum@gmail.com On Mon, Dec 21, 2015 at 06:31:40PM +0100, Igor Mammedov wrote: > On Sun, 20 Dec 2015 15:41:22 +0200 > "Michael S. Tsirkin" wrote: > > > On Wed, Dec 16, 2015 at 03:47:35PM +0100, Igor Mammedov wrote: > [...] > > > + method = aml_method("_STA", 0, AML_NOTSERIALIZED); > > > + ifctx = aml_if(aml_equal(a_slots_nr, a_zero)); > > > + { > > > + aml_append(ifctx, aml_return(a_zero)); > > > + } > > > + aml_append(method, ifctx); > > > + /* present, functioning, decoding, not shown in UI */ > > > + aml_append(method, aml_return(aml_int(0xB))); > > > + aml_append(ctrl_dev, method); > > > > > > Simple unserialized methods that return value depending on input > > being zero seem very common. How about a helper for this case? > > > > E.g. > > > > aml_method_if_then_else(slots_nr, aml_int(0xB), aml_int(0)); > I've looked through all _STA methods that exist in DSDT > and though this method for mem hotplug doesn't belong to common pattern, > I could use you suggestion for 4 ISA devices. > > Or perhaps I can save 2-3 LOC by making common > build_if_else(cond, truectx, false_ctx); > I'll try both but it looks like build_if_else() will be more useful. Yes but the issue is it makes code look weird since you need to prepare the context ahead of the time. > And after this series is applied there is a plenty to optimize, > for example most of these _STA methods will be gone or replaced > by simple _STA = FOO expression. OK. > > > > > > } > > > aml_append(pci_scope, ctrl_dev); > > > aml_append(ctx, pci_scope); > > > diff --git a/hw/i386/acpi-dsdt-mem-hotplug.dsl b/hw/i386/acpi-dsdt-mem-hotplug.dsl > > > index c2bb6a1..b4eacc9 100644 > > > --- a/hw/i386/acpi-dsdt-mem-hotplug.dsl > > > +++ b/hw/i386/acpi-dsdt-mem-hotplug.dsl > > > @@ -35,14 +35,6 @@ > > > External(MEMORY_SLOT_OST_EVENT, FieldUnitObj) // _OST event code, write only > > > External(MEMORY_SLOT_OST_STATUS, FieldUnitObj) // _OST status code, write only > > > > > > - Method(_STA, 0) { > > > - If (LEqual(MEMORY_SLOTS_NUMBER, Zero)) { > > > - Return(0x0) > > > - } > > > - /* present, functioning, decoding, not shown in UI */ > > > - Return(0xB) > > > - } > > > - > > > Mutex (MEMORY_SLOT_LOCK, 0) > > > > > > Method(MEMORY_SLOT_SCAN_METHOD, 0) { > > > -- > > > 1.8.3.1