AcpiBin: Miscellaneous cleanup.

Cleanup some code
Add additional error checks
Add additional output info message
This commit is contained in:
Robert Moore 2013-04-19 13:33:58 -07:00
parent 3cc4aaba03
commit a3f45e58b8
2 changed files with 59 additions and 14 deletions

View File

@ -141,6 +141,10 @@ AbGetFile (
char *Filename, char *Filename,
UINT32 *FileSize); UINT32 *FileSize);
static UINT32
AbGetFileSize (
FILE *File);
static void static void
AbPrintHeaderInfo ( AbPrintHeaderInfo (
ACPI_TABLE_HEADER *Header); ACPI_TABLE_HEADER *Header);
@ -598,6 +602,42 @@ AbCompareAmlFiles (
} }
/******************************************************************************
*
* FUNCTION: AbGetFileSize
*
* DESCRIPTION: Get the size of an open file
*
******************************************************************************/
static UINT32
AbGetFileSize (
FILE *File)
{
UINT32 FileSize;
long Offset;
Offset = ftell (File);
if (fseek (File, 0, SEEK_END))
{
return (0);
}
FileSize = (UINT32) ftell (File);
/* Restore file pointer */
if (fseek (File, Offset, SEEK_SET))
{
return (0);
}
return (FileSize);
}
/****************************************************************************** /******************************************************************************
* *
* FUNCTION: AbGetFile * FUNCTION: AbGetFile
@ -614,8 +654,6 @@ AbGetFile (
FILE *File; FILE *File;
UINT32 Size; UINT32 Size;
char *Buffer = NULL; char *Buffer = NULL;
int Seek1;
int Seek2;
size_t Actual; size_t Actual;
@ -630,11 +668,8 @@ AbGetFile (
/* Need file size to allocate a buffer */ /* Need file size to allocate a buffer */
Seek1 = fseek (File, 0L, SEEK_END); Size = AbGetFileSize (File);
Size = ftell (File); if (!Size)
Seek2 = fseek (File, 0L, SEEK_SET);
if (Seek1 || Seek2 || (Size == -1))
{ {
printf ("Could not get file size (seek) for %s\n", Filename); printf ("Could not get file size (seek) for %s\n", Filename);
goto ErrorExit; goto ErrorExit;
@ -682,14 +717,20 @@ AbDumpAmlFile (
char *File2Path) char *File2Path)
{ {
char *FileBuffer; char *FileBuffer;
UINT32 FileSize = 0;
FILE *FileOutHandle; FILE *FileOutHandle;
UINT32 FileSize = 0;
/* Get the entire AML file, validate header */ /* Get the entire AML file, validate header */
FileBuffer = AbGetFile (File1Path, &FileSize); FileBuffer = AbGetFile (File1Path, &FileSize);
printf ("File %s contains 0x%X bytes\n\n", File1Path, FileSize); if (!FileBuffer)
{
return (-1);
}
printf ("Input file: %s contains %u (0x%X) bytes\n",
File1Path, FileSize, FileSize);
FileOutHandle = fopen (File2Path, "wb"); FileOutHandle = fopen (File2Path, "wb");
if (!FileOutHandle) if (!FileOutHandle)
@ -711,9 +752,13 @@ AbDumpAmlFile (
AcpiOsPrintf ("%4.4s @ 0x%8.8X\n", AcpiOsPrintf ("%4.4s @ 0x%8.8X\n",
((ACPI_TABLE_HEADER *) FileBuffer)->Signature, 0); ((ACPI_TABLE_HEADER *) FileBuffer)->Signature, 0);
AcpiDbgLevel = ACPI_UINT32_MAX; AcpiUtDumpBuffer ((UINT8 *) FileBuffer, FileSize, DB_BYTE_DISPLAY, 0);
AcpiUtDebugDumpBuffer ((UINT8 *) FileBuffer, FileSize,
DB_BYTE_DISPLAY, ACPI_UINT32_MAX); /* Summary for the output file */
FileSize = AbGetFileSize (FileOutHandle);
printf ("Output file: %s contains %u (0x%X) bytes\n\n",
File2Path, FileSize, FileSize);
return (0); return (0);
} }

View File

@ -172,7 +172,7 @@ main (
AcpiGbl_DebugFile = NULL; AcpiGbl_DebugFile = NULL;
AcpiGbl_DbOutputFlags = DB_CONSOLE_OUTPUT ; AcpiGbl_DbOutputFlags = DB_CONSOLE_OUTPUT;
AcpiOsInitialize (); AcpiOsInitialize ();
printf (ACPI_COMMON_SIGNON ("ACPI Binary AML File Utility")); printf (ACPI_COMMON_SIGNON ("ACPI Binary AML File Utility"));
@ -253,5 +253,5 @@ main (
return (-1); return (-1);
} }
return Status; return (Status);
} }