mirror of https://github.com/acidanthera/audk.git
113 lines
3.1 KiB
C
113 lines
3.1 KiB
C
/** @file
|
|
|
|
X64 platform related code to support FtwLite.
|
|
|
|
Copyright (c) 2006 - 2008, 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.
|
|
|
|
**/
|
|
|
|
|
|
#include "FtwLite.h"
|
|
|
|
//
|
|
// MACROs for boot block update
|
|
//
|
|
#define BOOT_BLOCK_BASE
|
|
|
|
/**
|
|
|
|
Get swap state.
|
|
|
|
|
|
@param FtwLiteDevice Calling context
|
|
@param SwapState Swap state
|
|
|
|
@retval EFI_SUCCESS State successfully read.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
GetSwapState (
|
|
IN EFI_FTW_LITE_DEVICE *FtwLiteDevice,
|
|
OUT BOOLEAN *SwapState
|
|
)
|
|
{
|
|
return EFI_SUCCESS;
|
|
}
|
|
|
|
/**
|
|
Set swap state.
|
|
|
|
|
|
@param FtwLiteDevice Indicates a pointer to the calling context.
|
|
@param TopSwap New swap state
|
|
|
|
@retval EFI_SUCCESS The function completed successfully
|
|
Note:
|
|
the Top-Swap bit (bit 13, D31: F0, Offset D4h). Note that
|
|
software will not be able to clear the Top-Swap bit until the system is
|
|
rebooted without GNT[A]# being pulled down.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
SetSwapState (
|
|
IN EFI_FTW_LITE_DEVICE *FtwLiteDevice,
|
|
IN BOOLEAN TopSwap
|
|
)
|
|
{
|
|
return EFI_SUCCESS;
|
|
}
|
|
|
|
/**
|
|
|
|
Check whether the block is a boot block.
|
|
|
|
|
|
@param FtwLiteDevice Calling context
|
|
@param FvBlock Fvb protocol instance
|
|
@param Lba Lba value
|
|
|
|
@retval FALSE This is a boot block.
|
|
@retval TRUE This is not a boot block.
|
|
|
|
**/
|
|
BOOLEAN
|
|
IsBootBlock (
|
|
EFI_FTW_LITE_DEVICE *FtwLiteDevice,
|
|
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
|
|
EFI_LBA Lba
|
|
)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
/**
|
|
Copy the content of spare block to a boot block. Size is FTW_BLOCK_SIZE.
|
|
Spare block is accessed by FTW backup FVB protocol interface. LBA is
|
|
FtwLiteDevice->FtwSpareLba.
|
|
Boot block is accessed by BootFvb protocol interface. LBA is 0.
|
|
|
|
|
|
@param FtwLiteDevice The private data of FTW_LITE driver
|
|
|
|
@retval EFI_SUCCESS Spare block content is copied to boot block
|
|
@retval EFI_INVALID_PARAMETER Input parameter error
|
|
@retval EFI_OUT_OF_RESOURCES Allocate memory error
|
|
@retval EFI_ABORTED The function could not complete successfully
|
|
Notes:
|
|
|
|
**/
|
|
EFI_STATUS
|
|
FlushSpareBlockToBootBlock (
|
|
EFI_FTW_LITE_DEVICE *FtwLiteDevice
|
|
)
|
|
{
|
|
return EFI_SUCCESS;
|
|
}
|