/** @file\r
- Provides services to perform additional actions to relocate and unload\r
- PE/Coff image for some environment specific purpose say for souce level debug.\r
+ Provides services to perform additional actions when a PE/COFF image is loaded\r
+ or unloaded. This is useful for environment where symbols need to be loaded \r
+ and unloaded to support source level debugging.\r
\r
Copyright (c) 2009, Intel Corporation<BR>\r
All rights reserved. This program and the accompanying materials\r
\r
#ifndef __PE_COFF_EXTRA_ACTION_LIB_H__\r
#define __PE_COFF_EXTRA_ACTION_LIB_H__\r
+\r
#include <Library/PeCoffLib.h>\r
+\r
/**\r
- Applies additional actions to relocate fixups to a PE/COFF image.\r
+ Performs additional actions after a PE/COFF image has been loaded and relocated.\r
\r
- Generally this function is called after sucessfully Applying relocation fixups \r
- to a PE/COFF image for some specicial purpose. \r
- As a example, For NT32 emulator, the function should be implemented and called\r
- to support source level debug. \r
- \r
- @param ImageContext Pointer to the image context structure that describes the PE/COFF\r
- image that is being relocated.\r
+ If ImageContext is NULL, then ASSERT().\r
+\r
+ @param ImageContext Pointer to the image context structure that describes the\r
+ PE/COFF image that has already been loaded and relocated.\r
\r
**/\r
VOID\r
);\r
\r
/**\r
- Unloads a loaded PE/COFF image from memory and releases its taken resource.\r
- \r
- Releases any environment specific resources that were allocated when the image \r
- specified by ImageContext was loaded using PeCoffLoaderLoadImage(). \r
- For NT32 emulator, the PE/COFF image loaded by system needs to release.\r
- For real platform, the PE/COFF image loaded by Core doesn't needs to be unloaded, \r
+ Performs additional actions just before a PE/COFF image is unloaded. Any resources\r
+ that were allocated by PeCoffLoaderRelocateImageExtraAction() must be freed.\r
\r
If ImageContext is NULL, then ASSERT().\r
\r
- @param ImageContext Pointer to the image context structure that describes the PE/COFF\r
- image to be unloaded.\r
+ @param ImageContext Pointer to the image context structure that describes the\r
+ PE/COFF image that is being unloaded.\r
\r
**/\r
VOID\r
PeCoffLoaderUnloadImageExtraAction (\r
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
);\r
+\r
#endif\r
\r
#include <Base.h>\r
#include <Library/PeCoffExtraActionLib.h>\r
+#include <Library/DebugLib.h>\r
\r
/**\r
- Applies additional actions to relocate fixups to a PE/COFF image.\r
+ Performs additional actions after a PE/COFF image has been loaded and relocated.\r
\r
- Generally this function is called after sucessfully Applying relocation fixups \r
- to a PE/COFF image for some specicial purpose. \r
- As a example, For NT32 emulator, the function should be implemented and called\r
- to support source level debug. \r
- \r
- @param ImageContext Pointer to the image context structure that describes the PE/COFF\r
- image that is being relocated.\r
+ If ImageContext is NULL, then ASSERT().\r
+\r
+ @param ImageContext Pointer to the image context structure that describes the\r
+ PE/COFF image that has already been loaded and relocated.\r
\r
**/\r
VOID\r
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
)\r
{\r
+ ASSERT (ImageContext != NULL);\r
} \r
\r
/**\r
- Unloads a loaded PE/COFF image from memory and releases its taken resource.\r
- \r
- Releases any environment specific resources that were allocated when the image \r
- specified by ImageContext was loaded using PeCoffLoaderLoadImage(). \r
- For NT32 emulator, the PE/COFF image loaded by system needs to release.\r
- For real platform, the PE/COFF image loaded by Core doesn't needs to be unloaded, \r
+ Performs additional actions just before a PE/COFF image is unloaded. Any resources\r
+ that were allocated by PeCoffLoaderRelocateImageExtraAction() must be freed.\r
\r
If ImageContext is NULL, then ASSERT().\r
\r
- @param ImageContext Pointer to the image context structure that describes the PE/COFF\r
- image to be unloaded.\r
+ @param ImageContext Pointer to the image context structure that describes the\r
+ PE/COFF image that is being unloaded.\r
\r
**/\r
VOID\r
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
)\r
{\r
+ ASSERT (ImageContext != NULL);\r
}\r