Update tools not to support stdout as default output.
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 25 Jul 2007 06:10:36 +0000 (06:10 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 25 Jul 2007 06:10:36 +0000 (06:10 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@391 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/GenFfs/GenFfs.c
Source/C/GenFv/GenFv.c
Source/C/GenFw/GenFw.c
Source/C/GenSec/GenSec.c
Source/C/GenVtf/GenVtf.c

index 6facc59..10b7ad0 100644 (file)
@@ -553,6 +553,12 @@ Returns:
     goto Finish;\r
   }\r
 \r
+  if (OutputFileName == NULL) {\r
+    Error (NULL, 0, 0, NULL, "No output file name is specified.");\r
+    goto Finish;\r
+    // OutFile = stdout;\r
+  }\r
+\r
   //\r
   // Calculate the size of all input section files.\r
   //  \r
@@ -645,11 +651,7 @@ Returns:
   //\r
   // Open output file to write ffs data.\r
   //\r
-  if (OutputFileName == NULL) {\r
-    FfsFile = stdout;\r
-  } else {\r
-    FfsFile = fopen (OutputFileName, "wb");\r
-  }\r
+  FfsFile = fopen (OutputFileName, "wb");\r
   if (FfsFile == NULL) {\r
     Error (NULL, 0, 0, NULL, "Can't open %s file to write!", OutputFileName);\r
     goto Finish;\r
index be130a3..a19ba87 100644 (file)
@@ -205,9 +205,6 @@ Returns:
 \r
     if ((stricmp (argv[0], "-o") == 0) || (stricmp (argv[0], "--outputfile") == 0)) {\r
       OutFileName = argv[1];\r
-      if (OutFileName == NULL) {\r
-        Warning (NULL, 0, 0, NULL, "No output file specified.");\r
-      }\r
       argc -= 2;\r
       argv += 2;\r
       continue; \r
@@ -236,6 +233,11 @@ Returns:
     Error (NULL, 0, 0, NULL, "%s is invaild paramter!", argv[0]);\r
     return STATUS_ERROR;\r
   }\r
+  \r
+  if (OutFileName == NULL) {\r
+    Error (NULL, 0, 0, NULL, "No output file name is specified.");\r
+    goto Finish;\r
+  }\r
 \r
   //\r
   // Read the INF file image\r
@@ -333,16 +335,12 @@ Returns:
     //\r
     // write capsule data into the output file\r
     //\r
-    if (OutFileName == NULL) {\r
-      fpout = stdout;\r
-    } else {\r
-      fpout = fopen (OutFileName, "wb");\r
-      if (fpout == NULL) {\r
-        Error (NULL, 0, 0, NULL, "could not open %s file for writing", OutFileName);\r
-        free (CapBuffer);\r
-        goto Finish;\r
-      }\r
+    fpout = fopen (OutFileName, "wb");\r
+    if (fpout == NULL) {\r
+      Error (NULL, 0, 0, NULL, "could not open %s file for writing", OutFileName);\r
+      goto Finish;\r
     }\r
+\r
     fwrite (CapBuffer, 1, CapSize, fpout);\r
     fclose (fpout);\r
 \r
@@ -363,6 +361,13 @@ Finish:
   // free InfFileImage memory\r
   //\r
   free (InfFileImage);\r
+  \r
+  //\r
+  // free capsule file buffer\r
+  //\r
+  if (CapBuffer != NULL) {\r
+    free (CapBuffer);\r
+  }\r
 \r
   fprintf (stdout, "GenFv tool done with return code is 0x%x.\n", GetUtilityStatus ());\r
   return GetUtilityStatus ();\r
index 21a8384..036d688 100644 (file)
@@ -1029,7 +1029,6 @@ Returns:
   \r
   if (OutImageType == FW_DUMMY_IMAGE) {\r
     Error (NULL, 0, 0, NULL, "No action specified, such as -e, -c or -t\n");\r
-    Usage ();\r
     return STATUS_ERROR;    \r
   }\r
 \r
@@ -1038,6 +1037,7 @@ Returns:
   // get InImageName from stdin\r
   //\r
   if (InImageName == NULL) {\r
+    fprintf (stdout, "Please describe input file name!!!\n");\r
     fscanf (stdin, "%s", FileName);\r
     InImageName = (UINT8 *) FileName;\r
   }\r
@@ -1075,9 +1075,11 @@ Returns:
       }\r
       OutImageType = OutImageType & ~FW_REPLACE_IMAGE;\r
     } else {\r
+      Error (NULL, 0, 0, NULL, "No output file name is specified.");\r
+      goto Finish;\r
       // binary stream can't be output to string strem stdout\r
       // because 0x0A can be auto converted to 0x0D 0x0A.\r
-      fpOut = stdout;\r
+      // fpOut = stdout;\r
     } \r
   } else {\r
     fpOut = fopen (OutImageName, "wb");\r
@@ -1101,42 +1103,47 @@ Returns:
   //\r
   if ((OutImageType == FW_EFI_IMAGE) || (OutImageType == FW_TE_IMAGE)) {\r
     if (ModuleType == NULL) {\r
-      Error (NULL, 0, 0, NULL, "No ModuleType specified, such as PEIM, DXE_DRIVER\n");\r
-      Usage ();\r
-      goto Finish;\r
-    }\r
-    \r
-    if (stricmp (ModuleType, "BASE") == 0 ||\r
-        stricmp (ModuleType, "SEC") == 0 ||\r
-        stricmp (ModuleType, "SECURITY_CORE") == 0 ||\r
-        stricmp (ModuleType, "PEI_CORE") == 0 ||\r
-        stricmp (ModuleType, "PEIM") == 0 ||\r
-        stricmp (ModuleType, "COMBINED_PEIM_DRIVER") == 0 ||\r
-        stricmp (ModuleType, "PIC_PEIM") == 0 ||\r
-        stricmp (ModuleType, "RELOCATABLE_PEIM") == 0 ||\r
-        stricmp (ModuleType, "DXE_CORE") == 0 ||\r
-        stricmp (ModuleType, "BS_DRIVER") == 0  ||\r
-        stricmp (ModuleType, "DXE_DRIVER") == 0 ||\r
-        stricmp (ModuleType, "DXE_SMM_DRIVER") == 0  ||\r
-        stricmp (ModuleType, "UEFI_DRIVER") == 0) {\r
-      Type = EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER;\r
-  \r
-    } else if (stricmp (ModuleType, "UEFI_APPLICATION") == 0 || \r
-               stricmp (ModuleType, "APPLICATION") == 0) {\r
-      Type = EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION;\r
-  \r
-    } else if (stricmp (ModuleType, "DXE_RUNTIME_DRIVER") == 0 || \r
-               stricmp (ModuleType, "RT_DRIVER") == 0) {\r
-      Type = EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER;\r
-  \r
-    } else if (stricmp (ModuleType, "DXE_SAL_DRIVER") == 0 || \r
-               stricmp (ModuleType, "SAL_RT_DRIVER") == 0) {\r
-      Type = EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER;\r
-  \r
+      if (OutImageType == FW_EFI_IMAGE) {\r
+        Error (NULL, 0, 0, NULL, "No ModuleType specified, such as PEIM, DXE_DRIVER\n");\r
+        goto Finish;\r
+      } else if (OutImageType == FW_TE_IMAGE) {\r
+        //\r
+        // Default TE Image Type is Boot service driver\r
+        //\r
+        Type = EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER;\r
+      }\r
     } else {\r
-      Error (NULL, 0, 0, ModuleType, "%s is not one valid Module type.\n");\r
-      Usage ();\r
-      goto Finish;\r
+      if (stricmp (ModuleType, "BASE") == 0 ||\r
+          stricmp (ModuleType, "SEC") == 0 ||\r
+          stricmp (ModuleType, "SECURITY_CORE") == 0 ||\r
+          stricmp (ModuleType, "PEI_CORE") == 0 ||\r
+          stricmp (ModuleType, "PEIM") == 0 ||\r
+          stricmp (ModuleType, "COMBINED_PEIM_DRIVER") == 0 ||\r
+          stricmp (ModuleType, "PIC_PEIM") == 0 ||\r
+          stricmp (ModuleType, "RELOCATABLE_PEIM") == 0 ||\r
+          stricmp (ModuleType, "DXE_CORE") == 0 ||\r
+          stricmp (ModuleType, "BS_DRIVER") == 0  ||\r
+          stricmp (ModuleType, "DXE_DRIVER") == 0 ||\r
+          stricmp (ModuleType, "DXE_SMM_DRIVER") == 0  ||\r
+          stricmp (ModuleType, "UEFI_DRIVER") == 0) {\r
+        Type = EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER;\r
+    \r
+      } else if (stricmp (ModuleType, "UEFI_APPLICATION") == 0 || \r
+                 stricmp (ModuleType, "APPLICATION") == 0) {\r
+        Type = EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION;\r
+    \r
+      } else if (stricmp (ModuleType, "DXE_RUNTIME_DRIVER") == 0 || \r
+                 stricmp (ModuleType, "RT_DRIVER") == 0) {\r
+        Type = EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER;\r
+    \r
+      } else if (stricmp (ModuleType, "DXE_SAL_DRIVER") == 0 || \r
+                 stricmp (ModuleType, "SAL_RT_DRIVER") == 0) {\r
+        Type = EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER;\r
+    \r
+      } else {\r
+        Error (NULL, 0, 0, NULL, "%s is not one valid Module type.\n", ModuleType);\r
+        goto Finish;\r
+      }\r
     }\r
   }\r
  \r
@@ -1522,6 +1529,7 @@ Finish:
   }\r
 \r
   fprintf (stdout, "GenFw tool done with return code is 0x%x.\n", GetUtilityStatus ());  \r
