git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			114 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			4.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:
 | 
						|
 | 
						|
  ExtendedSalBootService.h
 | 
						|
 | 
						|
Abstract:
 | 
						|
 | 
						|
--*/
 | 
						|
 | 
						|
#ifndef _EXTENDED_SAL_PROTOCOL_H_
 | 
						|
#define _EXTENDED_SAL_PROTOCOL_H_
 | 
						|
 | 
						|
#define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID   \
 | 
						|
  {0xde0ee9a4,0x3c7a,0x44f2, {0xb7,0x8b,0xe3,0xcc,0xd6,0x9c,0x3a,0xf7}}
 | 
						|
 | 
						|
#define EXTENDED_SAL_SIGNATURE  EFI_SIGNATURE_32('e', 's', 'a', 'l')
 | 
						|
 | 
						|
#define SAL_MIN_STATE_SIZE    0x400 * 1
 | 
						|
#define PAL_SCARTCH_SIZE      0x400 * 3
 | 
						|
#define ALIGN_MINSTATE_SIZE   512
 | 
						|
#define MAX_SAL_RECORD_SIZE   8*1024
 | 
						|
 | 
						|
#define SAL_RUNTIMESERVICE
 | 
						|
 | 
						|
typedef UINT16    EFI_SAL_PROCESSOR_ID;
 | 
						|
 | 
						|
typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL EXTENDED_SAL_BOOT_SERVICE_PROTOCOL;
 | 
						|
 | 
						|
typedef
 | 
						|
SAL_RUNTIMESERVICE
 | 
						|
SAL_RETURN_REGS
 | 
						|
(EFIAPI *SAL_EXTENDED_SAL_PROC) (
 | 
						|
  IN  EFI_GUID                                    *ClassGuid,
 | 
						|
  IN   UINT64                                      FunctionId,
 | 
						|
  IN  UINT64                                      Arg2,
 | 
						|
  IN  UINT64                                      Arg3,
 | 
						|
  IN  UINT64                                      Arg4,
 | 
						|
  IN  UINT64                                      Arg5,
 | 
						|
  IN  UINT64                                      Arg6,
 | 
						|
  IN  UINT64                                      Arg7,
 | 
						|
  IN  UINT64                                      Arg8
 | 
						|
  );
 | 
						|
 | 
						|
typedef
 | 
						|
SAL_RUNTIMESERVICE
 | 
						|
SAL_RETURN_REGS
 | 
						|
(EFIAPI *SAL_INTERNAL_EXTENDED_SAL_PROC) (
 | 
						|
  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                                        *ModuleGlobal
 | 
						|
  ); 
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EXTENDED_SAL_ADD_SST_INFO) (
 | 
						|
  IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL  *This,
 | 
						|
  IN  UINT16                                      SalAVersion,
 | 
						|
  IN   UINT16                                      SalBVersion,
 | 
						|
  IN  CHAR8                                        *OemId,
 | 
						|
  IN  CHAR8                                        *ProductId
 | 
						|
  );
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY) (
 | 
						|
  IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL  *This,
 | 
						|
  IN  UINT8                                        EntryType,
 | 
						|
  IN   UINT8                                        *TableEntry,
 | 
						|
  IN  UINTN                                        EntrySize
 | 
						|
  );
 | 
						|
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC) (
 | 
						|
  IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL  *This,
 | 
						|
  IN  EFI_GUID                                    *ClassGuid,
 | 
						|
  IN   UINT64                                      FunctionId,
 | 
						|
  IN  SAL_INTERNAL_EXTENDED_SAL_PROC              InternalSalProc,
 | 
						|
  IN  VOID                                        *PhysicalModuleGlobal
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Extended Sal Boot Service Protocol Interface
 | 
						|
//
 | 
						|
struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL{
 | 
						|
  EXTENDED_SAL_ADD_SST_INFO                       AddSalSystemTableInfo;
 | 
						|
  EXTENDED_SAL_ADD_SST_ENTRY                      AddSalSystemTableEntry;
 | 
						|
  EXTENDED_SAL_REGISTER_INTERNAL_PROC             AddExtendedSalProc;   
 | 
						|
  SAL_EXTENDED_SAL_PROC                           ExtendedSalProc;
 | 
						|
  SAL_PROC                                        SalProc;
 | 
						|
};
 | 
						|
 | 
						|
extern EFI_GUID   gEfiExtendedSalBootServiceProtocolGuid;
 | 
						|
 | 
						|
#endif
 |