dmresrcl.c revision 114237
1114902Sscottl/******************************************************************************* 2114902Sscottl * 3114902Sscottl * Module Name: dmresrcl.c - "Large" Resource Descriptor disassembly 4114902Sscottl * $Revision: 10 $ 5114902Sscottl * 6114902Sscottl ******************************************************************************/ 7114902Sscottl 8114902Sscottl/****************************************************************************** 9114902Sscottl * 10114902Sscottl * 1. Copyright Notice 11114902Sscottl * 12114902Sscottl * Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp. 13114902Sscottl * All rights reserved. 14114902Sscottl * 15114902Sscottl * 2. License 16114902Sscottl * 17114902Sscottl * 2.1. This is your license from Intel Corp. under its intellectual property 18114902Sscottl * rights. You may have additional license terms from the party that provided 19114902Sscottl * you this software, covering your right to use that party's intellectual 20114902Sscottl * property rights. 21114902Sscottl * 22114902Sscottl * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 23114902Sscottl * copy of the source code appearing in this file ("Covered Code") an 24114902Sscottl * irrevocable, perpetual, worldwide license under Intel's copyrights in the 25114902Sscottl * base code distributed originally by Intel ("Original Intel Code") to copy, 26114902Sscottl * make derivatives, distribute, use and display any portion of the Covered 27114902Sscottl * Code in any form, with the right to sublicense such rights; and 28114902Sscottl * 29114902Sscottl * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 30114902Sscottl * license (with the right to sublicense), under only those claims of Intel 31114902Sscottl * patents that are infringed by the Original Intel Code, to make, use, sell, 32114902Sscottl * offer to sell, and import the Covered Code and derivative works thereof 33114902Sscottl * solely to the minimum extent necessary to exercise the above copyright 34114902Sscottl * license, and in no event shall the patent license extend to any additions 35129879Sphk * to or modifications of the Original Intel Code. No other license or right 36114902Sscottl * is granted directly or by implication, estoppel or otherwise; 37114902Sscottl * 38114902Sscottl * The above copyright and patent license is granted only if the following 39114902Sscottl * conditions are met: 40114902Sscottl * 41114902Sscottl * 3. Conditions 42114902Sscottl * 43126364Sscottl * 3.1. Redistribution of Source with Rights to Further Distribute Source. 44122999Smbr * Redistribution of source code of any substantial portion of the Covered 45114902Sscottl * Code or modification with rights to further distribute source must include 46114902Sscottl * the above Copyright Notice, the above License, this list of Conditions, 47114902Sscottl * and the following Disclaimer and Export Compliance provision. In addition, 48114902Sscottl * Licensee must cause all Covered Code to which Licensee contributes to 49114902Sscottl * contain a file documenting the changes Licensee made to create that Covered 50119280Simp * Code and the date of any change. Licensee must include in that file the 51119280Simp * documentation of any changes made by any predecessor Licensee. Licensee 52114902Sscottl * must include a prominent statement that the modification is derived, 53129859Sscottl * directly or indirectly, from Original Intel Code. 54129859Sscottl * 55114902Sscottl * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 56114902Sscottl * Redistribution of source code of any substantial portion of the Covered 57114902Sscottl * Code or modification without rights to further distribute source must 58114902Sscottl * include the following Disclaimer and Export Compliance provision in the 59127205Sscottl * documentation and/or other materials provided with distribution. In 60114902Sscottl * addition, Licensee may not authorize further sublicense of source of any 61114902Sscottl * portion of the Covered Code, and must include terms to the effect that the 62127487Sscottl * license from Licensee to its licensee is limited to the intellectual 63114902Sscottl * property embodied in the software Licensee provides to its licensee, and 64114902Sscottl * not to intellectual property embodied in modifications its licensee may 65114902Sscottl * make. 66114902Sscottl * 67114902Sscottl * 3.3. Redistribution of Executable. Redistribution in executable form of any 68114902Sscottl * substantial portion of the Covered Code or modification must reproduce the 69114902Sscottl * above Copyright Notice, and the following Disclaimer and Export Compliance 70114902Sscottl * provision in the documentation and/or other materials provided with the 71114902Sscottl * distribution. 72114902Sscottl * 73140923Sscottl * 3.4. Intel retains all right, title, and interest in and to the Original 74114902Sscottl * Intel Code. 75114902Sscottl * 76114902Sscottl * 3.5. Neither the name Intel nor any other trademark owned or controlled by 77114902Sscottl * Intel shall be used in advertising or otherwise to promote the sale, use or 78114902Sscottl * other dealings in products derived from or relating to the Covered Code 79140923Sscottl * without prior written authorization from Intel. 80114902Sscottl * 81114902Sscottl * 4. Disclaimer and Export Compliance 82114902Sscottl * 83114902Sscottl * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 84114902Sscottl * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 85114902Sscottl * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 86114902Sscottl * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 87114902Sscottl * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 88114902Sscottl * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 89114902Sscottl * PARTICULAR PURPOSE. 90114902Sscottl * 91114902Sscottl * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 92122999Smbr * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 93114902Sscottl * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 94114902Sscottl * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 95114902Sscottl * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 96114902Sscottl * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 97114902Sscottl * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 98114902Sscottl * LIMITED REMEDY. 99114902Sscottl * 100114902Sscottl * 4.3. Licensee shall not export, either directly or indirectly, any of this 101114902Sscottl * software or system incorporating such software without first obtaining any 102114902Sscottl * required license or other approval from the U. S. Department of Commerce or 103114902Sscottl * any other agency or department of the United States Government. In the 104114902Sscottl * event Licensee exports any such software from the United States or 105114902Sscottl * re-exports any such software from a foreign destination, Licensee shall 106114902Sscottl * ensure that the distribution and export/re-export of the software is in 107114902Sscottl * compliance with all laws, regulations, orders, or other restrictions of the 108114902Sscottl * U.S. Export Administration Regulations. Licensee agrees that neither it nor 109114902Sscottl * any of its subsidiaries will export/re-export any technical data, process, 110114902Sscottl * software, or service, directly or indirectly, to any country for which the 111114902Sscottl * United States government or any agency thereof requires an export license, 112114902Sscottl * other governmental approval, or letter of assurance, without first obtaining 113114902Sscottl * such license, approval or letter. 114114902Sscottl * 115114902Sscottl *****************************************************************************/ 116114902Sscottl 117114902Sscottl 118114902Sscottl#include "acpi.h" 119114902Sscottl#include "acdisasm.h" 120114902Sscottl 121114902Sscottl 122114902Sscottl#ifdef ACPI_DISASSEMBLER 123114902Sscottl 124114902Sscottl#define _COMPONENT ACPI_CA_DEBUGGER 125114902Sscottl ACPI_MODULE_NAME ("dbresrcl") 126114902Sscottl 127114902Sscottl 128114902Sscottl/******************************************************************************* 129114902Sscottl * 130114902Sscottl * FUNCTION: AcpiDmIoFlags 131114902Sscottl * 132114902Sscottl * PARAMETERS: Flags - Flag byte to be decoded 133114902Sscottl * 134114902Sscottl * RETURN: None 135114902Sscottl * 136114902Sscottl * DESCRIPTION: Decode the flags specific to IO Address space descriptors 137114902Sscottl * 138114902Sscottl ******************************************************************************/ 139114902Sscottl 140114902Sscottlvoid 141114902SscottlAcpiDmIoFlags ( 142114902Sscottl UINT8 Flags) 143114902Sscottl{ 144114902Sscottl AcpiOsPrintf ("%s, %s, %s, %s,", 145114902Sscottl AcpiGbl_ConsumeDecode [(Flags & 1)], 146114902Sscottl AcpiGbl_MinDecode [(Flags & 0x4) >> 2], 147114902Sscottl AcpiGbl_MaxDecode [(Flags & 0x8) >> 3], 148114902Sscottl AcpiGbl_DECDecode [(Flags & 0x2) >> 1]); 149114902Sscottl} 150114902Sscottl 151122999Smbr 152114902Sscottl/******************************************************************************* 153150535Sscottl * 154114902Sscottl * FUNCTION: AcpiDmMemoryFlags 155150535Sscottl * 156150535Sscottl * PARAMETERS: Flags - Flag byte to be decoded 157150535Sscottl * SpecificFlags - "Specific" flag byte to be decoded 158150535Sscottl * 159150535Sscottl * RETURN: None 160150535Sscottl * 161150535Sscottl * DESCRIPTION: Decode flags specific to Memory Address Space descriptors 162150535Sscottl * 163150535Sscottl ******************************************************************************/ 164150535Sscottl 165150535Sscottlvoid 166150535SscottlAcpiDmMemoryFlags ( 167150535Sscottl UINT8 Flags, 168114902Sscottl UINT8 SpecificFlags) 169150535Sscottl{ 170150535Sscottl AcpiOsPrintf ("%s, %s, %s, %s, %s, %s,", 171150535Sscottl AcpiGbl_ConsumeDecode [(Flags & 1)], 172150535Sscottl AcpiGbl_DECDecode [(Flags & 0x2) >> 1], 173150535Sscottl AcpiGbl_MinDecode [(Flags & 0x4) >> 2], 174150535Sscottl AcpiGbl_MaxDecode [(Flags & 0x8) >> 3], 175150535Sscottl AcpiGbl_MEMDecode [(SpecificFlags & 0x6) >> 1], 176150535Sscottl AcpiGbl_RWDecode [(SpecificFlags & 0x1)]); 177122999Smbr} 178114902Sscottl 179122999Smbr 180114902Sscottl/******************************************************************************* 181122999Smbr * 182122999Smbr * FUNCTION: AcpiDmWordDescriptor 183122999Smbr * 184122999Smbr * PARAMETERS: Resource - Pointer to the resource descriptor 185122999Smbr * Length - Length of the descriptor in bytes 186122999Smbr * Level - Current source code indentation level 187122999Smbr * 188122999Smbr * RETURN: None 189122999Smbr * 190122999Smbr * DESCRIPTION: Decode a Word Address Space descriptor 191122999Smbr * 192122999Smbr ******************************************************************************/ 193122999Smbr 194122999Smbrvoid 195122999SmbrAcpiDmWordDescriptor ( 196122999Smbr ASL_WORD_ADDRESS_DESC *Resource, 197122999Smbr UINT32 Length, 198122999Smbr UINT32 Level) 199122999Smbr{ 200122999Smbr 201122999Smbr AcpiDmIndent (Level); 202122999Smbr AcpiOsPrintf ("%s (", 203122999Smbr AcpiGbl_WordDecode [(Resource->ResourceType & 3)]); 204122999Smbr 205122999Smbr AcpiDmIoFlags (Resource->Flags); 206122999Smbr 207122999Smbr if ((Resource->ResourceType & 0x3) == 1) 208122999Smbr { 209122999Smbr AcpiOsPrintf (" %s,", 210122999Smbr AcpiGbl_RNGDecode [(Resource->SpecificFlags & 0x3)]); 211122999Smbr } 212122999Smbr 213114902Sscottl /* The WORD values */ 214114902Sscottl 215114902Sscottl AcpiOsPrintf ("\n"); 216114902Sscottl AcpiDmIndent (Level + 1); 217114902Sscottl AcpiOsPrintf ("0x%4.4X,\n", 218114902Sscottl (UINT32) Resource->Granularity); 219114902Sscottl AcpiDmIndent (Level + 1); 220114902Sscottl AcpiOsPrintf ("0x%4.4X,\n", 221114902Sscottl (UINT32) Resource->AddressMin); 222114902Sscottl AcpiDmIndent (Level + 1); 223114902Sscottl AcpiOsPrintf ("0x%4.4X,\n", 224114902Sscottl (UINT32) Resource->AddressMax); 225114902Sscottl AcpiDmIndent (Level + 1); 226114902Sscottl AcpiOsPrintf ("0x%4.4X,\n", 227114902Sscottl (UINT32) Resource->TranslationOffset); 228114902Sscottl AcpiDmIndent (Level + 1); 229114902Sscottl AcpiOsPrintf ("0x%4.4X", 230150535Sscottl (UINT32) Resource->AddressLength); 231114902Sscottl 232150535Sscottl /* Optional fields */ 233150535Sscottl 234150535Sscottl if (Length > 13) 235150535Sscottl { 236150535Sscottl AcpiOsPrintf (", 0x%2.2X", 237114902Sscottl (UINT32) Resource->OptionalFields[0]); 238114902Sscottl } 239114902Sscottl 240114902Sscottl if (Length > 14) 241114902Sscottl { 242114902Sscottl AcpiOsPrintf (", %s", 243114902Sscottl &Resource->OptionalFields[1]); 244150535Sscottl } 245114902Sscottl AcpiOsPrintf (")\n"); 246114902Sscottl} 247114902Sscottl 248114902Sscottl 249114902Sscottl/******************************************************************************* 250114902Sscottl * 251114902Sscottl * FUNCTION: AcpiDmDwordDescriptor 252114902Sscottl * 253114902Sscottl * PARAMETERS: Resource - Pointer to the resource descriptor 254114902Sscottl * Length - Length of the descriptor in bytes 255114902Sscottl * Level - Current source code indentation level 256114902Sscottl * 257114902Sscottl * RETURN: None 258114902Sscottl * 259114902Sscottl * DESCRIPTION: Decode a DWord Address Space descriptor 260114902Sscottl * 261114902Sscottl ******************************************************************************/ 262114902Sscottl 263114902Sscottlvoid 264114902SscottlAcpiDmDwordDescriptor ( 265114902Sscottl ASL_DWORD_ADDRESS_DESC *Resource, 266114902Sscottl UINT32 Length, 267114902Sscottl UINT32 Level) 268114902Sscottl{ 269114902Sscottl 270114902Sscottl AcpiDmIndent (Level); 271114902Sscottl AcpiOsPrintf ("D%s (", 272114902Sscottl AcpiGbl_WordDecode [(Resource->ResourceType & 3)]); 273114902Sscottl 274114902Sscottl if ((Resource->ResourceType & 0x3) == 1) 275114902Sscottl { 276114902Sscottl AcpiDmIoFlags (Resource->Flags); 277114902Sscottl AcpiOsPrintf (" %s,", 278114902Sscottl AcpiGbl_RNGDecode [(Resource->SpecificFlags & 0x3)]); 279114902Sscottl } 280114902Sscottl else 281114902Sscottl { 282114902Sscottl AcpiDmMemoryFlags (Resource->Flags, Resource->SpecificFlags); 283114902Sscottl } 284114902Sscottl 285114902Sscottl /* The DWORD values */ 286114902Sscottl 287114902Sscottl AcpiOsPrintf ("\n"); 288114902Sscottl AcpiDmIndent (Level + 1); 289114902Sscottl AcpiOsPrintf ("0x%8.8X,\n", 290114902Sscottl Resource->Granularity); 291114902Sscottl AcpiDmIndent (Level + 1); 292114902Sscottl AcpiOsPrintf ("0x%8.8X,\n", 293114902Sscottl Resource->AddressMin); 294114902Sscottl AcpiDmIndent (Level + 1); 295114902Sscottl AcpiOsPrintf ("0x%8.8X,\n", 296114902Sscottl Resource->AddressMax); 297114902Sscottl AcpiDmIndent (Level + 1); 298114902Sscottl AcpiOsPrintf ("0x%8.8X,\n", 299114902Sscottl Resource->TranslationOffset); 300114902Sscottl AcpiDmIndent (Level + 1); 301114902Sscottl AcpiOsPrintf ("0x%8.8X", 302122999Smbr Resource->AddressLength); 303122999Smbr 304122999Smbr /* Optional fields */ 305122999Smbr 306122999Smbr if (Length > 23) 307122999Smbr { 308122999Smbr AcpiOsPrintf (", 0x%2.2X", 309122999Smbr Resource->OptionalFields[0]); 310122999Smbr } 311122999Smbr if (Length > 24) 312122999Smbr { 313122999Smbr AcpiOsPrintf (", %s", 314122999Smbr &Resource->OptionalFields[1]); 315122999Smbr } 316122999Smbr AcpiOsPrintf (")\n"); 317122999Smbr} 318114902Sscottl 319114902Sscottl 320114902Sscottl/******************************************************************************* 321114902Sscottl * 322114902Sscottl * FUNCTION: AcpiDmQwordDescriptor 323114902Sscottl * 324114902Sscottl * PARAMETERS: Resource - Pointer to the resource descriptor 325114902Sscottl * Length - Length of the descriptor in bytes 326114902Sscottl * Level - Current source code indentation level 327114902Sscottl * 328114902Sscottl * RETURN: None 329114902Sscottl * 330114902Sscottl * DESCRIPTION: Decode a QWord Address Space descriptor 331114902Sscottl * 332114902Sscottl ******************************************************************************/ 333114902Sscottl 334114902Sscottlvoid 335114902SscottlAcpiDmQwordDescriptor ( 336114902Sscottl ASL_QWORD_ADDRESS_DESC *Resource, 337114902Sscottl UINT32 Length, 338114902Sscottl UINT32 Level) 339114902Sscottl{ 340114902Sscottl 341114902Sscottl AcpiDmIndent (Level); 342114902Sscottl AcpiOsPrintf ("Q%s (", 343114902Sscottl AcpiGbl_WordDecode [(Resource->ResourceType & 3)]); 344114902Sscottl 345114902Sscottl if ((Resource->ResourceType & 0x3) == 1) 346114902Sscottl { 347114902Sscottl AcpiDmIoFlags (Resource->Flags); 348114902Sscottl AcpiOsPrintf (" %s,", 349114902Sscottl AcpiGbl_RNGDecode [(Resource->SpecificFlags & 0x3)]); 350114902Sscottl } 351114902Sscottl else 352114902Sscottl { 353114902Sscottl AcpiDmMemoryFlags (Resource->Flags, Resource->SpecificFlags); 354114902Sscottl } 355114902Sscottl 356114902Sscottl /* The QWORD values */ 357114902Sscottl 358114902Sscottl AcpiOsPrintf ("\n"); 359114902Sscottl AcpiDmIndent (Level + 1); 360114902Sscottl AcpiOsPrintf ("0x%8.8X%8.8X,\n", 361114902Sscottl ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->Granularity)), 362114902Sscottl ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->Granularity))); 363114902Sscottl 364114902Sscottl AcpiDmIndent (Level + 1); 365114902Sscottl AcpiOsPrintf ("0x%8.8X%8.8X,\n", 366114902Sscottl ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->AddressMin)), 367114902Sscottl ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->AddressMin))); 368114902Sscottl 369114902Sscottl AcpiDmIndent (Level + 1); 370114902Sscottl AcpiOsPrintf ("0x%8.8X%8.8X,\n", 371114902Sscottl ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->AddressMax)), 372114902Sscottl ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->AddressMax))); 373114902Sscottl 374114902Sscottl AcpiDmIndent (Level + 1); 375114902Sscottl AcpiOsPrintf ("0x%8.8X%8.8X,\n", 376114902Sscottl ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->TranslationOffset)), 377114902Sscottl ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->TranslationOffset))); 378114902Sscottl 379114902Sscottl AcpiDmIndent (Level + 1); 380114902Sscottl AcpiOsPrintf ("0x%8.8X%8.8X", 381114902Sscottl ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->AddressLength)), 382114902Sscottl ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->AddressLength))); 383114902Sscottl 384114902Sscottl /* Optional fields */ 385114902Sscottl 386114902Sscottl if (Length > 43) 387114902Sscottl { 388114902Sscottl AcpiOsPrintf (", 0x%2.2X", 389114902Sscottl Resource->OptionalFields[0]); 390114902Sscottl } 391114902Sscottl if (Length > 44) 392114902Sscottl { 393114902Sscottl AcpiOsPrintf (", %s", 394114902Sscottl &Resource->OptionalFields[1]); 395114902Sscottl } 396114902Sscottl 397114902Sscottl AcpiOsPrintf (")\n"); 398114902Sscottl} 399114902Sscottl 400114902Sscottl 401114902Sscottl/******************************************************************************* 402114902Sscottl * 403114902Sscottl * FUNCTION: AcpiDmMemory24Descriptor 404114902Sscottl * 405114902Sscottl * PARAMETERS: Resource - Pointer to the resource descriptor 406114902Sscottl * Length - Length of the descriptor in bytes 407114902Sscottl * Level - Current source code indentation level 408140923Sscottl * 409140923Sscottl * RETURN: None 410114902Sscottl * 411114902Sscottl * DESCRIPTION: Decode a Memory24 descriptor 412114902Sscottl * 413114902Sscottl ******************************************************************************/ 414114902Sscottl 415114902Sscottlvoid 416140923SscottlAcpiDmMemory24Descriptor ( 417114902Sscottl ASL_MEMORY_24_DESC *Resource, 418114902Sscottl UINT32 Length, 419114902Sscottl UINT32 Level) 420114902Sscottl{ 421114902Sscottl 422114902Sscottl AcpiDmIndent (Level); 423119997Sps AcpiOsPrintf ("Memory24 (%s, 0x%4.4X, 0x%4.4X, 0x%4.4X, 0x%4.4X)\n", 424116852Sscottl AcpiGbl_RWDecode [Resource->Information & 1], 425116852Sscottl (UINT32) Resource->AddressMin, 426114902Sscottl (UINT32) Resource->AddressMax, 427114902Sscottl (UINT32) Resource->Alignment, 428114902Sscottl (UINT32) Resource->RangeLength); 429114902Sscottl} 430114902Sscottl 431114902Sscottl 432114902Sscottl/******************************************************************************* 433114902Sscottl * 434114902Sscottl * FUNCTION: AcpiDmMemory32Descriptor 435114902Sscottl * 436130585Sphk * PARAMETERS: Resource - Pointer to the resource descriptor 437114902Sscottl * Length - Length of the descriptor in bytes 438122999Smbr * Level - Current source code indentation level 439114902Sscottl * 440114902Sscottl * RETURN: None 441114902Sscottl * 442114902Sscottl * DESCRIPTION: Decode a Memory32 descriptor 443122999Smbr * 444122999Smbr ******************************************************************************/ 445114902Sscottl 446114902Sscottlvoid 447114902SscottlAcpiDmMemory32Descriptor ( 448140923Sscottl ASL_MEMORY_32_DESC *Resource, 449140923Sscottl UINT32 Length, 450114902Sscottl UINT32 Level) 451114902Sscottl{ 452114902Sscottl 453114902Sscottl AcpiDmIndent (Level); 454114902Sscottl AcpiOsPrintf ("Memory32 (%s, 0x%8.8X, 0x%8.8X, 0x%8.8X, 0x%8.8X)\n", 455141062Sscottl AcpiGbl_RWDecode [Resource->Information & 1], 456114902Sscottl Resource->AddressMin, 457126364Sscottl Resource->AddressMax, 458126364Sscottl Resource->Alignment, 459140923Sscottl Resource->RangeLength); 460126364Sscottl} 461114902Sscottl 462114902Sscottl 463114902Sscottl/******************************************************************************* 464114902Sscottl * 465114902Sscottl * FUNCTION: AcpiDmFixedMem32Descriptor 466114902Sscottl * 467114902Sscottl * PARAMETERS: Resource - Pointer to the resource descriptor 468114902Sscottl * Length - Length of the descriptor in bytes 469114902Sscottl * Level - Current source code indentation level 470114902Sscottl * 471126364Sscottl * RETURN: None 472114902Sscottl * 473114902Sscottl * DESCRIPTION: Decode a Fixed Memory32 descriptor 474122999Smbr * 475114902Sscottl ******************************************************************************/ 476114902Sscottl 477114902Sscottlvoid 478114902SscottlAcpiDmFixedMem32Descriptor ( 479140923Sscottl ASL_FIXED_MEMORY_32_DESC *Resource, 480114902Sscottl UINT32 Length, 481114902Sscottl UINT32 Level) 482114902Sscottl{ 483114902Sscottl 484114902Sscottl AcpiDmIndent (Level); 485114902Sscottl AcpiOsPrintf ("Memory32Fixed (%s, 0x%8.8X, 0x%8.8X)\n", 486141062Sscottl AcpiGbl_RWDecode [Resource->Information & 1], 487114902Sscottl Resource->BaseAddress, 488114902Sscottl Resource->RangeLength); 489114902Sscottl} 490141062Sscottl 491114902Sscottl 492/******************************************************************************* 493 * 494 * FUNCTION: AcpiDmGenericRegisterDescriptor 495 * 496 * PARAMETERS: Resource - Pointer to the resource descriptor 497 * Length - Length of the descriptor in bytes 498 * Level - Current source code indentation level 499 * 500 * RETURN: None 501 * 502 * DESCRIPTION: Decode a Generic Register descriptor 503 * 504 ******************************************************************************/ 505 506void 507AcpiDmGenericRegisterDescriptor ( 508 ASL_GENERAL_REGISTER_DESC *Resource, 509 UINT32 Length, 510 UINT32 Level) 511{ 512 513 AcpiDmIndent (Level); 514 AcpiOsPrintf ("Register ("); 515 516 AcpiDmAddressSpace (Resource->AddressSpaceId); 517 518 AcpiOsPrintf ("0x%2.2X, 0x%2.2X, 0x%8.8X%8.8X)\n", 519 (UINT32) Resource->BitWidth, 520 (UINT32) Resource->BitOffset, 521 ACPI_HIDWORD (ACPI_GET_ADDRESS (Resource->Address)), 522 ACPI_LODWORD (ACPI_GET_ADDRESS (Resource->Address))); 523} 524 525 526/******************************************************************************* 527 * 528 * FUNCTION: AcpiDmInterruptDescriptor 529 * 530 * PARAMETERS: Resource - Pointer to the resource descriptor 531 * Length - Length of the descriptor in bytes 532 * Level - Current source code indentation level 533 * 534 * RETURN: None 535 * 536 * DESCRIPTION: Decode a extended Interrupt descriptor 537 * 538 ******************************************************************************/ 539 540void 541AcpiDmInterruptDescriptor ( 542 ASL_EXTENDED_XRUPT_DESC *Resource, 543 UINT32 Length, 544 UINT32 Level) 545{ 546 UINT32 i; 547 UINT8 *Rover; 548 549 550 AcpiDmIndent (Level); 551 AcpiOsPrintf ("Interrupt (%s, %s, %s, %s", 552 AcpiGbl_ConsumeDecode [(Resource->Flags & 1)], 553 AcpiGbl_HEDecode [(Resource->Flags >> 1) & 1], 554 AcpiGbl_LLDecode [(Resource->Flags >> 2) & 1], 555 AcpiGbl_SHRDecode [(Resource->Flags >> 3) & 1]); 556 557 /* Resource Index/Source, optional -- at end of descriptor */ 558 559 if (Resource->Length > (UINT16) (4 * Resource->TableLength) + 2) 560 { 561 /* Get a pointer past the interrupt values */ 562 563 Rover = ((UINT8 *) Resource) + ((4 * Resource->TableLength) + 5); 564 565 /* Resource Index */ 566 /* Resource Source */ 567 568 AcpiOsPrintf (", 0x%X, \"%s\"", (UINT32) Rover[0], (char *) &Rover[1]); 569 } 570 571 AcpiOsPrintf (")\n"); 572 AcpiDmIndent (Level); 573 AcpiOsPrintf ("{\n"); 574 for (i = 0; i < Resource->TableLength; i++) 575 { 576 AcpiDmIndent (Level + 1); 577 AcpiOsPrintf ("0x%8.8X,\n", (UINT32) Resource->InterruptNumber[i]); 578 } 579 580 AcpiDmIndent (Level); 581 AcpiOsPrintf ("}\n"); 582} 583 584 585/******************************************************************************* 586 * 587 * FUNCTION: AcpiDmVendorLargeDescriptor 588 * 589 * PARAMETERS: Resource - Pointer to the resource descriptor 590 * Length - Length of the descriptor in bytes 591 * Level - Current source code indentation level 592 * 593 * RETURN: None 594 * 595 * DESCRIPTION: Decode a Vendor Large descriptor 596 * 597 ******************************************************************************/ 598 599void 600AcpiDmVendorLargeDescriptor ( 601 ASL_LARGE_VENDOR_DESC *Resource, 602 UINT32 Length, 603 UINT32 Level) 604{ 605 606 AcpiDmIndent (Level); 607 AcpiOsPrintf ("VendorLong ()\n"); 608 AcpiDmIndent (Level); 609 610 AcpiOsPrintf ("{\n"); 611 612 AcpiDmDisasmByteList (Level + 1, (UINT8 *) Resource->VendorDefined, Length); 613 AcpiDmIndent (Level); 614 AcpiOsPrintf ("}\n"); 615} 616 617 618#endif 619 620