+\r
   return GetUtilityStatus ();\r
 }\r
 \r
index e70ba33..22be5db 100644 (file)
@@ -780,7 +780,11 @@ Returns:
     }\r
 \r
     if ((stricmp (argv[0], "-g") == 0) || (stricmp (argv[0], "--vendorguid") == 0)) {\r
-      StringToGuid (argv[1], &VendorGuid);\r
+      Status = StringToGuid (argv[1], &VendorGuid);\r
+      if (EFI_ERROR (Status)) {\r
+        Error (NULL, 0, 0, NULL, "ERROR: %s is not a formal GUID value.", argv[1]);\r
+        goto Finish;\r
+      }\r
       argc -= 2;\r
       argv += 2;\r
       continue;\r
@@ -793,7 +797,6 @@ Returns:
         SectGuidAttribute |= EFI_GUIDED_SECTION_AUTH_STATUS_VALID;\r
       } else {\r
         Error (NULL, 0, 0, argv[1], "unknown Guid Section Attribute");\r
-        Usage ();\r
         goto Finish;\r
       }\r
       argc -= 2;\r
@@ -815,7 +818,6 @@ Returns:
       for (Index = 0; Index < strlen (argv[1]); Index++) {\r
         if ((argv[1][Index] != '-') && (isdigit (argv[1][Index]) == 0)) {\r
           Error (NULL, 0, 0, NULL, "ERROR: %s is not a valid integer.", argv[1]);\r
-          Status = EFI_ABORTED;\r
           goto Finish;\r
         }\r
       }\r
