git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			130 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*++
 | 
						|
 | 
						|
Copyright (c) 2006, Intel Corporation                                                         
 | 
						|
All rights reserved. This program and the accompanying materials                          
 | 
						|
are licensed and made available under the terms and conditions of the BSD License         
 | 
						|
which accompanies this distribution.  The full text of the license may be found at        
 | 
						|
http://opensource.org/licenses/bsd-license.php                                            
 | 
						|
                                                                                          
 | 
						|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
 | 
						|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
 | 
						|
 | 
						|
Module Name:
 | 
						|
 | 
						|
  Runtime.h
 | 
						|
 | 
						|
Abstract:
 | 
						|
 | 
						|
  Runtime Architectural Protocol as defined in the DXE CIS
 | 
						|
 | 
						|
  This code is used to produce the EFI runtime virtual switch over
 | 
						|
 | 
						|
--*/
 | 
						|
 | 
						|
#ifndef _RUNTIME_H_
 | 
						|
#define _RUNTIME_H_
 | 
						|
 | 
						|
//
 | 
						|
// Data structures
 | 
						|
//
 | 
						|
typedef struct {
 | 
						|
  LIST_ENTRY            Link;
 | 
						|
  BOOLEAN               Valid;
 | 
						|
  EFI_PHYSICAL_ADDRESS  ImageBase;
 | 
						|
  UINTN                 ImageSize;  // In no. of pages
 | 
						|
  VOID                  *RelocationData;
 | 
						|
} RUNTIME_IMAGE_RELOCATION_DATA;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  LIST_ENTRY          Link;
 | 
						|
  IN UINT32           Type;
 | 
						|
  IN EFI_TPL          NotifyTpl;
 | 
						|
  IN EFI_EVENT_NOTIFY NotifyFunction;
 | 
						|
  IN VOID             *NotifyContext;
 | 
						|
  IN EFI_EVENT        Event;
 | 
						|
} RUNTIME_NOTIFY_EVENT_DATA;
 | 
						|
 | 
						|
//
 | 
						|
// Function Prototypes
 | 
						|
//
 | 
						|
VOID
 | 
						|
RelocatePeImageForRuntime (
 | 
						|
  RUNTIME_IMAGE_RELOCATION_DATA  *Image
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
PeHotRelocateImageEx (
 | 
						|
  IN UINT16      *Reloc,
 | 
						|
  IN OUT CHAR8   *Fixup,
 | 
						|
  IN OUT CHAR8   **FixupData,
 | 
						|
  IN UINT64      Adjust
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
RuntimeDriverCalculateCrc32 (
 | 
						|
  IN  VOID    *Data,
 | 
						|
  IN  UINTN   DataSize,
 | 
						|
  OUT UINT32  *CrcOut
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
RuntimeDriverRegisterImage (
 | 
						|
  IN  EFI_RUNTIME_ARCH_PROTOCOL         *This,
 | 
						|
  IN  EFI_PHYSICAL_ADDRESS              ImageBase,
 | 
						|
  IN  UINTN                             ImageSize,
 | 
						|
  IN  VOID                              *RelocationData
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
RuntimeDriverRegisterEvent (
 | 
						|
  IN EFI_RUNTIME_ARCH_PROTOCOL          *This,
 | 
						|
  IN UINT32                             Type,
 | 
						|
  IN EFI_TPL                            NotifyTpl,
 | 
						|
  IN EFI_EVENT_NOTIFY                   NotifyFunction,
 | 
						|
  IN VOID                               *NotifyContext,
 | 
						|
  IN EFI_EVENT                          *Event
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
RuntimeDriverConvertPointer (
 | 
						|
  IN     UINTN  DebugDisposition,
 | 
						|
  IN OUT VOID   **ConvertAddress
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
VOID
 | 
						|
RuntimeDriverInitializeCrc32Table (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
RuntimeDriverInitialize (
 | 
						|
  IN EFI_HANDLE                            ImageHandle,
 | 
						|
  IN EFI_SYSTEM_TABLE                      *SystemTable
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
 | 
						|
//
 | 
						|
// Cache Flush Routine.
 | 
						|
//
 | 
						|
EFI_STATUS
 | 
						|
FlushCpuCache (
 | 
						|
  IN EFI_PHYSICAL_ADDRESS          Start,
 | 
						|
  IN UINT64                        Length
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
#endif
 |