void AcpiDmEmitExternals ( void) { ACPI_EXTERNAL_LIST *NextExternal; if (!AcpiGbl_ExternalList) { return; } /* * Walk the list of externals (unresolved references) * found during the AML parsing */ while (AcpiGbl_ExternalList) { AcpiOsPrintf (" External (%s%s", AcpiGbl_ExternalList->Path, AcpiDmGetObjectTypeName (AcpiGbl_ExternalList->Type)); if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD) { AcpiOsPrintf (") // %u Arguments\n", AcpiGbl_ExternalList->Value); } else { AcpiOsPrintf (")\n"); } /* Free this external info block and move on to next external */ NextExternal = AcpiGbl_ExternalList->Next; if (AcpiGbl_ExternalList->Flags & ACPI_IPATH_ALLOCATED) { ACPI_FREE (AcpiGbl_ExternalList->InternalPath); } ACPI_FREE (AcpiGbl_ExternalList->Path); ACPI_FREE (AcpiGbl_ExternalList); AcpiGbl_ExternalList = NextExternal; } AcpiOsPrintf ("\n"); }
void AcpiDmEmitExternals ( void) { ACPI_EXTERNAL_LIST *NextExternal; if (!AcpiGbl_ExternalList) { return; } /* * Determine the number of control methods in the external list, and * also how many of those externals were resolved via the namespace. */ NextExternal = AcpiGbl_ExternalList; while (NextExternal) { if (NextExternal->Type == ACPI_TYPE_METHOD) { AcpiGbl_NumExternalMethods++; if (NextExternal->Resolved) { AcpiGbl_ResolvedExternalMethods++; } } NextExternal = NextExternal->Next; } /* Check if any control methods were unresolved */ AcpiDmUnresolvedWarning (1); /* Emit any unresolved method externals in a single text block */ NextExternal = AcpiGbl_ExternalList; while (NextExternal) { if ((NextExternal->Type == ACPI_TYPE_METHOD) && (!NextExternal->Resolved)) { AcpiOsPrintf (" External (%s%s", NextExternal->Path, AcpiDmGetObjectTypeName (NextExternal->Type)); AcpiOsPrintf ( ") // Warning: Unresolved Method, " "guessing %u arguments (may be incorrect, see warning above)\n", NextExternal->Value); NextExternal->Emitted = TRUE; } NextExternal = NextExternal->Next; } AcpiOsPrintf ("\n"); /* Emit externals that were imported from a file */ if (Gbl_ExternalRefFilename) { AcpiOsPrintf ( " /*\n * External declarations that were imported from\n" " * the reference file [%s]\n */\n", Gbl_ExternalRefFilename); NextExternal = AcpiGbl_ExternalList; while (NextExternal) { if (!NextExternal->Emitted && (NextExternal->Flags & ACPI_FROM_REFERENCE_FILE)) { AcpiOsPrintf (" External (%s%s", NextExternal->Path, AcpiDmGetObjectTypeName (NextExternal->Type)); if (NextExternal->Type == ACPI_TYPE_METHOD) { AcpiOsPrintf (") // %u Arguments\n", NextExternal->Value); } else { AcpiOsPrintf (")\n"); } NextExternal->Emitted = TRUE; } NextExternal = NextExternal->Next; } AcpiOsPrintf ("\n"); } /* * Walk the list of externals found during the AML parsing */ while (AcpiGbl_ExternalList) { if (!AcpiGbl_ExternalList->Emitted) { AcpiOsPrintf (" External (%s%s", AcpiGbl_ExternalList->Path, AcpiDmGetObjectTypeName (AcpiGbl_ExternalList->Type)); /* For methods, add a comment with the number of arguments */ if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD) { AcpiOsPrintf (") // %u Arguments\n", AcpiGbl_ExternalList->Value); } else { AcpiOsPrintf (")\n"); } } /* Free this external info block and move on to next external */ NextExternal = AcpiGbl_ExternalList->Next; if (AcpiGbl_ExternalList->Flags & ACPI_IPATH_ALLOCATED) { ACPI_FREE (AcpiGbl_ExternalList->InternalPath); } ACPI_FREE (AcpiGbl_ExternalList->Path); ACPI_FREE (AcpiGbl_ExternalList); AcpiGbl_ExternalList = NextExternal; } AcpiOsPrintf ("\n"); }
void AcpiDmEmitExternals ( void) { ACPI_EXTERNAL_LIST *NextExternal; if (!AcpiGbl_ExternalList) { return; } /* * Determine the number of control methods in the external list, and * also how many of those externals were resolved via the namespace. */ NextExternal = AcpiGbl_ExternalList; while (NextExternal) { if (NextExternal->Type == ACPI_TYPE_METHOD) { AcpiGbl_NumExternalMethods++; if (NextExternal->Resolved) { AcpiGbl_ResolvedExternalMethods++; } } NextExternal = NextExternal->Next; } /* Check if any control methods were unresolved */ AcpiDmUnresolvedWarning (1); /* * Walk the list of externals (unresolved references) * found during the AML parsing */ while (AcpiGbl_ExternalList) { AcpiOsPrintf (" External (%s%s", AcpiGbl_ExternalList->Path, AcpiDmGetObjectTypeName (AcpiGbl_ExternalList->Type)); if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD) { if (AcpiGbl_ExternalList->Resolved) { AcpiOsPrintf (") // %u Arguments\n", AcpiGbl_ExternalList->Value); } else { AcpiOsPrintf (") // Warning: unresolved Method, " "assuming %u arguments (may be incorrect, see warning above)\n", AcpiGbl_ExternalList->Value); } } else { AcpiOsPrintf (")\n"); } /* Free this external info block and move on to next external */ NextExternal = AcpiGbl_ExternalList->Next; if (AcpiGbl_ExternalList->Flags & ACPI_IPATH_ALLOCATED) { ACPI_FREE (AcpiGbl_ExternalList->InternalPath); } ACPI_FREE (AcpiGbl_ExternalList->Path); ACPI_FREE (AcpiGbl_ExternalList); AcpiGbl_ExternalList = NextExternal; } AcpiOsPrintf ("\n"); }
void AcpiDmEmitExternals ( void) { ACPI_EXTERNAL_LIST *NextExternal; if (!AcpiGbl_ExternalList) { return; } /* * Determine the number of control methods in the external list, and * also how many of those externals were resolved via the namespace. */ NextExternal = AcpiGbl_ExternalList; while (NextExternal) { if (NextExternal->Type == ACPI_TYPE_METHOD) { AcpiGbl_NumExternalMethods++; if (NextExternal->Flags & ACPI_EXT_RESOLVED_REFERENCE) { AcpiGbl_ResolvedExternalMethods++; } } NextExternal = NextExternal->Next; } /* Check if any control methods were unresolved */ AcpiDmUnresolvedWarning (1); if (Gbl_ExternalRefFilename) { AcpiOsPrintf ( " /*\n * External declarations were imported from\n" " * a reference file -- %s\n */\n\n", Gbl_ExternalRefFilename); } /* * Walk and emit the list of externals found during the AML parsing */ while (AcpiGbl_ExternalList) { if (!(AcpiGbl_ExternalList->Flags & ACPI_EXT_EXTERNAL_EMITTED)) { //REVIEW_REHABMAN: not really used anymore, but original intent of flag AcpiGbl_ExternalList->Flags |= ACPI_EXT_EXTERNAL_EMITTED; AcpiOsPrintf (" External (%s%s)", AcpiGbl_ExternalList->Path, AcpiDmGetObjectTypeName (AcpiGbl_ExternalList->Type)); /* Check for "unresolved" references */ if (!(AcpiGbl_ExternalList->Flags & ACPI_EXT_RESOLVED_REFERENCE)) { if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD) { AcpiOsPrintf (" // Warning: Unknown method, " "guessing %u arguments", AcpiGbl_ExternalList->Value); } else { AcpiOsPrintf (" // Warning: Unknown object"); } } /* Check for external from a external references file */ else if (AcpiGbl_ExternalList->Flags & ACPI_EXT_ORIGIN_FROM_FILE) { if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD) { AcpiOsPrintf (" // Imported: %u Arguments", AcpiGbl_ExternalList->Value); } else { AcpiOsPrintf (" // Imported"); } } /* This is the normal external case */ else { /* For methods, add a comment with the number of arguments */ if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD) { AcpiOsPrintf (" // %u Arguments", AcpiGbl_ExternalList->Value); if (AcpiGbl_ExternalList->Flags & ACPI_EXT_ORIGIN_FROM_OPCODE) AcpiOsPrintf(" (from opcode)"); } else { if (AcpiGbl_ExternalList->Flags & ACPI_EXT_ORIGIN_FROM_OPCODE) AcpiOsPrintf(" // (from opcode)"); } } AcpiOsPrintf ("\n"); } /* Free this external info block and move on to next external */ NextExternal = AcpiGbl_ExternalList->Next; if (AcpiGbl_ExternalList->Flags & ACPI_EXT_INTERNAL_PATH_ALLOCATED) { ACPI_FREE (AcpiGbl_ExternalList->InternalPath); } ACPI_FREE (AcpiGbl_ExternalList->Path); ACPI_FREE (AcpiGbl_ExternalList); AcpiGbl_ExternalList = NextExternal; } AcpiOsPrintf ("\n"); }