@@ -825,7 +827,7 @@ Returns:
       argv += 2;\r
       continue;\r
     }\r
-    \r
+\r
     //\r
     // Get Input file name\r
     //\r
@@ -880,7 +882,6 @@ Returns:
       SectCompSubType = EFI_STANDARD_COMPRESSION;\r
     } else {\r
       Error (NULL, 0, 0, CompressionName, "unknown compression type");\r
-      Usage ();\r
       goto Finish;\r
     }\r
   } else if (stricmp (SectionName, SectionTypeName[EFI_SECTION_GUID_DEFINED]) == 0) {\r
@@ -905,14 +906,12 @@ Returns:
     SectType = EFI_SECTION_VERSION;\r
     if (VersionNumber < 0 || VersionNumber > 9999) {\r
       Error (NULL, 0, 0, NULL, "%d is illegal version number\n", VersionNumber);\r
-      Usage ();\r
       goto Finish;\r
     }\r
   } else if (stricmp (SectionName, SectionTypeName[EFI_SECTION_USER_INTERFACE]) == 0) {\r
     SectType = EFI_SECTION_USER_INTERFACE;\r
     if (StringBuffer[0] == '\0') {\r
       Error (NULL, 0, 0, "user interface string not specified", NULL);\r
-      Usage ();\r
       goto Finish;\r
     }\r
   } else if (stricmp (SectionName, SectionTypeName[EFI_SECTION_COMPATIBILITY16]) == 0) {\r
@@ -927,7 +926,6 @@ Returns:
     SectType = EFI_SECTION_PEI_DEPEX;\r
   } else {\r
     Error (NULL, 0, 0, SectionName, "unknown section type");\r
-    Usage ();\r
     goto Finish;\r
   }\r
   \r
