diff options
Diffstat (limited to 'tests/aslts/src/runtime')
9 files changed, 342 insertions, 1 deletions
diff --git a/tests/aslts/src/runtime/cntl/common.asl b/tests/aslts/src/runtime/cntl/common.asl index 18cb36b42..9d6c77452 100644 --- a/tests/aslts/src/runtime/cntl/common.asl +++ b/tests/aslts/src/runtime/cntl/common.asl @@ -1469,7 +1469,8 @@ Name(TNF0, Package() { "reference", "region", "synchronization", - "table" + "table", + "module" }) // Names of complex tests @@ -1709,6 +1710,8 @@ Name(TFN0, Package() { "recursion.asl", "ns-scope.asl", // 178 "ns-fullpath.asl", + "scope.asl", + "object.asl", // below are incorrect yet: diff --git a/tests/aslts/src/runtime/cntl/runmode.asl b/tests/aslts/src/runtime/cntl/runmode.asl index 8cce4f81e..2a85c4d90 100644 --- a/tests/aslts/src/runtime/cntl/runmode.asl +++ b/tests/aslts/src/runtime/cntl/runmode.asl @@ -66,6 +66,7 @@ Name(W00a, 0) // reference Name(W00b, 0) // region Name(W00c, 0) // synchronization Name(W00d, 0) // table +Name(W01a, 0) // module // COMPLEX diff --git a/tests/aslts/src/runtime/collections/functional/README b/tests/aslts/src/runtime/collections/functional/README index 20b663249..565875fc5 100644 --- a/tests/aslts/src/runtime/collections/functional/README +++ b/tests/aslts/src/runtime/collections/functional/README @@ -23,6 +23,7 @@ CONTENTS 11 | region | Operation Regions | 12 | synchronization | Synchronization | 13 | table | ACPI table management | +14 | module | Module level code execution | ___________________________________________________________ FULL diff --git a/tests/aslts/src/runtime/collections/functional/module/DECL.asl b/tests/aslts/src/runtime/collections/functional/module/DECL.asl new file mode 100644 index 000000000..52da2de9f --- /dev/null +++ b/tests/aslts/src/runtime/collections/functional/module/DECL.asl @@ -0,0 +1,31 @@ +/* + * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +Include("../../../../runtime/collections/functional/module/scope.asl") +Include("../../../../runtime/collections/functional/module/object.asl") diff --git a/tests/aslts/src/runtime/collections/functional/module/MAIN.asl b/tests/aslts/src/runtime/collections/functional/module/MAIN.asl new file mode 100644 index 000000000..be4e70429 --- /dev/null +++ b/tests/aslts/src/runtime/collections/functional/module/MAIN.asl @@ -0,0 +1,56 @@ +/* + * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +DefinitionBlock( + "module.aml", // Output filename + "DSDT", // Signature + 0x02, // DSDT Revision + "Intel", // OEMID + "Many", // TABLE ID + 0x00000001 // OEM Revision + ) { + + // All declarations + Include("../../../../runtime/cntl/DECL.asl") + Include("../../../../runtime/collections/functional/module/DECL.asl") + + Method(MAIN) { + + // Initialization + STRT(0) + + // Run verification methods + Include("../../../../runtime/collections/functional/module/RUN.asl") + + // Final actions + Store(FNSH(), Local7) + Store(0, Local7) + + return (Local7) + } +} diff --git a/tests/aslts/src/runtime/collections/functional/module/Makefile b/tests/aslts/src/runtime/collections/functional/module/Makefile new file mode 100644 index 000000000..108ff4940 --- /dev/null +++ b/tests/aslts/src/runtime/collections/functional/module/Makefile @@ -0,0 +1,7 @@ +# table + +AMLMOD= module +COLL= ../.. + +TOP= $(COLL)/../../.. +include $(COLL)/Makefile.install diff --git a/tests/aslts/src/runtime/collections/functional/module/RUN.asl b/tests/aslts/src/runtime/collections/functional/module/RUN.asl new file mode 100644 index 000000000..8a89e9b01 --- /dev/null +++ b/tests/aslts/src/runtime/collections/functional/module/RUN.asl @@ -0,0 +1,36 @@ +/* + * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +if (STTT("Module level code execution", TCLF, 14, W01a)) { + SRMT("MLS0") + MLS0() + SRMT("MLO0") + MLO0() +} +FTTT() diff --git a/tests/aslts/src/runtime/collections/functional/module/object.asl b/tests/aslts/src/runtime/collections/functional/module/object.asl new file mode 100644 index 000000000..19857cd80 --- /dev/null +++ b/tests/aslts/src/runtime/collections/functional/module/object.asl @@ -0,0 +1,115 @@ +/* + * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Module level execution under Device/Processor/ThermalZone/PowerResource + */ + +/* + * Verify if Type1Opcode (ex., If) is allowed under Device, PowerResource, + * Processor, or ThermalZone + * + * ASL spec state: + * 1. DeviceTerm supports ObjectList for ACPI 1.0 ~ ACPI 6.1. + * 2. PwerResTerm supports ObjectList for ACPI 1.0 ~ ACPI 6.1. + * 3. ProcessorTerm supports ObjectList for ACPI 1.0 ~ ACPI 6.1. + * 4. ThermalZoneTerm supports ObjectList for ACPI 1.0 ~ ACPI 6.1. + * + * AML spec state: + * 1. DefDevice supports ObjectList for ACPI 1.0 ~ ACPI 6.0. + * 2. DefPowerRes supports ObjectList for ACPI 1.0 ~ ACPI 6.0. + * 3. DefProcessor supports ObjectList for ACPI 1.0 ~ ACPI 6.0. + * 4. DefThermalZone supports ObjectList for ACPI 1.0 ~ ACPI 6.0. + * + * It appears the AML interpreter shouldn't support TermList for these + * objects as both the ASL grammar and AML grammar doesn't allow it. But + * the real world apears not. + */ + +Name(z181, 181) + +/* Tests for Type1Opcode */ + +Name(ml10, 0) +Name(ml11, 0) +Name(ml12, 0) +Name(ml13, 0) + +Scope(\_SB) +{ + Device(dev0) + { + if (LEqual(ml10, 0)) { + Store(2, ml10) + } + PowerResource(pr00, 1, 0) + { + if (LEqual(ml13, 0)) { + Store(2, ml13) + } + } + } +} +Scope(\_PR) +{ + Processor(cpu0, 0, 0xFFFFFFFF, 0) + { + if (LEqual(ml11, 0)) { + Store(2, ml11) + } + } +} +Scope(\_TZ) +{ + ThermalZone(thz0) + { + if (LEqual(ml12, 0)) { + Store(2, ml12) + } + } +} + +Method(MLO0,, Serialized) +{ + Name(ts, "MLO0") + + Store("TEST: MLO0, Type1Opcode is executable under objects", Debug) + + if (LNotEqual(ml10, 2)) { + err(ts, z181, 0, z181, 0, ml10, 2) + } + if (LNotEqual(ml11, 2)) { + err(ts, z181, 1, z181, 1, ml11, 2) + } + if (LNotEqual(ml12, 2)) { + err(ts, z181, 2, z181, 2, ml12, 2) + } + if (LNotEqual(ml13, 2)) { + err(ts, z181, 3, z181, 3, ml13, 2) + } +} diff --git a/tests/aslts/src/runtime/collections/functional/module/scope.asl b/tests/aslts/src/runtime/collections/functional/module/scope.asl new file mode 100644 index 000000000..cbe36b850 --- /dev/null +++ b/tests/aslts/src/runtime/collections/functional/module/scope.asl @@ -0,0 +1,91 @@ +/* + * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Module level execution under DefinitionBlock/Scope + */ + +/* + * Verify if Type1Opcode (ex., If) is allowed under DefinitionBlock or + * Scope + * + * ASL spec state: + * 1. DefinitionBlockTerm supports TermList for ACPI 1.0 ~ 6.0. + * 2. ScopeTerm supports TermList for ACPI 1.0 and ObjectList for + * ACPI 2.0 ~ 6.0. + * + * AML spec state: + * 1. AMLCode supports TermList for ACPI 2.0 ~ 6.0. + * 2. DefScope supports ObjectList for ACPI 1.0 and TermList for + * ACPI 2.0 ~ 6.0. + * + * It appears the AML interpreter should support TermList for both + * DefinitionBlock and Scope, but the ASL grammar is not compliant to the + * AML grammar and the real world. + */ + +Name(z180, 180) + +/* Tests for Type1Opcode */ + +Name(ml00, 0) +Name(ml01, 0) +Name(ml02, 0) + +if (LEqual(ml00, 0)) { + Store(2, ml00) +} +Scope(\) +{ + if (LEqual(ml01, 0)) { + Store(2, ml01) + } +} +Scope(\_SB) +{ + if (LEqual(ml02, 0)) { + Store(2, ml02) + } +} + +Method(MLS0,, Serialized) +{ + Name(ts, "MLS0") + + Store("TEST: MLS0, Type1Opcode is executable under scopes", Debug) + + if (LNotEqual(ml00, 2)) { + err(ts, z180, 0, z180, 0, ml00, 2) + } + if (LNotEqual(ml01, 2)) { + err(ts, z180, 1, z180, 1, ml01, 2) + } + if (LNotEqual(ml02, 2)) { + err(ts, z180, 2, z180, 2, ml02, 2) + } +} |