Correct to get the input value by AsciiStringToUint64 API. The input parameter must...
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 26 May 2009 09:00:25 +0000 (09:00 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 26 May 2009 09:00:25 +0000 (09:00 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1603 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/GenPage/GenPage.c

index 2c4ee5d..99fbc1e 100644 (file)
@@ -39,8 +39,8 @@ Abstract:
 #define EFI_PAGE_BASE_OFFSET_IN_LDR 0x70000\r
 #define EFI_PAGE_BASE_ADDRESS       (EFI_PAGE_BASE_OFFSET_IN_LDR + 0x20000)\r
 \r
-unsigned int gPageTableBaseAddress  = EFI_PAGE_BASE_ADDRESS;\r
-unsigned int gPageTableOffsetInFile = EFI_PAGE_BASE_OFFSET_IN_LDR;\r
+UINT32 gPageTableBaseAddress  = EFI_PAGE_BASE_ADDRESS;\r
+UINT32 gPageTableOffsetInFile = EFI_PAGE_BASE_OFFSET_IN_LDR;\r
 \r
 #define EFI_MAX_ENTRY_NUM     512\r
 \r
@@ -234,15 +234,13 @@ return:
   //\r
   PageFile = fopen (PageFileName, "w+b");\r
   if (PageFile == NULL) {\r
-    //fprintf (stderr, "GenBinPage: Could not open file %s\n", PageFileName);\r
-    Error (PageFileName, 0, 1, "File open failure", NULL);\r
+    Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Output File %s open failure", PageFileName);\r
     return -1;\r
   }\r
 \r
   NoPageFile = fopen (NoPageFileName, "r+b");\r
   if (NoPageFile == NULL) {\r
-    //fprintf (stderr, "GenBinPage: Could not open file %s\n", NoPageFileName);\r
-    Error (NoPageFileName, 0, 1, "File open failure", NULL);\r
+    Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Input File %s open failure", NoPageFileName);\r
     fclose (PageFile);\r
     return -1;\r
   }\r
@@ -254,8 +252,7 @@ return:
   FileSize = ftell (NoPageFile);\r
   fseek (NoPageFile, 0, SEEK_SET);\r
   if (FileSize > gPageTableOffsetInFile) {\r
-    //fprintf (stderr, "GenBinPage: file size too large - 0x%x\n", FileSize);\r
-    Error (NoPageFileName, 0, 0x4002, "file size too large", NULL);\r
+    Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Input file size (0x%x) exceeds the Page Table Offset (0x%x)", FileSize, gPageTableOffsetInFile);\r
     fclose (PageFile);\r
     fclose (NoPageFile);\r
     return -1;\r
@@ -294,7 +291,7 @@ main (
   CHAR8       *OutputFile = NULL;\r
   CHAR8       *InputFile = NULL;\r
   EFI_STATUS  Status;\r
-  UINT64      LogLevel;\r
+  UINT64      TempValue;\r
 \r
   SetUtilityName("GenPage");\r
 \r
@@ -315,7 +312,7 @@ main (
     Version();\r
     return 0;    \r
   }\r
-\r
+  \r
   while (argc > 0) {\r
     if ((stricmp (argv[0], "-o") == 0) || (stricmp (argv[0], "--output") == 0)) {\r
       if (argv[1] == NULL || argv[1][0] == '-') {\r
@@ -333,11 +330,12 @@ main (
         Error (NULL, 0, 1003, "Invalid option value", "Base address is missing for -b option");\r
         return STATUS_ERROR;\r
       }\r
-      Status = AsciiStringToUint64 (argv[1], FALSE, &gPageTableBaseAddress);\r
+      Status = AsciiStringToUint64 (argv[1], FALSE, &TempValue);\r
       if (EFI_ERROR (Status)) {\r
         Error (NULL, 0, 1003, "Invalid option value", "Base address is not valid intergrator");\r
         return STATUS_ERROR;\r
       }\r
+      gPageTableBaseAddress = (UINT32) TempValue;\r
       argc -= 2;\r
       argv += 2;\r
       continue; \r
@@ -348,11 +346,12 @@ main (
         Error (NULL, 0, 1003, "Invalid option value", "Offset is missing for -f option");\r
         return STATUS_ERROR;\r
       }\r
-      Status = AsciiStringToUint64 (argv[1], FALSE, &gPageTableOffsetInFile);\r
+      Status = AsciiStringToUint64 (argv[1], FALSE, &TempValue);\r
       if (EFI_ERROR (Status)) {\r
         Error (NULL, 0, 1003, "Invalid option value", "Offset is not valid intergrator");\r
         return STATUS_ERROR;\r
       }\r
+      gPageTableOffsetInFile = (UINT32) TempValue;\r
       argc -= 2;\r
       argv += 2;\r
       continue; \r
@@ -375,13 +374,13 @@ main (
         Error (NULL, 0, 1003, "Invalid option value", "Debug Level is not specified.");\r
         return STATUS_ERROR;\r
       }\r
-      Status = AsciiStringToUint64 (argv[1], FALSE, &LogLevel);\r
+      Status = AsciiStringToUint64 (argv[1], FALSE, &TempValue);\r
       if (EFI_ERROR (Status)) {\r
         Error (NULL, 0, 1003, "Invalid option value", "Debug Level is not valid intergrator.");\r
         return STATUS_ERROR;\r
       }\r
-      if (LogLevel > 9) {\r
-        Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", LogLevel);\r
+      if (TempValue > 9) {\r
+        Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", TempValue);\r
         return STATUS_ERROR;\r
       }\r
       argc -= 2;\r