@@ -937,54 +935,8 @@ Returns:
     // The file are from stdin.\r
     //\r
     if (InputFileNum == 0) {\r
-\r
-      AllocatedFlag = TRUE;\r
-\r
-      //\r
-      // Init InputFileName pointer list\r
-      //\r
-      InputFileName = (CHAR8 **) malloc (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *));\r
-      if (InputFileName == NULL) {\r
-        Error (__FILE__, __LINE__, 0, "application error", "failed to allocate memory");\r
-        return EFI_OUT_OF_RESOURCES;\r
-      }\r
-      memset (InputFileName, 0, (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *)));\r
-\r
-      do {\r
-        if ((InputFileNum != 0) && (InputFileNum % MAXIMUM_INPUT_FILE_NUM == 0)) {\r
-          //\r
-          // InputFileName buffer too small, need to realloc\r
-          //\r
-          InputFileName = (CHAR8 **) realloc (\r
-                                      InputFileName,\r
-                                      (InputFileNum + MAXIMUM_INPUT_FILE_NUM) * sizeof (CHAR8 *)\r
-                                      );\r
-    \r
-          if (InputFileName == NULL) {\r
-            for (Index = 0; Index < InputFileNum; Index ++) {\r
-              free (InputFileName [InputFileNum]);\r
-            }\r
-            Error (__FILE__, __LINE__, 0, "application error", "failed to allocate memory");\r
-            return EFI_OUT_OF_RESOURCES;\r
-          }\r
-          memset (&(InputFileName[InputFileNum]), 0, (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *)));\r
-        }\r
-\r
-        InputFileName [InputFileNum] = (CHAR8 *) malloc (_MAX_PATH); \r
-        if (InputFileName == NULL) {\r
-          Error (__FILE__, __LINE__, 0, "application error", "failed to allocate memory");\r
-          for (Index = 0; Index < InputFileNum; Index ++) {\r
-            free (InputFileName [InputFileNum]);\r
-          }\r
-          free (InputFileName);\r
-          return EFI_OUT_OF_RESOURCES;\r
-        }\r
-      } while (fscanf (stdin, "%s", InputFileName[InputFileNum++]) != EOF);\r
-      //\r
-      // Free the last memory space because it doesn't have data.\r
-      //\r
-      InputFileNum --;\r
-      free (InputFileName[InputFileNum]);\r
+      Error (NULL, 0, 0, NULL, "No input files is specified.");\r
+      goto Finish;\r
     }\r
   }\r
   \r
@@ -992,7 +944,9 @@ Returns:
   // Open output file\r
   //\r
   if (OutputFileName == NULL) {\r
-    OutFile = stdout;\r
+    Error (NULL, 0, 0, NULL, "No output file name is specified.");\r
+    goto Finish;\r
+    // OutFile = stdout;\r
   } else {\r
     OutFile = fopen (OutputFileName, "wb");\r
   }\r
@@ -1124,12 +1078,6 @@ Finish:
 \r
   if (OutFile != NULL) {\r
     fclose (OutFile);\r
-    //\r
-    // If we had errors, then delete the output file\r
-    //\r
-    if (GetUtilityStatus () == STATUS_ERROR) {\r
-      remove (OutputFileName);\r
-    }\r
   }\r
 \r
   fprintf (stdout, "GenSec tool done with return code is 0x%x.\n", GetUtilityStatus ()); \r
index f3eecb6..8b4f7c4 100644 (file)
@@ -1689,7 +1689,7 @@ Returns:
   //\r
   memset (FileHeader, 0, sizeof (EFI_FFS_FILE_HEADER));\r
   memcpy (&FileHeader->Name, &EfiFirmwareVolumeTopFileGuid, sizeof (EFI_GUID));\r
-  FileHeader->Type        = EFI_FV_FILETYPE_FREEFORM;\r
+  FileHeader->Type        = EFI_FV_FILETYPE_RAW;\r
   FileHeader->Attributes  = FFS_ATTRIB_CHECKSUM;\r
 \r
   //\r
@@ -3341,7 +3341,7 @@ Returns:
   memset (FileHeader, 0, sizeof(EFI_FFS_FILE_HEADER));\r
   memcpy (&FileHeader->Name, &EfiFirmwareVolumeTopFileGuid, sizeof (EFI_GUID));\r
 \r
-  FileHeader->Type = EFI_FV_FILETYPE_FREEFORM;\r
+  FileHeader->Type = EFI_FV_FILETYPE_RAW;\r
   FileHeader->Attributes = FFS_ATTRIB_CHECKSUM;\r
 \r
   //\r