1/* 2 * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without modification, 6 * are permitted provided that the following conditions are met: 7 * 8 * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * Neither the name of Intel Corporation nor the names of its contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29/* 30 * Miscellaneous named object creation 31 */ 32 33/* 34!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 35SEE: see below, update needed 36!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 37*/ 38 39// Package, Declare Package Object 40// 41// Update needed: 42// 43// m1f4() - this test should be implemented after references to Control 44// Methods as elements of Package will be implemented by ACPICA. 45// m1f7() - this test should be implemented after ObjectType stops aborting 46// program when dealing with uninitialized objects. 47// all - add references to Control Methods to all other tests of this file. 48// 49// Note: verification of the contents of Packages is not performed, too complex. 50 51Name(z051, 51) 52 53// Step {1,2,4,8,16,32}. Use 16, too much time for 1 there. 54Name(c040, 16) 55 56// Max number of iterations of Mix test. 57// Use 25, though available are {1-29}. 58Name(c041, 22) 59 60// Check Integers 61Method(m1f0,, Serialized) 62{ 63 Name(ts, "m1f0") 64 65 Name(p000, Package() { 66 // 0 67 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 68 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 69 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 70 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 71 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 72 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 73 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 74 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 75 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 76 90, 91, 92, 93, 94, 95, 77 78 // 96 79 0x8765ac00, 0x8765ac01, 0x8765ac02, 0x8765ac03, 80 0x8765ac04, 0x8765ac05, 0x8765ac06, 0x8765ac07, 81 0x8765ac08, 0x8765ac09, 0x8765ac0a, 0x8765ac0b, 82 0x8765ac0c, 0x8765ac0d, 0x8765ac0e, 0x8765ac0f, 83 84 0x8765ac10, 0x8765ac11, 0x8765ac12, 0x8765ac13, 85 0x8765ac14, 0x8765ac15, 0x8765ac16, 0x8765ac17, 86 0x8765ac18, 0x8765ac19, 0x8765ac1a, 0x8765ac1b, 87 0x8765ac1c, 0x8765ac1d, 0x8765ac1e, 0x8765ac1f, 88 89 0x8765ac20, 0x8765ac21, 0x8765ac22, 0x8765ac23, 90 0x8765ac24, 0x8765ac25, 0x8765ac26, 0x8765ac27, 91 0x8765ac28, 0x8765ac29, 0x8765ac2a, 0x8765ac2b, 92 0x8765ac2c, 0x8765ac2d, 0x8765ac2e, 0x8765ac2f, 93 94 0x8765ac30, 0x8765ac31, 0x8765ac32, 0x8765ac33, 95 0x8765ac34, 0x8765ac35, 0x8765ac36, 0x8765ac37, 96 0x8765ac38, 0x8765ac39, 0x8765ac3a, 0x8765ac3b, 97 0x8765ac3c, 0x8765ac3d, 0x8765ac3e, 0x8765ac3f, 98 99 // 160 100 0x8765acba11223300, 0x8765acba11223301, 101 0x8765acba11223302, 0x8765acba11223303, 102 0x8765acba11223304, 0x8765acba11223305, 103 0x8765acba11223306, 0x8765acba11223307, 104 0x8765acba11223308, 0x8765acba11223309, 105 0x8765acba1122330a, 0x8765acba1122330b, 106 0x8765acba1122330c, 0x8765acba1122330d, 107 0x8765acba1122330e, 0x8765acba1122330f, 108 0x8765acba11223310, 0x8765acba11223311, 109 0x8765acba11223312, 0x8765acba11223313, 110 111 0x8765acba11223314, 0x8765acba11223315, 112 0x8765acba11223316, 0x8765acba11223317, 113 0x8765acba11223318, 0x8765acba11223319, 114 0x8765acba1122331a, 0x8765acba1122331b, 115 0x8765acba1122331c, 0x8765acba1122331d, 116 0x8765acba1122331e, 0x8765acba1122331f, 117 0x8765acba11223320, 0x8765acba11223321, 118 0x8765acba11223322, 0x8765acba11223323, 119 120 // 196 121 196, 197, 198, 199, 122 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 123 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 124 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 125 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 126 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 127 250, 251, 252, 253, 254, 128 }) 129 130 ts00(ts) 131 132 // Too much time for 1 there, so use {8/16} 133 Store(c040, Local6) 134 Divide(255, Local6, Local1, Local0) 135 136 Store(0, Local1) 137 Store(0, Local4) 138 Store(0, Local5) 139 140 While (Local0) { 141 142 Store(DeRefOf(Index(p000, Local1)), Local2) 143 Store(Local1, Local3) 144 145 if (LLessEqual(Local1, 95)) { 146 if (LNotEqual(Local2, Local3)) { 147 err(ts, z051, 0, 0, 0, Local2, Local3) 148 } 149 } elseif (LLessEqual(Local1, 159)) { 150 Add(0x8765ac00, Local4, Local3) 151 if (LNotEqual(Local2, Local3)) { 152 err(ts, z051, 1, 0, 0, Local2, Local3) 153 } 154 Add(Local4, Local6, Local4) 155 } elseif (LLessEqual(Local1, 195)) { 156 Add(0x8765acba11223300, Local5, Local3) 157 if (LNotEqual(Local2, Local3)) { 158 err(ts, z051, 2, 0, 0, Local2, Local3) 159 } 160 Add(Local5, Local6, Local5) 161 } else { 162 if (LNotEqual(Local2, Local3)) { 163 err(ts, z051, 3, 0, 0, Local2, Local3) 164 } 165 } 166 167 Store(ObjectType(Local2), Local3) 168 if (LNotEqual(Local3, 1)) { 169 err(ts, z051, 4, 0, 0, Local3, 1) 170 } 171 172 Add(Local1, Local6, Local1) 173 Decrement(Local0) 174 } 175 176 Store(SizeOf(p000), Local0) 177 if (LNotEqual(Local0, 255)) { 178 err(ts, z051, 5, 0, 0, Local0, 255) 179 } 180} 181 182// Check Strings 183Method(m1f1,, Serialized) 184{ 185 Name(ts, "m1f1") 186 187 Name(p000, Package() { 188 "", "0", "01", "012", " 0 0", " 9 ", "vqwert", "1234567", "01234567", 189 "01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", 190 }) 191 192 ts00(ts) 193 194 Store(10, Local0) 195 Store(0, Local1) 196 Store(0, Local5) 197 198 While (Local0) { 199 200 Store(DeRefOf(Index(p000, Local1)), Local2) 201 Store(SizeOf(Local2), Local3) 202 203 Store(Local1, Local4) 204 if (LEqual(Local1, 9)) { 205 Store(200, Local4) 206 } 207 208 if (LNotEqual(Local4, Local3)) { 209 err(ts, z051, 6, 0, 0, Local4, Local3) 210 } 211 212 Store(ObjectType(Local2), Local3) 213 if (LNotEqual(Local3, 2)) { 214 err(ts, z051, 7, 0, 0, Local3, 2) 215 } 216 217 Increment(Local1) 218 Decrement(Local0) 219 } 220 221 Store(SizeOf(p000), Local0) 222 if (LNotEqual(Local0, 10)) { 223 err(ts, z051, 8, 0, 0, Local0, 10) 224 } 225} 226 227// Check Buffers 228Method(m1f2,, Serialized) 229{ 230 Name(ts, "m1f2") 231 232 Name(p000, Package() { 233 Buffer(1) {}, 234 Buffer(2) {}, 235 Buffer(3) {}, 236 Buffer(4) {}, 237 Buffer(5) {}, 238 Buffer(6) {}, 239 Buffer(7) {}, 240 Buffer(8) {}, 241 Buffer(9) {}, 242 Buffer(10) {}, 243 244 Buffer() {1,2,3,4,5,6,7,8,9,10,11}, 245 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12}, 246 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13}, 247 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14}, 248 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}, 249 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, 250 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}, 251 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}, 252 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}, 253 Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}, 254 255 Buffer(21) {}, Buffer(22) {}, Buffer(23) {}, Buffer(24) {}, Buffer(25) {}, 256 Buffer(26) {}, Buffer(27) {}, Buffer(28) {}, Buffer(29) {}, Buffer(30) {}, 257 Buffer(31) {}, Buffer(32) {}, Buffer(33) {}, Buffer(34) {}, Buffer(35) {}, 258 Buffer(36) {}, Buffer(37) {}, Buffer(38) {}, Buffer(39) {}, Buffer(40) {}, 259 Buffer(41) {}, Buffer(42) {}, Buffer(43) {}, Buffer(44) {}, Buffer(45) {}, 260 Buffer(46) {}, Buffer(47) {}, Buffer(48) {}, Buffer(49) {}, Buffer(50) {}, 261 Buffer(51) {}, Buffer(52) {}, Buffer(53) {}, Buffer(54) {}, Buffer(55) {}, 262 Buffer(56) {}, Buffer(57) {}, Buffer(58) {}, Buffer(59) {}, Buffer(60) {}, 263 Buffer(61) {}, Buffer(62) {}, Buffer(63) {}, Buffer(64) {}, Buffer(65) {}, 264 Buffer(66) {}, Buffer(67) {}, Buffer(68) {}, Buffer(69) {}, Buffer(70) {}, 265 Buffer(71) {}, Buffer(72) {}, Buffer(73) {}, Buffer(74) {}, Buffer(75) {}, 266 Buffer(76) {}, Buffer(77) {}, Buffer(78) {}, Buffer(79) {}, Buffer(80) {}, 267 Buffer(81) {}, Buffer(82) {}, Buffer(83) {}, Buffer(84) {}, Buffer(85) {}, 268 Buffer(86) {}, Buffer(87) {}, Buffer(88) {}, Buffer(89) {}, Buffer(90) {}, 269 Buffer(91) {}, Buffer(92) {}, Buffer(93) {}, Buffer(94) {}, Buffer(95) {}, 270 Buffer(96) {}, Buffer(97) {}, Buffer(98) {}, Buffer(99) {}, 271 272 Buffer(100) {}, Buffer(101) {}, Buffer(102) {}, Buffer(103) {}, 273 Buffer(104) {}, Buffer(105) {}, Buffer(106) {}, Buffer(107) {}, 274 Buffer(108) {}, Buffer(109) {}, Buffer(110) {}, Buffer(111) {}, 275 Buffer(112) {}, Buffer(113) {}, Buffer(114) {}, Buffer(115) {}, 276 Buffer(116) {}, Buffer(117) {}, Buffer(118) {}, Buffer(119) {}, 277 Buffer(120) {}, Buffer(121) {}, Buffer(122) {}, Buffer(123) {}, 278 Buffer(124) {}, Buffer(125) {}, Buffer(126) {}, Buffer(127) {}, 279 Buffer(128) {}, Buffer(129) {}, Buffer(130) {}, Buffer(131) {}, 280 Buffer(132) {}, Buffer(133) {}, Buffer(134) {}, Buffer(135) {}, 281 Buffer(136) {}, Buffer(137) {}, Buffer(138) {}, Buffer(139) {}, 282 Buffer(140) {}, Buffer(141) {}, Buffer(142) {}, Buffer(143) {}, 283 Buffer(144) {}, Buffer(145) {}, Buffer(146) {}, Buffer(147) {}, 284 Buffer(148) {}, Buffer(149) {}, 285 286 Buffer(150) {}, Buffer(151) {}, Buffer(152) {}, Buffer(153) {}, 287 Buffer(154) {}, Buffer(155) {}, Buffer(156) {}, Buffer(157) {}, 288 Buffer(158) {}, Buffer(159) {}, Buffer(160) {}, Buffer(161) {}, 289 Buffer(162) {}, Buffer(163) {}, Buffer(164) {}, Buffer(165) {}, 290 Buffer(166) {}, Buffer(167) {}, Buffer(168) {}, Buffer(169) {}, 291 Buffer(170) {}, Buffer(171) {}, Buffer(172) {}, Buffer(173) {}, 292 Buffer(174) {}, Buffer(175) {}, Buffer(176) {}, Buffer(177) {}, 293 Buffer(178) {}, Buffer(179) {}, Buffer(180) {}, Buffer(181) {}, 294 Buffer(182) {}, Buffer(183) {}, Buffer(184) {}, Buffer(185) {}, 295 Buffer(186) {}, Buffer(187) {}, Buffer(188) {}, Buffer(189) {}, 296 Buffer(190) {}, Buffer(191) {}, Buffer(192) {}, Buffer(193) {}, 297 Buffer(194) {}, Buffer(195) {}, Buffer(196) {}, Buffer(197) {}, 298 Buffer(198) {}, Buffer(199) {}, 299 300 Buffer(200) {}, Buffer(201) {}, Buffer(202) {}, Buffer(203) {}, 301 Buffer(204) {}, Buffer(205) {}, Buffer(206) {}, Buffer(207) {}, 302 Buffer(208) {}, Buffer(209) {}, Buffer(210) {}, Buffer(211) {}, 303 Buffer(212) {}, Buffer(213) {}, Buffer(214) {}, Buffer(215) {}, 304 Buffer(216) {}, Buffer(217) {}, Buffer(218) {}, Buffer(219) {}, 305 Buffer(220) {}, Buffer(221) {}, Buffer(222) {}, Buffer(223) {}, 306 Buffer(224) {}, Buffer(225) {}, Buffer(226) {}, Buffer(227) {}, 307 Buffer(228) {}, Buffer(229) {}, Buffer(230) {}, Buffer(231) {}, 308 Buffer(232) {}, Buffer(233) {}, Buffer(234) {}, Buffer(235) {}, 309 Buffer(236) {}, Buffer(237) {}, Buffer(238) {}, Buffer(239) {}, 310 Buffer(240) {}, Buffer(241) {}, Buffer(242) {}, Buffer(243) {}, 311 Buffer(244) {}, Buffer(245) {}, Buffer(246) {}, Buffer(247) {}, 312 Buffer(248) {}, Buffer(249) {}, 313 314 Buffer(250) {}, Buffer(251) {}, Buffer(252) {}, Buffer(253) {}, 315 Buffer(254) {}, Buffer(255) {}, 316 }) 317 318 ts00(ts) 319 320 // Too much time for 1 there, so use {8/16} 321 Store(c040, Local6) 322 Divide(255, Local6, Local1, Local0) 323 Store(0, Local1) 324 Store(0, Local5) 325 326 While (Local0) { 327 328 Store(DeRefOf(Index(p000, Local1)), Local2) 329 Store(SizeOf(Local2), Local3) 330 331 Add(Local1, 1, Local4) 332 333 if (LNotEqual(Local4, Local3)) { 334 err(ts, z051, 9, 0, 0, Local4, Local3) 335 } 336 337 Store(ObjectType(Local2), Local3) 338 if (LNotEqual(Local3, 3)) { 339 err(ts, z051, 10, 0, 0, Local3, 3) 340 } 341 342 Add(Local1, Local6, Local1) 343 Decrement(Local0) 344 } 345 346 Store(SizeOf(p000), Local0) 347 if (LNotEqual(Local0, 255)) { 348 err(ts, z051, 11, 0, 0, Local0, 255) 349 } 350} 351 352// Packages 353Method(m1f3,, Serialized) 354{ 355 Name(ts, "m1f3") 356 357 Name(p000, Package() { 358 Package(1) {}, 359 Package(2) {}, 360 Package(3) {}, 361 Package(4) {}, 362 Package(5) {}, 363 Package(6) {}, 364 Package(7) {}, 365 Package(8) {}, 366 Package(9) {}, 367 Package(10) {}, 368 369 Package() {1,2,3,4,5,6,7,8,9,10,11}, 370 Package() {1,2,3,4,5,6,7,8,9,10,11,12}, 371 Package() {1,2,3,4,5,6,7,8,9,10,11,12,13}, 372 Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14}, 373 Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}, 374 Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, 375 Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}, 376 Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}, 377 Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}, 378 Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}, 379 380 Package(21) {}, Package(22) {}, Package(23) {}, Package(24) {}, 381 Package(25) {}, Package(26) {}, Package(27) {}, Package(28) {}, 382 Package(29) {}, Package(30) {}, Package(31) {}, Package(32) {}, 383 Package(33) {}, Package(34) {}, Package(35) {}, Package(36) {}, 384 Package(37) {}, Package(38) {}, Package(39) {}, Package(40) {}, 385 Package(41) {}, Package(42) {}, Package(43) {}, Package(44) {}, 386 Package(45) {}, Package(46) {}, Package(47) {}, Package(48) {}, 387 Package(49) {}, Package(50) {}, Package(51) {}, Package(52) {}, 388 Package(53) {}, Package(54) {}, Package(55) {}, Package(56) {}, 389 Package(57) {}, Package(58) {}, Package(59) {}, Package(60) {}, 390 Package(61) {}, Package(62) {}, Package(63) {}, Package(64) {}, 391 Package(65) {}, Package(66) {}, Package(67) {}, Package(68) {}, 392 Package(69) {}, Package(70) {}, Package(71) {}, Package(72) {}, 393 Package(73) {}, Package(74) {}, Package(75) {}, Package(76) {}, 394 Package(77) {}, Package(78) {}, Package(79) {}, Package(80) {}, 395 Package(81) {}, Package(82) {}, Package(83) {}, Package(84) {}, 396 Package(85) {}, Package(86) {}, Package(87) {}, Package(88) {}, 397 Package(89) {}, Package(90) {}, Package(91) {}, Package(92) {}, 398 Package(93) {}, Package(94) {}, Package(95) {}, Package(96) {}, 399 Package(97) {}, Package(98) {}, Package(99) {}, 400 401 Package(100) {}, Package(101) {}, Package(102) {}, Package(103) {}, 402 Package(104) {}, Package(105) {}, Package(106) {}, Package(107) {}, 403 Package(108) {}, Package(109) {}, Package(110) {}, Package(111) {}, 404 Package(112) {}, Package(113) {}, Package(114) {}, Package(115) {}, 405 Package(116) {}, Package(117) {}, Package(118) {}, Package(119) {}, 406 Package(120) {}, Package(121) {}, Package(122) {}, Package(123) {}, 407 Package(124) {}, Package(125) {}, Package(126) {}, Package(127) {}, 408 Package(128) {}, Package(129) {}, Package(130) {}, Package(131) {}, 409 Package(132) {}, Package(133) {}, Package(134) {}, Package(135) {}, 410 Package(136) {}, Package(137) {}, Package(138) {}, Package(139) {}, 411 Package(140) {}, Package(141) {}, Package(142) {}, Package(143) {}, 412 Package(144) {}, Package(145) {}, Package(146) {}, Package(147) {}, 413 Package(148) {}, Package(149) {}, 414 415 Package(150) {}, Package(151) {}, Package(152) {}, Package(153) {}, 416 Package(154) {}, Package(155) {}, Package(156) {}, Package(157) {}, 417 Package(158) {}, Package(159) {}, Package(160) {}, Package(161) {}, 418 Package(162) {}, Package(163) {}, Package(164) {}, Package(165) {}, 419 Package(166) {}, Package(167) {}, Package(168) {}, Package(169) {}, 420 Package(170) {}, Package(171) {}, Package(172) {}, Package(173) {}, 421 Package(174) {}, Package(175) {}, Package(176) {}, Package(177) {}, 422 Package(178) {}, Package(179) {}, Package(180) {}, Package(181) {}, 423 Package(182) {}, Package(183) {}, Package(184) {}, Package(185) {}, 424 Package(186) {}, Package(187) {}, Package(188) {}, Package(189) {}, 425 Package(190) {}, Package(191) {}, Package(192) {}, Package(193) {}, 426 Package(194) {}, Package(195) {}, Package(196) {}, Package(197) {}, 427 Package(198) {}, Package(199) {}, 428 429 Package(200) {}, Package(201) {}, Package(202) {}, Package(203) {}, 430 Package(204) {}, Package(205) {}, Package(206) {}, Package(207) {}, 431 Package(208) {}, Package(209) {}, Package(210) {}, Package(211) {}, 432 Package(212) {}, Package(213) {}, Package(214) {}, Package(215) {}, 433 Package(216) {}, Package(217) {}, Package(218) {}, Package(219) {}, 434 Package(220) {}, Package(221) {}, Package(222) {}, Package(223) {}, 435 Package(224) {}, Package(225) {}, Package(226) {}, Package(227) {}, 436 Package(228) {}, Package(229) {}, Package(230) {}, Package(231) {}, 437 Package(232) {}, Package(233) {}, Package(234) {}, Package(235) {}, 438 Package(236) {}, Package(237) {}, Package(238) {}, Package(239) {}, 439 Package(240) {}, Package(241) {}, Package(242) {}, Package(243) {}, 440 Package(244) {}, Package(245) {}, Package(246) {}, Package(247) {}, 441 Package(248) {}, Package(249) {}, 442 443 Package(250) {}, Package(251) {}, Package(252) {}, Package(253) {}, 444 Package(254) {}, Package(255) {}, 445 }) 446 447 ts00(ts) 448 449 // Too much time for 1 there, so use {8/16} 450 Store(c040, Local6) 451 Divide(255, Local6, Local1, Local0) 452 Store(0, Local1) 453 Store(0, Local5) 454 455 While (Local0) { 456 457 Store(DeRefOf(Index(p000, Local1)), Local2) 458 Store(SizeOf(Local2), Local3) 459 460 Add(Local1, 1, Local4) 461 462 if (LNotEqual(Local4, Local3)) { 463 err(ts, z051, 12, 0, 0, Local4, Local3) 464 } 465 466 Store(ObjectType(Local2), Local3) 467 if (LNotEqual(Local3, 4)) { 468 err(ts, z051, 13, 0, 0, Local3, 4) 469 } 470 471 Add(Local1, Local6, Local1) 472 Decrement(Local0) 473 } 474 475 Store(SizeOf(p000), Local0) 476 if (LNotEqual(Local0, 255)) { 477 err(ts, z051, 14, 0, 0, Local0, 255) 478 } 479} 480 481// Do test for Methods, when Methods will be implemented !!!!!!!!!!!!!!! 482Method(m1f4,, Serialized) 483{ 484 Name(ts, "m1f4") 485 486 ts00(ts) 487 488// Not implemented yet 489 490 Method(m000) {return ("aaaa")} 491 Method(m001) {return (Buffer() {1,2,3,4})} 492 Method(m002) {return (Package() {1,2,3,4,5})} 493// Method(m003) {return (0)} 494 495 Store("============= vvvvvvvvvvvvv", Debug) 496 Store(RefOf(m000), Local0) 497 Store(SizeOf(Local0), Local1) 498 // Store(SizeOf(m000), Local1) 499 Store(Local0, Debug) 500 Store(Local1, Debug) 501 Store("============= ccccccccccccc", Debug) 502 503 return (0) 504} 505 506Method(m1f5, 3, Serialized) 507{ 508 // n000 - decr cur counter (levels num) 509 // n001 - incr cur counter 510 // n002 - type of target object 511 // n004 - size of target object 512 // n003 - incr cur counter (index of first level) 513 514 Name(n000, 0) 515 Name(n001, 0) 516 Name(n002, 0x1234) 517 Name(n004, 0) 518 Name(n003, 4) 519 520 // Type of target object 521 Store(DeRefOf(Index(arg2, 0)), n002) 522 523 // Size of target object 524 Store(DeRefOf(Index(arg2, 1)), n004) 525 526 // Repetition 527 Store(DeRefOf(Index(arg2, 3)), n000) 528 529 // Cur de-reference 530 Store(arg1, Local7) 531 532 While (n000) { 533 534 // Index in cur object 535 Store(DeRefOf(Index(arg2, n003)), Local0) 536 537 // Cur de-reference 538 Store(DeRefOf(Index(Local7, Local0)), Local7) 539 540 Store(ObjectType(Local7), Local0) 541 542 Increment(n003) 543 Increment(n001) 544 Decrement(n000) 545 } 546 547 // Type 548 549 Store(ObjectType(Local7), Local0) 550 if (LNotEqual(Local0, n002)) { 551 err(arg0, z051, 15, 0, 0, Local0, n002) 552 } 553 554 // Contents 555 556 if (LGreaterEqual(n002, 1)) { 557 if (LLessEqual(n002, 3)) { 558 559 Store(0, Local6) 560 Store(0, Local1) 561 562 Store(DeRefOf(Index(arg2, 2)), Local0) 563 564 if (LNotEqual(n002, 1)) { 565 Store(SizeOf(Local0), Local1) 566 } 567 568 if (LNotEqual(Local1, n004)) { 569 err(arg0, z051, 16, 0, 0, Local1, n004) 570 Store(1, Local6) 571 } elseif (LNotEqual(Local7, Local0)) { 572 err(arg0, z051, 17, 0, 0, Local7, Local0) 573 Store(1, Local6) 574 } 575 if (Local6) { 576 Store("============= To ERROR:", Debug) 577 Store(Local0, Debug) 578 Store(Local7, Debug) 579 Store("=============.", Debug) 580 } 581 } 582 } 583} 584 585// Mix 586// - all one level combinations 587// - 255 levels in depth 588Method(m1f6,, Serialized) 589{ 590 Name(ts, "m1f6") 591 592 Name(p000, Package() { 593 594 // 0 595 596 0xb2345678, 597 "qwert", 598 Buffer() {1,2,3,4,5,6}, 599 Package(1) {}, 600 601 // 4, Integer, String, Buffer 602 603 Package() {0}, 604 Package() {"qwhj"}, 605 Package() {1, "qwu"}, 606 Package() {"er", 2}, 607 Package() {Buffer() {1}}, 608 Package() {3, Buffer() {2,3}}, 609 Package() {Buffer() {4,5,6}, 4}, 610 Package() {"a", Buffer() {7,8,9,10}}, 611 Package() {Buffer() {11,12,13,14,15}, "qw"}, 612 Package() {Buffer() {16,17}, "12r", 55}, 613 Package() {Buffer() {18,19}, 56, "ghjk"}, 614 Package() {57, Buffer() {20,21,22}, "ghjkf"}, 615 Package() {58, "sdfghj", Buffer() {23,24}}, 616 Package() {"sdfghjg", Buffer() {25}, 59}, 617 Package() {"sdfghjgg", 60, Buffer() {26,27}}, 618 619 // 19, Integer, String, Buffer, Package 620 621 Package() {Package() {0}}, 622 Package() {0, Package() {0,1}}, 623 Package() {Package() {0}, 1}, 624 Package() {"qwhj", Package() {0,1,2}}, 625 Package() {Package() {0}, "ffrgg"}, 626 Package() {1, "qwum", Package() {3,4,4,4}}, 627 Package() {2, Package() {5,5,5,5,5,}, "dfgh"}, 628 Package() {"qwu", 3, Package() {6,6,6,6,6,6}}, 629 Package() {"qwuuio", Package() {7,7,7,7,7,7,7}, 4}, 630 Package() {Package() {8,8,8,8,8,8,8,8}, "asd0000f", 5}, 631 Package() {Package() {9,9,9,9,9,9,9}, 6, "fasdfbvcd"}, 632 // 30 633 Package() {Package() {10,1,1,1,1,2}, Buffer() {28,2,3,4,5,6}}, 634 Package() {Buffer() {29,2,3,4,5,6}, Package() {9,8,7,6,5}}, 635 Package() {Package() {0,8,7,6}, 9, Buffer() {1,2,30,4,5,6}}, 636 Package() {Package() {6,5,3}, Buffer() {1,2,31,4,5,6}, 10}, 637 Package() {Buffer() {1,2,32,4,5,6}, Package() {6,7}, 11}, 638 Package() {Buffer() {1,2,33,4,5,6}, 12, Package(7) {0}}, 639 Package() {12, Package() {7,6}, Buffer() {1,2,34,4,5,6}}, 640 Package() {13, Buffer() {1,2,35,4,5,6}, Package() {5,4,6}}, 641 Package() {Package() {8,7,6,5}, "sdfghjg0", Buffer() {36}}, 642 Package() {Package() {8,7,8,9,0}, Buffer() {37,38}, "cbvnm"}, 643 // 40 644 Package() {"sdfgh1jg", Buffer() {39}, Package() {9,9,7,6,5,4}}, 645 Package() {"sdf2ghjg", Package() {9,0,3,4,5,7,6}, Buffer() {40,1,2}}, 646 Package() {Buffer() {41,2}, "cb3vnm", Package() {8,0,3,5,1,8}}, 647 Package() {Buffer() {1,42}, Package() {8,7,6,5,4}, "zx"}, 648 Package() {Package() {2,7,0,4}, "sdfgh4jg", Buffer() {1,2,43}, 59}, 649 Package() {Package() {55,66,77}, "sdfghj5g", 70, Buffer() {1,2,44,45}}, 650 Package() {Package() {99,12}, Buffer() {46,47,48,1,2}, "g6g", 59}, 651 Package() {Package() {1234}, Buffer() {49,1,2}, 59, "d7fg"}, 652 Package() {Package() {46,59}, 7, "8sdfghjg", Buffer() {1,2,50}}, 653 Package() {Package() {76,98,62}, 8, Buffer() {51,2}, "9sdfghjg"}, 654 // 50 655 Package() {"s10dfghjg", Package() {47,78,74,37}, Buffer() {1,52}, 59}, 656 Package() {"sdf11ghjg", Package() {70,12,34,45,56}, 70, Buffer() {53}}, 657 Package() {Buffer() {1,2,54}, Package() {90,12,13,14,15,19}, "g12g", 59}, 658 Package() {Buffer() {1,2,55}, Package() {87,94,83,42,54}, 59, "d1f3g"}, 659 Package() {7, Package() {34,56,78,90}, "1sdf4ghjg", Buffer() {1,2,56}}, 660 Package() {8, Package() {76,43,79}, Buffer() {1,2,57,58}, "s1dfg5hjg"}, 661 Package() {"sd1fg6hjg", Buffer() {1,2,59}, Package() {55,89}, 59}, 662 Package() {"sdfg17hjg", 70, Package() {92}, Buffer() {1,60,2}}, 663 Package() {Buffer() {61,2}, "g18g", Package() {67,89}, 59}, 664 Package() {Buffer() {1,62}, 59, Package() {46,89,90}, "dfg19"}, 665 // 60 666 Package() {0x82987640, "sdf2gh0jg", Package() {43,79,45,67}, Buffer() {1,2,63}}, 667 Package() {8, Buffer() {64,1,2}, Package() {56,78,96}, "21sdfghjg"}, 668 Package() {"sd22fghjg", Buffer() {65}, 59, Package() {49,60}}, 669 Package() {"sdfg23hjg", 70, Buffer() {66,67,1,2}, Package() {20}}, 670 Package() {Buffer() {1,2,68,69,70}, "2g4g", 59, Package() {11,22}}, 671 Package() {Buffer() {71,2}, 59, "2dfg5", Package() {11,22,33}}, 672 Package() {7, "sd26fghjg", Buffer() {1,72}, Package() {55,66,77,88}}, 673 Package() {1145677, Buffer() {1,73,2,3,4}, "shjd2fg7hjg", 674 Package() {89,67,54,32,1,2,3}}, 675 Package() { 676 Package() { 677 Package() { 678 Package() { 679 Package() {0x9b8def45 680 }, 681 }, 682 }, 683 }, 684 }, 685 Package(255) {9,7,8,89,67,54,32,1,2,3,1234,456789}, 686 687 // 70 688 689 Package(10) {11045677, 690 Buffer(202) {1,73,92,39,4}, 691 Buffer(5) {1,73,92,39,4}, 692 "shjd2fg7hjg0123456", 693 "0123456789qwertyuiop012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", 694 Package(11) {89,67,54,32,1,2,3,33,44,55,66}, 695 Package(255) {89,67,54,32,1,2,3,1234,456789}, 696 }, 697 71,72,73,74,75,76,77,78,79, 698 699 // 80 700 701 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 702 703 // 100 704 705 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 706 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 707 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 708 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 709 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 710 711 // 200 712 713 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 714 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 715 0,1,2,3,4,5,6,7,8,9, 716 717 // 250 718 719 250, 251, 252, 253, 720 721 // 254 (maximal element) 722 723 // + one encircling Package, 0-63 724 Package() { Package() { Package() { Package() { 725 Package() { Package() { Package() { Package() { 726 Package() { Package() { Package() { Package() { 727 Package() { Package() { Package() { Package() { 728 Package() { Package() { Package() { Package() { 729 Package() { Package() { Package() { Package() { 730 Package() { Package() { Package() { Package() { 731 Package() { Package() { Package() { Package() { 732 Package() { Package() { Package() { Package() { 733 Package() { Package() { Package() { Package() { 734 Package() { Package() { Package() { Package() { 735 Package() { Package() { Package() { Package() { 736 Package() { Package() { Package() { Package() { 737 Package() { Package() { Package() { Package() { 738 Package() { Package() { Package() { Package() { 739 Package() { Package() { Package() { Package() { 740 // 64-127 741 Package() { Package() { Package() { Package() { 742 Package() { Package() { Package() { Package() { 743 Package() { Package() { Package() { Package() { 744 Package() { Package() { Package() { Package() { 745 Package() { Package() { Package() { Package() { 746 Package() { Package() { Package() { Package() { 747 Package() { Package() { Package() { Package() { 748 Package() { Package() { Package() { Package() { 749 Package() { Package() { Package() { Package() { 750 Package() { Package() { Package() { Package() { 751 Package() { Package() { Package() { Package() { 752 Package() { Package() { Package() { Package() { 753 Package() { Package() { Package() { Package() { 754 Package() { Package() { Package() { Package() { 755 Package() { Package() { Package() { Package() { 756 Package() { Package() { Package() { Package() { 757 // 128-191 758 Package() { Package() { Package() { Package() { 759 Package() { Package() { Package() { Package() { 760 Package() { Package() { Package() { Package() { 761 Package() { Package() { Package() { Package() { 762 Package() { Package() { Package() { Package() { 763 Package() { Package() { Package() { Package() { 764 Package() { Package() { Package() { Package() { 765 Package() { Package() { Package() { Package() { 766 Package() { Package() { Package() { Package() { 767 Package() { Package() { Package() { Package() { 768 Package() { Package() { Package() { Package() { 769 Package() { Package() { Package() { Package() { 770 Package() { Package() { Package() { Package() { 771 Package() { Package() { Package() { Package() { 772 Package() { Package() { Package() { Package() { 773 Package() { Package() { Package() { Package() { 774 // 192-253 775 Package() { Package() { Package() { Package() { 776 Package() { Package() { Package() { Package() { 777 Package() { Package() { Package() { Package() { 778 Package() { Package() { Package() { Package() { 779 Package() { Package() { Package() { Package() { 780 Package() { Package() { Package() { Package() { 781 Package() { Package() { Package() { Package() { 782 Package() { Package() { Package() { Package() { 783 Package() { Package() { Package() { Package() { 784 Package() { Package() { Package() { Package() { 785 Package() { Package() { Package() { Package() { 786 Package() { Package() { Package() { Package() { 787 Package() { Package() { Package() { Package() { 788 Package() { Package() { Package() { Package() { 789 Package() { Package() { Package() { Package() { 790 Package() { Package() { 791 792 0x9b8def45, 793 "q0w1e2r3t4y5u6i7o8p91234567890", 794 Buffer() {17,28,69,11,22,34,35,56,67,11}, 795 Package() {19,27,74,32,18,2,3,67,34}, 796 797 // 192-253 798 }, }, }, }, }, }, }, }, }, }, }, }, }, }, 799 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 800 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 801 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 802 803 0x19283746 804 805 // 128-191 806 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 807 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 808 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 809 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 810 811 0x98765432 812 813 // 64-127 814 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 815 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 816 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 817 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 818 819 0x12345678, 820 821 // 32-63 822 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 823 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 824 825 0xb0ac61df, 826 827 // 16-31 828 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 829 830 0xc1dc51b3, 831 "qwertyuiop1234567890", 832 Buffer() {1,2,63,11,22,34,35,56,67}, 833 Package() {19,27,74,32,18,2,3}, 834 835 // 0-15 836 }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, 837 838 // 1 839 1,2,3,4,5,6,7,8,9, 840 841 // 10 842 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 843 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 844 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 845 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 846 0,1,2,3,4,5,6,7,8,9, 847 848 // 100 849 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 850 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 851 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 852 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 853 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 854 855 // 200 856 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 857 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9, 858 0,1,2,3,4,5,6,7,8,9, 859 860 // 250 861 862 250, 251, 252, 253, Buffer(300) {1,2,63,99,5,67,14,0,6,0,31}, 863 }, 864 }) 865 866 Name(p001, Package() { 867 868 // 0 - 12 869 Package() {1, 0, 0xb2345678, 1, 0}, 870 Package() {2, 5, "qwert", 1, 1}, 871 Package() {3, 6, Buffer() {1,2,3,4,5,6}, 1, 2}, 872 Package() {4, 1, 0, 1, 3}, 873 Package() {1, 0, 0x82987640, 2, 60, 0}, 874 Package() {2, 9, "sdf2gh0jg", 2, 60, 1}, 875 Package() {4, 4, 0, 2, 60, 2}, 876 Package() {3, 3, Buffer() {1,2,63}, 2, 60, 3}, 877 Package() {1, 0, 1145677, 2, 67, 0}, 878 Package() {3, 5, Buffer() {1,73,2,3,4}, 2, 67, 1}, 879 Package() {2, 11, "shjd2fg7hjg", 2, 67, 2}, 880 Package() {4, 7, 0, 2, 67, 3}, 881 Package() {1, 0, 0x9b8def45, 6, 68,0,0,0,0,0}, 882 883 // 13-19 884 Package() {1, 0, 11045677, 2, 70, 0}, 885 Package() {3, 202, Buffer(202) {1,73,92,39,4}, 2, 70, 1}, 886 Package() {3, 5, Buffer(5) {1,73,92,39,4}, 2, 70, 2}, 887 Package() {2, 18, "shjd2fg7hjg0123456", 2, 70, 3}, 888 Package() {2, 200, 889 "0123456789qwertyuiop012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", 890 2, 70, 4}, 891 Package() {4, 11, 0, 2, 70, 5}, 892 Package() {4, 255, 0, 2, 70, 6}, 893 894 // 20 895 Package() {3, 300, Buffer(300) {1,2,63,99,5,67,14,0,6,0,31}, 2, 254, 254}, 896 897 // 21-28 898 Package() {1, 0, 0xc1dc51b3, 17, 254, 899 // 0-15 900 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 901 }, 902 Package() {2, 20, "qwertyuiop1234567890", 17, 254, 903 // 0-15 904 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,2, 905 }, 906 Package() {3, 9, Buffer() {1,2,63,11,22,34,35,56,67}, 17, 254, 907 // 0-15 908 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,3, 909 }, 910 Package() {4, 7, Package() {19,27,74,32,18,2,3}, 17, 254, 911 // 0-15 912 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,4, 913 }, 914 Package() {1, 0, 0xb0ac61df, 33, 254, 915 // 0-31 916 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 917 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 918 }, 919 Package() {1, 0, 0x12345678, 65, 254, 920 // 0-63 921 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 922 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 923 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 924 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 925 }, 926 Package() {1, 0, 0x98765432, 129, 254, 927 // 0-63 928 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 929 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 930 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 931 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 932 // 64-127 933 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 934 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 935 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 936 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 937 }, 938 Package() {1, 0, 0x9b8def45, 255, 254, 939 // 0-63 940 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 941 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 942 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 943 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 944 // 64-127 945 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 946 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 947 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 948 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 949 // 128-191 950 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 951 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 952 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 953 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 954 // 192-253 955 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 956 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 957 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 958 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0, 959 }, 960 }) 961 962 // n000 - step 963 // n001 - decr cur counter 964 // n002 - incr cur counter 965 966 ts00(ts) 967 968 Name(n000, 0) 969 Name(n001, 0) 970 Name(n002, 0) 971 972 // Too much time for 1 there, so use {8/16} 973 Store(1, n000) 974 Divide(c041, n000, n002, n001) 975 Store(0, n002) 976 977 While (n001) { 978 979 if (pr02) { 980 Store(n001, Debug) 981 } 982 983 Store(DeRefOf(Index(p001, n002)), Local0) 984 Store(ObjectType(Local0), Local1) 985 986 m1f5(ts, p000, Local0) 987 988 Add(n002, n000, n002) 989 Decrement(n001) 990 } 991 992 Store(SizeOf(p000), Local0) 993 if (LNotEqual(Local0, 255)) { 994 err(ts, z051, 18, 0, 0, Local0, 255) 995 } 996 997 Store(SizeOf(p001), Local0) 998 if (LNotEqual(Local0, 29)) { 999 err(ts, z051, 19, 0, 0, Local0, 29) 1000 } 1001} 1002 1003// Check uninitialized elements of Package 1004// 1005// Now - causes crash!!!!!!! 1006// Do this test when ObjectType will be fixed. 1007Method(m1f7,, Serialized) 1008{ 1009 Name(ts, "m1f7") 1010 1011 ts00(ts) 1012 1013 Name(p000, Package(255) {}) 1014 1015// Store(DeRefOf(Index(p000, 0)), Local0) 1016 Store(Index(p000, 0), Local0) 1017 1018 Store(ObjectType(Local0), Local2) 1019// Store(ObjectType(Local0), Local1) 1020} 1021 1022// Write Integers into Package, then Read and verify 1023// 1024// <Package>,<size>,<start value> 1025Method(m1f8, 3, Serialized) 1026{ 1027 Name(ts, "m1f8") 1028 1029 Name(n000, 0) 1030 Name(ncur, 0) 1031 1032 // Writing with indexes 1033 1034 Store(arg1, n000) 1035 Store(0, ncur) 1036 Store(arg2, Local0) 1037 1038 While (n000) { 1039 Store(Local0, Index(arg0, ncur)) 1040 if (0) { 1041 Store(Local0, Debug) 1042 } 1043 Increment(Local0) 1044 Decrement(n000) 1045 Increment(ncur) 1046 } 1047 1048 // Reading and verifying 1049 1050 Store(arg1, n000) 1051 Store(0, ncur) 1052 Store(arg2, Local0) 1053 1054 While (n000) { 1055 Store(DeRefOf(Index(arg0, ncur)), Local1) 1056 if (0) { 1057 Store(Local1, Debug) 1058 } 1059 if (LNotEqual(Local1, Local0)) { 1060 err(ts, z051, 20, 0, 0, Local1, Local0) 1061 } 1062 Increment(Local0) 1063 Decrement(n000) 1064 Increment(ncur) 1065 } 1066 1067 Store(ObjectType(arg0), Local0) 1068 if (LNotEqual(Local0, 4)) { 1069 err(ts, z051, 21, 0, 0, Local0, 4) 1070 } 1071 1072 Store(SizeOf(arg0), Local0) 1073 if (LNotEqual(Local0, arg1)) { 1074 err(ts, z051, 22, 0, 0, Local0, arg1) 1075 } 1076} 1077 1078Method(m1f9, 1, Serialized) 1079{ 1080 Name(p000, Package(arg0) {}) 1081 1082 // Write 1083 m1f8(p000, arg0, 0x80000000) 1084 1085 // Re-write 1086 m1f8(p000, arg0, 0x12345678) 1087} 1088 1089// Write/rewrite Integers into Package and verify 1090Method(m1fa,, Serialized) 1091{ 1092 Name(ts, "m1fa") 1093 1094 ts00(ts) 1095 1096 m1f9(255) 1097} 1098 1099// Write Strings into Package, then Read and verify 1100// 1101// <Package>,<size>,<start string> 1102Method(m1fb, 3, Serialized) 1103{ 1104 Name(ts, "m1fb") 1105 1106 Name(n000, 0) 1107 Name(ncur, 0) 1108 1109 // Writing with indexes 1110 1111 Store(arg1, n000) 1112 Store(0, ncur) 1113 1114 While (n000) { 1115 Concatenate(arg2, ncur, Local0) 1116 Store(Local0, Index(arg0, ncur)) 1117 if (0) { 1118 Store(Local0, Debug) 1119 } 1120 Decrement(n000) 1121 Increment(ncur) 1122 } 1123 1124 // Reading and verifying 1125 1126 Store(arg1, n000) 1127 Store(0, ncur) 1128 1129 While (n000) { 1130 Concatenate(arg2, ncur, Local0) 1131 Store(DeRefOf(Index(arg0, ncur)), Local1) 1132 if (0) { 1133 Store(Local1, Debug) 1134 } 1135 if (LNotEqual(Local1, Local0)) { 1136 err(ts, z051, 23, 0, 0, Local1, Local0) 1137 } 1138 Decrement(n000) 1139 Increment(ncur) 1140 } 1141 1142 Store(ObjectType(arg0), Local0) 1143 if (LNotEqual(Local0, 4)) { 1144 err(ts, z051, 24, 0, 0, Local0, 4) 1145 } 1146 1147 Store(SizeOf(arg0), Local0) 1148 if (LNotEqual(Local0, arg1)) { 1149 err(ts, z051, 25, 0, 0, Local0, arg1) 1150 } 1151} 1152 1153Method(m1fc, 1, Serialized) 1154{ 1155 Name(p000, Package(arg0) {}) 1156 1157 // Write 1158 m1fb(p000, arg0, "qwert") 1159 1160 // Re-write 1161 m1fb(p000, arg0, "mnbvcxzdf0123456789qwertyuiopllkjhgfdsa") 1162} 1163 1164// Write/rewrite Strings into Package and verify 1165Method(m1fd,, Serialized) 1166{ 1167 Name(ts, "m1fd") 1168 1169 ts00(ts) 1170 1171 m1fc(255) 1172} 1173 1174// Write Buffers into Package, then Read and verify 1175// 1176// <Package>,<size>,<start buffer> 1177Method(m1fe, 3, Serialized) 1178{ 1179 Name(ts, "m1fe") 1180 1181 Name(n000, 0) 1182 Name(ncur, 0) 1183 1184 // Writing with indexes 1185 1186 Store(arg1, n000) 1187 Store(0, ncur) 1188 1189 While (n000) { 1190 Concatenate(arg2, ncur, Local0) 1191 Store(Local0, Index(arg0, ncur)) 1192 if (0) { 1193 Store(Local0, Debug) 1194 } 1195 Decrement(n000) 1196 Increment(ncur) 1197 } 1198 1199 // Reading and verifying 1200 1201 Store(arg1, n000) 1202 Store(0, ncur) 1203 1204 While (n000) { 1205 Concatenate(arg2, ncur, Local0) 1206 Store(DeRefOf(Index(arg0, ncur)), Local1) 1207 1208 if (0) { 1209 Store(ncur, Debug) 1210 Store(Local0, Debug) 1211 Store(Local1, Debug) 1212 } 1213 if (LNotEqual(Local1, Local0)) { 1214 err(ts, z051, 26, 0, 0, 0, 0) 1215 Store(Local0, Debug) 1216 Store(Local1, Debug) 1217 return (Ones) 1218 } 1219 Decrement(n000) 1220 Increment(ncur) 1221 } 1222 1223 Store(ObjectType(arg0), Local0) 1224 if (LNotEqual(Local0, 4)) { 1225 err(ts, z051, 27, 0, 0, Local0, 4) 1226 } 1227 1228 Store(SizeOf(arg0), Local0) 1229 if (LNotEqual(Local0, arg1)) { 1230 err(ts, z051, 28, 0, 0, Local0, arg1) 1231 } 1232 1233 return (Zero) 1234} 1235 1236// More complex cases with buffers of different sizes 1237// are performed into conversion tests. 1238Method(m1ff, 1, Serialized) 1239{ 1240 Name(p000, Package(arg0) {}) 1241 1242 // Write 1243 m1fe(p000, arg0, Buffer() {81,82,83,84,85}) 1244 1245 // Re-write 1246 m1fe(p000, arg0, Buffer() {1,2,3,4,5}) 1247} 1248 1249// Write/rewrite Buffers into Package and verify 1250Method(m200,, Serialized) 1251{ 1252 Name(ts, "m200") 1253 1254 ts00(ts) 1255 1256 m1ff(255) 1257} 1258 1259// Write Packages into Package, then Read (and verify) 1260// 1261// <Package>,<size>,<start Package> 1262Method(m201, 3, Serialized) 1263{ 1264 Name(pr00, 0) 1265 1266 Name(ts, "m201") 1267 1268 Name(n000, 0) 1269 Name(ncur, 0) 1270 1271 // Writing with indexes 1272 1273 Store(arg1, n000) 1274 Store(0, ncur) 1275 1276 if (pr00) { 1277 Store("Writing:", Debug) 1278 } 1279 1280 While (n000) { 1281 if (pr00) { 1282 Store(ncur, Debug) 1283 } 1284 Store(arg2, Index(arg0, ncur)) 1285 Decrement(n000) 1286 Increment(ncur) 1287 } 1288 1289 // Reading (and verifying) 1290 1291 Store(arg1, n000) 1292 Store(0, ncur) 1293 1294 if (pr00) { 1295 Store("Reading:", Debug) 1296 } 1297 1298 While (n000) { 1299 if (pr00) { 1300 Store(ncur, Debug) 1301 } 1302 Store(DeRefOf(Index(arg0, ncur)), Local1) 1303 Store(ObjectType(Local1), Local0) 1304 if (LNotEqual(Local0, 4)) { 1305 err(ts, z051, 29, 0, 0, Local0, 4) 1306 return (Ones) 1307 } 1308 Decrement(n000) 1309 Increment(ncur) 1310 } 1311 1312 Store(ObjectType(arg0), Local0) 1313 if (LNotEqual(Local0, 4)) { 1314 err(ts, z051, 30, 0, 0, Local0, 4) 1315 } 1316 1317 Store(SizeOf(arg0), Local0) 1318 if (LNotEqual(Local0, arg1)) { 1319 err(ts, z051, 31, 0, 0, Local0, arg1) 1320 } 1321 return (Zero) 1322} 1323 1324// More complex cases are performed into obj_deletion.asl test 1325Method(m202, 1, Serialized) 1326{ 1327 Name(p000, Package(arg0) {}) 1328 1329 // Write 1330 m201(p000, arg0, Package() {81}) 1331 1332 // Re-write 1333 m201(p000, arg0, Package() {81}) 1334} 1335 1336// Write/rewrite Packages into Package (and verify) 1337// 1338// Verification of the contents of Packages is not 1339// performed, too complex. 1340Method(m203,, Serialized) 1341{ 1342 Name(ts, "m203") 1343 1344 ts00(ts) 1345 1346// m202(255) 1347 m202(1) 1348} 1349 1350// Run-method 1351Method(PCG0) 1352{ 1353 Store("TEST: PCG0, Declare Package Object", Debug) 1354 1355 SRMT("m1f0") 1356 m1f0() 1357 SRMT("m1f1") 1358 m1f1() 1359 SRMT("m1f2") 1360 m1f2() 1361 SRMT("m1f3") 1362 m1f3() 1363// SRMT("m1f4") 1364// m1f4() 1365 SRMT("m1f6") 1366 m1f6() 1367// SRMT("m1f7") 1368// m1f7() 1369 SRMT("m1fa") 1370 m1fa() 1371 SRMT("m1fd") 1372 m1fd() 1373 SRMT("m200") 1374 m200() 1375 SRMT("m203") 1376 m203() 1377} 1378 1379