rsdump.c revision 193335
1145132Sanholt/*******************************************************************************
2145132Sanholt *
3145132Sanholt * Module Name: rsdump - Functions to display the resource structures.
4145132Sanholt *
5145132Sanholt ******************************************************************************/
6145132Sanholt
7145132Sanholt/******************************************************************************
8145132Sanholt *
9145132Sanholt * 1. Copyright Notice
10145132Sanholt *
11145132Sanholt * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
12145132Sanholt * All rights reserved.
13145132Sanholt *
14145132Sanholt * 2. License
15145132Sanholt *
16145132Sanholt * 2.1. This is your license from Intel Corp. under its intellectual property
17145132Sanholt * rights.  You may have additional license terms from the party that provided
18145132Sanholt * you this software, covering your right to use that party's intellectual
19145132Sanholt * property rights.
20145132Sanholt *
21145132Sanholt * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22145132Sanholt * copy of the source code appearing in this file ("Covered Code") an
23145132Sanholt * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24145132Sanholt * base code distributed originally by Intel ("Original Intel Code") to copy,
25145132Sanholt * make derivatives, distribute, use and display any portion of the Covered
26145132Sanholt * Code in any form, with the right to sublicense such rights; and
27145132Sanholt *
28145132Sanholt * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29145132Sanholt * license (with the right to sublicense), under only those claims of Intel
30145132Sanholt * patents that are infringed by the Original Intel Code, to make, use, sell,
31152909Sanholt * offer to sell, and import the Covered Code and derivative works thereof
32152909Sanholt * solely to the minimum extent necessary to exercise the above copyright
33152909Sanholt * license, and in no event shall the patent license extend to any additions
34182080Srnoland * to or modifications of the Original Intel Code.  No other license or right
35182080Srnoland * is granted directly or by implication, estoppel or otherwise;
36182080Srnoland *
37182080Srnoland * The above copyright and patent license is granted only if the following
38182080Srnoland * conditions are met:
39182080Srnoland *
40182080Srnoland * 3. Conditions
41145132Sanholt *
42145132Sanholt * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43152909Sanholt * Redistribution of source code of any substantial portion of the Covered
44145132Sanholt * Code or modification with rights to further distribute source must include
45153013Sanholt * the above Copyright Notice, the above License, this list of Conditions,
46153013Sanholt * and the following Disclaimer and Export Compliance provision.  In addition,
47153013Sanholt * Licensee must cause all Covered Code to which Licensee contributes to
48145132Sanholt * contain a file documenting the changes Licensee made to create that Covered
49153013Sanholt * Code and the date of any change.  Licensee must include in that file the
50145132Sanholt * documentation of any changes made by any predecessor Licensee.  Licensee
51182080Srnoland * must include a prominent statement that the modification is derived,
52182080Srnoland * directly or indirectly, from Original Intel Code.
53152909Sanholt *
54152909Sanholt * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55145132Sanholt * Redistribution of source code of any substantial portion of the Covered
56145132Sanholt * Code or modification without rights to further distribute source must
57145132Sanholt * include the following Disclaimer and Export Compliance provision in the
58145132Sanholt * documentation and/or other materials provided with distribution.  In
59145132Sanholt * addition, Licensee may not authorize further sublicense of source of any
60145132Sanholt * portion of the Covered Code, and must include terms to the effect that the
61145132Sanholt * license from Licensee to its licensee is limited to the intellectual
62182080Srnoland * property embodied in the software Licensee provides to its licensee, and
63182080Srnoland * not to intellectual property embodied in modifications its licensee may
64182080Srnoland * make.
65182080Srnoland *
66182080Srnoland * 3.3. Redistribution of Executable. Redistribution in executable form of any
67182080Srnoland * substantial portion of the Covered Code or modification must reproduce the
68182080Srnoland * above Copyright Notice, and the following Disclaimer and Export Compliance
69182080Srnoland * provision in the documentation and/or other materials provided with the
70145132Sanholt * distribution.
71182080Srnoland *
72182080Srnoland * 3.4. Intel retains all right, title, and interest in and to the Original
73182080Srnoland * Intel Code.
74182080Srnoland *
75145132Sanholt * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76182080Srnoland * Intel shall be used in advertising or otherwise to promote the sale, use or
77182080Srnoland * other dealings in products derived from or relating to the Covered Code
78145132Sanholt * without prior written authorization from Intel.
79182080Srnoland *
80182080Srnoland * 4. Disclaimer and Export Compliance
81145132Sanholt *
82189099Srnoland * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83182080Srnoland * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84182080Srnoland * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85182080Srnoland * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86182080Srnoland * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87182080Srnoland * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88182080Srnoland * PARTICULAR PURPOSE.
89145132Sanholt *
90182080Srnoland * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91182080Srnoland * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92145132Sanholt * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93182080Srnoland * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94182080Srnoland * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95189099Srnoland * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96182080Srnoland * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97145132Sanholt * LIMITED REMEDY.
98189099Srnoland *
99189099Srnoland * 4.3. Licensee shall not export, either directly or indirectly, any of this
100182080Srnoland * software or system incorporating such software without first obtaining any
101182080Srnoland * required license or other approval from the U. S. Department of Commerce or
102182080Srnoland * any other agency or department of the United States Government.  In the
103182080Srnoland * event Licensee exports any such software from the United States or
104145132Sanholt * re-exports any such software from a foreign destination, Licensee shall
105182080Srnoland * ensure that the distribution and export/re-export of the software is in
106145132Sanholt * compliance with all laws, regulations, orders, or other restrictions of the
107182080Srnoland * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108182080Srnoland * any of its subsidiaries will export/re-export any technical data, process,
109182080Srnoland * software, or service, directly or indirectly, to any country for which the
110182080Srnoland * United States government or any agency thereof requires an export license,
111182080Srnoland * other governmental approval, or letter of assurance, without first obtaining
112182080Srnoland * such license, approval or letter.
113182080Srnoland *
114182080Srnoland *****************************************************************************/
115145132Sanholt
116182080Srnoland
117182080Srnoland#define __RSDUMP_C__
118182080Srnoland
119182080Srnoland#include "acpi.h"
120182080Srnoland#include "accommon.h"
121145132Sanholt#include "acresrc.h"
122145132Sanholt
123145132Sanholt#define _COMPONENT          ACPI_RESOURCES
124145132Sanholt        ACPI_MODULE_NAME    ("rsdump")
125145132Sanholt
126145132Sanholt
127145132Sanholt#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
128145132Sanholt
129145132Sanholt/* Local prototypes */
130145132Sanholt
131189053Srnolandstatic void
132145132SanholtAcpiRsOutString (
133145132Sanholt    char                    *Title,
134191274Srnoland    char                    *Value);
135189128Srnoland
136196466Srnolandstatic void
137196466SrnolandAcpiRsOutInteger8 (
138196466Srnoland    char                    *Title,
139189128Srnoland    UINT8                   Value);
140189052Srnoland
141189052Srnolandstatic void
142189052SrnolandAcpiRsOutInteger16 (
143189052Srnoland    char                    *Title,
144189052Srnoland    UINT16                  Value);
145189052Srnoland
146189052Srnolandstatic void
147189052SrnolandAcpiRsOutInteger32 (
148189052Srnoland    char                    *Title,
149189052Srnoland    UINT32                  Value);
150189052Srnoland
151189052Srnolandstatic void
152189052SrnolandAcpiRsOutInteger64 (
153189052Srnoland    char                    *Title,
154189052Srnoland    UINT64                  Value);
155189052Srnoland
156189052Srnolandstatic void
157189052SrnolandAcpiRsOutTitle (
158189052Srnoland    char                    *Title);
159189052Srnoland
160189052Srnolandstatic void
161189563SrnolandAcpiRsDumpByteList (
162145132Sanholt    UINT16                  Length,
163152909Sanholt    UINT8                   *Data);
164145132Sanholt
165153579Sjhbstatic void
166153033SanholtAcpiRsDumpDwordList (
167145132Sanholt    UINT8                   Length,
168189563Srnoland    UINT32                  *Data);
169189563Srnoland
170153033Sanholtstatic void
171189563SrnolandAcpiRsDumpShortByteList (
172153033Sanholt    UINT8                  Length,
173153033Sanholt    UINT8                  *Data);
174153579Sjhb
175189563Srnolandstatic void
176189563SrnolandAcpiRsDumpResourceSource (
177153579Sjhb    ACPI_RESOURCE_SOURCE    *ResourceSource);
178145132Sanholt
179189563Srnolandstatic void
180189563SrnolandAcpiRsDumpAddressCommon (
181186299Srnoland    ACPI_RESOURCE_DATA      *Resource);
182186299Srnoland
183152909Sanholtstatic void
184152909SanholtAcpiRsDumpDescriptor (
185189915Srnoland    void                    *Resource,
186189915Srnoland    ACPI_RSDUMP_INFO *Table);
187189915Srnoland
188189915Srnoland
189145132Sanholt#define ACPI_RSD_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_RESOURCE_DATA,f)
190145132Sanholt#define ACPI_PRT_OFFSET(f)          (UINT8) ACPI_OFFSET (ACPI_PCI_ROUTING_TABLE,f)
191145132Sanholt#define ACPI_RSD_TABLE_SIZE(name)   (sizeof(name) / sizeof (ACPI_RSDUMP_INFO))
192145132Sanholt
193145132Sanholt
194145132Sanholt/*******************************************************************************
195189563Srnoland *
196145132Sanholt * Resource Descriptor info tables
197182080Srnoland *
198152909Sanholt * Note: The first table entry must be a Title or Literal and must contain
199189052Srnoland * the table length (number of table entries)
200152909Sanholt *
201189563Srnoland ******************************************************************************/
202189563Srnoland
203152909SanholtACPI_RSDUMP_INFO        AcpiRsDumpIrq[7] =
204153579Sjhb{
205189563Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpIrq),                "IRQ",                      NULL},
206189563Srnoland    {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (Irq.DescriptorLength),             "Descriptor Length",        NULL},
207152909Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Triggering),                   "Triggering",               AcpiGbl_HeDecode},
208189563Srnoland    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity),                     "Polarity",                 AcpiGbl_LlDecode},
209153579Sjhb    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Sharable),                     "Sharing",                  AcpiGbl_ShrDecode},
210189563Srnoland    {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (Irq.InterruptCount),               "Interrupt Count",          NULL},
211153579Sjhb    {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]),                "Interrupt List",           NULL}
212152909Sanholt};
213196465Srnoland
214152909SanholtACPI_RSDUMP_INFO        AcpiRsDumpDma[6] =
215152909Sanholt{
216152909Sanholt    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpDma),                "DMA",                      NULL},
217152909Sanholt    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Type),                         "Speed",                    AcpiGbl_TypDecode},
218196465Srnoland    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Dma.BusMaster),                    "Mastering",                AcpiGbl_BmDecode},
219183573Srnoland    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Transfer),                     "Transfer Type",            AcpiGbl_SizDecode},
220189052Srnoland    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Dma.ChannelCount),                 "Channel Count",            NULL},
221189052Srnoland    {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.Channels[0]),                  "Channel List",             NULL}
222189052Srnoland};
223189052Srnoland
224189052SrnolandACPI_RSDUMP_INFO        AcpiRsDumpStartDpf[4] =
225189052Srnoland{
226189052Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpStartDpf),           "Start-Dependent-Functions",NULL},
227189052Srnoland    {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (StartDpf.DescriptorLength),        "Descriptor Length",        NULL},
228189052Srnoland    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (StartDpf.CompatibilityPriority),   "Compatibility Priority",   AcpiGbl_ConfigDecode},
229189052Srnoland    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (StartDpf.PerformanceRobustness),   "Performance/Robustness",   AcpiGbl_ConfigDecode}
230189052Srnoland};
231189052Srnoland
232191274SrnolandACPI_RSDUMP_INFO        AcpiRsDumpEndDpf[1] =
233191274Srnoland{
234191274Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpEndDpf),             "End-Dependent-Functions",  NULL}
235191274Srnoland};
236191274Srnoland
237191274SrnolandACPI_RSDUMP_INFO        AcpiRsDumpIo[6] =
238191274Srnoland{
239189052Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpIo),                 "I/O",                      NULL},
240191274Srnoland    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Io.IoDecode),                      "Address Decoding",         AcpiGbl_IoDecode},
241191274Srnoland    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Io.Minimum),                       "Address Minimum",          NULL},
242191274Srnoland    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Io.Maximum),                       "Address Maximum",          NULL},
243191274Srnoland    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Io.Alignment),                     "Alignment",                NULL},
244191274Srnoland    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Io.AddressLength),                 "Address Length",           NULL}
245191274Srnoland};
246189052Srnoland
247189052SrnolandACPI_RSDUMP_INFO        AcpiRsDumpFixedIo[3] =
248191274Srnoland{
249191274Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpFixedIo),            "Fixed I/O",                NULL},
250191274Srnoland    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (FixedIo.Address),                  "Address",                  NULL},
251191274Srnoland    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (FixedIo.AddressLength),            "Address Length",           NULL}
252191274Srnoland};
253191274Srnoland
254191274SrnolandACPI_RSDUMP_INFO        AcpiRsDumpVendor[3] =
255189052Srnoland{
256189052Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpVendor),             "Vendor Specific",          NULL},
257182080Srnoland    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Vendor.ByteLength),                "Length",                   NULL},
258182080Srnoland    {ACPI_RSD_LONGLIST, ACPI_RSD_OFFSET (Vendor.ByteData[0]),               "Vendor Data",              NULL}
259182080Srnoland};
260182080Srnoland
261152909SanholtACPI_RSDUMP_INFO        AcpiRsDumpEndTag[1] =
262189052Srnoland{
263189052Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpEndTag),             "EndTag",                   NULL}
264152909Sanholt};
265152909Sanholt
266152909SanholtACPI_RSDUMP_INFO        AcpiRsDumpMemory24[6] =
267145132Sanholt{
268145132Sanholt    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemory24),           "24-Bit Memory Range",      NULL},
269189563Srnoland    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Memory24.WriteProtect),            "Write Protect",            AcpiGbl_RwDecode},
270145132Sanholt    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Memory24.Minimum),                 "Address Minimum",          NULL},
271189052Srnoland    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Memory24.Maximum),                 "Address Maximum",          NULL},
272189052Srnoland    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Memory24.Alignment),               "Alignment",                NULL},
273189563Srnoland    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Memory24.AddressLength),           "Address Length",           NULL}
274189052Srnoland};
275189052Srnoland
276189052SrnolandACPI_RSDUMP_INFO        AcpiRsDumpMemory32[6] =
277194749Srnoland{
278194749Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemory32),           "32-Bit Memory Range",      NULL},
279194749Srnoland    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Memory32.WriteProtect),            "Write Protect",            AcpiGbl_RwDecode},
280189052Srnoland    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Memory32.Minimum),                 "Address Minimum",          NULL},
281194749Srnoland    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Memory32.Maximum),                 "Address Maximum",          NULL},
282194749Srnoland    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Memory32.Alignment),               "Alignment",                NULL},
283194749Srnoland    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Memory32.AddressLength),           "Address Length",           NULL}
284194749Srnoland};
285189052Srnoland
286189052SrnolandACPI_RSDUMP_INFO        AcpiRsDumpFixedMemory32[4] =
287145132Sanholt{
288145132Sanholt    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpFixedMemory32),      "32-Bit Fixed Memory Range",NULL},
289145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (FixedMemory32.WriteProtect),       "Write Protect",            AcpiGbl_RwDecode},
290145132Sanholt    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (FixedMemory32.Address),            "Address",                  NULL},
291145132Sanholt    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (FixedMemory32.AddressLength),      "Address Length",           NULL}
292145132Sanholt};
293145132Sanholt
294145132SanholtACPI_RSDUMP_INFO        AcpiRsDumpAddress16[8] =
295145132Sanholt{
296152909Sanholt    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress16),          "16-Bit WORD Address Space",NULL},
297152909Sanholt    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},
298152909Sanholt    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Granularity),            "Granularity",              NULL},
299145132Sanholt    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Minimum),                "Address Minimum",          NULL},
300145132Sanholt    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.Maximum),                "Address Maximum",          NULL},
301145132Sanholt    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.TranslationOffset),      "Translation Offset",       NULL},
302145132Sanholt    {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (Address16.AddressLength),          "Address Length",           NULL},
303189915Srnoland    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address16.ResourceSource),         NULL,                       NULL}
304189915Srnoland};
305152909Sanholt
306145132SanholtACPI_RSDUMP_INFO        AcpiRsDumpAddress32[8] =
307145132Sanholt{
308145132Sanholt    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress32),         "32-Bit DWORD Address Space", NULL},
309145132Sanholt    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},
310145132Sanholt    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Granularity),            "Granularity",              NULL},
311182080Srnoland    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Minimum),                "Address Minimum",          NULL},
312145132Sanholt    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.Maximum),                "Address Maximum",          NULL},
313152909Sanholt    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.TranslationOffset),      "Translation Offset",       NULL},
314145132Sanholt    {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (Address32.AddressLength),          "Address Length",           NULL},
315145132Sanholt    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address32.ResourceSource),         NULL,                       NULL}
316145132Sanholt};
317145132Sanholt
318152909SanholtACPI_RSDUMP_INFO        AcpiRsDumpAddress64[8] =
319152909Sanholt{
320183573Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress64),          "64-Bit QWORD Address Space", NULL},
321152909Sanholt    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},
322152909Sanholt    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Granularity),            "Granularity",              NULL},
323145132Sanholt    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Minimum),                "Address Minimum",          NULL},
324183573Srnoland    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.Maximum),                "Address Maximum",          NULL},
325183573Srnoland    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.TranslationOffset),      "Translation Offset",       NULL},
326152909Sanholt    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (Address64.AddressLength),          "Address Length",           NULL},
327145132Sanholt    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (Address64.ResourceSource),         NULL,                       NULL}
328145132Sanholt};
329183573Srnoland
330145132SanholtACPI_RSDUMP_INFO        AcpiRsDumpExtAddress64[8] =
331145132Sanholt{
332145132Sanholt    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpExtAddress64),       "64-Bit Extended Address Space", NULL},
333145132Sanholt    {ACPI_RSD_ADDRESS,  0,                                                  NULL,                       NULL},
334145132Sanholt    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Granularity),         "Granularity",              NULL},
335183573Srnoland    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Minimum),             "Address Minimum",          NULL},
336145132Sanholt    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.Maximum),             "Address Maximum",          NULL},
337145132Sanholt    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.TranslationOffset),   "Translation Offset",       NULL},
338145132Sanholt    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.AddressLength),       "Address Length",           NULL},
339145132Sanholt    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (ExtAddress64.TypeSpecific),        "Type-Specific Attribute",  NULL}
340145132Sanholt};
341145132Sanholt
342145132SanholtACPI_RSDUMP_INFO        AcpiRsDumpExtIrq[8] =
343145132Sanholt{
344145132Sanholt    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpExtIrq),             "Extended IRQ",             NULL},
345145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.ProducerConsumer),     "Type",                     AcpiGbl_ConsumeDecode},
346145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Triggering),           "Triggering",               AcpiGbl_HeDecode},
347145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Polarity),             "Polarity",                 AcpiGbl_LlDecode},
348183573Srnoland    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Sharable),             "Sharing",                  AcpiGbl_ShrDecode},
349145132Sanholt    {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource),       NULL,                       NULL},
350145132Sanholt    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount),       "Interrupt Count",          NULL},
351145132Sanholt    {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]),        "Interrupt List",           NULL}
352145132Sanholt};
353182080Srnoland
354145132SanholtACPI_RSDUMP_INFO        AcpiRsDumpGenericReg[6] =
355145132Sanholt{
356145132Sanholt    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpGenericReg),         "Generic Register",         NULL},
357145132Sanholt    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.SpaceId),               "Space ID",                 NULL},
358145132Sanholt    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.BitWidth),              "Bit Width",                NULL},
359145132Sanholt    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.BitOffset),             "Bit Offset",               NULL},
360145132Sanholt    {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (GenericReg.AccessSize),            "Access Size",              NULL},
361183573Srnoland    {ACPI_RSD_UINT64,   ACPI_RSD_OFFSET (GenericReg.Address),               "Address",                  NULL}
362145132Sanholt};
363183573Srnoland
364183573Srnoland
365145132Sanholt/*
366145132Sanholt * Tables used for common address descriptor flag fields
367145132Sanholt */
368145132Sanholtstatic ACPI_RSDUMP_INFO AcpiRsDumpGeneralFlags[5] =
369183573Srnoland{
370183833Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpGeneralFlags),       NULL,                       NULL},
371145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.ProducerConsumer),         "Consumer/Producer",        AcpiGbl_ConsumeDecode},
372145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Decode),                   "Address Decode",           AcpiGbl_DecDecode},
373145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MinAddressFixed),          "Min Relocatability",       AcpiGbl_MinDecode},
374183573Srnoland    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MaxAddressFixed),          "Max Relocatability",       AcpiGbl_MaxDecode}
375183573Srnoland};
376183573Srnoland
377145132Sanholtstatic ACPI_RSDUMP_INFO AcpiRsDumpMemoryFlags[5] =
378183833Srnoland{
379145132Sanholt    {ACPI_RSD_LITERAL,  ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemoryFlags),        "Resource Type",            (void *) "Memory Range"},
380145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.WriteProtect),    "Write Protect",            AcpiGbl_RwDecode},
381145132Sanholt    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Caching),         "Caching",                  AcpiGbl_MemDecode},
382145132Sanholt    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.RangeType),       "Range Type",               AcpiGbl_MtpDecode},
383182467Srnoland    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Translation),     "Translation",              AcpiGbl_TtpDecode}
384182080Srnoland};
385182467Srnoland
386182080Srnolandstatic ACPI_RSDUMP_INFO AcpiRsDumpIoFlags[4] =
387183573Srnoland{
388183573Srnoland    {ACPI_RSD_LITERAL,  ACPI_RSD_TABLE_SIZE (AcpiRsDumpIoFlags),            "Resource Type",            (void *) "I/O Range"},
389145132Sanholt    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.RangeType),        "Range Type",               AcpiGbl_RngDecode},
390145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.Translation),      "Translation",              AcpiGbl_TtpDecode},
391145132Sanholt    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.TranslationType),  "Translation Type",         AcpiGbl_TrsDecode}
392152909Sanholt};
393152909Sanholt
394152909Sanholt
395183573Srnoland/*
396145132Sanholt * Table used to dump _PRT contents
397183573Srnoland */
398145132Sanholtstatic ACPI_RSDUMP_INFO   AcpiRsDumpPrt[5] =
399145132Sanholt{
400183833Srnoland    {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPrt),                NULL,                       NULL},
401145132Sanholt    {ACPI_RSD_UINT64,   ACPI_PRT_OFFSET (Address),                          "Address",                  NULL},
402145132Sanholt    {ACPI_RSD_UINT32,   ACPI_PRT_OFFSET (Pin),                              "Pin",                      NULL},
403145132Sanholt    {ACPI_RSD_STRING,   ACPI_PRT_OFFSET (Source[0]),                        "Source",                   NULL},
404145132Sanholt    {ACPI_RSD_UINT32,   ACPI_PRT_OFFSET (SourceIndex),                      "Source Index",             NULL}
405152909Sanholt};
406145132Sanholt
407145132Sanholt
408145132Sanholt/*******************************************************************************
409145132Sanholt *
410145132Sanholt * FUNCTION:    AcpiRsDumpDescriptor
411145132Sanholt *
412145132Sanholt * PARAMETERS:  Resource
413145132Sanholt *
414145132Sanholt * RETURN:      None
415145132Sanholt *
416182080Srnoland * DESCRIPTION:
417182080Srnoland *
418145132Sanholt ******************************************************************************/
419145132Sanholt
420145132Sanholtstatic void
421183573SrnolandAcpiRsDumpDescriptor (
422145132Sanholt    void                    *Resource,
423182080Srnoland    ACPI_RSDUMP_INFO        *Table)
424145132Sanholt{
425145132Sanholt    UINT8                   *Target = NULL;
426145132Sanholt    UINT8                   *PreviousTarget;
427145132Sanholt    char                    *Name;
428145132Sanholt    UINT8                    Count;
429145132Sanholt
430182080Srnoland
431145132Sanholt    /* First table entry must contain the table length (# of table entries) */
432182080Srnoland
433152909Sanholt    Count = Table->Offset;
434183573Srnoland
435145132Sanholt    while (Count)
436145132Sanholt    {
437207066Srnoland        PreviousTarget = Target;
438207066Srnoland        Target = ACPI_ADD_PTR (UINT8, Resource, Table->Offset);
439207066Srnoland        Name = Table->Name;
440207066Srnoland
441207066Srnoland        switch (Table->Opcode)
442145132Sanholt        {
443207066Srnoland        case ACPI_RSD_TITLE:
444145132Sanholt            /*
445145132Sanholt             * Optional resource title
446145132Sanholt             */
447145132Sanholt            if (Table->Name)
448182080Srnoland            {
449182080Srnoland                AcpiOsPrintf ("%s Resource\n", Name);
450182080Srnoland            }
451182080Srnoland            break;
452182080Srnoland
453182080Srnoland        /* Strings */
454182080Srnoland
455182080Srnoland        case ACPI_RSD_LITERAL:
456183573Srnoland            AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer));
457183573Srnoland            break;
458182080Srnoland
459183573Srnoland        case ACPI_RSD_STRING:
460152909Sanholt            AcpiRsOutString (Name, ACPI_CAST_PTR (char, Target));
461182080Srnoland            break;
462183573Srnoland
463182080Srnoland        /* Data items, 8/16/32/64 bit */
464182080Srnoland
465182080Srnoland        case ACPI_RSD_UINT8:
466152909Sanholt            AcpiRsOutInteger8 (Name, ACPI_GET8 (Target));
467145132Sanholt            break;
468145132Sanholt
469145132Sanholt        case ACPI_RSD_UINT16:
470145132Sanholt            AcpiRsOutInteger16 (Name, ACPI_GET16 (Target));
471183573Srnoland            break;
472145132Sanholt
473145132Sanholt        case ACPI_RSD_UINT32:
474183573Srnoland            AcpiRsOutInteger32 (Name, ACPI_GET32 (Target));
475183573Srnoland            break;
476145132Sanholt
477145132Sanholt        case ACPI_RSD_UINT64:
478182080Srnoland            AcpiRsOutInteger64 (Name, ACPI_GET64 (Target));
479145132Sanholt            break;
480145132Sanholt
481215367Snwhitehorn        /* Flags: 1-bit and 2-bit flags supported */
482145132Sanholt
483145132Sanholt        case ACPI_RSD_1BITFLAG:
484145132Sanholt            AcpiRsOutString (Name, ACPI_CAST_PTR (char,
485145132Sanholt                Table->Pointer [*Target & 0x01]));
486145132Sanholt            break;
487145132Sanholt
488145132Sanholt        case ACPI_RSD_2BITFLAG:
489145132Sanholt            AcpiRsOutString (Name, ACPI_CAST_PTR (char,
490145132Sanholt                Table->Pointer [*Target & 0x03]));
491145132Sanholt            break;
492145132Sanholt
493182080Srnoland        case ACPI_RSD_SHORTLIST:
494182080Srnoland            /*
495182080Srnoland             * Short byte list (single line output) for DMA and IRQ resources
496182080Srnoland             * Note: The list length is obtained from the previous table entry
497182080Srnoland             */
498182080Srnoland            if (PreviousTarget)
499182080Srnoland            {
500152909Sanholt                AcpiRsOutTitle (Name);
501183573Srnoland                AcpiRsDumpShortByteList (*PreviousTarget, Target);
502183573Srnoland            }
503183573Srnoland            break;
504183573Srnoland
505183573Srnoland        case ACPI_RSD_LONGLIST:
506145132Sanholt            /*
507145132Sanholt             * Long byte list for Vendor resource data
508145132Sanholt             * Note: The list length is obtained from the previous table entry
509145132Sanholt             */
510145132Sanholt            if (PreviousTarget)
511145132Sanholt            {
512152909Sanholt                AcpiRsDumpByteList (ACPI_GET16 (PreviousTarget), Target);
513145132Sanholt            }
514145132Sanholt            break;
515183573Srnoland
516182080Srnoland        case ACPI_RSD_DWORDLIST:
517182080Srnoland            /*
518182080Srnoland             * Dword list for Extended Interrupt resources
519145132Sanholt             * Note: The list length is obtained from the previous table entry
520183573Srnoland             */
521145132Sanholt            if (PreviousTarget)
522145132Sanholt            {
523145132Sanholt                AcpiRsDumpDwordList (*PreviousTarget,
524182080Srnoland                    ACPI_CAST_PTR (UINT32, Target));
525145132Sanholt            }
526152909Sanholt            break;
527145132Sanholt
528183573Srnoland        case ACPI_RSD_ADDRESS:
529145132Sanholt            /*
530145132Sanholt             * Common flags for all Address resources
531145132Sanholt             */
532145132Sanholt            AcpiRsDumpAddressCommon (ACPI_CAST_PTR (ACPI_RESOURCE_DATA, Target));
533145132Sanholt            break;
534145132Sanholt
535145132Sanholt        case ACPI_RSD_SOURCE:
536145132Sanholt            /*
537145132Sanholt             * Optional ResourceSource for Address resources
538152909Sanholt             */
539145132Sanholt            AcpiRsDumpResourceSource (ACPI_CAST_PTR (ACPI_RESOURCE_SOURCE, Target));
540145132Sanholt            break;
541145132Sanholt
542145132Sanholt        default:
543189130Srnoland            AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n",
544189130Srnoland                Table->Opcode);
545145132Sanholt            return;
546152909Sanholt        }
547145132Sanholt
548145132Sanholt        Table++;
549152909Sanholt        Count--;
550152909Sanholt    }
551152909Sanholt}
552152909Sanholt
553152909Sanholt
554152909Sanholt/*******************************************************************************
555152909Sanholt *
556152909Sanholt * FUNCTION:    AcpiRsDumpResourceSource
557152909Sanholt *
558152909Sanholt * PARAMETERS:  ResourceSource      - Pointer to a Resource Source struct
559152909Sanholt *
560145132Sanholt * RETURN:      None
561145132Sanholt *
562183573Srnoland * DESCRIPTION: Common routine for dumping the optional ResourceSource and the
563183833Srnoland *              corresponding ResourceSourceIndex.
564145132Sanholt *
565145132Sanholt ******************************************************************************/
566145132Sanholt
567183573Srnolandstatic void
568182468SrnolandAcpiRsDumpResourceSource (
569183573Srnoland    ACPI_RESOURCE_SOURCE    *ResourceSource)
570182468Srnoland{
571182468Srnoland    ACPI_FUNCTION_ENTRY ();
572145132Sanholt
573182080Srnoland
574207066Srnoland    if (ResourceSource->Index == 0xFF)
575182080Srnoland    {
576145132Sanholt        return;
577182080Srnoland    }
578182080Srnoland
579182080Srnoland    AcpiRsOutInteger8 ("Resource Source Index",
580182080Srnoland        ResourceSource->Index);
581182080Srnoland
582182080Srnoland    AcpiRsOutString ("Resource Source",
583182080Srnoland        ResourceSource->StringPtr ?
584145132Sanholt            ResourceSource->StringPtr : "[Not Specified]");
585145132Sanholt}
586145132Sanholt
587182080Srnoland
588145132Sanholt/*******************************************************************************
589183573Srnoland *
590145132Sanholt * FUNCTION:    AcpiRsDumpAddressCommon
591145132Sanholt *
592145132Sanholt * PARAMETERS:  Resource        - Pointer to an internal resource descriptor
593145132Sanholt *
594145132Sanholt * RETURN:      None
595145132Sanholt *
596145132Sanholt * DESCRIPTION: Dump the fields that are common to all Address resource
597145132Sanholt *              descriptors
598182080Srnoland *
599145132Sanholt ******************************************************************************/
600145132Sanholt
601183573Srnolandstatic void
602183573SrnolandAcpiRsDumpAddressCommon (
603183573Srnoland    ACPI_RESOURCE_DATA      *Resource)
604145132Sanholt{
605183573Srnoland    ACPI_FUNCTION_ENTRY ();
606183573Srnoland
607183573Srnoland
608145132Sanholt   /* Decode the type-specific flags */
609145132Sanholt
610145132Sanholt    switch (Resource->Address.ResourceType)
611145132Sanholt    {
612145132Sanholt    case ACPI_MEMORY_RANGE:
613145132Sanholt
614182080Srnoland        AcpiRsDumpDescriptor (Resource, AcpiRsDumpMemoryFlags);
615145132Sanholt        break;
616145132Sanholt
617196465Srnoland    case ACPI_IO_RANGE:
618145132Sanholt
619183573Srnoland        AcpiRsDumpDescriptor (Resource, AcpiRsDumpIoFlags);
620145132Sanholt        break;
621145132Sanholt
622145132Sanholt    case ACPI_BUS_NUMBER_RANGE:
623183573Srnoland
624183573Srnoland        AcpiRsOutString ("Resource Type", "Bus Number Range");
625145132Sanholt        break;
626145132Sanholt
627183573Srnoland    default:
628152909Sanholt
629145132Sanholt        AcpiRsOutInteger8 ("Resource Type",
630145132Sanholt            (UINT8) Resource->Address.ResourceType);
631145132Sanholt        break;
632145132Sanholt    }
633145132Sanholt
634145132Sanholt    /* Decode the general flags */
635183573Srnoland
636145132Sanholt    AcpiRsDumpDescriptor (Resource, AcpiRsDumpGeneralFlags);
637183573Srnoland}
638183573Srnoland
639145132Sanholt
640182080Srnoland/*******************************************************************************
641183573Srnoland *
642145132Sanholt * FUNCTION:    AcpiRsDumpResourceList
643145132Sanholt *
644145132Sanholt * PARAMETERS:  ResourceList        - Pointer to a resource descriptor list
645183573Srnoland *
646183573Srnoland * RETURN:      None
647145132Sanholt *
648145132Sanholt * DESCRIPTION: Dispatches the structure to the correct dump routine.
649145132Sanholt *
650145132Sanholt ******************************************************************************/
651145132Sanholt
652183573Srnolandvoid
653183573SrnolandAcpiRsDumpResourceList (
654145132Sanholt    ACPI_RESOURCE           *ResourceList)
655145132Sanholt{
656182080Srnoland    UINT32                  Count = 0;
657145132Sanholt    UINT32                  Type;
658145132Sanholt
659145132Sanholt
660183573Srnoland    ACPI_FUNCTION_ENTRY ();
661183573Srnoland
662145132Sanholt
663183573Srnoland    if (!(AcpiDbgLevel & ACPI_LV_RESOURCES) || !( _COMPONENT & AcpiDbgLayer))
664145132Sanholt    {
665145132Sanholt        return;
666145132Sanholt    }
667145132Sanholt
668145132Sanholt    /* Walk list and dump all resource descriptors (END_TAG terminates) */
669145132Sanholt
670183573Srnoland    do
671152909Sanholt    {
672145132Sanholt        AcpiOsPrintf ("\n[%02X] ", Count);
673145132Sanholt        Count++;
674183573Srnoland
675145132Sanholt        /* Validate Type before dispatch */
676182080Srnoland
677145132Sanholt        Type = ResourceList->Type;
678145132Sanholt        if (Type > ACPI_RESOURCE_TYPE_MAX)
679183573Srnoland        {
680182080Srnoland            AcpiOsPrintf (
681145132Sanholt                "Invalid descriptor type (%X) in resource list\n",
682183573Srnoland                ResourceList->Type);
683145132Sanholt            return;
684145132Sanholt        }
685183573Srnoland
686182080Srnoland        /* Dump the resource descriptor */
687189869Srnoland
688145132Sanholt        AcpiRsDumpDescriptor (&ResourceList->Data,
689145132Sanholt            AcpiGbl_DumpResourceDispatch[Type]);
690145132Sanholt
691145132Sanholt        /* Point to the next resource structure */
692183573Srnoland
693183573Srnoland        ResourceList = ACPI_ADD_PTR (ACPI_RESOURCE, ResourceList,
694145132Sanholt                            ResourceList->Length);
695145132Sanholt
696145132Sanholt        /* Exit when END_TAG descriptor is reached */
697183573Srnoland
698183573Srnoland    } while (Type != ACPI_RESOURCE_TYPE_END_TAG);
699182080Srnoland}
700145132Sanholt
701145132Sanholt
702145132Sanholt/*******************************************************************************
703183573Srnoland *
704183573Srnoland * FUNCTION:    AcpiRsDumpIrqList
705182080Srnoland *
706183833Srnoland * PARAMETERS:  RouteTable      - Pointer to the routing table to dump.
707145132Sanholt *
708145132Sanholt * RETURN:      None
709145132Sanholt *
710145132Sanholt * DESCRIPTION: Print IRQ routing table
711145132Sanholt *
712183573Srnoland ******************************************************************************/
713145132Sanholt
714145132Sanholtvoid
715152909SanholtAcpiRsDumpIrqList (
716145132Sanholt    UINT8                   *RouteTable)
717145132Sanholt{
718145132Sanholt    ACPI_PCI_ROUTING_TABLE  *PrtElement;
719145132Sanholt    UINT8                   Count;
720145132Sanholt
721145132Sanholt
722145132Sanholt    ACPI_FUNCTION_ENTRY ();
723145132Sanholt
724145132Sanholt
725145132Sanholt    if (!(AcpiDbgLevel & ACPI_LV_RESOURCES) || !( _COMPONENT & AcpiDbgLayer))
726182080Srnoland    {
727145132Sanholt        return;
728145132Sanholt    }
729182080Srnoland
730145132Sanholt    PrtElement = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, RouteTable);
731145132Sanholt
732183573Srnoland    /* Dump all table elements, Exit on zero length element */
733145132Sanholt
734183573Srnoland    for (Count = 0; PrtElement->Length; Count++)
735183573Srnoland    {
736145132Sanholt        AcpiOsPrintf ("\n[%02X] PCI IRQ Routing Table Package\n", Count);
737145132Sanholt        AcpiRsDumpDescriptor (PrtElement, AcpiRsDumpPrt);
738145132Sanholt
739145132Sanholt        PrtElement = ACPI_ADD_PTR (ACPI_PCI_ROUTING_TABLE,
740183573Srnoland                        PrtElement, PrtElement->Length);
741182080Srnoland    }
742145132Sanholt}
743183573Srnoland
744182080Srnoland
745183573Srnoland/*******************************************************************************
746145132Sanholt *
747145132Sanholt * FUNCTION:    AcpiRsOut*
748145132Sanholt *
749145132Sanholt * PARAMETERS:  Title       - Name of the resource field
750145132Sanholt *              Value       - Value of the resource field
751145132Sanholt *
752145132Sanholt * RETURN:      None
753145132Sanholt *
754145132Sanholt * DESCRIPTION: Miscellaneous helper functions to consistently format the
755145132Sanholt *              output of the resource dump routines
756145132Sanholt *
757145132Sanholt ******************************************************************************/
758145132Sanholt
759145132Sanholtstatic void
760145132SanholtAcpiRsOutString (
761145132Sanholt    char                    *Title,
762145132Sanholt    char                    *Value)
763145132Sanholt{
764145132Sanholt    AcpiOsPrintf ("%27s : %s", Title, Value);
765145132Sanholt    if (!*Value)
766145132Sanholt    {
767145132Sanholt        AcpiOsPrintf ("[NULL NAMESTRING]");
768145132Sanholt    }
769145132Sanholt    AcpiOsPrintf ("\n");
770183573Srnoland}
771145132Sanholt
772183573Srnolandstatic void
773145132SanholtAcpiRsOutInteger8 (
774145132Sanholt    char                    *Title,
775183573Srnoland    UINT8                   Value)
776145132Sanholt{
777145132Sanholt    AcpiOsPrintf ("%27s : %2.2X\n", Title, Value);
778145132Sanholt}
779145132Sanholt
780145132Sanholtstatic void
781183573SrnolandAcpiRsOutInteger16 (
782145132Sanholt    char                    *Title,
783145132Sanholt    UINT16                  Value)
784182080Srnoland{
785152909Sanholt    AcpiOsPrintf ("%27s : %4.4X\n", Title, Value);
786182080Srnoland}
787182080Srnoland
788145132Sanholtstatic void
789145132SanholtAcpiRsOutInteger32 (
790182080Srnoland    char                    *Title,
791145132Sanholt    UINT32                  Value)
792182080Srnoland{
793182080Srnoland    AcpiOsPrintf ("%27s : %8.8X\n", Title, Value);
794145132Sanholt}
795182080Srnoland
796182080Srnolandstatic void
797182080SrnolandAcpiRsOutInteger64 (
798145132Sanholt    char                    *Title,
799145132Sanholt    UINT64                  Value)
800145132Sanholt{
801145132Sanholt    AcpiOsPrintf ("%27s : %8.8X%8.8X\n", Title,
802182080Srnoland        ACPI_FORMAT_UINT64 (Value));
803145132Sanholt}
804145132Sanholt
805182080Srnolandstatic void
806182080SrnolandAcpiRsOutTitle (
807182080Srnoland    char                    *Title)
808145132Sanholt{
809182080Srnoland    AcpiOsPrintf ("%27s : ", Title);
810182080Srnoland}
811182080Srnoland
812182080Srnoland
813182080Srnoland/*******************************************************************************
814182080Srnoland *
815182080Srnoland * FUNCTION:    AcpiRsDump*List
816182080Srnoland *
817182080Srnoland * PARAMETERS:  Length      - Number of elements in the list
818145132Sanholt *              Data        - Start of the list
819145132Sanholt *
820145132Sanholt * RETURN:      None
821145132Sanholt *
822145132Sanholt * DESCRIPTION: Miscellaneous functions to dump lists of raw data
823145132Sanholt *
824145132Sanholt ******************************************************************************/
825145132Sanholt
826145132Sanholtstatic void
827145132SanholtAcpiRsDumpByteList (
828145132Sanholt    UINT16                  Length,
829145132Sanholt    UINT8                   *Data)
830145132Sanholt{
831145132Sanholt    UINT8                   i;
832145132Sanholt
833145132Sanholt
834145132Sanholt    for (i = 0; i < Length; i++)
835145132Sanholt    {
836145132Sanholt        AcpiOsPrintf ("%25s%2.2X : %2.2X\n",
837145132Sanholt            "Byte", i, Data[i]);
838145132Sanholt    }
839145132Sanholt}
840145132Sanholt
841145132Sanholtstatic void
842145132SanholtAcpiRsDumpShortByteList (
843145132Sanholt    UINT8                  Length,
844145132Sanholt    UINT8                  *Data)
845145132Sanholt{
846145132Sanholt    UINT8                   i;
847145132Sanholt
848145132Sanholt
849145132Sanholt    for (i = 0; i < Length; i++)
850145132Sanholt    {
851145132Sanholt        AcpiOsPrintf ("%X ", Data[i]);
852145132Sanholt    }
853145132Sanholt    AcpiOsPrintf ("\n");
854145132Sanholt}
855145132Sanholt
856145132Sanholtstatic void
857AcpiRsDumpDwordList (
858    UINT8                   Length,
859    UINT32                  *Data)
860{
861    UINT8                   i;
862
863
864    for (i = 0; i < Length; i++)
865    {
866        AcpiOsPrintf ("%25s%2.2X : %8.8X\n",
867            "Dword", i, Data[i]);
868    }
869}
870
871#endif
872
873