summaryrefslogtreecommitdiff
path: root/tests/aslts/src/runtime/collections/functional/control/switch1.asl
diff options
context:
space:
mode:
authorrmoore1 <rmoore1>2007-08-28 22:18:01 +0000
committerrmoore1 <rmoore1>2007-08-28 22:18:01 +0000
commit73b2ac1aafc834f16f025b83a4fe8beb175e9149 (patch)
tree7ee229b7d57c0cb20c31bc4f28f026b68839c606 /tests/aslts/src/runtime/collections/functional/control/switch1.asl
parent073a0f904ad3159fa903e752ddbdd6f296418020 (diff)
downloadacpica-73b2ac1aafc834f16f025b83a4fe8beb175e9149.tar.gz
Release 7 of ASLTS. Corresponds to ACPICA 20070320.
Diffstat (limited to 'tests/aslts/src/runtime/collections/functional/control/switch1.asl')
-rw-r--r--tests/aslts/src/runtime/collections/functional/control/switch1.asl629
1 files changed, 629 insertions, 0 deletions
diff --git a/tests/aslts/src/runtime/collections/functional/control/switch1.asl b/tests/aslts/src/runtime/collections/functional/control/switch1.asl
new file mode 100644
index 000000000..73994bc99
--- /dev/null
+++ b/tests/aslts/src/runtime/collections/functional/control/switch1.asl
@@ -0,0 +1,629 @@
+/*
+ * Copyright (c) 2006, Intel Corp.
+ * Copyright (C) 2006, Valery Podrezov <valery.a.podrezov@intel.com>
+ * Copyright (C) 2006, Fiodor Suietov <fiodor.f.suietov@intel.com>
+ * 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.
+ */
+
+/*
+ * Method execution control
+ *
+ * Switch, Case, Default operators
+ */
+
+Name(z068, 68)
+
+Name(swi0, 0)
+Name(swi1, 0)
+
+
+/////////////// {if}
+
+Method(m0d0)
+{
+ Store(2, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(1, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+Method(m0d1)
+{
+ Store(3, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Case (1) {
+ Store(1, Local0)
+ }
+ Default {
+ Store(2, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,else} {if}
+
+Method(m0d2)
+{
+ Store(12345678, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(1, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }}
+ }
+ Default {
+ Store(3, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(2, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,else} {if,else}
+
+Method(m0d3)
+{
+ Store(12345678, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Default {
+ Store(1, Local0)
+ }}
+ }
+ Default {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(2, Local0)
+ }
+ Default {
+ Store(3, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,else} {if,elseif}
+
+Method(m0d4)
+{
+ Store(12345678, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(2, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Case (1) {
+ Store(1, Local0)
+ }}
+ }
+ Default {
+ Store(5, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(3, Local0)
+ }
+ Case (1) {
+ Store(4, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,else} {if,elseif,else}
+
+Method(m0d5)
+{
+ Store(12345678, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Case (1) {
+ Store(1, Local0)
+ }
+ Default {
+ Store(2, Local0)
+ }}
+ }
+ Default {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(3, Local0)
+ }
+ Case (1) {
+ Store(4, Local0)
+ }
+ Default {
+ Store(5, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,elseif} {if}
+
+Method(m0d6)
+{
+ Store(4, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(1, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }}
+ }
+ Case (1) {
+ Store(3, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(2, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,elseif} {if,else}
+
+Method(m0d7)
+{
+ Store(4, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Default {
+ Store(1, Local0)
+ }}
+ }
+ Case (1) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(2, Local0)
+ }
+ Default {
+ Store(3, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,elseif} {if,elseif}
+
+Method(m0d8)
+{
+ Store(6, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(2, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Case (1) {
+ Store(1, Local0)
+ }}
+ }
+ Case (1) {
+ Store(5, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(3, Local0)
+ }
+ Case (1) {
+ Store(4, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,elseif} {if,elseif,else}
+
+Method(m0d9)
+{
+ Store(6, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Case (1) {
+ Store(1, Local0)
+ }
+ Default {
+ Store(2, Local0)
+ }}
+ }
+ Case (1) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(3, Local0)
+ }
+ Case (1) {
+ Store(4, Local0)
+ }
+ Default {
+ Store(5, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,elseif,else} {if} (restricted)
+
+Method(m0da)
+{
+ Store(12345678, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(1, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }}
+ }
+ Case (1) {
+ Store(3, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(2, Local0)
+ }}
+ }
+ Default {
+ Store(5, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(4, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,elseif,else} {if,else} (restricted)
+
+Method(m0db)
+{
+ Store(12345678, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Default {
+ Store(1, Local0)
+ }}
+ }
+ Case (1) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(2, Local0)
+ }
+ Default {
+ Store(3, Local0)
+ }}
+ }
+ Default {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(4, Local0)
+ }
+ Default {
+ Store(5, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,elseif,else} {if,elseif} (restricted)
+
+Method(m0dc)
+{
+ Store(12345678, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(2, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(0, Local0)
+ }
+ Case (1) {
+ Store(1, Local0)
+ }}
+ }
+ Case (1) {
+ Store(5, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(3, Local0)
+ }
+ Case (1) {
+ Store(4, Local0)
+ }}
+ }
+ Default {
+ Store(8, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(6, Local0)
+ }
+ Case (1) {
+ Store(7, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+/////////////// {if,elseif,else} {if,elseif,else} (restricted)
+
+Method(m0dd)
+{
+ Store(12345678, Local0)
+
+ Switch (swi0) {
+ Case (0) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(10, Local0)
+ }
+ Case (1) {
+ Store(11, Local0)
+ }
+ Default {
+ Store(12, Local0)
+ }}
+ }
+ Case (1) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(13, Local0)
+ }
+ Case (1) {
+ Store(14, Local0)
+ }
+ Default {
+ Store(15, Local0)
+ }}
+ }
+ Case (2) {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(16, Local0)
+ }
+ Case (1) {
+ Store(17, Local0)
+ }
+ Default {
+ Store(18, Local0)
+ }}
+ }
+ Default {
+ Store(12345678, Local0)
+ Switch (swi1) {
+ Case (0) {
+ Store(19, Local0)
+ }
+ Case (1) {
+ Store(20, Local0)
+ }
+ Default {
+ Store(21, Local0)
+ }}
+ }}
+ return (Local0)
+}
+
+// Run the particular method
+// (till the time the passing of pointer to method
+// will be implemented)
+Method(m0c6, 1)
+{
+ Store(0x12345678, Local0)
+
+ switch (arg0) {
+ case (0) {
+ Store(m0d0(), Local0)
+ }
+ case (1) {
+ Store(m0d1(), Local0)
+ }
+ case (2) {
+ Store(m0d2(), Local0)
+ }
+ case (3) {
+ Store(m0d3(), Local0)
+ }
+ case (4) {
+ Store(m0d4(), Local0)
+ }
+ case (5) {
+ Store(m0d5(), Local0)
+ }
+ case (6) {
+ Store(m0d6(), Local0)
+ }
+ case (7) {
+ Store(m0d7(), Local0)
+ }
+ case (8) {
+ Store(m0d8(), Local0)
+ }
+ case (9) {
+ Store(m0d9(), Local0)
+ }
+ case (10) {
+ Store(m0da(), Local0)
+ }
+ case (11) {
+ Store(m0db(), Local0)
+ }
+ case (12) {
+ Store(m0dc(), Local0)
+ }
+ case (13) {
+ Store(m0dd(), Local0)
+ }
+ }
+
+ return (Local0)
+}
+
+// Verivication of ?????????????
+Method(m0c7, 3)
+{
+ Name(bs00, 0)
+ Name(cnt0, 0)
+ Name(cnt1, 0)
+ Name(ind1, 0)
+ Name(ix00, 0)
+
+ Name(lpN0, 0)
+ Name(lpC0, 0)
+ Name(lpN1, 0)
+ Name(lpC1, 0)
+
+ Store(0, swi0)
+
+ Store(DeRefOf(Index(arg2, 0)), ix00)
+ Store(DeRefOf(Index(arg2, 1)), cnt0)
+
+ Store(2, ind1)
+ Store(cnt0, lpN0)
+ Store(0, lpC0)
+ While (lpN0) {
+ Store(0, swi1)
+ Store(DeRefOf(Index(arg2, ind1)), cnt1)
+ Store(cnt1, lpN1)
+ Store(0, lpC1)
+ While (lpN1) {
+
+ Store(m0c6(arg1), Local0)
+
+ if (0) {
+ Store("=============:", Debug)
+ Store(swi0, Debug)
+ Store(swi1, Debug)
+ Store(ix00, Debug)
+ Store(Local0, Debug)
+ Store("=============.", Debug)
+ }
+
+ if (LNotEqual(Local0, ix00)){
+ err(arg0, z068, 0, 0, 0, Local0, ix00)
+ }
+ Increment(ix00)
+ Increment(swi1)
+ Decrement(lpN1)
+ Increment(lpC1)
+ }
+ Increment(swi0)
+ Increment(ind1)
+ Decrement(lpN0)
+ Increment(lpC0)
+ }
+
+ return (0)
+}
+
+// Run-method
+Method(SW01)
+{
+ Store("TEST: SW01, Switch, Case, Default operators", Debug)
+
+ Name(ts, "SW01")
+
+ m0c7(ts, 0, Buffer() {0, 2, 2, 1})
+ m0c7(ts, 1, Buffer() {0, 2, 3, 1})
+ m0c7(ts, 2, Buffer() {0, 2, 2, 2})
+ m0c7(ts, 3, Buffer() {0, 2, 2, 2})
+ m0c7(ts, 4, Buffer() {0, 2, 3, 3})
+ m0c7(ts, 5, Buffer() {0, 2, 3, 3})
+ m0c7(ts, 6, Buffer() {0, 3, 2, 2, 1})
+ m0c7(ts, 7, Buffer() {0, 3, 2, 2, 1})
+ m0c7(ts, 8, Buffer() {0, 3, 3, 3, 1})
+ m0c7(ts, 9, Buffer() {0, 3, 3, 3, 1})
+ m0c7(ts, 10, Buffer() {0, 3, 2, 2, 2})
+ m0c7(ts, 11, Buffer() {0, 3, 2, 2, 2})
+ m0c7(ts, 12, Buffer() {0, 3, 3, 3, 3})
+ m0c7(ts, 13, Buffer() {10, 4, 3, 3, 3, 3})
+
+ return (0)
+}