mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 15:44:04 +02:00
Fixed comments to follow coding standard.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3221 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
1e23bd8d8a
commit
bf231ea60e
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Firmeware Volume BLock Service Library
|
Firmeware Volume BLock Service Library
|
||||||
|
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -15,6 +15,22 @@
|
|||||||
#ifndef __EDK_FVB_SERVICE_LIB_H__
|
#ifndef __EDK_FVB_SERVICE_LIB_H__
|
||||||
#define __EDK_FVB_SERVICE_LIB_H__
|
#define __EDK_FVB_SERVICE_LIB_H__
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads specified number of bytes into a buffer from the specified block
|
||||||
|
|
||||||
|
@param[in] Instance The FV instance to be read from
|
||||||
|
@param[in] Lba The logical block address to be read from
|
||||||
|
@param[in] Offset Offset into the block at which to begin reading
|
||||||
|
@param[in,out] NumBytes Pointer that on input contains the total size of
|
||||||
|
the buffer. On output, it contains the total number
|
||||||
|
of bytes read
|
||||||
|
@param[in] Buffer Pointer to a caller allocated buffer that will be
|
||||||
|
used to hold the data read
|
||||||
|
|
||||||
|
@retval EFI_EFI_SUCCESS Buffer contains data read from FVB
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiFvbReadBlock (
|
EfiFvbReadBlock (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
@ -22,31 +38,25 @@ EfiFvbReadBlock (
|
|||||||
IN UINTN Offset,
|
IN UINTN Offset,
|
||||||
IN OUT UINTN *NumBytes,
|
IN OUT UINTN *NumBytes,
|
||||||
IN UINT8 *Buffer
|
IN UINT8 *Buffer
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Reads specified number of bytes into a buffer from the specified block
|
|
||||||
|
|
||||||
Arguments:
|
/**
|
||||||
Instance - The FV instance to be read from
|
Writes specified number of bytes from the input buffer to the block
|
||||||
Lba - The logical block address to be read from
|
|
||||||
Offset - Offset into the block at which to begin reading
|
|
||||||
NumBytes - Pointer that on input contains the total size of
|
|
||||||
the buffer. On output, it contains the total number
|
|
||||||
of bytes read
|
|
||||||
Buffer - Pointer to a caller allocated buffer that will be
|
|
||||||
used to hold the data read
|
|
||||||
|
|
||||||
Returns:
|
@param[in] Instance The FV instance to be read from
|
||||||
|
@param[in] Lba The logical block address to be write to
|
||||||
|
@param[in] Offset Offset into the block at which to begin writing
|
||||||
|
@param[in,out] NumBytes Pointer that on input contains the total size of
|
||||||
|
the buffer. On output, it contains the total number
|
||||||
|
of bytes actually written.
|
||||||
|
@param[in] Buffer Pointer to a caller allocated buffer that contains
|
||||||
|
the source for the write
|
||||||
|
|
||||||
Status code
|
@retval EFI_EFI_SUCCESS Buffer written to FVB
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
EFI_INVALID_PARAMETER - invalid parameter
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiFvbWriteBlock (
|
EfiFvbWriteBlock (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
@ -54,163 +64,125 @@ EfiFvbWriteBlock (
|
|||||||
IN UINTN Offset,
|
IN UINTN Offset,
|
||||||
IN OUT UINTN *NumBytes,
|
IN OUT UINTN *NumBytes,
|
||||||
IN UINT8 *Buffer
|
IN UINT8 *Buffer
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Writes specified number of bytes from the input buffer to the block
|
|
||||||
|
|
||||||
Arguments:
|
/**
|
||||||
Instance - The FV instance to be written to
|
Erases and initializes a firmware volume block
|
||||||
Lba - The starting logical block index to write to
|
|
||||||
Offset - Offset into the block at which to begin writing
|
|
||||||
NumBytes - Pointer that on input contains the total size of
|
|
||||||
the buffer. On output, it contains the total number
|
|
||||||
of bytes actually written
|
|
||||||
Buffer - Pointer to a caller allocated buffer that contains
|
|
||||||
the source for the write
|
|
||||||
|
|
||||||
Returns:
|
@param[in] Instance The FV instance to be erased
|
||||||
|
@param[in] Lba The logical block address to be erased
|
||||||
|
|
||||||
Status code
|
@retval EFI_EFI_SUCCESS Lba was erased
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
EFI_INVALID_PARAMETER - invalid parameter
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiFvbEraseBlock (
|
EfiFvbEraseBlock (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
IN EFI_LBA Lba
|
IN EFI_LBA Lba
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Erases and initializes a firmware volume block
|
|
||||||
|
|
||||||
Arguments:
|
/**
|
||||||
Instance - The FV instance to be erased
|
Retrieves attributes, insures positive polarity of attribute bits, returns
|
||||||
Lba - The logical block index to be erased
|
resulting attributes in output parameter
|
||||||
|
|
||||||
Returns:
|
@param[in] Instance The FV instance
|
||||||
|
@param[out] Attributes The FV instance whose attributes is going to be
|
||||||
|
returned
|
||||||
|
|
||||||
Status code
|
@retval EFI_EFI_SUCCESS Valid Attributes were returned
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
EFI_INVALID_PARAMETER - invalid parameter
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiFvbGetVolumeAttributes (
|
EfiFvbGetVolumeAttributes (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
OUT EFI_FVB_ATTRIBUTES *Attributes
|
OUT EFI_FVB_ATTRIBUTES *Attributes
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Retrieves attributes, insures positive polarity of attribute bits, returns
|
|
||||||
resulting attributes in output parameter
|
|
||||||
|
|
||||||
Arguments:
|
/**
|
||||||
Instance - The FV instance whose attributes is going to be
|
Modifies the current settings of the firmware volume according to the
|
||||||
returned
|
input parameter, and returns the new setting of the volume
|
||||||
Attributes - Output buffer which contains attributes
|
|
||||||
|
|
||||||
Returns:
|
@param[in] Instance The FV instance
|
||||||
Status code
|
@param[in] Attributes On input, it is a pointer to EFI_FVB_ATTRIBUTES
|
||||||
|
containing the desired firmware volume settings.
|
||||||
|
On successful return, it contains the new settings
|
||||||
|
of the firmware volume
|
||||||
|
|
||||||
EFI_INVALID_PARAMETER - invalid parameter
|
@retval EFI_EFI_SUCCESS Attributes were updated
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiFvbSetVolumeAttributes (
|
EfiFvbSetVolumeAttributes (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
IN EFI_FVB_ATTRIBUTES Attributes
|
IN EFI_FVB_ATTRIBUTES Attributes
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Modifies the current settings of the firmware volume according to the
|
|
||||||
input parameter, and returns the new setting of the volume
|
|
||||||
|
|
||||||
Arguments:
|
/**
|
||||||
Instance - The FV instance whose attributes is going to be
|
Retrieves the physical address of a memory mapped FV
|
||||||
modified
|
|
||||||
Attributes - On input, it is a pointer to EFI_FVB_ATTRIBUTES
|
|
||||||
containing the desired firmware volume settings.
|
|
||||||
On successful return, it contains the new settings
|
|
||||||
of the firmware volume
|
|
||||||
|
|
||||||
Returns:
|
@param[in] Instance The FV instance
|
||||||
Status code
|
@param[out] BaseAddress Pointer to a caller allocated EFI_PHYSICAL_ADDRESS
|
||||||
|
that on successful return, contains the base address
|
||||||
|
of the firmware volume.
|
||||||
|
|
||||||
EFI_INVALID_PARAMETER - invalid parameter
|
@retval EFI_EFI_SUCCESS BaseAddress was returned
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiFvbGetPhysicalAddress (
|
EfiFvbGetPhysicalAddress (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
OUT EFI_PHYSICAL_ADDRESS *BaseAddress
|
OUT EFI_PHYSICAL_ADDRESS *BaseAddress
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Retrieves the physical address of a memory mapped FV
|
|
||||||
|
|
||||||
Arguments:
|
/**
|
||||||
Instance - The FV instance whose base address is going to be
|
Retrieve the size of a logical block
|
||||||
returned
|
|
||||||
BaseAddress - Pointer to a caller allocated EFI_PHYSICAL_ADDRESS
|
|
||||||
that on successful return, contains the base address
|
|
||||||
of the firmware volume.
|
|
||||||
|
|
||||||
Returns:
|
@param[in] Instance The FV instance
|
||||||
|
@param[in] Lba Indicates which block to return the size for.
|
||||||
|
@param[out] BlockSizze A pointer to a caller allocated UINTN in which
|
||||||
|
the size of the block is returned
|
||||||
|
@param[out] NumOfBlocks a pointer to a caller allocated UINTN in which the
|
||||||
|
number of consecutive blocks starting with Lba is
|
||||||
|
returned. All blocks in this range have a size of
|
||||||
|
BlockSize
|
||||||
|
|
||||||
Status code
|
@retval EFI_EFI_SUCCESS BlockSize and NumOfBlocks returned
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
EFI_INVALID_PARAMETER - invalid parameter
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiFvbGetBlockSize (
|
EfiFvbGetBlockSize (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
IN EFI_LBA Lba,
|
IN EFI_LBA Lba,
|
||||||
OUT UINTN *BlockSize,
|
OUT UINTN *BlockSize,
|
||||||
OUT UINTN *NumOfBlocks
|
OUT UINTN *NumOfBlocks
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Retrieve the size of a logical block
|
|
||||||
|
|
||||||
Arguments:
|
/**
|
||||||
Instance - The FV instance whose block size is going to be
|
Erases and initializes a specified range of a firmware volume
|
||||||
returned
|
|
||||||
Lba - Indicates which block to return the size for.
|
|
||||||
BlockSize - A pointer to a caller allocated UINTN in which
|
|
||||||
the size of the block is returned
|
|
||||||
NumOfBlocks - a pointer to a caller allocated UINTN in which the
|
|
||||||
number of consecutive blocks starting with Lba is
|
|
||||||
returned. All blocks in this range have a size of
|
|
||||||
BlockSize
|
|
||||||
|
|
||||||
Returns:
|
@param[in] Instance The FV instance
|
||||||
EFI_SUCCESS - The firmware volume was read successfully and
|
@param[in] StartLba The starting logical block index to be erased
|
||||||
contents are in Buffer
|
@param[in] OffsetStartLba Offset into the starting block at which to
|
||||||
|
begin erasing
|
||||||
|
@param[in] LastLba The last logical block index to be erased
|
||||||
|
@param[in] OffsetLastLba Offset into the last block at which to end erasing
|
||||||
|
|
||||||
EFI_INVALID_PARAMETER - invalid parameter
|
@retval EFI_EFI_SUCCESS Range was erased
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
--*/
|
@retval EFI_UNSUPPORTED Range can not be erased
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiFvbEraseCustomBlockRange (
|
EfiFvbEraseCustomBlockRange (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
@ -218,29 +190,6 @@ EfiFvbEraseCustomBlockRange (
|
|||||||
IN UINTN OffsetStartLba,
|
IN UINTN OffsetStartLba,
|
||||||
IN EFI_LBA LastLba,
|
IN EFI_LBA LastLba,
|
||||||
IN UINTN OffsetLastLba
|
IN UINTN OffsetLastLba
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Erases and initializes a specified range of a firmware volume
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
Instance - The FV instance to be erased
|
|
||||||
StartLba - The starting logical block index to be erased
|
|
||||||
OffsetStartLba - Offset into the starting block at which to
|
|
||||||
begin erasing
|
|
||||||
LastLba - The last logical block index to be erased
|
|
||||||
OffsetLastLba - Offset into the last block at which to end erasing
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
EFI_INVALID_PARAMETER - invalid parameter
|
|
||||||
|
|
||||||
EFI_UNSUPPORTED - not support
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,55 +1,65 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
Graphics Library
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
http://opensource.org/licenses/bsd-license.php
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
--*/
|
|
||||||
|
|
||||||
#ifndef __EFI_GRAPHICS_LIB_H__
|
#ifndef __EFI_GRAPHICS_LIB_H__
|
||||||
#define __EFI_GRAPHICS_LIB_H__
|
#define __EFI_GRAPHICS_LIB_H__
|
||||||
|
|
||||||
#include <Protocol/GraphicsOutput.h>
|
#include <Protocol/GraphicsOutput.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return the graphics image file named FileNameGuid into Image and return it's
|
||||||
|
size in ImageSize. All Firmware Volumes (FV) in the system are searched for the
|
||||||
|
file name.
|
||||||
|
|
||||||
|
@param[in] FileNameGuid File Name of graphics file in the FV(s).
|
||||||
|
@param[out] Image Pointer to pointer to return graphics image. If NULL, a
|
||||||
|
buffer will be allocated.
|
||||||
|
@param[out] ImageSize Size of the graphics Image in bytes. Zero if no image found.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||||
|
@retval EFI_UNSUPPORTED Range can not be erased
|
||||||
|
@retval EFI_SUCCESS Image and ImageSize are valid.
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL Image not big enough. ImageSize has required size
|
||||||
|
@retval EFI_NOT_FOUND FileNameGuid not found
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
GetGraphicsBitMapFromFV (
|
GetGraphicsBitMapFromFV (
|
||||||
IN EFI_GUID *FileNameGuid,
|
IN EFI_GUID *FileNameGuid,
|
||||||
OUT VOID **Image,
|
OUT VOID **Image,
|
||||||
OUT UINTN *ImageSize
|
OUT UINTN *ImageSize
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Return the graphics image file named FileNameGuid into Image and return it's
|
|
||||||
size in ImageSize. All Firmware Volumes (FV) in the system are searched for the
|
|
||||||
file name.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
FileNameGuid - File Name of graphics file in the FV(s).
|
|
||||||
|
|
||||||
Image - Pointer to pointer to return graphics image. If NULL, a
|
|
||||||
buffer will be allocated.
|
|
||||||
|
|
||||||
ImageSize - Size of the graphics Image in bytes. Zero if no image found.
|
|
||||||
|
|
||||||
|
|
||||||
Returns:
|
/**
|
||||||
|
Convert a *.BMP graphics image to a UGA blt buffer. If a NULL UgaBlt buffer
|
||||||
|
is passed in a UgaBlt buffer will be allocated by this routine. If a UgaBlt
|
||||||
|
buffer is passed in it will be used if it is big enough.
|
||||||
|
|
||||||
EFI_SUCCESS - Image and ImageSize are valid.
|
@param[in] BmpImage Pointer to BMP file
|
||||||
EFI_BUFFER_TOO_SMALL - Image not big enough. ImageSize has required size
|
@param[in] BmpImageSize Number of bytes in BmpImage
|
||||||
EFI_NOT_FOUND - FileNameGuid not found
|
@param[in,out] UgaBlt Buffer containing UGA version of BmpImage.
|
||||||
|
@param[in,out] UgaBltSize Size of UgaBlt in bytes.
|
||||||
--*/
|
@param[out] PixelHeight Height of UgaBlt/BmpImage in pixels
|
||||||
;
|
@param[out] PixelWidth Width of UgaBlt/BmpImage in pixels
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS UgaBlt and UgaBltSize are returned.
|
||||||
|
@retval EFI_UNSUPPORTED BmpImage is not a valid *.BMP image
|
||||||
|
@retval EFI_BUFFER_TOO_SMALL The passed in UgaBlt buffer is not big enough.
|
||||||
|
UgaBltSize will contain the required size.
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ConvertBmpToUgaBlt (
|
ConvertBmpToUgaBlt (
|
||||||
IN VOID *BmpImage,
|
IN VOID *BmpImage,
|
||||||
@ -58,113 +68,71 @@ ConvertBmpToUgaBlt (
|
|||||||
IN OUT UINTN *UgaBltSize,
|
IN OUT UINTN *UgaBltSize,
|
||||||
OUT UINTN *PixelHeight,
|
OUT UINTN *PixelHeight,
|
||||||
OUT UINTN *PixelWidth
|
OUT UINTN *PixelWidth
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Convert a *.BMP graphics image to a UGA blt buffer. If a NULL UgaBlt buffer
|
|
||||||
is passed in a UgaBlt buffer will be allocated by this routine. If a UgaBlt
|
|
||||||
buffer is passed in it will be used if it is big enough.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
BmpImage - Pointer to BMP file
|
|
||||||
|
|
||||||
BmpImageSize - Number of bytes in BmpImage
|
|
||||||
|
|
||||||
UgaBlt - Buffer containing UGA version of BmpImage.
|
|
||||||
|
|
||||||
UgaBltSize - Size of UgaBlt in bytes.
|
|
||||||
|
|
||||||
PixelHeight - Height of UgaBlt/BmpImage in pixels
|
|
||||||
|
|
||||||
PixelWidth - Width of UgaBlt/BmpImage in pixels
|
|
||||||
|
|
||||||
|
|
||||||
Returns:
|
/**
|
||||||
|
|
||||||
EFI_SUCCESS - UgaBlt and UgaBltSize are returned.
|
|
||||||
EFI_UNSUPPORTED - BmpImage is not a valid *.BMP image
|
|
||||||
EFI_BUFFER_TOO_SMALL - The passed in UgaBlt buffer is not big enough.
|
|
||||||
UgaBltSize will contain the required size.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EnableQuietBoot (
|
|
||||||
IN EFI_GUID *LogoFile
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Use Console Control to turn off UGA based Simple Text Out consoles from going
|
Use Console Control to turn off UGA based Simple Text Out consoles from going
|
||||||
to the UGA device. Put up LogoFile on every UGA device that is a console
|
to the UGA device. Put up LogoFile on every UGA device that is a console
|
||||||
|
|
||||||
Arguments:
|
@param[in] LogoFile File name of logo to display on the center of the screen.
|
||||||
|
|
||||||
LogoFile - File name of logo to display on the center of the screen.
|
@retval EFI_SUCCESS ConsoleControl has been flipped to graphics and logo displayed.
|
||||||
|
@retval EFI_UNSUPPORTED Logo not found
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS - ConsoleControl has been flipped to graphics and logo
|
|
||||||
displayed.
|
|
||||||
EFI_UNSUPPORTED - Logo not found
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
DisableQuietBoot (
|
EnableQuietBoot (
|
||||||
VOID
|
IN EFI_GUID *LogoFile
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
|
/**
|
||||||
Use Console Control to turn on UGA based Simple Text Out consoles. The UGA
|
Use Console Control to turn on UGA based Simple Text Out consoles. The UGA
|
||||||
Simple Text Out screens will now be synced up with all non UGA output devices
|
Simple Text Out screens will now be synced up with all non UGA output devices
|
||||||
|
|
||||||
Arguments:
|
@retval EFI_SUCCESS UGA devices are back in text mode and synced up.
|
||||||
|
|
||||||
NONE
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS - UGA devices are back in text mode and synced up.
|
|
||||||
EFI_UNSUPPORTED - Logo not found
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
LockKeyboards (
|
DisableQuietBoot (
|
||||||
IN CHAR16 *Password
|
VOID
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
/**
|
||||||
Use Console Control Protocol to lock the Console In Spliter virtual handle.
|
Use Console Control Protocol to lock the Console In Spliter virtual handle.
|
||||||
This is the ConInHandle and ConIn handle in the EFI system table. All key
|
This is the ConInHandle and ConIn handle in the EFI system table. All key
|
||||||
presses will be ignored until the Password is typed in. The only way to
|
presses will be ignored until the Password is typed in. The only way to
|
||||||
disable the password is to type it in to a ConIn device.
|
disable the password is to type it in to a ConIn device.
|
||||||
|
|
||||||
Arguments:
|
@param[in] Password Password used to lock ConIn device.
|
||||||
Password - Password used to lock ConIn device
|
|
||||||
|
@retval EFI_SUCCESS ConsoleControl has been flipped to graphics and logo
|
||||||
|
displayed.
|
||||||
|
@retval EFI_UNSUPPORTED Password not found
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
LockKeyboards (
|
||||||
|
IN CHAR16 *Password
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
Returns:
|
/**
|
||||||
|
Print to graphics screen at the given X,Y coordinates of the graphics screen.
|
||||||
|
see definition of Print to find rules for constructing Fmt.
|
||||||
|
|
||||||
EFI_SUCCESS - ConsoleControl has been flipped to graphics and logo
|
@param[in] X Row to start printing at
|
||||||
displayed.
|
@param[in] Y Column to start printing at
|
||||||
EFI_UNSUPPORTED - Logo not found
|
@param[in] Foreground Foreground color
|
||||||
|
@param[in] Background background color
|
||||||
|
@param[in] Fmt Print format sting. See definition of Print
|
||||||
|
@param[in] ... Argumnet stream defined by Fmt string
|
||||||
|
|
||||||
--*/
|
@retval UINTN Number of Characters printed
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PrintXY (
|
PrintXY (
|
||||||
@ -174,8 +142,7 @@ PrintXY (
|
|||||||
IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Background, OPTIONAL
|
IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Background, OPTIONAL
|
||||||
IN CHAR16 *Fmt,
|
IN CHAR16 *Fmt,
|
||||||
...
|
...
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -31,6 +31,35 @@
|
|||||||
//
|
//
|
||||||
#define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND
|
#define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function test the ready status of the SCSI unit.
|
||||||
|
|
||||||
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
|
@retval EFI_BAD_BUFFER_SIZE The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
|
The actual number of bytes transferred is returned
|
||||||
|
in InTransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitTestUnitReadyCommand (
|
SubmitTestUnitReadyCommand (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -39,29 +68,40 @@ SubmitTestUnitReadyCommand (
|
|||||||
OUT UINT8 *SenseDataLength,
|
OUT UINT8 *SenseDataLength,
|
||||||
OUT UINT8 *HostAdapterStatus,
|
OUT UINT8 *HostAdapterStatus,
|
||||||
OUT UINT8 *TargetStatus
|
OUT UINT8 *TargetStatus
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
TODO: Add function description
|
/**
|
||||||
|
Function to submit SCSI inquiry command.
|
||||||
|
|
||||||
Arguments:
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[in,out] InquirydataBuffer A pointer to inquiry data buffer.
|
||||||
|
@param[in,out] InquiryDataLength The length of inquiry data buffer.
|
||||||
|
@param[in] EnableVitalProductData Boolean to enable Vital Product Data.
|
||||||
|
|
||||||
ScsiIo - TODO: add argument description
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
Timeout - TODO: add argument description
|
@retval EFI_BAD_BUFFER_SIZE The SCSI Request Packet was executed,
|
||||||
SenseData - TODO: add argument description
|
but the entire DataBuffer could not be transferred.
|
||||||
SenseDataLength - TODO: add argument description
|
The actual number of bytes transferred is returned
|
||||||
HostAdapterStatus - TODO: add argument description
|
in TransferLength.
|
||||||
TargetStatus - TODO: add argument description
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
Returns:
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
TODO: add return values
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
--*/
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
;
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitInquiryCommand (
|
SubmitInquiryCommand (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -73,32 +113,42 @@ SubmitInquiryCommand (
|
|||||||
IN OUT VOID *InquiryDataBuffer,
|
IN OUT VOID *InquiryDataBuffer,
|
||||||
IN OUT UINT32 *InquiryDataLength,
|
IN OUT UINT32 *InquiryDataLength,
|
||||||
IN BOOLEAN EnableVitalProductData
|
IN BOOLEAN EnableVitalProductData
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
TODO: Add function description
|
/**
|
||||||
|
Function to submit SCSI mode sense 10 command.
|
||||||
|
|
||||||
Arguments:
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[in] DataBuffer A pointer to input data buffer.
|
||||||
|
@param[in,out] DataLength The length of input data buffer.
|
||||||
|
@param[in] DBDField The DBD Field (Optional).
|
||||||
|
@param[in] PageControl Page Control.
|
||||||
|
@param[in] PageCode Page code.
|
||||||
|
|
||||||
ScsiIo - TODO: add argument description
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
Timeout - TODO: add argument description
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
SenseData - TODO: add argument description
|
but the entire DataBuffer could not be transferred.
|
||||||
SenseDataLength - TODO: add argument description
|
The actual number of bytes transferred is returned
|
||||||
HostAdapterStatus - TODO: add argument description
|
in TransferLength.
|
||||||
TargetStatus - TODO: add argument description
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
InquiryDataBuffer - TODO: add argument description
|
there are too many SCSI Command Packets already
|
||||||
InquiryDataLength - TODO: add argument description
|
queued.
|
||||||
EnableVitalProductData - TODO: add argument description
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
Returns:
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
TODO: add return values
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
--*/
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
;
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitModeSense10Command (
|
SubmitModeSense10Command (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -112,34 +162,45 @@ SubmitModeSense10Command (
|
|||||||
IN UINT8 DBDField, OPTIONAL
|
IN UINT8 DBDField, OPTIONAL
|
||||||
IN UINT8 PageControl,
|
IN UINT8 PageControl,
|
||||||
IN UINT8 PageCode
|
IN UINT8 PageCode
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
TODO: Add function description
|
|
||||||
|
|
||||||
Arguments:
|
/**
|
||||||
|
Function to submit SCSI request sense command.
|
||||||
|
ScsiIo - A pointer to SCSI IO protocol.
|
||||||
|
Timeout - The length of timeout period.
|
||||||
|
SenseData - A pointer to output sense data.
|
||||||
|
SenseDataLength - The length of output sense data.
|
||||||
|
HostAdapterStatus - The status of Host Adapter.
|
||||||
|
TargetStatus - The status of the target.
|
||||||
|
|
||||||
ScsiIo - TODO: add argument description
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
Timeout - TODO: add argument description
|
@param[in] Timeout TODO:
|
||||||
SenseData - TODO: add argument description
|
@param[out] SenseData TODO:
|
||||||
SenseDataLength - TODO: add argument description
|
@param[in,out] SenseDataLength TODO:
|
||||||
HostAdapterStatus - TODO: add argument description
|
@param[out] HostAdapterStatus TODO:
|
||||||
TargetStatus - TODO: add argument description
|
@param[out] TargetStatus TODO:
|
||||||
DataBuffer - TODO: add argument description
|
|
||||||
DataLength - TODO: add argument description
|
|
||||||
DBDField - TODO: add argument description
|
|
||||||
PageControl - TODO: add argument description
|
|
||||||
PageCode - TODO: add argument description
|
|
||||||
|
|
||||||
Returns:
|
@retval EFI_SUCCESS Valid data returned
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
TODO: add return values
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
--*/
|
The actual number of bytes transferred is returned
|
||||||
;
|
in TransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitRequestSenseCommand (
|
SubmitRequestSenseCommand (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -148,32 +209,40 @@ SubmitRequestSenseCommand (
|
|||||||
IN OUT UINT8 *SenseDataLength,
|
IN OUT UINT8 *SenseDataLength,
|
||||||
OUT UINT8 *HostAdapterStatus,
|
OUT UINT8 *HostAdapterStatus,
|
||||||
OUT UINT8 *TargetStatus
|
OUT UINT8 *TargetStatus
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
TODO: Add function description
|
/**
|
||||||
|
Function to submit read capacity command.
|
||||||
|
|
||||||
Arguments:
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[out] DataBuffer A pointer to a data buffer.
|
||||||
|
@param[in,out] DataLength The length of data buffer.
|
||||||
|
@param[in] PMI Partial medium indicator.
|
||||||
|
|
||||||
ScsiIo - TODO: add argument description
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
Timeout - TODO: add argument description
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
SenseData - TODO: add argument description
|
but the entire DataBuffer could not be transferred.
|
||||||
SenseDataLength - TODO: add argument description
|
The actual number of bytes transferred is returned
|
||||||
HostAdapterStatus - TODO: add argument description
|
in TransferLength.
|
||||||
TargetStatus - TODO: add argument description
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
Returns:
|
**/
|
||||||
|
|
||||||
TODO: add return values
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Commands for direct access command
|
|
||||||
//
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitReadCapacityCommand (
|
SubmitReadCapacityCommand (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -185,32 +254,41 @@ SubmitReadCapacityCommand (
|
|||||||
OUT VOID *DataBuffer,
|
OUT VOID *DataBuffer,
|
||||||
IN OUT UINT32 *DataLength,
|
IN OUT UINT32 *DataLength,
|
||||||
IN BOOLEAN PMI
|
IN BOOLEAN PMI
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
TODO: Add function description
|
/**
|
||||||
|
Function to submit read 10 command.
|
||||||
|
|
||||||
Arguments:
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[out] DataBuffer Read 10 command data.
|
||||||
|
@param[in,out] DataLength The length of data buffer.
|
||||||
|
@param[in] StartLba The start address of LBA.
|
||||||
|
@param[in] SectorSize The sector size.
|
||||||
|
|
||||||
ScsiIo - TODO: add argument description
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
Timeout - TODO: add argument description
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
SenseData - TODO: add argument description
|
but the entire DataBuffer could not be transferred.
|
||||||
SenseDataLength - TODO: add argument description
|
The actual number of bytes transferred is returned
|
||||||
HostAdapterStatus - TODO: add argument description
|
in TransferLength.
|
||||||
TargetStatus - TODO: add argument description
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
DataBuffer - TODO: add argument description
|
there are too many SCSI Command Packets already
|
||||||
DataLength - TODO: add argument description
|
queued.
|
||||||
PMI - TODO: add argument description
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
Returns:
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
TODO: add return values
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
--*/
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
;
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitRead10Command (
|
SubmitRead10Command (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -223,33 +301,41 @@ SubmitRead10Command (
|
|||||||
IN OUT UINT32 *DataLength,
|
IN OUT UINT32 *DataLength,
|
||||||
IN UINT32 StartLba,
|
IN UINT32 StartLba,
|
||||||
IN UINT32 SectorSize
|
IN UINT32 SectorSize
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
TODO: Add function description
|
/**
|
||||||
|
Function to submit SCSI write 10 command.
|
||||||
|
|
||||||
Arguments:
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[out] DataBuffer A pointer to a data buffer.
|
||||||
|
@param[in,out] DataLength The length of data buffer.
|
||||||
|
@param[in] StartLba The start address of LBA.
|
||||||
|
@param[in] SectorSize The sector size.
|
||||||
|
|
||||||
ScsiIo - TODO: add argument description
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
Timeout - TODO: add argument description
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
SenseData - TODO: add argument description
|
but the entire DataBuffer could not be transferred.
|
||||||
SenseDataLength - TODO: add argument description
|
The actual number of bytes transferred is returned
|
||||||
HostAdapterStatus - TODO: add argument description
|
in InTransferLength.
|
||||||
TargetStatus - TODO: add argument description
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
DataBuffer - TODO: add argument description
|
there are too many SCSI Command Packets already
|
||||||
DataLength - TODO: add argument description
|
queued.
|
||||||
StartLba - TODO: add argument description
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
SectorSize - TODO: add argument description
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
Returns:
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
TODO: add return values
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
--*/
|
Request Packet to execute.
|
||||||
;
|
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitWrite10Command (
|
SubmitWrite10Command (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -262,31 +348,7 @@ SubmitWrite10Command (
|
|||||||
IN OUT UINT32 *DataLength,
|
IN OUT UINT32 *DataLength,
|
||||||
IN UINT32 StartLba,
|
IN UINT32 StartLba,
|
||||||
IN UINT32 SectorSize
|
IN UINT32 SectorSize
|
||||||
)
|
);
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
TODO: Add function description
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
ScsiIo - TODO: add argument description
|
|
||||||
Timeout - TODO: add argument description
|
|
||||||
SenseData - TODO: add argument description
|
|
||||||
SenseDataLength - TODO: add argument description
|
|
||||||
HostAdapterStatus - TODO: add argument description
|
|
||||||
TargetStatus - TODO: add argument description
|
|
||||||
DataBuffer - TODO: add argument description
|
|
||||||
DataLength - TODO: add argument description
|
|
||||||
StartLba - TODO: add argument description
|
|
||||||
SectorSize - TODO: add argument description
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
TODO: add return values
|
|
||||||
|
|
||||||
--*/
|
|
||||||
;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -142,8 +142,7 @@ EfiGetVariable (
|
|||||||
OUT UINT32 *Attributes,
|
OUT UINT32 *Attributes,
|
||||||
IN OUT UINTN *DataSize,
|
IN OUT UINTN *DataSize,
|
||||||
OUT VOID *Data
|
OUT VOID *Data
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Enumerates variable's name.
|
Enumerates variable's name.
|
||||||
@ -280,7 +279,7 @@ EfiSetVirtualAddressMap (
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Conver the standard Lib double linked list to a virtual mapping.
|
Convert the standard Lib double linked list to a virtual mapping.
|
||||||
|
|
||||||
@param DebugDisposition Supplies type information for the pointer being converted.
|
@param DebugDisposition Supplies type information for the pointer being converted.
|
||||||
@param ListHead Head of linked list to convert.
|
@param ListHead Head of linked list to convert.
|
||||||
@ -297,7 +296,6 @@ EfiConvertList (
|
|||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Passes capsules to the firmware with both virtual and physical mapping.
|
Passes capsules to the firmware with both virtual and physical mapping.
|
||||||
Depending on the intended consumption, the firmware may
|
Depending on the intended consumption, the firmware may
|
||||||
process the capsule immediately. If the payload should persist across a
|
process the capsule immediately. If the payload should persist across a
|
||||||
@ -339,7 +337,6 @@ EfiUpdateCapsule (
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
The QueryCapsuleCapabilities() function allows a caller to test to see if a capsule or
|
The QueryCapsuleCapabilities() function allows a caller to test to see if a capsule or
|
||||||
capsules can be updated via UpdateCapsule(). The Flags values in the capsule header and
|
capsules can be updated via UpdateCapsule(). The Flags values in the capsule header and
|
||||||
size of the entire capsule is checked.
|
size of the entire capsule is checked.
|
||||||
@ -381,7 +378,6 @@ EfiQueryCapsuleCapabilities (
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
The QueryVariableInfo() function allows a caller to obtain the information about the
|
The QueryVariableInfo() function allows a caller to obtain the information about the
|
||||||
maximum size of the storage space available for the EFI variables, the remaining size of the storage
|
maximum size of the storage space available for the EFI variables, the remaining size of the storage
|
||||||
space available for the EFI variables and the maximum size of each individual EFI variable,
|
space available for the EFI variables and the maximum size of each individual EFI variable,
|
||||||
|
@ -94,49 +94,51 @@ typedef struct {
|
|||||||
OUT VOID *pvOutBuffer;
|
OUT VOID *pvOutBuffer;
|
||||||
IN UINT64 ui64OutBufferSize;
|
IN UINT64 ui64OutBufferSize;
|
||||||
OUT UINT64 ui64BytesReturned;
|
OUT UINT64 ui64BytesReturned;
|
||||||
}
|
} UGA_IO_REQUEST, *PUGA_IO_REQUEST;
|
||||||
UGA_IO_REQUEST, *PUGA_IO_REQUEST;
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Dynamically allocate storage for a child UGA_DEVICE .
|
||||||
|
|
||||||
|
@param[in] This The EFI_UGA_IO_PROTOCOL instance. Type EFI_UGA_IO_PROTOCOL is
|
||||||
|
defined in Section 10.7.
|
||||||
|
@param[in] ParentDevice ParentDevice specifies a pointer to the parent device of Device.
|
||||||
|
@param[in] DeviceData A pointer to UGA_DEVICE_DATA returned from a call to DispatchService()
|
||||||
|
with a UGA_DEVICE of Parent and an IoRequest of type UgaIoGetChildDevice.
|
||||||
|
@param[in] RunTimeContext Context to associate with Device.
|
||||||
|
@param[out] Device The Device returns a dynamically allocated child UGA_DEVICE object
|
||||||
|
for ParentDevice. The caller is responsible for deleting Device.
|
||||||
|
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Device was returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER One of the arguments was not valid.
|
||||||
|
@retval EFI_DEVICE_ERROR The device had an error and could not complete the request.
|
||||||
|
|
||||||
|
**/
|
||||||
typedef
|
typedef
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
(EFIAPI *EFI_UGA_IO_PROTOCOL_CREATE_DEVICE) (
|
(EFIAPI *EFI_UGA_IO_PROTOCOL_CREATE_DEVICE) (
|
||||||
IN EFI_UGA_IO_PROTOCOL * This,
|
IN EFI_UGA_IO_PROTOCOL *This,
|
||||||
IN UGA_DEVICE * ParentDevice,
|
IN UGA_DEVICE *ParentDevice,
|
||||||
IN UGA_DEVICE_DATA * DeviceData,
|
IN UGA_DEVICE_DATA *DeviceData,
|
||||||
IN VOID *RunTimeContext,
|
IN VOID *RunTimeContext,
|
||||||
OUT UGA_DEVICE **Device
|
OUT UGA_DEVICE **Device
|
||||||
);
|
);
|
||||||
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
/**
|
||||||
|
Delete a dynamically allocated child UGA_DEVICE object that was allocated via CreateDevice() .
|
||||||
|
|
||||||
Dynamically allocate storage for a child UGA_DEVICE .
|
@param[in] This The EFI_UGA_IO_PROTOCOL instance. Type EFI_UGA_IO_PROTOCOL is
|
||||||
|
defined in Section 10.7.
|
||||||
|
@param[in] Device The Device points to a UGA_DEVICE object that was dynamically
|
||||||
|
allocated via a CreateDevice() call.
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
This - The EFI_UGA_IO_PROTOCOL instance. Type EFI_UGA_IO_PROTOCOL is
|
@retval EFI_SUCCESS Device was returned.
|
||||||
defined in Section 10.7.
|
@retval EFI_INVALID_PARAMETER The Device was not allocated via CreateDevice().
|
||||||
|
|
||||||
ParentDevice - ParentDevice specifies a pointer to the parent device of Device.
|
**/
|
||||||
|
|
||||||
DeviceData - A pointer to UGA_DEVICE_DATA returned from a call to DispatchService()
|
|
||||||
with a UGA_DEVICE of Parent and an IoRequest of type UgaIoGetChildDevice.
|
|
||||||
|
|
||||||
RuntimeContext - Context to associate with Device.
|
|
||||||
|
|
||||||
Device - The Device returns a dynamically allocated child UGA_DEVICE object
|
|
||||||
for ParentDevice. The caller is responsible for deleting Device.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS - Device was returned.
|
|
||||||
|
|
||||||
EFI_INVALID_PARAMETER - One of the arguments was not valid.
|
|
||||||
|
|
||||||
EFI_DEVICE_ERROR - The device had an error and could not complete the request.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
typedef
|
typedef
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
(EFIAPI *EFI_UGA_IO_PROTOCOL_DELETE_DEVICE) (
|
(EFIAPI *EFI_UGA_IO_PROTOCOL_DELETE_DEVICE) (
|
||||||
@ -144,31 +146,10 @@ EFI_STATUS
|
|||||||
IN UGA_DEVICE * Device
|
IN UGA_DEVICE * Device
|
||||||
);
|
);
|
||||||
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Delete a dynamically allocated child UGA_DEVICE object that was allocated via
|
|
||||||
CreateDevice() .
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
This - The EFI_UGA_IO_PROTOCOL instance. Type EFI_UGA_IO_PROTOCOL is defined
|
|
||||||
in Section 10.7.
|
|
||||||
|
|
||||||
Device - The Device points to a UGA_DEVICE object that was dynamically
|
|
||||||
allocated via a CreateDevice() call.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS - Device was deleted.
|
|
||||||
|
|
||||||
EFI_INVALID_PARAMETER - The Device was not allocated via CreateDevice()
|
|
||||||
|
|
||||||
--*/
|
|
||||||
typedef UGA_STATUS (EFIAPI *PUGA_FW_SERVICE_DISPATCH) (IN PUGA_DEVICE pDevice, IN OUT PUGA_IO_REQUEST pIoRequest);
|
typedef UGA_STATUS (EFIAPI *PUGA_FW_SERVICE_DISPATCH) (IN PUGA_DEVICE pDevice, IN OUT PUGA_IO_REQUEST pIoRequest);
|
||||||
|
|
||||||
/*++
|
/**
|
||||||
|
|
||||||
Routine Description:
|
Routine Description:
|
||||||
|
|
||||||
@ -190,7 +171,7 @@ typedef UGA_STATUS (EFIAPI *PUGA_FW_SERVICE_DISPATCH) (IN PUGA_DEVICE pDevice, I
|
|||||||
|
|
||||||
Varies depending on pIoRequest.
|
Varies depending on pIoRequest.
|
||||||
|
|
||||||
--*/
|
**/
|
||||||
struct _EFI_UGA_IO_PROTOCOL {
|
struct _EFI_UGA_IO_PROTOCOL {
|
||||||
EFI_UGA_IO_PROTOCOL_CREATE_DEVICE CreateDevice;
|
EFI_UGA_IO_PROTOCOL_CREATE_DEVICE CreateDevice;
|
||||||
EFI_UGA_IO_PROTOCOL_DELETE_DEVICE DeleteDevice;
|
EFI_UGA_IO_PROTOCOL_DELETE_DEVICE DeleteDevice;
|
||||||
|
@ -1,21 +1,33 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
Null implementation of the custom decompress library
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
http://opensource.org/licenses/bsd-license.php
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
--*/
|
|
||||||
|
|
||||||
#include <Base.h>
|
#include <Base.h>
|
||||||
#include <Library/CustomDecompressLib.h>
|
#include <Library/CustomDecompressLib.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
The internal implementation of *_DECOMPRESS_PROTOCOL.GetInfo().
|
||||||
|
|
||||||
|
@param[in] Source The source buffer containing the compressed data.
|
||||||
|
@param[in] SourceSize The size of source buffer
|
||||||
|
@param[out] DestinationSize The size of destination buffer.
|
||||||
|
@param[out] ScratchSize The size of scratch buffer.
|
||||||
|
|
||||||
|
@retval RETURN_SUCCESS The size of destination buffer and the size of scratch buffer are successull retrieved.
|
||||||
|
@retval RETURN_INVALID_PARAMETER The source data is corrupted
|
||||||
|
|
||||||
|
**/
|
||||||
RETURN_STATUS
|
RETURN_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
CustomDecompressGetInfo (
|
CustomDecompressGetInfo (
|
||||||
@ -24,29 +36,23 @@ CustomDecompressGetInfo (
|
|||||||
OUT UINT32 *DestinationSize,
|
OUT UINT32 *DestinationSize,
|
||||||
OUT UINT32 *ScratchSize
|
OUT UINT32 *ScratchSize
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
The internal implementation of *_DECOMPRESS_PROTOCOL.GetInfo().
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Source - The source buffer containing the compressed data.
|
|
||||||
SourceSize - The size of source buffer
|
|
||||||
DestinationSize - The size of destination buffer.
|
|
||||||
ScratchSize - The size of scratch buffer.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
RETURN_SUCCESS - The size of destination buffer and the size of scratch buffer are successull retrieved.
|
|
||||||
RETURN_INVALID_PARAMETER - The source data is corrupted
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return RETURN_UNSUPPORTED;
|
return RETURN_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
The internal implementation of *_DECOMPRESS_PROTOCOL.Decompress().
|
||||||
|
|
||||||
|
@param[in] Source The source buffer containing the compressed data.
|
||||||
|
@param[in] Destination The destination buffer to store the decompressed data
|
||||||
|
@param[out] Scratch The buffer used internally by the decompress routine. This buffer is needed to store intermediate data.
|
||||||
|
|
||||||
|
|
||||||
|
@retval RETURN_SUCCESS Decompression is successfull
|
||||||
|
@retval RETURN_INVALID_PARAMETER The source data is corrupted
|
||||||
|
|
||||||
|
**/
|
||||||
RETURN_STATUS
|
RETURN_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
CustomDecompress (
|
CustomDecompress (
|
||||||
@ -54,24 +60,6 @@ CustomDecompress (
|
|||||||
IN OUT VOID *Destination,
|
IN OUT VOID *Destination,
|
||||||
IN OUT VOID *Scratch
|
IN OUT VOID *Scratch
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
The internal implementation of *_DECOMPRESS_PROTOCOL.Decompress().
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Source - The source buffer containing the compressed data.
|
|
||||||
Destination - The destination buffer to store the decompressed data
|
|
||||||
Scratch - The buffer used internally by the decompress routine. This buffer is needed to store intermediate data.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
RETURN_SUCCESS - Decompression is successfull
|
|
||||||
RETURN_INVALID_PARAMETER - The source data is corrupted
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return RETURN_UNSUPPORTED;
|
return RETURN_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
PEI Services Table Pointer Library for IA-32 and X64.
|
||||||
|
|
||||||
Copyright (c) 2006 Intel Corporation. All rights reserved
|
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||||
This software and associated documentation (if any) is furnished
|
All rights reserved. This program and the accompanying materials
|
||||||
under a license and may only be used or copied in accordance
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
with the terms of the license. Except as permitted by such
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
license, no part of this software or documentation may be
|
http://opensource.org/licenses/bsd-license.php
|
||||||
reproduced, stored in a retrieval system, or transmitted in any
|
|
||||||
form or by any means without the express written consent of
|
|
||||||
Intel Corporation.
|
|
||||||
|
|
||||||
PEI Services Table Pointer Library.
|
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 "InternalPeiServicesTablePointer.h"
|
#include "InternalPeiServicesTablePointer.h"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
The function returns the pointer to PeiServicee following
|
The function returns the pointer to PeiServicee following
|
||||||
@ -23,8 +23,7 @@ Intel Corporation.
|
|||||||
For IA32, the four-bytes field immediately prior to new IDT
|
For IA32, the four-bytes field immediately prior to new IDT
|
||||||
base addres is used to save the EFI_PEI_SERVICES**.
|
base addres is used to save the EFI_PEI_SERVICES**.
|
||||||
For x64, the eight-bytes field immediately prior to new IDT
|
For x64, the eight-bytes field immediately prior to new IDT
|
||||||
base addres is used to save the EFI_PEI_SERVICES**.
|
base addres is used to save the EFI_PEI_SERVICES**
|
||||||
|
|
||||||
@retval The pointer to PeiServices.
|
@retval The pointer to PeiServices.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
@ -1,19 +1,18 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
PEI Services Table Pointer Library implementation for IPF that uses Kernel
|
||||||
|
Register 7 to store the pointer.
|
||||||
|
|
||||||
Copyright (c) 2006 Intel Corporation. All rights reserved
|
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||||
This software and associated documentation (if any) is furnished
|
All rights reserved. This program and the accompanying materials
|
||||||
under a license and may only be used or copied in accordance
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
with the terms of the license. Except as permitted by such
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
license, no part of this software or documentation may be
|
http://opensource.org/licenses/bsd-license.php
|
||||||
reproduced, stored in a retrieval system, or transmitted in any
|
|
||||||
form or by any means without the express written consent of
|
|
||||||
Intel Corporation.
|
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
PEI Services Table Pointer Library.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
|
|
||||||
|
@ -1,20 +1,37 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
UEFI Runtime Library implementation for non IPF processor types.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation
|
This library hides the global variable for the EFI Runtime Services so the
|
||||||
All rights reserved. This program and the accompanying materials
|
caller does not need to deal with the possiblitly of being called from an
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
OS virtual address space. All pointer values are different for a virtual
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
mapping than from the normal physical mapping at boot services time.
|
||||||
http://opensource.org/licenses/bsd-license.php
|
|
||||||
|
|
||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
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 <PiDxe.h>
|
#include <PiDxe.h>
|
||||||
|
|
||||||
#include <RuntimeLibInternal.h>
|
#include <RuntimeLibInternal.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Resets the entire platform.
|
||||||
|
|
||||||
|
@param ResetType The type of reset to perform.
|
||||||
|
@param ResetStatus The status code for reset.
|
||||||
|
@param DataSize The size in bytes of reset data.
|
||||||
|
@param ResetData Pointer to data buffer that includes
|
||||||
|
Null-Terminated Unicode string.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiResetSystem (
|
EfiResetSystem (
|
||||||
@ -23,85 +40,64 @@ EfiResetSystem (
|
|||||||
IN UINTN DataSize,
|
IN UINTN DataSize,
|
||||||
IN CHAR16 *ResetData
|
IN CHAR16 *ResetData
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Resets the entire platform.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
ResetType - The type of reset to perform.
|
|
||||||
ResetStatus - The status code for the reset.
|
|
||||||
DataSize - The size, in bytes, of ResetData.
|
|
||||||
ResetData - A data buffer that includes a Null-terminated Unicode string, optionally
|
|
||||||
followed by additional binary data.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
mRT->ResetSystem (ResetType, ResetStatus, DataSize, ResetData);
|
mRT->ResetSystem (ResetType, ResetStatus, DataSize, ResetData);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// The following functions hide the mRT local global from the call to
|
/**
|
||||||
// runtime service in the EFI system table.
|
Return current time and date information, and time-keeping
|
||||||
//
|
capabilities of hardware platform.
|
||||||
|
|
||||||
|
@param Time A pointer to storage to receive a snapshot of the current time.
|
||||||
|
@param Capabilities An optional pointer to a buffer to receive the real time clock device's
|
||||||
|
capabilities.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiGetTime (
|
EfiGetTime (
|
||||||
OUT EFI_TIME *Time,
|
OUT EFI_TIME *Time,
|
||||||
OUT EFI_TIME_CAPABILITIES *Capabilities
|
OUT EFI_TIME_CAPABILITIES *Capabilities
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Returns the current time and date information, and the time-keeping
|
|
||||||
capabilities of the hardware platform.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Time - A pointer to storage to receive a snapshot of the current time.
|
|
||||||
Capabilities - An optional pointer to a buffer to receive the real time clock device's
|
|
||||||
capabilities.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->GetTime (Time, Capabilities);
|
return mRT->GetTime (Time, Capabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Set current time and date information.
|
||||||
|
|
||||||
|
@param Time A pointer to cache of time setting.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to execute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiSetTime (
|
EfiSetTime (
|
||||||
IN EFI_TIME *Time
|
IN EFI_TIME *Time
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Sets the current local time and date information.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Time - A pointer to the current time.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->SetTime (Time);
|
return mRT->SetTime (Time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return current wakeup alarm clock setting.
|
||||||
|
|
||||||
|
@param Enabled Indicate if the alarm clock is enabled or disabled.
|
||||||
|
@param Pending Indicate if the alarm signal is pending and requires acknowledgement.
|
||||||
|
@param Time Current alarm clock setting.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiGetWakeupTime (
|
EfiGetWakeupTime (
|
||||||
@ -109,57 +105,49 @@ EfiGetWakeupTime (
|
|||||||
OUT BOOLEAN *Pending,
|
OUT BOOLEAN *Pending,
|
||||||
OUT EFI_TIME *Time
|
OUT EFI_TIME *Time
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Returns the current wakeup alarm clock setting.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Enabled - Indicates if the alarm is currently enabled or disabled.
|
|
||||||
Pending - Indicates if the alarm signal is pending and requires acknowledgement.
|
|
||||||
Time - The current alarm setting.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->GetWakeupTime (Enabled, Pending, Time);
|
return mRT->GetWakeupTime (Enabled, Pending, Time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Set current wakeup alarm clock.
|
||||||
|
|
||||||
|
@param Enable Enable or disable current alarm clock..
|
||||||
|
@param Time Point to alarm clock setting.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiSetWakeupTime (
|
EfiSetWakeupTime (
|
||||||
IN BOOLEAN Enable,
|
IN BOOLEAN Enable,
|
||||||
IN EFI_TIME *Time
|
IN EFI_TIME *Time
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Sets the system wakeup alarm clock time.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Enable - Enable or disable the wakeup alarm.
|
|
||||||
Time - If Enable is TRUE, the time to set the wakeup alarm for.
|
|
||||||
If Enable is FALSE, then this parameter is optional, and may be NULL.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->SetWakeupTime (Enable, Time);
|
return mRT->SetWakeupTime (Enable, Time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return value of variable.
|
||||||
|
|
||||||
|
@param VariableName the name of the vendor's variable, it's a
|
||||||
|
Null-Terminated Unicode String
|
||||||
|
@param VendorGuid Unify identifier for vendor.
|
||||||
|
@param Attributes Point to memory location to return the attributes of variable. If the point
|
||||||
|
is NULL, the parameter would be ignored.
|
||||||
|
@param DataSize As input, point to the maxinum size of return Data-Buffer.
|
||||||
|
As output, point to the actual size of the returned Data-Buffer.
|
||||||
|
@param Data Point to return Data-Buffer.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiGetVariable (
|
EfiGetVariable (
|
||||||
@ -169,32 +157,28 @@ EfiGetVariable (
|
|||||||
IN OUT UINTN *DataSize,
|
IN OUT UINTN *DataSize,
|
||||||
OUT VOID *Data
|
OUT VOID *Data
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Returns the value of a variable.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
VariableName - A Null-terminated Unicode string that is the name of the
|
|
||||||
vendor's variable.
|
|
||||||
VendorGuid - A unique identifier for the vendor.
|
|
||||||
Attributes - If not NULL, a pointer to the memory location to return the
|
|
||||||
attributes bitmask for the variable.
|
|
||||||
DataSize - On input, the size in bytes of the return Data buffer.
|
|
||||||
On output the size of data returned in Data.
|
|
||||||
Data - The buffer to return the contents of the variable.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->GetVariable (VariableName, VendorGuid, Attributes, DataSize, Data);
|
return mRT->GetVariable (VariableName, VendorGuid, Attributes, DataSize, Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enumerates variable's name.
|
||||||
|
|
||||||
|
@param VariableNameSize As input, point to maxinum size of variable name.
|
||||||
|
As output, point to actual size of varaible name.
|
||||||
|
@param VariableName As input, supplies the last VariableName that was returned by
|
||||||
|
GetNextVariableName().
|
||||||
|
As output, returns the name of variable. The name
|
||||||
|
string is Null-Terminated Unicode string.
|
||||||
|
@param VendorGuid As input, supplies the last VendorGuid that was returned by
|
||||||
|
GetNextVriableName().
|
||||||
|
As output, returns the VendorGuid of the current variable.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiGetNextVariableName (
|
EfiGetNextVariableName (
|
||||||
@ -202,32 +186,26 @@ EfiGetNextVariableName (
|
|||||||
IN OUT CHAR16 *VariableName,
|
IN OUT CHAR16 *VariableName,
|
||||||
IN OUT EFI_GUID *VendorGuid
|
IN OUT EFI_GUID *VendorGuid
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Enumerates the current variable names.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
VariableNameSize - The size of the VariableName buffer.
|
|
||||||
VariableName - On input, supplies the last VariableName that was returned
|
|
||||||
by GetNextVariableName().
|
|
||||||
On output, returns the Nullterminated Unicode string of the
|
|
||||||
current variable.
|
|
||||||
VendorGuid - On input, supplies the last VendorGuid that was returned by
|
|
||||||
GetNextVariableName().
|
|
||||||
On output, returns the VendorGuid of the current variable.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->GetNextVariableName (VariableNameSize, VariableName, VendorGuid);
|
return mRT->GetNextVariableName (VariableNameSize, VariableName, VendorGuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets value of variable.
|
||||||
|
|
||||||
|
@param VariableName the name of the vendor's variable, it's a
|
||||||
|
Null-Terminated Unicode String
|
||||||
|
@param VendorGuid Unify identifier for vendor.
|
||||||
|
@param Attributes Point to memory location to return the attributes of variable. If the point
|
||||||
|
is NULL, the parameter would be ignored.
|
||||||
|
@param DataSize The size in bytes of Data-Buffer.
|
||||||
|
@param Data Point to the content of the variable.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiSetVariable (
|
EfiSetVariable (
|
||||||
@ -237,104 +215,69 @@ EfiSetVariable (
|
|||||||
IN UINTN DataSize,
|
IN UINTN DataSize,
|
||||||
IN VOID *Data
|
IN VOID *Data
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Sets the value of a variable.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
VariableName - A Null-terminated Unicode string that is the name of the
|
|
||||||
vendor's variable.
|
|
||||||
VendorGuid - A unique identifier for the vendor.
|
|
||||||
Attributes - Attributes bitmask to set for the variable.
|
|
||||||
DataSize - The size in bytes of the Data buffer.
|
|
||||||
Data - The contents for the variable.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->SetVariable (VariableName, VendorGuid, Attributes, DataSize, Data);
|
return mRT->SetVariable (VariableName, VendorGuid, Attributes, DataSize, Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns the next high 32 bits of platform's monotonic counter.
|
||||||
|
|
||||||
|
@param HighCount Pointer to returned value.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiGetNextHighMonotonicCount (
|
EfiGetNextHighMonotonicCount (
|
||||||
OUT UINT32 *HighCount
|
OUT UINT32 *HighCount
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Returns the next high 32 bits of the platform's monotonic counter.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
HighCount - Pointer to returned value.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->GetNextHighMonotonicCount (HighCount);
|
return mRT->GetNextHighMonotonicCount (HighCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Determines the new virtual address that is to be used on subsequent memory accesses.
|
||||||
|
|
||||||
|
@param DebugDisposition Supplies type information for the pointer being converted.
|
||||||
|
@param Address The pointer to a pointer that is to be fixed to be the
|
||||||
|
value needed for the new virtual address mapping being
|
||||||
|
applied.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiConvertPointer (
|
EfiConvertPointer (
|
||||||
IN UINTN DebugDisposition,
|
IN UINTN DebugDisposition,
|
||||||
IN OUT VOID **Address
|
IN OUT VOID **Address
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Determines the new virtual address that is to be used on subsequent memory accesses.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
DebugDisposition - Supplies type information for the pointer being converted.
|
|
||||||
Address - A pointer to a pointer that is to be fixed to be the value needed
|
|
||||||
for the new virtual address mappings being applied.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Status code
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return mRT->ConvertPointer (DebugDisposition, Address);
|
return mRT->ConvertPointer (DebugDisposition, Address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Conver the standard Lib double linked list to a virtual mapping.
|
||||||
|
|
||||||
|
@param DebugDisposition Supplies type information for the pointer being converted.
|
||||||
|
@param ListHead Head of linked list to convert.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Success to execute the function.
|
||||||
|
@retval !EFI_SUCCESS Failed to e3xecute the function.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiConvertList (
|
EfiConvertList (
|
||||||
IN UINTN DebugDisposition,
|
IN UINTN DebugDisposition,
|
||||||
IN OUT LIST_ENTRY *ListHead
|
IN OUT LIST_ENTRY *ListHead
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Conver the standard Lib double linked list to a virtual mapping.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
DebugDisposition - Argument to EfiConvertPointer (EFI 1.0 API)
|
|
||||||
|
|
||||||
ListHead - Head of linked list to convert
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
LIST_ENTRY *Link;
|
LIST_ENTRY *Link;
|
||||||
LIST_ENTRY *NextLink;
|
LIST_ENTRY *NextLink;
|
||||||
@ -401,6 +344,38 @@ EfiSetVirtualAddressMap (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Passes capsules to the firmware with both virtual and physical mapping.
|
||||||
|
Depending on the intended consumption, the firmware may
|
||||||
|
process the capsule immediately. If the payload should persist across a
|
||||||
|
system reset, the reset value returned from EFI_QueryCapsuleCapabilities must
|
||||||
|
be passed into ResetSystem() and will cause the capsule to be processed by
|
||||||
|
the firmware as part of the reset process.
|
||||||
|
|
||||||
|
@param CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
|
||||||
|
being passed into update capsule. Each capsules is assumed to
|
||||||
|
stored in contiguous virtual memory. The capsules in the
|
||||||
|
CapsuleHeaderArray must be the same capsules as the
|
||||||
|
ScatterGatherList. The CapsuleHeaderArray must
|
||||||
|
have the capsules in the same order as the ScatterGatherList.
|
||||||
|
@param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
|
||||||
|
CaspuleHeaderArray.
|
||||||
|
@param ScatterGatherList Physical pointer to a set of
|
||||||
|
EFI_CAPSULE_BLOCK_DESCRIPTOR that describes the
|
||||||
|
location in physical memory of a set of capsules. See Related
|
||||||
|
Definitions for an explanation of how more than one capsule is
|
||||||
|
passed via this interface. The capsules in the
|
||||||
|
ScatterGatherList must be in the same order as the
|
||||||
|
CapsuleHeaderArray. This parameter is only referenced if
|
||||||
|
the capsules are defined to persist across system reset.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Valid capsule was passed. I Valid capsule was passed. If
|
||||||
|
CAPSULE_FLAGS_PERSIT_ACROSS_RESET is not set, the
|
||||||
|
capsule has been successfully processed by the firmware.
|
||||||
|
@retval EFI_INVALID_PARAMETER CapsuleSize is NULL or ResetTye is NULL.
|
||||||
|
@retval EFI_DEVICE_ERROR The capsule update was started, but failed due to a device error.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiUpdateCapsule (
|
EfiUpdateCapsule (
|
||||||
@ -416,6 +391,38 @@ EfiUpdateCapsule (
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
The QueryCapsuleCapabilities() function allows a caller to test to see if a capsule or
|
||||||
|
capsules can be updated via UpdateCapsule(). The Flags values in the capsule header and
|
||||||
|
size of the entire capsule is checked.
|
||||||
|
If the caller needs to query for generic capsule capability a fake EFI_CAPSULE_HEADER can be
|
||||||
|
constructed where CapsuleImageSize is equal to HeaderSize that is equal to sizeof
|
||||||
|
(EFI_CAPSULE_HEADER). To determine reset requirements,
|
||||||
|
CAPSULE_FLAGS_PERSIST_ACROSS_RESET should be set in the Flags field of the
|
||||||
|
EFI_CAPSULE_HEADER.
|
||||||
|
The firmware must support any capsule that has the
|
||||||
|
CAPSULE_FLAGS_PERSIST_ACROSS_RESET flag set in EFI_CAPSULE_HEADER. The
|
||||||
|
firmware sets the policy for what capsules are supported that do not have the
|
||||||
|
CAPSULE_FLAGS_PERSIST_ACROSS_RESET flag set.
|
||||||
|
|
||||||
|
@param CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
|
||||||
|
being passed into update capsule. The capsules are assumed to
|
||||||
|
stored in contiguous virtual memory.
|
||||||
|
@param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
|
||||||
|
CaspuleHeaderArray.
|
||||||
|
@param MaxiumCapsuleSize On output the maximum size that UpdateCapsule() can
|
||||||
|
support as an argument to UpdateCapsule() via
|
||||||
|
CapsuleHeaderArray and ScatterGatherList.
|
||||||
|
Undefined on input.
|
||||||
|
@param ResetType Returns the type of reset required for the capsule update.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Valid answer returned..
|
||||||
|
@retval EFI_INVALID_PARAMETER MaximumCapsuleSize is NULL.
|
||||||
|
@retval EFI_UNSUPPORTED The capsule type is not supported on this platform, and
|
||||||
|
MaximumCapsuleSize and ResetType are undefined.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiQueryCapsuleCapabilities (
|
EfiQueryCapsuleCapabilities (
|
||||||
@ -434,6 +441,37 @@ EfiQueryCapsuleCapabilities (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
The QueryVariableInfo() function allows a caller to obtain the information about the
|
||||||
|
maximum size of the storage space available for the EFI variables, the remaining size of the storage
|
||||||
|
space available for the EFI variables and the maximum size of each individual EFI variable,
|
||||||
|
associated with the attributes specified.
|
||||||
|
The returned MaximumVariableStorageSize, RemainingVariableStorageSize,
|
||||||
|
MaximumVariableSize information may change immediately after the call based on other
|
||||||
|
runtime activities including asynchronous error events. Also, these values associated with different
|
||||||
|
attributes are not additive in nature.
|
||||||
|
|
||||||
|
@param Attributes Attributes bitmask to specify the type of variables on
|
||||||
|
which to return information. Refer to the
|
||||||
|
GetVariable() function description.
|
||||||
|
@param MaximumVariableStorageSize
|
||||||
|
On output the maximum size of the storage space
|
||||||
|
available for the EFI variables associated with the
|
||||||
|
attributes specified.
|
||||||
|
@param RemainingVariableStorageSize
|
||||||
|
Returns the remaining size of the storage space
|
||||||
|
available for the EFI variables associated with the
|
||||||
|
attributes specified..
|
||||||
|
@param MaximumVariableSize Returns the maximum size of the individual EFI
|
||||||
|
variables associated with the attributes specified.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Valid answer returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER An invalid combination of attribute bits was supplied.
|
||||||
|
@retval EFI_UNSUPPORTED EFI_UNSUPPORTED The attribute is not supported on this platform, and the
|
||||||
|
MaximumVariableStorageSize,
|
||||||
|
RemainingVariableStorageSize, MaximumVariableSize
|
||||||
|
are undefined.
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiQueryVariableInfo (
|
EfiQueryVariableInfo (
|
||||||
|
@ -1,32 +1,53 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
UEFI SCSI Library implementation
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
http://opensource.org/licenses/bsd-license.php
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
//
|
|
||||||
// The package level header files this module uses
|
|
||||||
//
|
|
||||||
#include <PiDxe.h>
|
#include <PiDxe.h>
|
||||||
|
|
||||||
//
|
|
||||||
// The protocols, PPI and GUID defintions for this module
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// The Library classes this module consumes
|
|
||||||
//
|
|
||||||
#include <Library/ScsiLib.h>
|
#include <Library/ScsiLib.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
|
||||||
#include <IndustryStandard/scsi.h>
|
#include <IndustryStandard/scsi.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function test the ready status of the SCSI unit.
|
||||||
|
|
||||||
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
|
@retval EFI_BAD_BUFFER_SIZE The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
|
The actual number of bytes transferred is returned
|
||||||
|
in InTransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitTestUnitReadyCommand (
|
SubmitTestUnitReadyCommand (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -36,40 +57,6 @@ SubmitTestUnitReadyCommand (
|
|||||||
OUT UINT8 *HostAdapterStatus,
|
OUT UINT8 *HostAdapterStatus,
|
||||||
OUT UINT8 *TargetStatus
|
OUT UINT8 *TargetStatus
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Function tests the ready status of SCSI unit.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
ScsiIo - A pointer to SCSI IO protocol.
|
|
||||||
Timeout - The length of timeout period.
|
|
||||||
SenseData - A pointer to output sense data.
|
|
||||||
SenseDataLength - The length of output sense data.
|
|
||||||
HostAdapterStatus - The status of Host Adapter.
|
|
||||||
TargetStatus - The status of the target.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
EFI_SUCCESS - The status of the unit is tested successfully.
|
|
||||||
EFI_BAD_BUFFER_SIZE - The SCSI Request Packet was executed,
|
|
||||||
but the entire DataBuffer could not be transferred.
|
|
||||||
The actual number of bytes transferred is returned
|
|
||||||
in InTransferLength.
|
|
||||||
EFI_NOT_READY - The SCSI Request Packet could not be sent because
|
|
||||||
there are too many SCSI Command Packets already
|
|
||||||
queued.
|
|
||||||
EFI_DEVICE_ERROR - A device error occurred while attempting to send
|
|
||||||
the SCSI Request Packet.
|
|
||||||
EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid.
|
|
||||||
EFI_UNSUPPORTED - The command described by the SCSI Request Packet
|
|
||||||
is not supported by the SCSI initiator(i.e., SCSI
|
|
||||||
Host Controller).
|
|
||||||
EFI_TIMEOUT - A timeout occurred while waiting for the SCSI
|
|
||||||
Request Packet to execute.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||||
UINT64 Lun;
|
UINT64 Lun;
|
||||||
@ -109,6 +96,38 @@ Returns:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function to submit SCSI inquiry command.
|
||||||
|
|
||||||
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[in,out] InquirydataBuffer A pointer to inquiry data buffer.
|
||||||
|
@param[in,out] InquiryDataLength The length of inquiry data buffer.
|
||||||
|
@param[in] EnableVitalProductData Boolean to enable Vital Product Data.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
|
@retval EFI_BAD_BUFFER_SIZE The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
|
The actual number of bytes transferred is returned
|
||||||
|
in TransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitInquiryCommand (
|
SubmitInquiryCommand (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -121,43 +140,6 @@ SubmitInquiryCommand (
|
|||||||
IN OUT UINT32 *InquiryDataLength,
|
IN OUT UINT32 *InquiryDataLength,
|
||||||
IN BOOLEAN EnableVitalProductData
|
IN BOOLEAN EnableVitalProductData
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Function to submit SCSI inquiry command.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
ScsiIo - A pointer to SCSI IO protocol.
|
|
||||||
Timeout - The length of timeout period.
|
|
||||||
SenseData - A pointer to output sense data.
|
|
||||||
SenseDataLength - The length of output sense data.
|
|
||||||
HostAdapterStatus - The status of Host Adapter.
|
|
||||||
TargetStatus - The status of the target.
|
|
||||||
InquiryDataBuffer - A pointer to inquiry data buffer.
|
|
||||||
InquiryDataLength - The length of inquiry data buffer.
|
|
||||||
EnableVitalProductData - Boolean to enable Vital Product Data.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
EFI_SUCCESS - The status of the unit is tested successfully.
|
|
||||||
EFI_BAD_BUFFER_SIZE - The SCSI Request Packet was executed,
|
|
||||||
but the entire DataBuffer could not be transferred.
|
|
||||||
The actual number of bytes transferred is returned
|
|
||||||
in TransferLength.
|
|
||||||
EFI_NOT_READY - The SCSI Request Packet could not be sent because
|
|
||||||
there are too many SCSI Command Packets already
|
|
||||||
queued.
|
|
||||||
EFI_DEVICE_ERROR - A device error occurred while attempting to send
|
|
||||||
the SCSI Request Packet.
|
|
||||||
EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid.
|
|
||||||
EFI_UNSUPPORTED - The command described by the SCSI Request Packet
|
|
||||||
is not supported by the SCSI initiator(i.e., SCSI
|
|
||||||
Host Controller).
|
|
||||||
EFI_TIMEOUT - A timeout occurred while waiting for the SCSI
|
|
||||||
Request Packet to execute.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||||
UINT64 Lun;
|
UINT64 Lun;
|
||||||
@ -203,6 +185,40 @@ Returns:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function to submit SCSI mode sense 10 command.
|
||||||
|
|
||||||
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[in] DataBuffer A pointer to input data buffer.
|
||||||
|
@param[in,out] DataLength The length of input data buffer.
|
||||||
|
@param[in] DBDField The DBD Field (Optional).
|
||||||
|
@param[in] PageControl Page Control.
|
||||||
|
@param[in] PageCode Page code.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
|
The actual number of bytes transferred is returned
|
||||||
|
in TransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitModeSense10Command (
|
SubmitModeSense10Command (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -217,45 +233,6 @@ SubmitModeSense10Command (
|
|||||||
IN UINT8 PageControl,
|
IN UINT8 PageControl,
|
||||||
IN UINT8 PageCode
|
IN UINT8 PageCode
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Function to submit SCSI mode sense 10 command.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
ScsiIo - A pointer to SCSI IO protocol.
|
|
||||||
Timeout - The length of timeout period.
|
|
||||||
SenseData - A pointer to output sense data.
|
|
||||||
SenseDataLength - The length of output sense data.
|
|
||||||
HostAdapterStatus - The status of Host Adapter.
|
|
||||||
TargetStatus - The status of the target.
|
|
||||||
DataBuffer - A pointer to input data buffer.
|
|
||||||
DataLength - The length of input data buffer.
|
|
||||||
DBDField - The DBD Field (Optional).
|
|
||||||
PageControl - Page Control.
|
|
||||||
PageCode - Page code.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
EFI_SUCCESS - The status of the unit is tested successfully.
|
|
||||||
EFI_WARN_BUFFER_TOO_SMALL - The SCSI Request Packet was executed,
|
|
||||||
but the entire DataBuffer could not be transferred.
|
|
||||||
The actual number of bytes transferred is returned
|
|
||||||
in TransferLength.
|
|
||||||
EFI_NOT_READY - The SCSI Request Packet could not be sent because
|
|
||||||
there are too many SCSI Command Packets already
|
|
||||||
queued.
|
|
||||||
EFI_DEVICE_ERROR - A device error occurred while attempting to send
|
|
||||||
the SCSI Request Packet.
|
|
||||||
EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid.
|
|
||||||
EFI_UNSUPPORTED - The command described by the SCSI Request Packet
|
|
||||||
is not supported by the SCSI initiator(i.e., SCSI
|
|
||||||
Host Controller).
|
|
||||||
EFI_TIMEOUT - A timeout occurred while waiting for the SCSI
|
|
||||||
Request Packet to execute.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||||
UINT64 Lun;
|
UINT64 Lun;
|
||||||
@ -298,6 +275,42 @@ Returns:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function to submit SCSI request sense command.
|
||||||
|
ScsiIo - A pointer to SCSI IO protocol.
|
||||||
|
Timeout - The length of timeout period.
|
||||||
|
SenseData - A pointer to output sense data.
|
||||||
|
SenseDataLength - The length of output sense data.
|
||||||
|
HostAdapterStatus - The status of Host Adapter.
|
||||||
|
TargetStatus - The status of the target.
|
||||||
|
|
||||||
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
|
@param[in] Timeout TODO:
|
||||||
|
@param[out] SenseData TODO:
|
||||||
|
@param[in,out] SenseDataLength TODO:
|
||||||
|
@param[out] HostAdapterStatus TODO:
|
||||||
|
@param[out] TargetStatus TODO:
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Valid data returned
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
|
The actual number of bytes transferred is returned
|
||||||
|
in TransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitRequestSenseCommand (
|
SubmitRequestSenseCommand (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -307,40 +320,6 @@ SubmitRequestSenseCommand (
|
|||||||
OUT UINT8 *HostAdapterStatus,
|
OUT UINT8 *HostAdapterStatus,
|
||||||
OUT UINT8 *TargetStatus
|
OUT UINT8 *TargetStatus
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Function to submit SCSI request sense command.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
ScsiIo - A pointer to SCSI IO protocol.
|
|
||||||
Timeout - The length of timeout period.
|
|
||||||
SenseData - A pointer to output sense data.
|
|
||||||
SenseDataLength - The length of output sense data.
|
|
||||||
HostAdapterStatus - The status of Host Adapter.
|
|
||||||
TargetStatus - The status of the target.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
EFI_SUCCESS - The status of the unit is tested successfully.
|
|
||||||
EFI_WARN_BUFFER_TOO_SMALL - The SCSI Request Packet was executed,
|
|
||||||
but the entire DataBuffer could not be transferred.
|
|
||||||
The actual number of bytes transferred is returned
|
|
||||||
in TransferLength.
|
|
||||||
EFI_NOT_READY - The SCSI Request Packet could not be sent because
|
|
||||||
there are too many SCSI Command Packets already
|
|
||||||
queued.
|
|
||||||
EFI_DEVICE_ERROR - A device error occurred while attempting to send
|
|
||||||
the SCSI Request Packet.
|
|
||||||
EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid.
|
|
||||||
EFI_UNSUPPORTED - The command described by the SCSI Request Packet
|
|
||||||
is not supported by the SCSI initiator(i.e., SCSI
|
|
||||||
Host Controller).
|
|
||||||
EFI_TIMEOUT - A timeout occurred while waiting for the SCSI
|
|
||||||
Request Packet to execute.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||||
UINT64 Lun;
|
UINT64 Lun;
|
||||||
@ -380,6 +359,38 @@ Returns:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function to submit read capacity command.
|
||||||
|
|
||||||
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[out] DataBuffer A pointer to a data buffer.
|
||||||
|
@param[in,out] DataLength The length of data buffer.
|
||||||
|
@param[in] PMI Partial medium indicator.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
|
The actual number of bytes transferred is returned
|
||||||
|
in TransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitReadCapacityCommand (
|
SubmitReadCapacityCommand (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -392,43 +403,6 @@ SubmitReadCapacityCommand (
|
|||||||
IN OUT UINT32 *DataLength,
|
IN OUT UINT32 *DataLength,
|
||||||
IN BOOLEAN PMI
|
IN BOOLEAN PMI
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Function to submit read capacity command.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
ScsiIo - A pointer to SCSI IO protocol.
|
|
||||||
Timeout - The length of timeout period.
|
|
||||||
SenseData - A pointer to output sense data.
|
|
||||||
SenseDataLength - The length of output sense data.
|
|
||||||
HostAdapterStatus - The status of Host Adapter.
|
|
||||||
TargetStatus - The status of the target.
|
|
||||||
DataBuffer - A pointer to a data buffer.
|
|
||||||
DataLength - The length of data buffer.
|
|
||||||
PMI - Partial medium indicator.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
EFI_SUCCESS - The status of the unit is tested successfully.
|
|
||||||
EFI_WARN_BUFFER_TOO_SMALL - The SCSI Request Packet was executed,
|
|
||||||
but the entire DataBuffer could not be transferred.
|
|
||||||
The actual number of bytes transferred is returned
|
|
||||||
in TransferLength.
|
|
||||||
EFI_NOT_READY - The SCSI Request Packet could not be sent because
|
|
||||||
there are too many SCSI Command Packets already
|
|
||||||
queued.
|
|
||||||
EFI_DEVICE_ERROR - A device error occurred while attempting to send
|
|
||||||
the SCSI Request Packet.
|
|
||||||
EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid.
|
|
||||||
EFI_UNSUPPORTED - The command described by the SCSI Request Packet
|
|
||||||
is not supported by the SCSI initiator(i.e., SCSI
|
|
||||||
Host Controller).
|
|
||||||
EFI_TIMEOUT - A timeout occurred while waiting for the SCSI
|
|
||||||
Request Packet to execute.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||||
UINT64 Lun;
|
UINT64 Lun;
|
||||||
@ -476,6 +450,39 @@ Returns:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function to submit read 10 command.
|
||||||
|
|
||||||
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[out] DataBuffer Read 10 command data.
|
||||||
|
@param[in,out] DataLength The length of data buffer.
|
||||||
|
@param[in] StartLba The start address of LBA.
|
||||||
|
@param[in] SectorSize The sector size.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
|
The actual number of bytes transferred is returned
|
||||||
|
in TransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitRead10Command (
|
SubmitRead10Command (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -489,44 +496,6 @@ SubmitRead10Command (
|
|||||||
IN UINT32 StartLba,
|
IN UINT32 StartLba,
|
||||||
IN UINT32 SectorSize
|
IN UINT32 SectorSize
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Function to submit read 10 command.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
ScsiIo - A pointer to SCSI IO protocol.
|
|
||||||
Timeout - The length of timeout period.
|
|
||||||
SenseData - A pointer to output sense data.
|
|
||||||
SenseDataLength - The length of output sense data.
|
|
||||||
HostAdapterStatus - The status of Host Adapter.
|
|
||||||
TargetStatus - The status of the target.
|
|
||||||
DataBuffer - A pointer to a data buffer.
|
|
||||||
DataLength - The length of data buffer.
|
|
||||||
StartLba - The start address of LBA.
|
|
||||||
SectorSize - The sector size.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
EFI_SUCCESS - The status of the unit is tested successfully.
|
|
||||||
EFI_WARN_BUFFER_TOO_SMALL - The SCSI Request Packet was executed,
|
|
||||||
but the entire DataBuffer could not be transferred.
|
|
||||||
The actual number of bytes transferred is returned
|
|
||||||
in TransferLength.
|
|
||||||
EFI_NOT_READY - The SCSI Request Packet could not be sent because
|
|
||||||
there are too many SCSI Command Packets already
|
|
||||||
queued.
|
|
||||||
EFI_DEVICE_ERROR - A device error occurred while attempting to send
|
|
||||||
the SCSI Request Packet.
|
|
||||||
EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid.
|
|
||||||
EFI_UNSUPPORTED - The command described by the SCSI Request Packet
|
|
||||||
is not supported by the SCSI initiator(i.e., SCSI
|
|
||||||
Host Controller).
|
|
||||||
EFI_TIMEOUT - A timeout occurred while waiting for the SCSI
|
|
||||||
Request Packet to execute.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||||
UINT64 Lun;
|
UINT64 Lun;
|
||||||
@ -572,6 +541,39 @@ Returns:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function to submit SCSI write 10 command.
|
||||||
|
|
||||||
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
|
@param[in] Timeout The length of timeout period.
|
||||||
|
@param[out] SenseData A pointer to output sense data.
|
||||||
|
@param[in,out] SenseDataLength The length of output sense data.
|
||||||
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
|
@param[out] TargetStatus The status of the target.
|
||||||
|
@param[out] DataBuffer A pointer to a data buffer.
|
||||||
|
@param[in,out] DataLength The length of data buffer.
|
||||||
|
@param[in] StartLba The start address of LBA.
|
||||||
|
@param[in] SectorSize The sector size.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
|
@retval EFI_WARN_BUFFER_TOO_SMALL The SCSI Request Packet was executed,
|
||||||
|
but the entire DataBuffer could not be transferred.
|
||||||
|
The actual number of bytes transferred is returned
|
||||||
|
in InTransferLength.
|
||||||
|
@retval EFI_NOT_READY The SCSI Request Packet could not be sent because
|
||||||
|
there are too many SCSI Command Packets already
|
||||||
|
queued.
|
||||||
|
@retval EFI_DEVICE_ERROR A device error occurred while attempting to send
|
||||||
|
the SCSI Request Packet.
|
||||||
|
@retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.
|
||||||
|
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet
|
||||||
|
is not supported by the SCSI initiator(i.e., SCSI
|
||||||
|
Host Controller).
|
||||||
|
@retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI
|
||||||
|
Request Packet to execute.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SubmitWrite10Command (
|
SubmitWrite10Command (
|
||||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||||
@ -585,44 +587,6 @@ SubmitWrite10Command (
|
|||||||
IN UINT32 StartLba,
|
IN UINT32 StartLba,
|
||||||
IN UINT32 SectorSize
|
IN UINT32 SectorSize
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Function to submit SCSI write 10 command.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
ScsiIo - A pointer to SCSI IO protocol.
|
|
||||||
Timeout - The length of timeout period.
|
|
||||||
SenseData - A pointer to output sense data.
|
|
||||||
SenseDataLength - The length of output sense data.
|
|
||||||
HostAdapterStatus - The status of Host Adapter.
|
|
||||||
TargetStatus - The status of the target.
|
|
||||||
DataBuffer - A pointer to a data buffer.
|
|
||||||
DataLength - The length of data buffer.
|
|
||||||
StartLba - The start address of LBA.
|
|
||||||
SectorSize - The sector size.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
EFI_SUCCESS - The status of the unit is tested successfully.
|
|
||||||
EFI_WARN_BUFFER_TOO_SMALL - The SCSI Request Packet was executed,
|
|
||||||
but the entire DataBuffer could not be transferred.
|
|
||||||
The actual number of bytes transferred is returned
|
|
||||||
in InTransferLength.
|
|
||||||
EFI_NOT_READY - The SCSI Request Packet could not be sent because
|
|
||||||
there are too many SCSI Command Packets already
|
|
||||||
queued.
|
|
||||||
EFI_DEVICE_ERROR - A device error occurred while attempting to send
|
|
||||||
the SCSI Request Packet.
|
|
||||||
EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid.
|
|
||||||
EFI_UNSUPPORTED - The command described by the SCSI Request Packet
|
|
||||||
is not supported by the SCSI initiator(i.e., SCSI
|
|
||||||
Host Controller).
|
|
||||||
EFI_TIMEOUT - A timeout occurred while waiting for the SCSI
|
|
||||||
Request Packet to execute.
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||||
UINT64 Lun;
|
UINT64 Lun;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user