git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.3 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:
 | |
| 
 | |
|   IpfStatusCode.c
 | |
| 
 | |
| Abstract:
 | |
| 
 | |
|   Contains the IPF installation function and an ESAL entry.
 | |
| 
 | |
| --*/
 | |
| 
 | |
| #include "StatusCode.h"
 | |
| 
 | |
| SAL_RETURN_REGS
 | |
| ReportStatusCodeEsalServicesClassCommonEntry (
 | |
|   IN  UINT64                    FunctionId,
 | |
|   IN  UINT64                    Arg2,
 | |
|   IN  UINT64                    Arg3,
 | |
|   IN  UINT64                    Arg4,
 | |
|   IN  UINT64                    Arg5,
 | |
|   IN  UINT64                    Arg6,
 | |
|   IN  UINT64                    Arg7,
 | |
|   IN  UINT64                    Arg8,
 | |
|   IN  SAL_EXTENDED_SAL_PROC     ExtendedSalProc,
 | |
|   IN   BOOLEAN                  VirtualMode,
 | |
|   IN  VOID                      *Global
 | |
|   )
 | |
| /*++
 | |
| 
 | |
| Routine Description:
 | |
| 
 | |
|   Main entry for Extended SAL ReportStatusCode Services
 | |
| 
 | |
| Arguments:
 | |
| 
 | |
|   FunctionId        Function Id which needed to be called
 | |
|   Arg2              Efi status code type
 | |
|   Arg3              Efi status code value
 | |
|   Arg4              Instance number 
 | |
|   Arg5              Caller Id
 | |
|   Arg6              Efi status code data
 | |
|   Arg7              Not used       
 | |
|   Arg8              Not used       
 | |
|   ExtendedSalProc   Esal Proc pointer    
 | |
|   VirtualMode       If this function is called in virtual mode
 | |
|   Global            This module's global variable pointer
 | |
|   
 | |
| Returns:
 | |
| 
 | |
|   SAL_RETURN_REGS
 | |
| 
 | |
| --*/
 | |
| {
 | |
|   SAL_RETURN_REGS ReturnVal;
 | |
| 
 | |
|   switch (FunctionId) {
 | |
| 
 | |
|   case ReportStatusCodeService:
 | |
|     ReturnVal.Status = StatusCodeReportStatusCode (
 | |
|                         (EFI_STATUS_CODE_TYPE) Arg2,
 | |
|                         (EFI_STATUS_CODE_VALUE) Arg3,
 | |
|                         (UINT32) Arg4,
 | |
|                         (EFI_GUID *) Arg5,
 | |
|                         (EFI_STATUS_CODE_DATA *) Arg6
 | |
|                         );
 | |
|     break;
 | |
| 
 | |
|   default:
 | |
|     ReturnVal.Status = EFI_SAL_INVALID_ARGUMENT;
 | |
|     break;
 | |
|   }
 | |
| 
 | |
|   return ReturnVal;
 | |
| }
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| InstallStatusCode (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   )
 | |
| /*++
 | |
| 
 | |
| Routine Description:
 | |
| 
 | |
|   Install the ReportStatusCode runtime service.
 | |
| 
 | |
| Arguments:
 | |
| 
 | |
|   ImageHandle     Image handle of the loaded driver
 | |
|   SystemTable     Pointer to the System Table
 | |
| 
 | |
| Returns:
 | |
| 
 | |
|   EFI_SUCCESS     The function always returns success.
 | |
| 
 | |
| --*/
 | |
| {
 | |
|   //
 | |
|   // Initialize RT status code
 | |
|   //
 | |
|   InitializeStatusCode (ImageHandle, SystemTable);
 | |
| 
 | |
|   //
 | |
|   // Initialize ESAL capabilities
 | |
|   //
 | |
|   RegisterEsalClass (
 | |
|     &gEfiExtendedSalStatusCodeServicesProtocolGuid,
 | |
|     NULL,
 | |
|     ReportStatusCodeEsalServicesClassCommonEntry,
 | |
|     StatusCode,
 | |
|     NULL
 | |
|     );
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 |