1 /** @file
2   Provides services to perform additional actions when a PE/COFF image is loaded
3   or unloaded.  This is useful for environment where symbols need to be loaded
4   and unloaded to support source level debugging.
5 
6   Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
7   This program and the accompanying materials
8   are licensed and made available under the terms and conditions of the BSD License
9   which accompanies this distribution.  The full text of the license may be found at
10   http://opensource.org/licenses/bsd-license.php
11 
12   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 
15 **/
16 
17 #ifndef __PE_COFF_EXTRA_ACTION_LIB_H__
18 #define __PE_COFF_EXTRA_ACTION_LIB_H__
19 
20 #include <Library/PeCoffLib.h>
21 
22 /**
23   Performs additional actions after a PE/COFF image has been loaded and relocated.
24 
25   If ImageContext is NULL, then ASSERT().
26 
27   @param  ImageContext  Pointer to the image context structure that describes the
28                         PE/COFF image that has already been loaded and relocated.
29 
30 **/
31 VOID
32 EFIAPI
33 PeCoffLoaderRelocateImageExtraAction (
34   IN OUT PE_COFF_LOADER_IMAGE_CONTEXT  *ImageContext
35   );
36 
37 /**
38   Performs additional actions just before a PE/COFF image is unloaded.  Any resources
39   that were allocated by PeCoffLoaderRelocateImageExtraAction() must be freed.
40 
41   If ImageContext is NULL, then ASSERT().
42 
43   @param  ImageContext  Pointer to the image context structure that describes the
44                         PE/COFF image that is being unloaded.
45 
46 **/
47 VOID
48 EFIAPI
49 PeCoffLoaderUnloadImageExtraAction (
50   IN OUT PE_COFF_LOADER_IMAGE_CONTEXT  *ImageContext
51   );
52 
53 #endif
54