]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Sample/Tools/Source/EfildrImage/efildrimage.c
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
[mirror_edk2.git] / EdkCompatibilityPkg / Sample / Tools / Source / EfildrImage / efildrimage.c
diff --git a/EdkCompatibilityPkg/Sample/Tools/Source/EfildrImage/efildrimage.c b/EdkCompatibilityPkg/Sample/Tools/Source/EfildrImage/efildrimage.c
deleted file mode 100644 (file)
index c072dd7..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/*++\r
-\r
-Copyright 2006 - 2007, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-Module Name:\r
-\r
-  efildrimage.c\r
-\r
-Abstract:\r
-\r
-  Creates and EFILDR image.\r
-  This tool combines several PE Image files together using following format denoted as EBNF:\r
-  FILE := EFILDR_HEADER\r
-          EFILDR_IMAGE +\r
-          <PeImageFileContent> +\r
-  The order of EFILDR_IMAGE is same as the order of placing PeImageFileContent.\r
-\r
-Revision History\r
-\r
---*/\r
-\r
-\r
-#include <windows.h>\r
-#include <stdio.h>\r
-#include "Tiano.h"\r
-\r
-#define MAX_PE_IMAGES                  63\r
-#define FILE_TYPE_FIXED_LOADER         0\r
-#define FILE_TYPE_RELOCATABLE_PE_IMAGE 1\r
-\r
-typedef struct {\r
-  UINT32 CheckSum;\r
-  UINT32 Offset;\r
-  UINT32 Length;\r
-  UINT8  FileName[52];\r
-} EFILDR_IMAGE;\r
-\r
-typedef struct {          \r
-  UINT32       Signature;     \r
-  UINT32       HeaderCheckSum;\r
-  UINT32       FileLength;\r
-  UINT32       NumberOfImages;\r
-} EFILDR_HEADER;\r
-\r
-\r
-\r
-VOID\r
-Usage (\r
-  VOID\r
-  )\r
-{\r
-  printf ("Usage: EfiLdrImage OutImage LoaderImage PeImage1 PeImage2 ... PeImageN");\r
-  exit (1);\r
-}\r
-\r
-ULONG\r
-FCopyFile (\r
-  FILE    *in,\r
-  FILE    *out\r
-  )\r
-/*++\r
-Routine Description:\r
-  Write all the content of input file to output file.\r
-\r
-Arguments:\r
-  in  - input file pointer\r
-  out - output file pointer\r
-\r
-Return:\r
-  ULONG : file size of input file\r
---*/\r
-{\r
-  ULONG           filesize, offset, length;\r
-  UCHAR           Buffer[8*1024];\r
-\r
-  fseek (in, 0, SEEK_END);\r
-  filesize = ftell(in);\r
-\r
-  fseek (in, 0, SEEK_SET);\r
-\r
-  offset = 0;\r
-  while (offset < filesize)  {\r
-    length = sizeof(Buffer);\r
-    if (filesize-offset < length) {\r
-      length = filesize-offset;\r
-    }\r
-\r
-    fread (Buffer, length, 1, in);\r
-    fwrite (Buffer, length, 1, out);\r
-    offset += length;\r
-  }\r
-\r
-  return filesize;\r
-}\r
-\r
-\r
-int\r
-main (\r
-  int argc,\r
-  char *argv[]\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-\r
-Arguments:\r
-\r
-\r
-Returns:\r
-\r
-\r
---*/\r
-{\r
-  ULONG         i;\r
-  ULONG         filesize;\r
-  FILE          *fpIn, *fpOut;\r
-  EFILDR_HEADER EfiLdrHeader;\r
-  EFILDR_IMAGE  EfiLdrImage[MAX_PE_IMAGES];\r
-\r
-  if (argc < 4) {\r
-    Usage();\r
-  }\r
-\r
-  //\r
-  // Open output file for write\r
-  //\r
-  fpOut = fopen(argv[1], "w+b");\r
-  if (!fpOut) {\r
-    printf ("efildrimage: Could not open output file %s\n", argv[1]);\r
-    exit(1);\r
-  }\r
-\r
-  memset (&EfiLdrHeader, 0, sizeof (EfiLdrHeader));\r
-  memset (&EfiLdrImage, 0, sizeof (EFILDR_IMAGE) * (argc - 2));\r
-\r
-  memcpy (&EfiLdrHeader.Signature, "EFIL", 4);\r
-  EfiLdrHeader.FileLength = sizeof(EFILDR_HEADER) + sizeof(EFILDR_IMAGE)*(argc-2);\r
-\r
-  //\r
-  // Skip the file header first\r
-  //\r
-  fseek (fpOut, EfiLdrHeader.FileLength, SEEK_SET);\r
-\r
-  //\r
-  // copy all the input files to the output file\r
-  //\r
-  for(i=2;i<(ULONG)argc;i++) {\r
-    //\r
-    // Copy the content of PeImage file to output file\r
-    //\r
-    fpIn = fopen (argv[i], "rb");\r
-    if (!fpIn) {\r
-      printf ("efildrimage: Could not open input file %s\n", argv[i-2]);\r
-      exit(1);\r
-    }\r
-    filesize = FCopyFile (fpIn, fpOut);\r
-    fclose(fpIn);\r
-\r
-    //\r
-    //  And in the same time update the EfiLdrHeader and EfiLdrImage array\r
-    //\r
-    EfiLdrImage[i-2].Offset = EfiLdrHeader.FileLength;\r
-    EfiLdrImage[i-2].Length = filesize;\r
-    strncpy (EfiLdrImage[i-2].FileName, argv[i], sizeof (EfiLdrImage[i-2].FileName) - 1);\r
-    EfiLdrHeader.FileLength += filesize;\r
-    EfiLdrHeader.NumberOfImages++;\r
-  }\r
-\r
-  //\r
-  // Write the image header to the output file finally\r
-  //\r
-  fseek (fpOut, 0, SEEK_SET);\r
-  fwrite (&EfiLdrHeader, sizeof(EFILDR_HEADER)        , 1, fpOut);\r
-  fwrite (&EfiLdrImage , sizeof(EFILDR_IMAGE)*(argc-2), 1, fpOut);\r
-\r
-  fclose (fpOut);\r
-  printf ("Created %s\n", argv[1]);\r
-  return 0;\r
-}\r
-\r