dmresrcl.c revision 100966
1100966Siwasaki/*******************************************************************************
2100966Siwasaki *
3100966Siwasaki * Module Name: dmresrcl.c - "Large" Resource Descriptor disassembly
4100966Siwasaki *              $Revision: 5 $
5100966Siwasaki *
6100966Siwasaki ******************************************************************************/
7100966Siwasaki
8100966Siwasaki/******************************************************************************
9100966Siwasaki *
10100966Siwasaki * 1. Copyright Notice
11100966Siwasaki *
12100966Siwasaki * Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
13100966Siwasaki * All rights reserved.
14100966Siwasaki *
15100966Siwasaki * 2. License
16100966Siwasaki *
17100966Siwasaki * 2.1. This is your license from Intel Corp. under its intellectual property
18100966Siwasaki * rights.  You may have additional license terms from the party that provided
19100966Siwasaki * you this software, covering your right to use that party's intellectual
20100966Siwasaki * property rights.
21100966Siwasaki *
22100966Siwasaki * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23100966Siwasaki * copy of the source code appearing in this file ("Covered Code") an
24100966Siwasaki * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25100966Siwasaki * base code distributed originally by Intel ("Original Intel Code") to copy,
26100966Siwasaki * make derivatives, distribute, use and display any portion of the Covered
27100966Siwasaki * Code in any form, with the right to sublicense such rights; and
28100966Siwasaki *
29100966Siwasaki * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30100966Siwasaki * license (with the right to sublicense), under only those claims of Intel
31100966Siwasaki * patents that are infringed by the Original Intel Code, to make, use, sell,
32100966Siwasaki * offer to sell, and import the Covered Code and derivative works thereof
33100966Siwasaki * solely to the minimum extent necessary to exercise the above copyright
34100966Siwasaki * license, and in no event shall the patent license extend to any additions
35100966Siwasaki * to or modifications of the Original Intel Code.  No other license or right
36100966Siwasaki * is granted directly or by implication, estoppel or otherwise;
37100966Siwasaki *
38100966Siwasaki * The above copyright and patent license is granted only if the following
39100966Siwasaki * conditions are met:
40100966Siwasaki *
41100966Siwasaki * 3. Conditions
42100966Siwasaki *
43100966Siwasaki * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44100966Siwasaki * Redistribution of source code of any substantial portion of the Covered
45100966Siwasaki * Code or modification with rights to further distribute source must include
46100966Siwasaki * the above Copyright Notice, the above License, this list of Conditions,
47100966Siwasaki * and the following Disclaimer and Export Compliance provision.  In addition,
48100966Siwasaki * Licensee must cause all Covered Code to which Licensee contributes to
49100966Siwasaki * contain a file documenting the changes Licensee made to create that Covered
50100966Siwasaki * Code and the date of any change.  Licensee must include in that file the
51100966Siwasaki * documentation of any changes made by any predecessor Licensee.  Licensee
52100966Siwasaki * must include a prominent statement that the modification is derived,
53100966Siwasaki * directly or indirectly, from Original Intel Code.
54100966Siwasaki *
55100966Siwasaki * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56100966Siwasaki * Redistribution of source code of any substantial portion of the Covered
57100966Siwasaki * Code or modification without rights to further distribute source must
58100966Siwasaki * include the following Disclaimer and Export Compliance provision in the
59100966Siwasaki * documentation and/or other materials provided with distribution.  In
60100966Siwasaki * addition, Licensee may not authorize further sublicense of source of any
61100966Siwasaki * portion of the Covered Code, and must include terms to the effect that the
62100966Siwasaki * license from Licensee to its licensee is limited to the intellectual
63100966Siwasaki * property embodied in the software Licensee provides to its licensee, and
64100966Siwasaki * not to intellectual property embodied in modifications its licensee may
65100966Siwasaki * make.
66100966Siwasaki *
67100966Siwasaki * 3.3. Redistribution of Executable. Redistribution in executable form of any
68100966Siwasaki * substantial portion of the Covered Code or modification must reproduce the
69100966Siwasaki * above Copyright Notice, and the following Disclaimer and Export Compliance
70100966Siwasaki * provision in the documentation and/or other materials provided with the
71100966Siwasaki * distribution.
72100966Siwasaki *
73100966Siwasaki * 3.4. Intel retains all right, title, and interest in and to the Original
74100966Siwasaki * Intel Code.
75100966Siwasaki *
76100966Siwasaki * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77100966Siwasaki * Intel shall be used in advertising or otherwise to promote the sale, use or
78100966Siwasaki * other dealings in products derived from or relating to the Covered Code
79100966Siwasaki * without prior written authorization from Intel.
80100966Siwasaki *
81100966Siwasaki * 4. Disclaimer and Export Compliance
82100966Siwasaki *
83100966Siwasaki * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84100966Siwasaki * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85100966Siwasaki * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
86100966Siwasaki * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
87100966Siwasaki * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
88100966Siwasaki * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
89100966Siwasaki * PARTICULAR PURPOSE.
90100966Siwasaki *
91100966Siwasaki * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92100966Siwasaki * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93100966Siwasaki * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94100966Siwasaki * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95100966Siwasaki * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96100966Siwasaki * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
97100966Siwasaki * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
98100966Siwasaki * LIMITED REMEDY.
99100966Siwasaki *
100100966Siwasaki * 4.3. Licensee shall not export, either directly or indirectly, any of this
101100966Siwasaki * software or system incorporating such software without first obtaining any
102100966Siwasaki * required license or other approval from the U. S. Department of Commerce or
103100966Siwasaki * any other agency or department of the United States Government.  In the
104100966Siwasaki * event Licensee exports any such software from the United States or
105100966Siwasaki * re-exports any such software from a foreign destination, Licensee shall
106100966Siwasaki * ensure that the distribution and export/re-export of the software is in
107100966Siwasaki * compliance with all laws, regulations, orders, or other restrictions of the
108100966Siwasaki * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109100966Siwasaki * any of its subsidiaries will export/re-export any technical data, process,
110100966Siwasaki * software, or service, directly or indirectly, to any country for which the
111100966Siwasaki * United States government or any agency thereof requires an export license,
112100966Siwasaki * other governmental approval, or letter of assurance, without first obtaining
113100966Siwasaki * such license, approval or letter.
114100966Siwasaki *
115100966Siwasaki *****************************************************************************/
116100966Siwasaki
117100966Siwasaki
118100966Siwasaki#include "acpi.h"
119100966Siwasaki#include "acdisasm.h"
120100966Siwasaki
121100966Siwasaki
122100966Siwasaki#ifdef ACPI_DISASSEMBLER
123100966Siwasaki
124100966Siwasaki#define _COMPONENT          ACPI_DEBUGGER
125100966Siwasaki        ACPI_MODULE_NAME    ("dbresrcl")
126100966Siwasaki
127100966Siwasaki
128100966Siwasaki/*******************************************************************************
129100966Siwasaki *
130100966Siwasaki * FUNCTION:    AcpiDmIoFlags
131100966Siwasaki *
132100966Siwasaki * PARAMETERS:  Flags               - Flag byte to be decoded
133100966Siwasaki *
134100966Siwasaki * RETURN:      None
135100966Siwasaki *
136100966Siwasaki * DESCRIPTION: Decode the flags specific to IO Address space descriptors
137100966Siwasaki *
138100966Siwasaki ******************************************************************************/
139100966Siwasaki
140100966Siwasakivoid
141100966SiwasakiAcpiDmIoFlags (
142100966Siwasaki        UINT8               Flags)
143100966Siwasaki{
144100966Siwasaki    AcpiOsPrintf ("%s, %s, %s, %s,",
145100966Siwasaki        AcpiGbl_ConsumeDecode [(Flags & 1)],
146100966Siwasaki        AcpiGbl_MinDecode [(Flags & 0x4) >> 2],
147100966Siwasaki        AcpiGbl_MaxDecode [(Flags & 0x8) >> 3],
148100966Siwasaki        AcpiGbl_DECDecode [(Flags & 0x2) >> 1]);
149100966Siwasaki}
150100966Siwasaki
151100966Siwasaki
152100966Siwasaki/*******************************************************************************
153100966Siwasaki *
154100966Siwasaki * FUNCTION:    AcpiDmMemoryFlags
155100966Siwasaki *
156100966Siwasaki * PARAMETERS:  Flags               - Flag byte to be decoded
157100966Siwasaki *              SpecificFlags       - "Specific" flag byte to be decoded
158100966Siwasaki *
159100966Siwasaki * RETURN:      None
160100966Siwasaki *
161100966Siwasaki * DESCRIPTION: Decode flags specific to Memory Address Space descriptors
162100966Siwasaki *
163100966Siwasaki ******************************************************************************/
164100966Siwasaki
165100966Siwasakivoid
166100966SiwasakiAcpiDmMemoryFlags (
167100966Siwasaki    UINT8                   Flags,
168100966Siwasaki    UINT8                   SpecificFlags)
169100966Siwasaki{
170100966Siwasaki    AcpiOsPrintf ("%s, %s, %s, %s, %s, %s,",
171100966Siwasaki        AcpiGbl_ConsumeDecode [(Flags & 1)],
172100966Siwasaki        AcpiGbl_DECDecode [(Flags & 0x2) >> 1],
173100966Siwasaki        AcpiGbl_MinDecode [(Flags & 0x4) >> 2],
174100966Siwasaki        AcpiGbl_MaxDecode [(Flags & 0x8) >> 3],
175100966Siwasaki        AcpiGbl_MEMDecode [(SpecificFlags & 0x6) >> 1],
176100966Siwasaki        AcpiGbl_RWDecode [(SpecificFlags & 0x1)]);
177100966Siwasaki}
178100966Siwasaki
179100966Siwasaki
180100966Siwasaki/*******************************************************************************
181100966Siwasaki *
182100966Siwasaki * FUNCTION:    AcpiDmWordDescriptor
183100966Siwasaki *
184100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
185100966Siwasaki *              Length              - Length of the descriptor in bytes
186100966Siwasaki *              Level               - Current source code indentation level
187100966Siwasaki *
188100966Siwasaki * RETURN:      None
189100966Siwasaki *
190100966Siwasaki * DESCRIPTION: Decode a Word Address Space descriptor
191100966Siwasaki *
192100966Siwasaki ******************************************************************************/
193100966Siwasaki
194100966Siwasakivoid
195100966SiwasakiAcpiDmWordDescriptor (
196100966Siwasaki    ASL_WORD_ADDRESS_DESC   *Resource,
197100966Siwasaki    UINT32                  Length,
198100966Siwasaki    UINT32                  Level)
199100966Siwasaki{
200100966Siwasaki
201100966Siwasaki    AcpiDmIndent (Level);
202100966Siwasaki    AcpiOsPrintf ("%s (",
203100966Siwasaki        AcpiGbl_WordDecode [(Resource->ResourceType & 3)]);
204100966Siwasaki
205100966Siwasaki    AcpiDmIoFlags (Resource->Flags);
206100966Siwasaki
207100966Siwasaki    if ((Resource->ResourceType & 0x3) == 1)
208100966Siwasaki    {
209100966Siwasaki        AcpiOsPrintf (" %s,",
210100966Siwasaki            AcpiGbl_RNGDecode [(Resource->SpecificFlags & 0x3)]);
211100966Siwasaki    }
212100966Siwasaki
213100966Siwasaki    /* The WORD values */
214100966Siwasaki
215100966Siwasaki    AcpiOsPrintf ("\n");
216100966Siwasaki    AcpiDmIndent (Level + 1);
217100966Siwasaki    AcpiOsPrintf ("0x%4.4X,\n",
218100966Siwasaki        (UINT32) Resource->Granularity);
219100966Siwasaki    AcpiDmIndent (Level + 1);
220100966Siwasaki    AcpiOsPrintf ("0x%4.4X,\n",
221100966Siwasaki        (UINT32) Resource->AddressMin);
222100966Siwasaki    AcpiDmIndent (Level + 1);
223100966Siwasaki    AcpiOsPrintf ("0x%4.4X,\n",
224100966Siwasaki        (UINT32) Resource->AddressMax);
225100966Siwasaki    AcpiDmIndent (Level + 1);
226100966Siwasaki    AcpiOsPrintf ("0x%4.4X,\n",
227100966Siwasaki        (UINT32) Resource->TranslationOffset);
228100966Siwasaki    AcpiDmIndent (Level + 1);
229100966Siwasaki    AcpiOsPrintf ("0x%4.4X",
230100966Siwasaki        (UINT32) Resource->AddressLength);
231100966Siwasaki
232100966Siwasaki    /* Optional fields */
233100966Siwasaki
234100966Siwasaki    if (Length > 13)
235100966Siwasaki    {
236100966Siwasaki        AcpiOsPrintf (", 0x%2.2X",
237100966Siwasaki            (UINT32) Resource->OptionalFields[0]);
238100966Siwasaki    }
239100966Siwasaki
240100966Siwasaki    if (Length > 14)
241100966Siwasaki    {
242100966Siwasaki        AcpiOsPrintf (", %s",
243100966Siwasaki            &Resource->OptionalFields[1]);
244100966Siwasaki    }
245100966Siwasaki    AcpiOsPrintf (")\n");
246100966Siwasaki}
247100966Siwasaki
248100966Siwasaki
249100966Siwasaki/*******************************************************************************
250100966Siwasaki *
251100966Siwasaki * FUNCTION:    AcpiDmDwordDescriptor
252100966Siwasaki *
253100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
254100966Siwasaki *              Length              - Length of the descriptor in bytes
255100966Siwasaki *              Level               - Current source code indentation level
256100966Siwasaki *
257100966Siwasaki * RETURN:      None
258100966Siwasaki *
259100966Siwasaki * DESCRIPTION: Decode a DWord Address Space descriptor
260100966Siwasaki *
261100966Siwasaki ******************************************************************************/
262100966Siwasaki
263100966Siwasakivoid
264100966SiwasakiAcpiDmDwordDescriptor (
265100966Siwasaki    ASL_DWORD_ADDRESS_DESC  *Resource,
266100966Siwasaki    UINT32                  Length,
267100966Siwasaki    UINT32                  Level)
268100966Siwasaki{
269100966Siwasaki
270100966Siwasaki    AcpiDmIndent (Level);
271100966Siwasaki    AcpiOsPrintf ("D%s (",
272100966Siwasaki        AcpiGbl_WordDecode [(Resource->ResourceType & 3)]);
273100966Siwasaki
274100966Siwasaki    if ((Resource->ResourceType & 0x3) == 1)
275100966Siwasaki    {
276100966Siwasaki        AcpiDmIoFlags (Resource->Flags);
277100966Siwasaki        AcpiOsPrintf (" %s,",
278100966Siwasaki            AcpiGbl_RNGDecode [(Resource->SpecificFlags & 0x3)]);
279100966Siwasaki    }
280100966Siwasaki    else
281100966Siwasaki    {
282100966Siwasaki        AcpiDmMemoryFlags (Resource->Flags, Resource->SpecificFlags);
283100966Siwasaki    }
284100966Siwasaki
285100966Siwasaki    /* The DWORD values */
286100966Siwasaki
287100966Siwasaki    AcpiOsPrintf ("\n");
288100966Siwasaki    AcpiDmIndent (Level + 1);
289100966Siwasaki    AcpiOsPrintf ("0x%8.8X,\n",
290100966Siwasaki        Resource->Granularity);
291100966Siwasaki    AcpiDmIndent (Level + 1);
292100966Siwasaki    AcpiOsPrintf ("0x%8.8X,\n",
293100966Siwasaki        Resource->AddressMin);
294100966Siwasaki    AcpiDmIndent (Level + 1);
295100966Siwasaki    AcpiOsPrintf ("0x%8.8X,\n",
296100966Siwasaki        Resource->AddressMax);
297100966Siwasaki    AcpiDmIndent (Level + 1);
298100966Siwasaki    AcpiOsPrintf ("0x%8.8X,\n",
299100966Siwasaki        Resource->TranslationOffset);
300100966Siwasaki    AcpiDmIndent (Level + 1);
301100966Siwasaki    AcpiOsPrintf ("0x%8.8X",
302100966Siwasaki        Resource->AddressLength);
303100966Siwasaki
304100966Siwasaki    /* Optional fields */
305100966Siwasaki
306100966Siwasaki    if (Length > 23)
307100966Siwasaki    {
308100966Siwasaki        AcpiOsPrintf (", 0x%2.2X",
309100966Siwasaki            Resource->OptionalFields[0]);
310100966Siwasaki    }
311100966Siwasaki    if (Length > 24)
312100966Siwasaki    {
313100966Siwasaki        AcpiOsPrintf (", %s",
314100966Siwasaki            &Resource->OptionalFields[1]);
315100966Siwasaki    }
316100966Siwasaki    AcpiOsPrintf (")\n");
317100966Siwasaki}
318100966Siwasaki
319100966Siwasaki
320100966Siwasaki/*******************************************************************************
321100966Siwasaki *
322100966Siwasaki * FUNCTION:    AcpiDmQwordDescriptor
323100966Siwasaki *
324100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
325100966Siwasaki *              Length              - Length of the descriptor in bytes
326100966Siwasaki *              Level               - Current source code indentation level
327100966Siwasaki *
328100966Siwasaki * RETURN:      None
329100966Siwasaki *
330100966Siwasaki * DESCRIPTION: Decode a QWord Address Space descriptor
331100966Siwasaki *
332100966Siwasaki ******************************************************************************/
333100966Siwasaki
334100966Siwasakivoid
335100966SiwasakiAcpiDmQwordDescriptor (
336100966Siwasaki    ASL_QWORD_ADDRESS_DESC  *Resource,
337100966Siwasaki    UINT32                  Length,
338100966Siwasaki    UINT32                  Level)
339100966Siwasaki{
340100966Siwasaki
341100966Siwasaki    AcpiDmIndent (Level);
342100966Siwasaki    AcpiOsPrintf ("Q%s (",
343100966Siwasaki        AcpiGbl_WordDecode [(Resource->ResourceType & 3)]);
344100966Siwasaki
345100966Siwasaki    if ((Resource->ResourceType & 0x3) == 1)
346100966Siwasaki    {
347100966Siwasaki        AcpiDmIoFlags (Resource->Flags);
348100966Siwasaki        AcpiOsPrintf (" %s,",
349100966Siwasaki            AcpiGbl_RNGDecode [(Resource->SpecificFlags & 0x3)]);
350100966Siwasaki    }
351100966Siwasaki    else
352100966Siwasaki    {
353100966Siwasaki        AcpiDmMemoryFlags (Resource->Flags, Resource->SpecificFlags);
354100966Siwasaki    }
355100966Siwasaki
356100966Siwasaki    /* The QWORD values */
357100966Siwasaki
358100966Siwasaki    AcpiOsPrintf ("\n");
359100966Siwasaki    AcpiDmIndent (Level + 1);
360100966Siwasaki    AcpiOsPrintf ("0x%8.8X%8.8X,\n",
361100966Siwasaki        ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->Granularity)),
362100966Siwasaki        ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->Granularity)));
363100966Siwasaki
364100966Siwasaki    AcpiDmIndent (Level + 1);
365100966Siwasaki    AcpiOsPrintf ("0x%8.8X%8.8X,\n",
366100966Siwasaki        ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->AddressMin)),
367100966Siwasaki        ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->AddressMin)));
368100966Siwasaki
369100966Siwasaki    AcpiDmIndent (Level + 1);
370100966Siwasaki    AcpiOsPrintf ("0x%8.8X%8.8X,\n",
371100966Siwasaki        ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->AddressMax)),
372100966Siwasaki        ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->AddressMax)));
373100966Siwasaki
374100966Siwasaki    AcpiDmIndent (Level + 1);
375100966Siwasaki    AcpiOsPrintf ("0x%8.8X%8.8X,\n",
376100966Siwasaki        ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->TranslationOffset)),
377100966Siwasaki        ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->TranslationOffset)));
378100966Siwasaki
379100966Siwasaki    AcpiDmIndent (Level + 1);
380100966Siwasaki    AcpiOsPrintf ("0x%8.8X%8.8X",
381100966Siwasaki        ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->AddressLength)),
382100966Siwasaki        ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->AddressLength)));
383100966Siwasaki
384100966Siwasaki    /* Optional fields */
385100966Siwasaki
386100966Siwasaki    if (Length > 43)
387100966Siwasaki    {
388100966Siwasaki        AcpiOsPrintf (", 0x%2.2X",
389100966Siwasaki            Resource->OptionalFields[0]);
390100966Siwasaki    }
391100966Siwasaki    if (Length > 44)
392100966Siwasaki    {
393100966Siwasaki        AcpiOsPrintf (", %s",
394100966Siwasaki            &Resource->OptionalFields[1]);
395100966Siwasaki    }
396100966Siwasaki
397100966Siwasaki    AcpiOsPrintf (")\n");
398100966Siwasaki}
399100966Siwasaki
400100966Siwasaki
401100966Siwasaki/*******************************************************************************
402100966Siwasaki *
403100966Siwasaki * FUNCTION:    AcpiDmMemory24Descriptor
404100966Siwasaki *
405100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
406100966Siwasaki *              Length              - Length of the descriptor in bytes
407100966Siwasaki *              Level               - Current source code indentation level
408100966Siwasaki *
409100966Siwasaki * RETURN:      None
410100966Siwasaki *
411100966Siwasaki * DESCRIPTION: Decode a Memory24 descriptor
412100966Siwasaki *
413100966Siwasaki ******************************************************************************/
414100966Siwasaki
415100966Siwasakivoid
416100966SiwasakiAcpiDmMemory24Descriptor (
417100966Siwasaki    ASL_MEMORY_24_DESC      *Resource,
418100966Siwasaki    UINT32                  Length,
419100966Siwasaki    UINT32                  Level)
420100966Siwasaki{
421100966Siwasaki
422100966Siwasaki    AcpiDmIndent (Level);
423100966Siwasaki    AcpiOsPrintf ("Memory24 (%s, 0x%4.4X, 0x%4.4X, 0x%4.4X, 0x%4.4X)\n",
424100966Siwasaki        AcpiGbl_RWDecode [Resource->Information & 1],
425100966Siwasaki        (UINT32) Resource->AddressMin,
426100966Siwasaki        (UINT32) Resource->AddressMax,
427100966Siwasaki        (UINT32) Resource->Alignment,
428100966Siwasaki        (UINT32) Resource->RangeLength);
429100966Siwasaki}
430100966Siwasaki
431100966Siwasaki
432100966Siwasaki/*******************************************************************************
433100966Siwasaki *
434100966Siwasaki * FUNCTION:    AcpiDmMemory32Descriptor
435100966Siwasaki *
436100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
437100966Siwasaki *              Length              - Length of the descriptor in bytes
438100966Siwasaki *              Level               - Current source code indentation level
439100966Siwasaki *
440100966Siwasaki * RETURN:      None
441100966Siwasaki *
442100966Siwasaki * DESCRIPTION: Decode a Memory32 descriptor
443100966Siwasaki *
444100966Siwasaki ******************************************************************************/
445100966Siwasaki
446100966Siwasakivoid
447100966SiwasakiAcpiDmMemory32Descriptor (
448100966Siwasaki    ASL_MEMORY_32_DESC      *Resource,
449100966Siwasaki    UINT32                  Length,
450100966Siwasaki    UINT32                  Level)
451100966Siwasaki{
452100966Siwasaki
453100966Siwasaki    AcpiDmIndent (Level);
454100966Siwasaki    AcpiOsPrintf ("Memory32 (%s, 0x%8.8X, 0x%8.8X, 0x%8.8X, 0x%8.8X)\n",
455100966Siwasaki        AcpiGbl_RWDecode [Resource->Information & 1],
456100966Siwasaki        Resource->AddressMin,
457100966Siwasaki        Resource->AddressMax,
458100966Siwasaki        Resource->Alignment,
459100966Siwasaki        Resource->RangeLength);
460100966Siwasaki}
461100966Siwasaki
462100966Siwasaki
463100966Siwasaki/*******************************************************************************
464100966Siwasaki *
465100966Siwasaki * FUNCTION:    AcpiDmFixedMem32Descriptor
466100966Siwasaki *
467100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
468100966Siwasaki *              Length              - Length of the descriptor in bytes
469100966Siwasaki *              Level               - Current source code indentation level
470100966Siwasaki *
471100966Siwasaki * RETURN:      None
472100966Siwasaki *
473100966Siwasaki * DESCRIPTION: Decode a Fixed Memory32 descriptor
474100966Siwasaki *
475100966Siwasaki ******************************************************************************/
476100966Siwasaki
477100966Siwasakivoid
478100966SiwasakiAcpiDmFixedMem32Descriptor (
479100966Siwasaki    ASL_FIXED_MEMORY_32_DESC *Resource,
480100966Siwasaki    UINT32                  Length,
481100966Siwasaki    UINT32                  Level)
482100966Siwasaki{
483100966Siwasaki
484100966Siwasaki    AcpiDmIndent (Level);
485100966Siwasaki    AcpiOsPrintf ("Memory32Fixed (%s, 0x%8.8X, 0x%8.8X)\n",
486100966Siwasaki        AcpiGbl_RWDecode [Resource->Information & 1],
487100966Siwasaki        Resource->BaseAddress,
488100966Siwasaki        Resource->RangeLength);
489100966Siwasaki}
490100966Siwasaki
491100966Siwasaki
492100966Siwasaki/*******************************************************************************
493100966Siwasaki *
494100966Siwasaki * FUNCTION:    AcpiDmGenericRegisterDescriptor
495100966Siwasaki *
496100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
497100966Siwasaki *              Length              - Length of the descriptor in bytes
498100966Siwasaki *              Level               - Current source code indentation level
499100966Siwasaki *
500100966Siwasaki * RETURN:      None
501100966Siwasaki *
502100966Siwasaki * DESCRIPTION: Decode a Generic Register descriptor
503100966Siwasaki *
504100966Siwasaki ******************************************************************************/
505100966Siwasaki
506100966Siwasakivoid
507100966SiwasakiAcpiDmGenericRegisterDescriptor (
508100966Siwasaki    ASL_GENERAL_REGISTER_DESC *Resource,
509100966Siwasaki    UINT32                  Length,
510100966Siwasaki    UINT32                  Level)
511100966Siwasaki{
512100966Siwasaki
513100966Siwasaki    AcpiDmIndent (Level);
514100966Siwasaki    AcpiOsPrintf ("Register (");
515100966Siwasaki
516100966Siwasaki    AcpiDmAddressSpace (Resource->AddressSpaceId);
517100966Siwasaki
518100966Siwasaki    AcpiOsPrintf ("0x%2.2X, 0x%2.2X, 0x%8.8X%8.8X)\n",
519100966Siwasaki        (UINT32) Resource->BitWidth,
520100966Siwasaki        (UINT32) Resource->BitOffset,
521100966Siwasaki        ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->Address)),
522100966Siwasaki        ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->Address)));
523100966Siwasaki}
524100966Siwasaki
525100966Siwasaki
526100966Siwasaki/*******************************************************************************
527100966Siwasaki *
528100966Siwasaki * FUNCTION:    AcpiDmInterruptDescriptor
529100966Siwasaki *
530100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
531100966Siwasaki *              Length              - Length of the descriptor in bytes
532100966Siwasaki *              Level               - Current source code indentation level
533100966Siwasaki *
534100966Siwasaki * RETURN:      None
535100966Siwasaki *
536100966Siwasaki * DESCRIPTION: Decode a extended Interrupt descriptor
537100966Siwasaki *
538100966Siwasaki ******************************************************************************/
539100966Siwasaki
540100966Siwasakivoid
541100966SiwasakiAcpiDmInterruptDescriptor (
542100966Siwasaki    ASL_EXTENDED_XRUPT_DESC *Resource,
543100966Siwasaki    UINT32                  Length,
544100966Siwasaki    UINT32                  Level)
545100966Siwasaki{
546100966Siwasaki    UINT32                  i;
547100966Siwasaki
548100966Siwasaki
549100966Siwasaki    AcpiDmIndent (Level);
550100966Siwasaki    AcpiOsPrintf ("Interrupt (%s, %s, %s, %s)\n",
551100966Siwasaki        AcpiGbl_ConsumeDecode [(Resource->Flags & 1)],
552100966Siwasaki        AcpiGbl_HEDecode [(Resource->Flags >> 1) & 1],
553100966Siwasaki        AcpiGbl_LLDecode [(Resource->Flags >> 2) & 1],
554100966Siwasaki        AcpiGbl_SHRDecode [(Resource->Flags >> 3) & 1]);
555100966Siwasaki
556100966Siwasaki    /* TBD "Resource Source, optional */
557100966Siwasaki
558100966Siwasaki    AcpiDmIndent (Level);
559100966Siwasaki    AcpiOsPrintf ("{\n");
560100966Siwasaki    for (i = 0; i < Resource->TableLength; i++)
561100966Siwasaki    {
562100966Siwasaki        AcpiDmIndent (Level + 1);
563100966Siwasaki        AcpiOsPrintf ("0x%8.8X,\n", (UINT32) Resource->InterruptNumber[i]);
564100966Siwasaki    }
565100966Siwasaki
566100966Siwasaki    AcpiDmIndent (Level);
567100966Siwasaki    AcpiOsPrintf ("}\n");
568100966Siwasaki}
569100966Siwasaki
570100966Siwasaki
571100966Siwasaki/*******************************************************************************
572100966Siwasaki *
573100966Siwasaki * FUNCTION:    AcpiDmVendorLargeDescriptor
574100966Siwasaki *
575100966Siwasaki * PARAMETERS:  Resource            - Pointer to the resource descriptor
576100966Siwasaki *              Length              - Length of the descriptor in bytes
577100966Siwasaki *              Level               - Current source code indentation level
578100966Siwasaki *
579100966Siwasaki * RETURN:      None
580100966Siwasaki *
581100966Siwasaki * DESCRIPTION: Decode a Vendor Large descriptor
582100966Siwasaki *
583100966Siwasaki ******************************************************************************/
584100966Siwasaki
585100966Siwasakivoid
586100966SiwasakiAcpiDmVendorLargeDescriptor (
587100966Siwasaki    ASL_LARGE_VENDOR_DESC   *Resource,
588100966Siwasaki    UINT32                  Length,
589100966Siwasaki    UINT32                  Level)
590100966Siwasaki{
591100966Siwasaki
592100966Siwasaki    AcpiDmIndent (Level);
593100966Siwasaki    AcpiOsPrintf ("VendorLong ()\n");
594100966Siwasaki    AcpiDmIndent (Level);
595100966Siwasaki
596100966Siwasaki    AcpiOsPrintf ("{\n");
597100966Siwasaki
598100966Siwasaki    AcpiDmDisasmByteList (Level + 1, (UINT8 *) Resource->VendorDefined, Length);
599100966Siwasaki    AcpiDmIndent (Level);
600100966Siwasaki    AcpiOsPrintf ("}\n");
601100966Siwasaki}
602100966Siwasaki
603100966Siwasaki
604100966Siwasaki#endif
605100966Siwasaki
606