| /** @file | |
| This protocol manages the legacy memory regions between 0xc0000 - 0xfffff | |
| 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: LegacyRegion.h | |
| @par Revision Reference: | |
| This protocol is defined in Framework for EFI Compatibility Support Module spec | |
| Version 0.96 | |
| **/ | |
| #ifndef _EFI_LEGACY_REGION_H_ | |
| #define _EFI_LEGACY_REGION_H_ | |
| #define EFI_LEGACY_REGION_PROTOCOL_GUID \ | |
| { \ | |
| 0xfc9013a, 0x568, 0x4ba9, {0x9b, 0x7e, 0xc9, 0xc3, 0x90, 0xa6, 0x60, 0x9b } \ | |
| } | |
| typedef struct _EFI_LEGACY_REGION_PROTOCOL EFI_LEGACY_REGION_PROTOCOL; | |
| /** | |
| Sets hardware to decode or not decode a region. | |
| @param This Indicates the EFI_LEGACY_REGION_PROTOCOL instance | |
| @param Start Start of region to decode. | |
| @param Length Size in bytes of the region. | |
| @param On Decode/nondecode flag. | |
| @retval EFI_SUCCESS Decode range successfully changed. | |
| **/ | |
| typedef | |
| EFI_STATUS | |
| (EFIAPI *EFI_LEGACY_REGION_DECODE) ( | |
| IN EFI_LEGACY_REGION_PROTOCOL *This, | |
| IN UINT32 Start, | |
| IN UINT32 Length, | |
| IN BOOLEAN *On | |
| ); | |
| /** | |
| Sets a region to read only. | |
| @param This Indicates the EFI_LEGACY_REGION_PROTOCOL instance | |
| @param Start Start of region to lock. | |
| @param Length Size in bytes of the region. | |
| @param Granularity Lock attribute affects this granularity in bytes. | |
| @retval EFI_SUCCESS The region was made read only. | |
| **/ | |
| typedef | |
| EFI_STATUS | |
| (EFIAPI *EFI_LEGACY_REGION_LOCK) ( | |
| IN EFI_LEGACY_REGION_PROTOCOL *This, | |
| IN UINT32 Start, | |
| IN UINT32 Length, | |
| OUT UINT32 *Granularity OPTIONAL | |
| ); | |
| /** | |
| Sets a region to read only and ensures that flash is locked from being | |
| inadvertently modified. | |
| @param This Indicates the EFI_LEGACY_REGION_PROTOCOL instance | |
| @param Start Start of region to lock. | |
| @param Length Size in bytes of the region. | |
| @param Granularity Lock attribute affects this granularity in bytes. | |
| @retval EFI_SUCCESS The region was made read only and flash is locked. | |
| **/ | |
| typedef | |
| EFI_STATUS | |
| (EFIAPI *EFI_LEGACY_REGION_BOOT_LOCK) ( | |
| IN EFI_LEGACY_REGION_PROTOCOL *This, | |
| IN UINT32 Start, | |
| IN UINT32 Length, | |
| OUT UINT32 *Granularity OPTIONAL | |
| ); | |
| /** | |
| Sets a region to read-write. | |
| @param This Indicates the EFI_LEGACY_REGION_PROTOCOL instance | |
| @param Start Start of region to lock. | |
| @param Length Size in bytes of the region. | |
| @param Granularity Lock attribute affects this granularity in bytes. | |
| @retval EFI_SUCCESS The region was successfully made read-write. | |
| **/ | |
| typedef | |
| EFI_STATUS | |
| (EFIAPI *EFI_LEGACY_REGION_UNLOCK) ( | |
| IN EFI_LEGACY_REGION_PROTOCOL *This, | |
| IN UINT32 Start, | |
| IN UINT32 Length, | |
| OUT UINT32 *Granularity OPTIONAL | |
| ); | |
| /** | |
| @par Protocol Description: | |
| Abstracts the hardware control of the physical address region 0xC0000-C0xFFFFF | |
| for the traditional BIOS. | |
| @param Decode | |
| Specifies a region for the chipset to decode | |
| @param Lock | |
| Makes the specified OpROM region read only or locked. | |
| @param BootLock | |
| Sets a region to read only and ensures tat flash is locked from | |
| inadvertent modification. | |
| @param Unlock | |
| Makes the specified OpROM region read-write or unlocked. | |
| **/ | |
| struct _EFI_LEGACY_REGION_PROTOCOL { | |
| EFI_LEGACY_REGION_DECODE Decode; | |
| EFI_LEGACY_REGION_LOCK Lock; | |
| EFI_LEGACY_REGION_BOOT_LOCK BootLock; | |
| EFI_LEGACY_REGION_UNLOCK UnLock; | |
| }; | |
| extern EFI_GUID gEfiLegacyRegionProtocolGuid; | |
| #endif |