diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Include/Protocol/CsmPlatform.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'Include/Protocol/CsmPlatform.h')
-rw-r--r-- | Include/Protocol/CsmPlatform.h | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/Include/Protocol/CsmPlatform.h b/Include/Protocol/CsmPlatform.h new file mode 100644 index 0000000..9b487a5 --- /dev/null +++ b/Include/Protocol/CsmPlatform.h @@ -0,0 +1,161 @@ +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2010, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** + +//********************************************************************** +// $Header: /Alaska/SOURCE/Modules/CSM/Generic/Protocol/CsmPlatform.h 13 1/27/14 12:59p Olegi $ +// +// $Revision: 13 $ +// +// $Date: 1/27/14 12:59p $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/CSM/Generic/Protocol/CsmPlatform.h $ +// +// 13 1/27/14 12:59p Olegi +// EIP151588: added Rom field to CSM_PLATFORM_POLICY_DATA +// +// 12 11/14/11 12:05p Olegi +// +// 11 11/10/11 7:31p Olegi +// Added thunk GUID protocol definition. +// +// 10 10/03/11 3:19p Olegi +// [TAG] EIP71591 +// [Category] Improvement +// [Description] CSM opt-out changes +// +// 9 8/19/11 4:30p Olegi +// [TAG] EIP65477 +// [Category] Improvement +// [Description] CSM Opt-out mechanism +// [Files] csmplatform.h, csm.dxs +// +// 8 3/01/10 3:57p Olegi +// Changed the prototypes of Pre/PostOptionRom functions; requires the +// update of AMI Board component. EIP34085. +// +// 7 1/12/10 11:51a Olegi +// Copyright message updated. +// +// 6 6/18/09 10:06a Olegi +// Added definition of CSM OpROM policy related data. +// +// 5 4/27/07 5:17p Olegi +// CSM.CHM file preparation. +// +// 4 4/13/07 9:51a Olegi +// +//********************************************************************** +//<AMI_FHDR_START> +// +// Name: CsmPlatform.h +// +// Description: CsmPlatform protocol declaration +// +//<AMI_FHDR_END> +//********************************************************************** + +#ifndef __CSM_PLATFORM_PROTOCOL_H__ +#define __CSM_PLATFORM_PROTOCOL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <EFI.h> + +// {91FA9DFD-DBD4-44ae-97A4-BD1837D5B462} +#define CSM_PLATFORM_PROTOCOL_GUID \ + {0x91fa9dfd,0xdbd4,0x44ae,0x97,0xa4,0xbd,0x18,0x37,0xd5,0xb4,0x62} + +GUID_VARIABLE_DECLARATION(gCsmPlatformProtocolGuid,CSM_PLATFORM_PROTOCOL_GUID); + +#ifndef GUID_VARIABLE_DEFINITION +#include <Protocol/PciIo.h> +#include <Protocol/LegacyBios.h> + +typedef struct _CSM_PLATFORM_PROTOCOL CSM_PLATFORM_PROTOCOL; + +typedef EFI_STATUS (EFIAPI *CSM_PLATFORM_PROTOCOL_PRE_PROCESS_OPROM) ( + IN CSM_PLATFORM_PROTOCOL *This, + IN EFI_PCI_IO_PROTOCOL *PciIo, + IN VOID **RomImage +); + +typedef EFI_STATUS (EFIAPI *CSM_PLATFORM_PROTOCOL_POST_PROCESS_OPROM) ( + IN CSM_PLATFORM_PROTOCOL *This, + IN EFI_PCI_IO_PROTOCOL *PciIo, + IN VOID **RomImage +); + +typedef EFI_STATUS (EFIAPI *CSM_PLATFORM_PROTOCOL_GET_ATAPI_DEVICE_TYPE) ( + IN CSM_PLATFORM_PROTOCOL *This, + IN struct _ATAPI_IDENTIFY *IdentifyDriveData, + OUT UINT16 *DevType +); + +typedef struct _CSM_PLATFORM_PROTOCOL { + CSM_PLATFORM_PROTOCOL_PRE_PROCESS_OPROM PreProcessOpRom; + CSM_PLATFORM_PROTOCOL_POST_PROCESS_OPROM PostProcessOpRom; + CSM_PLATFORM_PROTOCOL_GET_ATAPI_DEVICE_TYPE GetAtapiDeviceType; +} CSM_PLATFORM_PROTOCOL; + +#define CSM_OPRROM_POLICY_GUID \ + {0xf2a128ff,0x257b,0x456e,0x9d,0xe8,0x63,0xe7,0xc7,0xdc,0xdf,0xac} + +typedef struct _CSM_PLATFORM_POLICY_DATA { + EFI_PCI_IO_PROTOCOL *PciIo; + BOOLEAN ExecuteThisRom; + VOID **Rom; +} CSM_PLATFORM_POLICY_DATA; + +// The following GUID is used in DXS; it can be installed by the driver that +// has minimum or no dependencies so that it is launched earlier than CSM. +// +#ifndef AMI_LOAD_CSM_GUID +#define AMI_LOAD_CSM_GUID \ + { 0x16287ba4, 0x5b9d, 0x4d98, 0x91, 0x9f, 0x7b, 0x7b, 0x78, 0xcb, 0x2b, 0xe0 } +#endif + +#ifndef AMI_CSM_DRIVER_STARTED_GUID +#define AMI_CSM_DRIVER_STARTED_GUID \ + { 0x3EA824D1, 0x81E3, 0x4FF5, 0xBD, 0x43, 0xBB, 0x9C, 0x65, 0xDF, 0x7C, 0x46} +#endif + +#ifndef AMI_CSM_THUNK_PROTOCOL_GUID +#define AMI_CSM_THUNK_PROTOCOL_GUID \ + { 0x2362ea9c, 0x84e5, 0x4dff, 0x83, 0xbc, 0xb5, 0xac, 0xec, 0xb5, 0x7c, 0xbb } +#endif + +/****** DO NOT WRITE BELOW THIS LINE *******/ +#endif // #ifndef GUID_VARIABLE_DEFINITION +#ifdef __cplusplus +} +#endif +#endif + +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2010, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** |