]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/CCode/Source/EfiCompress/EfiCompressMain.c
The main issue want to be resolve is that some tools need EfiCompress and other tools...
[mirror_edk2.git] / Tools / CCode / Source / EfiCompress / EfiCompressMain.c
index 492210f67c3e8a7f074eb6437880bfcf406e6eea..b07f62990d10a6996662ec73e8cea2291f01e9f0 100644 (file)
@@ -27,8 +27,60 @@ Abstract:
 #include <stdio.h>\r
 \r
 #include <Common/UefiBaseTypes.h>\r
+#include "Compress.h"\r
+\r
+#define UTILITY_NAME "EfiCompress"\r
+#define UTILITY_MAJOR_VERSION 1\r
+#define UTILITY_MINOR_VERSION 1\r
+\r
+void \r
+ECVersion(\r
+  void\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Print out version information for EfiCompress.\r
+\r
+Arguments:\r
+\r
+  None\r
+  \r
+Returns:\r
+\r
+  None\r
+  \r
+--*/ \r
+{\r
+  printf ("%s v%d.%d -EDK Efi Compress Utility\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION);\r
+  printf ("Copyright (c) 2005-2006 Intel Corporation. All rights reserved.\n");\r
+}\r
+\r
+void \r
+ECUsage(\r
+  void\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Print out usage information for EfiCompress.\r
+\r
+Arguments:\r
+\r
+  None\r
+  \r
+Returns:\r
+\r
+  None\r
+  \r
+--*/ \r
+{\r
+  ECVersion();\r
+  printf ("\n  Usage: %s Inputfile Outputfile\n", UTILITY_NAME);\r
+}\r
 \r
-#include "EfiCompress.h"\r
 \r
 int\r
 main (\r
@@ -65,19 +117,28 @@ Returns:
   //  Added for makefile debug - KCE\r
   //\r
   INT32       arg_counter;\r
-  printf ("\n\n");\r
-  for (arg_counter = 0; arg_counter < argc; arg_counter++) {\r
-    printf ("%s ", argv[arg_counter]);\r
-  }\r
-\r
-  printf ("\n\n");\r
-\r
\r
   SrcBuffer             = DstBuffer = NULL;\r
-\r
   infile                = outfile = NULL;\r
 \r
+  if (argc < 1) {\r
+    ECUsage();\r
+    goto Done;\r
+  }\r
+  \r
+  if ((strcmp(argv[1], "-h") == 0) || (strcmp(argv[1], "--help") == 0) ||\r
+      (strcmp(argv[1], "-?") == 0) || (strcmp(argv[1], "/?") == 0)) {\r
+    ECUsage();\r
+    goto Done;\r
+  }\r
+  \r
+  if ((strcmp(argv[1], "-V") == 0) || (strcmp(argv[1], "--version") == 0)) {\r
+    ECVersion();\r
+    goto Done;\r
+  }\r
+  \r
   if (argc != 3) {\r
-    printf ("Usage: EFICOMPRESS <infile> <outfile>\n");\r
+    ECUsage();\r
     goto Done;\r
   }\r
 \r
@@ -115,14 +176,14 @@ Returns:
   // Get destination data size and do the compression\r
   //\r
   DstSize = 0;\r
-  Status  = Compress (SrcBuffer, SrcSize, DstBuffer, &DstSize);\r
+  Status  = EfiCompress (SrcBuffer, SrcSize, DstBuffer, &DstSize);\r
   if (Status == EFI_BUFFER_TOO_SMALL) {\r
     if ((DstBuffer = malloc (DstSize)) == NULL) {\r
       printf ("Can't allocate memory\n");\r
       goto Done;\r
     }\r
 \r
-    Status = Compress (SrcBuffer, SrcSize, DstBuffer, &DstSize);\r
+    Status = EfiCompress (SrcBuffer, SrcSize, DstBuffer, &DstSize);\r
   }\r
 \r
   if (EFI_ERROR (Status)) {\r