1    /*
2     * Some or all of this work - Copyright (c) 2006 - 2021, 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     * Bug 133:
30     *
31     * SUMMARY: The Write access automatic dereference for Index reference doesn't work
32     */
33    Method (MF21, 1, NotSerialized)
34    {
35        Arg0 = 0x77
36    }
37
38    Method (MF22, 0, NotSerialized)
39    {
40        /* Writing by RefOf reference to Integer */
41
42        Local0 = RefOf (ID13)
43        MF21 (Local0)
44        If ((ID13 != 0x77))
45        {
46            ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, ID13, 0x77)
47        }
48
49        /* Writing by Index to String */
50
51        Local0 = SD05 [0x01]
52        MF21 (Local0)
53        If ((SD05 != "qwer0000"))
54        {
55            ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, SD05, "qwer0000")
56        }
57
58        /* Writing by Index to Buffer */
59
60        Local0 = BD09 [0x01]
61        MF21 (Local0)
62        If ((BD09 != Buffer (0x04)
63                    {
64                         0x01, 0x77, 0x03, 0x04                           // .w..
65                    }))
66        {
67            ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, BD09, Buffer (0x04)
68                {
69                     0x01, 0x77, 0x03, 0x04                           // .w..
70                })
71        }
72
73        /* Writing by Index to Package */
74
75        Local0 = PD0F [0x01]
76        MF21 (Local0)
77        Local0 = PD0F [0x01]
78        Local1 = DerefOf (Local0)
79        If ((Local1 != 0x77))
80        {
81            ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, Local1, 0x77)
82        }
83    }
84