1/******************************************************************************* 2 * 3 * Module Name: dmresrc.c - Resource Descriptor disassembly |
4 * $Revision: 13 $ |
5 * 6 ******************************************************************************/ 7 8/****************************************************************************** 9 * 10 * 1. Copyright Notice 11 * |
12 * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp. |
13 * All rights reserved. 14 * 15 * 2. License 16 * 17 * 2.1. This is your license from Intel Corp. under its intellectual property 18 * rights. You may have additional license terms from the party that provided 19 * you this software, covering your right to use that party's intellectual 20 * property rights. --- 407 unchanged lines hidden (view full) --- 428 return (FALSE); 429 } 430 431 /* Extract the data pointer and data length */ 432 433 ByteCount = (UINT32) NextOp->Common.Value.Integer; 434 ByteData = NextOp->Named.Data; 435 |
436 /* Absolute minimum descriptor is an END_TAG (2 bytes) */ |
437 |
438 if (ByteCount < 2) |
439 { |
440 return (FALSE); 441 } 442 443 /* The list must have a valid 2-byte END_TAG */ 444 445 if (ByteData[ByteCount-2] != (ACPI_RDESC_TYPE_END_TAG | 1)) 446 { |
447 return FALSE; 448 } 449 450 /* 451 * Walk the byte list. Abort on any invalid descriptor ID or 452 * or length 453 */ |
454 for (CurrentByteOffset = 0; CurrentByteOffset < ByteCount;) |
455 { 456 CurrentByte = ByteData[CurrentByteOffset]; 457 458 /* Large or small resource? */ 459 460 if (CurrentByte & ACPI_RDESC_TYPE_LARGE) 461 { 462 DescriptorId = CurrentByte; --- 18 unchanged lines hidden (view full) --- 481 */ 482 case ACPI_RDESC_TYPE_IRQ_FORMAT: 483 case ACPI_RDESC_TYPE_DMA_FORMAT: 484 case ACPI_RDESC_TYPE_START_DEPENDENT: 485 case ACPI_RDESC_TYPE_END_DEPENDENT: 486 case ACPI_RDESC_TYPE_IO_PORT: 487 case ACPI_RDESC_TYPE_FIXED_IO_PORT: 488 case ACPI_RDESC_TYPE_SMALL_VENDOR: |
489 |
490 /* 491 * "Large" type descriptors 492 */ 493 case ACPI_RDESC_TYPE_MEMORY_24: 494 case ACPI_RDESC_TYPE_GENERAL_REGISTER: 495 case ACPI_RDESC_TYPE_LARGE_VENDOR: 496 case ACPI_RDESC_TYPE_MEMORY_32: 497 case ACPI_RDESC_TYPE_FIXED_MEMORY_32: --- 39 unchanged lines hidden --- |