iASL: support compilation of ASL and data table files in a single command

Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
This commit is contained in:
Erik Schmauss 2019-08-12 12:43:45 -07:00
parent a2c2826ff4
commit aff72e5c2c
4 changed files with 7 additions and 4 deletions

View File

@ -289,9 +289,10 @@ main (
/*
* At this point, compilation of a data table or disassembly is complete.
* However, if there is a parse tree, perform compiler analysis and
* generate AML.
*/
if (AslGbl_PreprocessOnly || AcpiGbl_DisasmFlag ||
AslGbl_FileType == ASL_INPUT_TYPE_ASCII_DATA)
if (AslGbl_PreprocessOnly || AcpiGbl_DisasmFlag || !AslGbl_ParseTreeRoot)
{
goto CleanupAndExit;
}

View File

@ -467,6 +467,7 @@ AslDoOneFile (
/* Determine input file type */
AslGbl_FileType = AslDetectSourceFileType (&AslGbl_Files[ASL_FILE_INPUT]);
FileNode->FileType = AslGbl_FileType;
if (AslGbl_FileType == ASL_INPUT_TYPE_BINARY)
{
return (AE_ERROR);

View File

@ -510,6 +510,7 @@ typedef struct asl_files_node
UINT32 TotalNamedObjects;
UINT32 TotalExecutableOpcodes;
BOOLEAN ParserErrorDetected;
UINT8 FileType;
} ASL_GLOBAL_FILE_NODE;

View File

@ -572,7 +572,7 @@ UtDisplayOneSummary (
"%-14s %s - Compilation aborted due to parser-detected syntax error(s)\n",
"Input file:", AslGbl_Files[ASL_FILE_INPUT].Filename);
}
else if (AslGbl_FileType == ASL_INPUT_TYPE_ASCII_DATA)
else if (FileNode->FileType == ASL_INPUT_TYPE_ASCII_DATA)
{
FlPrintFile (FileId,
"%-14s %s - %u lines, %u bytes, %u fields\n",
@ -585,7 +585,7 @@ UtDisplayOneSummary (
"Binary Output:",
AslGbl_Files[ASL_FILE_AML_OUTPUT].Filename, FileNode->OutputByteLength);
}
else if (AslGbl_FileType == ASL_INPUT_TYPE_ASCII_ASL)
else if (FileNode->FileType == ASL_INPUT_TYPE_ASCII_ASL)
{
FlPrintFile (FileId,
"%-14s %s - %7u bytes %6u keywords %6u source lines\n",