1/******************************************************************************* 2 * 3 * Module Name: dmbuffer - AML disassembler, buffer and string support 4 * 5 ******************************************************************************/ 6 7/* 8 * Copyright (C) 2000 - 2012, Intel Corp. --- 50 unchanged lines hidden (view full) --- 59static void 60AcpiDmUnicode ( 61 ACPI_PARSE_OBJECT *Op); 62 63static void 64AcpiDmIsEisaIdElement ( 65 ACPI_PARSE_OBJECT *Op); 66 |
67static void 68AcpiDmPldBuffer ( 69 UINT32 Level, 70 UINT8 *ByteData, 71 UINT32 ByteCount); |
72 |
73 |
74/******************************************************************************* 75 * 76 * FUNCTION: AcpiDmDisasmByteList 77 * 78 * PARAMETERS: Level - Current source code indentation level 79 * ByteData - Pointer to the byte list 80 * ByteCount - Length of the byte list 81 * --- 99 unchanged lines hidden (view full) --- 181 AcpiOsPrintf ("\n"); 182 break; 183 184 case ACPI_DASM_UNICODE: 185 186 AcpiDmUnicode (Op); 187 break; 188 |
189 case ACPI_DASM_PLD_METHOD: 190 191 AcpiDmDisasmByteList (Info->Level, ByteData, ByteCount); 192 AcpiDmPldBuffer (Info->Level, ByteData, ByteCount); 193 break; 194 |
195 case ACPI_DASM_BUFFER: 196 default: 197 198 /* 199 * Not a resource, string, or unicode string. 200 * Just dump the buffer 201 */ 202 AcpiDmDisasmByteList (Info->Level, ByteData, ByteCount); --- 136 unchanged lines hidden (view full) --- 339 } 340 341 return (TRUE); 342} 343 344 345/******************************************************************************* 346 * |
347 * FUNCTION: AcpiDmIsPldBuffer 348 * 349 * PARAMETERS: Op - Buffer Object to be examined 350 * 351 * RETURN: TRUE if buffer contains a ASCII string, FALSE otherwise 352 * 353 * DESCRIPTION: Determine if a buffer Op contains a _PLD structure 354 * 355 ******************************************************************************/ 356 357BOOLEAN 358AcpiDmIsPldBuffer ( 359 ACPI_PARSE_OBJECT *Op) 360{ 361 ACPI_NAMESPACE_NODE *Node; 362 ACPI_PARSE_OBJECT *ParentOp; 363 364 365 ParentOp = Op->Common.Parent; 366 if (!ParentOp) 367 { 368 return (FALSE); 369 } 370 371 /* Check for form: Name(_PLD, Buffer() {}). Not legal, however */ 372 373 if (ParentOp->Common.AmlOpcode == AML_NAME_OP) 374 { 375 Node = ParentOp->Common.Node; 376 377 if (ACPI_COMPARE_NAME (Node->Name.Ascii, METHOD_NAME__PLD)) 378 { 379 return (TRUE); 380 } 381 382 return (FALSE); 383 } 384 385 /* Check for proper form: Name(_PLD, Package() {Buffer() {}}) */ 386 387 if (ParentOp->Common.AmlOpcode == AML_PACKAGE_OP) 388 { 389 ParentOp = ParentOp->Common.Parent; 390 if (!ParentOp) 391 { 392 return (FALSE); 393 } 394 395 if (ParentOp->Common.AmlOpcode == AML_NAME_OP) 396 { 397 Node = ParentOp->Common.Node; 398 399 if (ACPI_COMPARE_NAME (Node->Name.Ascii, METHOD_NAME__PLD)) 400 { 401 return (TRUE); 402 } 403 } 404 } 405 406 return (FALSE); 407} 408 409 410/******************************************************************************* 411 * 412 * FUNCTION: AcpiDmPldBuffer 413 * 414 * PARAMETERS: Level - Current source code indentation level 415 * ByteData - Pointer to the byte list 416 * ByteCount - Length of the byte list 417 * 418 * RETURN: None 419 * 420 * DESCRIPTION: Dump and format the contents of a _PLD buffer object 421 * 422 ******************************************************************************/ 423 424#define ACPI_PLD_OUTPUT "%*.s/* %18s : %-6.2X */\n", ACPI_MUL_4 (Level), " " 425#define ACPI_PLD_OUTPUT16 "%*.s/* %18s : %-6.4X */\n", ACPI_MUL_4 (Level), " " 426#define ACPI_PLD_OUTPUT24 "%*.s/* %18s : %-6.6X */\n", ACPI_MUL_4 (Level), " " 427 428static void 429AcpiDmPldBuffer ( 430 UINT32 Level, 431 UINT8 *ByteData, 432 UINT32 ByteCount) 433{ 434 ACPI_PLD_INFO *PldInfo; 435 ACPI_STATUS Status; 436 437 438 /* Check for valid byte count */ 439 440 if (ByteCount < ACPI_PLD_REV1_BUFFER_SIZE) 441 { 442 return; 443 } 444 445 /* Convert _PLD buffer to local _PLD struct */ 446 447 Status = AcpiDecodePldBuffer (ByteData, ByteCount, &PldInfo); 448 if (ACPI_FAILURE (Status)) 449 { 450 return; 451 } 452 453 /* First 32-bit dword */ 454 455 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Revision", PldInfo->Revision); 456 AcpiOsPrintf (ACPI_PLD_OUTPUT, "IgnoreColor", PldInfo->IgnoreColor); 457 AcpiOsPrintf (ACPI_PLD_OUTPUT24,"Color", PldInfo->Color); 458 459 /* Second 32-bit dword */ 460 461 AcpiOsPrintf (ACPI_PLD_OUTPUT16,"Width", PldInfo->Width); 462 AcpiOsPrintf (ACPI_PLD_OUTPUT16,"Height", PldInfo->Height); 463 464 /* Third 32-bit dword */ 465 466 AcpiOsPrintf (ACPI_PLD_OUTPUT, "UserVisible", PldInfo->UserVisible); 467 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Dock", PldInfo->Dock); 468 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Lid", PldInfo->Lid); 469 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Panel", PldInfo->Panel); 470 AcpiOsPrintf (ACPI_PLD_OUTPUT, "VerticalPosition", PldInfo->VerticalPosition); 471 AcpiOsPrintf (ACPI_PLD_OUTPUT, "HorizontalPosition", PldInfo->HorizontalPosition); 472 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Shape", PldInfo->Shape); 473 AcpiOsPrintf (ACPI_PLD_OUTPUT, "GroupOrientation", PldInfo->GroupOrientation); 474 AcpiOsPrintf (ACPI_PLD_OUTPUT, "GroupToken", PldInfo->GroupToken); 475 AcpiOsPrintf (ACPI_PLD_OUTPUT, "GroupPosition", PldInfo->GroupPosition); 476 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Bay", PldInfo->Bay); 477 478 /* Fourth 32-bit dword */ 479 480 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Ejectable", PldInfo->Ejectable); 481 AcpiOsPrintf (ACPI_PLD_OUTPUT, "OspmEjectRequired", PldInfo->OspmEjectRequired); 482 AcpiOsPrintf (ACPI_PLD_OUTPUT, "CabinetNumber", PldInfo->CabinetNumber); 483 AcpiOsPrintf (ACPI_PLD_OUTPUT, "CardCageNumber", PldInfo->CardCageNumber); 484 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Reference", PldInfo->Reference); 485 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Rotation", PldInfo->Rotation); 486 AcpiOsPrintf (ACPI_PLD_OUTPUT, "Order", PldInfo->Order); 487 488 /* Fifth 32-bit dword */ 489 490 if (ByteCount >= ACPI_PLD_REV1_BUFFER_SIZE) 491 { 492 AcpiOsPrintf (ACPI_PLD_OUTPUT16,"VerticalOffset", PldInfo->VerticalOffset); 493 AcpiOsPrintf (ACPI_PLD_OUTPUT16,"HorizontalOffset", PldInfo->HorizontalOffset); 494 } 495 496 ACPI_FREE (PldInfo); 497} 498 499 500/******************************************************************************* 501 * |
502 * FUNCTION: AcpiDmUnicode 503 * 504 * PARAMETERS: Op - Byte List op containing Unicode string 505 * 506 * RETURN: None 507 * 508 * DESCRIPTION: Dump Unicode string as a standard ASCII string. (Remove 509 * the extra zero bytes). --- 200 unchanged lines hidden --- |