mirror of https://github.com/acidanthera/audk.git
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
|
||||
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
|
||||
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
|
||||
|
@ -15,6 +15,22 @@
|
|||
#ifndef __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
|
||||
EfiFvbReadBlock (
|
||||
IN UINTN Instance,
|
||||
|
@ -22,31 +38,25 @@ EfiFvbReadBlock (
|
|||
IN UINTN Offset,
|
||||
IN OUT UINTN *NumBytes,
|
||||
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
|
||||
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:
|
||||
|
||||
Status code
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
Writes specified number of bytes from the input buffer to the block
|
||||
|
||||
@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
|
||||
|
||||
@retval EFI_EFI_SUCCESS Buffer written to FVB
|
||||
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EfiFvbWriteBlock (
|
||||
IN UINTN Instance,
|
||||
|
@ -54,163 +64,125 @@ EfiFvbWriteBlock (
|
|||
IN UINTN Offset,
|
||||
IN OUT UINTN *NumBytes,
|
||||
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
|
||||
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:
|
||||
|
||||
Status code
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
Erases and initializes a firmware volume block
|
||||
|
||||
@param[in] Instance The FV instance to be erased
|
||||
@param[in] Lba The logical block address to be erased
|
||||
|
||||
@retval EFI_EFI_SUCCESS Lba was erased
|
||||
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EfiFvbEraseBlock (
|
||||
IN UINTN Instance,
|
||||
IN EFI_LBA Lba
|
||||
)
|
||||
/*++
|
||||
);
|
||||
|
||||
Routine Description:
|
||||
Erases and initializes a firmware volume block
|
||||
|
||||
Arguments:
|
||||
Instance - The FV instance to be erased
|
||||
Lba - The logical block index to be erased
|
||||
|
||||
Returns:
|
||||
|
||||
Status code
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
Retrieves attributes, insures positive polarity of attribute bits, returns
|
||||
resulting attributes in output parameter
|
||||
|
||||
@param[in] Instance The FV instance
|
||||
@param[out] Attributes The FV instance whose attributes is going to be
|
||||
returned
|
||||
|
||||
@retval EFI_EFI_SUCCESS Valid Attributes were returned
|
||||
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EfiFvbGetVolumeAttributes (
|
||||
IN UINTN Instance,
|
||||
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
|
||||
returned
|
||||
Attributes - Output buffer which contains attributes
|
||||
|
||||
Returns:
|
||||
Status code
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
Modifies the current settings of the firmware volume according to the
|
||||
input parameter, and returns the new setting of the volume
|
||||
|
||||
@param[in] Instance The FV instance
|
||||
@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
|
||||
|
||||
@retval EFI_EFI_SUCCESS Attributes were updated
|
||||
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EfiFvbSetVolumeAttributes (
|
||||
IN UINTN Instance,
|
||||
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
|
||||
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:
|
||||
Status code
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
Retrieves the physical address of a memory mapped FV
|
||||
|
||||
@param[in] Instance The FV instance
|
||||
@param[out] BaseAddress Pointer to a caller allocated EFI_PHYSICAL_ADDRESS
|
||||
that on successful return, contains the base address
|
||||
of the firmware volume.
|
||||
|
||||
@retval EFI_EFI_SUCCESS BaseAddress was returned
|
||||
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EfiFvbGetPhysicalAddress (
|
||||
IN UINTN Instance,
|
||||
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
|
||||
returned
|
||||
BaseAddress - Pointer to a caller allocated EFI_PHYSICAL_ADDRESS
|
||||
that on successful return, contains the base address
|
||||
of the firmware volume.
|
||||
|
||||
Returns:
|
||||
|
||||
Status code
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
Retrieve the size of a logical block
|
||||
|
||||
@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
|
||||
|
||||
@retval EFI_EFI_SUCCESS BlockSize and NumOfBlocks returned
|
||||
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EfiFvbGetBlockSize (
|
||||
IN UINTN Instance,
|
||||
IN EFI_LBA Lba,
|
||||
OUT UINTN *BlockSize,
|
||||
OUT UINTN *NumOfBlocks
|
||||
)
|
||||
/*++
|
||||
);
|
||||
|
||||
Routine Description:
|
||||
Retrieve the size of a logical block
|
||||
|
||||
Arguments:
|
||||
Instance - The FV instance whose block size is going to be
|
||||
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:
|
||||
EFI_SUCCESS - The firmware volume was read successfully and
|
||||
contents are in Buffer
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
Erases and initializes a specified range of a firmware volume
|
||||
|
||||
@param[in] Instance The FV instance
|
||||
@param[in] StartLba The starting logical block index to be erased
|
||||
@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
|
||||
|
||||
@retval EFI_EFI_SUCCESS Range was erased
|
||||
@retval EFI_INVALID_PARAMETER invalid parameter
|
||||
@retval EFI_UNSUPPORTED Range can not be erased
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EfiFvbEraseCustomBlockRange (
|
||||
IN UINTN Instance,
|
||||
|
@ -218,29 +190,6 @@ EfiFvbEraseCustomBlockRange (
|
|||
IN UINTN OffsetStartLba,
|
||||
IN EFI_LBA LastLba,
|
||||
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
|
||||
|
|
|
@ -1,55 +1,65 @@
|
|||
/*++
|
||||
/** @file
|
||||
Graphics Library
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||
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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __EFI_GRAPHICS_LIB_H__
|
||||
#define __EFI_GRAPHICS_LIB_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
|
||||
GetGraphicsBitMapFromFV (
|
||||
IN EFI_GUID *FileNameGuid,
|
||||
OUT VOID **Image,
|
||||
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:
|
||||
|
||||
EFI_SUCCESS - Image and ImageSize are valid.
|
||||
EFI_BUFFER_TOO_SMALL - Image not big enough. ImageSize has required size
|
||||
EFI_NOT_FOUND - FileNameGuid not found
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
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.
|
||||
|
||||
@param[in] BmpImage Pointer to BMP file
|
||||
@param[in] BmpImageSize Number of bytes in BmpImage
|
||||
@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
|
||||
ConvertBmpToUgaBlt (
|
||||
IN VOID *BmpImage,
|
||||
|
@ -58,113 +68,71 @@ ConvertBmpToUgaBlt (
|
|||
IN OUT UINTN *UgaBltSize,
|
||||
OUT UINTN *PixelHeight,
|
||||
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.
|
||||
|
||||
--*/
|
||||
;
|
||||
/**
|
||||
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
|
||||
|
||||
@param[in] 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
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EnableQuietBoot (
|
||||
IN EFI_GUID *LogoFile
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
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
|
||||
|
||||
Arguments:
|
||||
|
||||
LogoFile - File name of logo to display on the center of the screen.
|
||||
);
|
||||
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - ConsoleControl has been flipped to graphics and logo
|
||||
displayed.
|
||||
EFI_UNSUPPORTED - Logo not found
|
||||
|
||||
--*/
|
||||
;
|
||||
/**
|
||||
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
|
||||
|
||||
@retval EFI_SUCCESS UGA devices are back in text mode and synced up.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
DisableQuietBoot (
|
||||
VOID
|
||||
)
|
||||
/*++
|
||||
);
|
||||
|
||||
Routine Description:
|
||||
|
||||
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
|
||||
|
||||
Arguments:
|
||||
|
||||
NONE
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - UGA devices are back in text mode and synced up.
|
||||
EFI_UNSUPPORTED - Logo not found
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
LockKeyboards (
|
||||
IN CHAR16 *Password
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
/**
|
||||
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
|
||||
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.
|
||||
|
||||
@param[in] 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
|
||||
|
||||
Arguments:
|
||||
Password - Password used to lock ConIn device
|
||||
**/
|
||||
EFI_STATUS
|
||||
LockKeyboards (
|
||||
IN CHAR16 *Password
|
||||
);
|
||||
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - ConsoleControl has been flipped to graphics and logo
|
||||
displayed.
|
||||
EFI_UNSUPPORTED - Logo not found
|
||||
|
||||
--*/
|
||||
;
|
||||
/**
|
||||
Print to graphics screen at the given X,Y coordinates of the graphics screen.
|
||||
see definition of Print to find rules for constructing Fmt.
|
||||
|
||||
@param[in] X Row to start printing at
|
||||
@param[in] Y Column to start printing at
|
||||
@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
|
||||
EFIAPI
|
||||
PrintXY (
|
||||
|
@ -174,8 +142,7 @@ PrintXY (
|
|||
IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Background, OPTIONAL
|
||||
IN CHAR16 *Fmt,
|
||||
...
|
||||
)
|
||||
;
|
||||
);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -31,6 +31,35 @@
|
|||
//
|
||||
#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
|
||||
SubmitTestUnitReadyCommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -39,29 +68,40 @@ SubmitTestUnitReadyCommand (
|
|||
OUT UINT8 *SenseDataLength,
|
||||
OUT UINT8 *HostAdapterStatus,
|
||||
OUT UINT8 *TargetStatus
|
||||
)
|
||||
/*++
|
||||
);
|
||||
|
||||
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
|
||||
|
||||
Returns:
|
||||
|
||||
TODO: add return values
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
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
|
||||
SubmitInquiryCommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -73,32 +113,42 @@ SubmitInquiryCommand (
|
|||
IN OUT VOID *InquiryDataBuffer,
|
||||
IN OUT UINT32 *InquiryDataLength,
|
||||
IN BOOLEAN EnableVitalProductData
|
||||
)
|
||||
/*++
|
||||
);
|
||||
|
||||
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
|
||||
InquiryDataBuffer - TODO: add argument description
|
||||
InquiryDataLength - TODO: add argument description
|
||||
EnableVitalProductData - TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
TODO: add return values
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
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
|
||||
SubmitModeSense10Command (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -112,34 +162,45 @@ SubmitModeSense10Command (
|
|||
IN UINT8 DBDField, OPTIONAL
|
||||
IN UINT8 PageControl,
|
||||
IN UINT8 PageCode
|
||||
)
|
||||
/*++
|
||||
);
|
||||
|
||||
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
|
||||
DBDField - TODO: add argument description
|
||||
PageControl - TODO: add argument description
|
||||
PageCode - TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
TODO: add return values
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
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
|
||||
SubmitRequestSenseCommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -148,32 +209,40 @@ SubmitRequestSenseCommand (
|
|||
IN OUT UINT8 *SenseDataLength,
|
||||
OUT UINT8 *HostAdapterStatus,
|
||||
OUT UINT8 *TargetStatus
|
||||
)
|
||||
/*++
|
||||
);
|
||||
|
||||
Routine Description:
|
||||
|
||||
TODO: Add function description
|
||||
/**
|
||||
Function to submit read capacity command.
|
||||
|
||||
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
|
||||
|
||||
Returns:
|
||||
|
||||
TODO: add return values
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
//
|
||||
// Commands for direct access 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
|
||||
SubmitReadCapacityCommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -185,32 +254,41 @@ SubmitReadCapacityCommand (
|
|||
OUT VOID *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN BOOLEAN PMI
|
||||
)
|
||||
/*++
|
||||
);
|
||||
|
||||
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
|
||||
PMI - TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
TODO: add return values
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
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
|
||||
SubmitRead10Command (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -223,33 +301,41 @@ SubmitRead10Command (
|
|||
IN OUT UINT32 *DataLength,
|
||||
IN UINT32 StartLba,
|
||||
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
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
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
|
||||
SubmitWrite10Command (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -262,31 +348,7 @@ SubmitWrite10Command (
|
|||
IN OUT UINT32 *DataLength,
|
||||
IN UINT32 StartLba,
|
||||
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
|
||||
|
|
|
@ -142,8 +142,7 @@ EfiGetVariable (
|
|||
OUT UINT32 *Attributes,
|
||||
IN OUT UINTN *DataSize,
|
||||
OUT VOID *Data
|
||||
)
|
||||
;
|
||||
);
|
||||
|
||||
/**
|
||||
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 ListHead Head of linked list to convert.
|
||||
|
@ -297,7 +296,6 @@ EfiConvertList (
|
|||
);
|
||||
|
||||
/**
|
||||
|
||||
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
|
||||
|
@ -339,7 +337,6 @@ 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.
|
||||
|
@ -381,7 +378,6 @@ 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,
|
||||
|
|
|
@ -94,49 +94,51 @@ typedef struct {
|
|||
OUT VOID *pvOutBuffer;
|
||||
IN UINT64 ui64OutBufferSize;
|
||||
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
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_UGA_IO_PROTOCOL_CREATE_DEVICE) (
|
||||
IN EFI_UGA_IO_PROTOCOL * This,
|
||||
IN UGA_DEVICE * ParentDevice,
|
||||
IN UGA_DEVICE_DATA * DeviceData,
|
||||
IN EFI_UGA_IO_PROTOCOL *This,
|
||||
IN UGA_DEVICE *ParentDevice,
|
||||
IN UGA_DEVICE_DATA *DeviceData,
|
||||
IN VOID *RunTimeContext,
|
||||
OUT UGA_DEVICE **Device
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
/**
|
||||
Delete a dynamically allocated child UGA_DEVICE object that was allocated via CreateDevice() .
|
||||
|
||||
@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.
|
||||
|
||||
|
||||
@retval EFI_SUCCESS Device was returned.
|
||||
@retval EFI_INVALID_PARAMETER The Device was not allocated via CreateDevice().
|
||||
|
||||
Dynamically allocate storage for a child UGA_DEVICE .
|
||||
|
||||
Arguments:
|
||||
|
||||
This - The EFI_UGA_IO_PROTOCOL instance. Type EFI_UGA_IO_PROTOCOL is
|
||||
defined in Section 10.7.
|
||||
|
||||
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
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_UGA_IO_PROTOCOL_DELETE_DEVICE) (
|
||||
|
@ -144,31 +146,10 @@ EFI_STATUS
|
|||
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);
|
||||
|
||||
/*++
|
||||
/**
|
||||
|
||||
Routine Description:
|
||||
|
||||
|
@ -190,7 +171,7 @@ typedef UGA_STATUS (EFIAPI *PUGA_FW_SERVICE_DISPATCH) (IN PUGA_DEVICE pDevice, I
|
|||
|
||||
Varies depending on pIoRequest.
|
||||
|
||||
--*/
|
||||
**/
|
||||
struct _EFI_UGA_IO_PROTOCOL {
|
||||
EFI_UGA_IO_PROTOCOL_CREATE_DEVICE CreateDevice;
|
||||
EFI_UGA_IO_PROTOCOL_DELETE_DEVICE DeleteDevice;
|
||||
|
|
|
@ -1,21 +1,33 @@
|
|||
/*++
|
||||
/** @file
|
||||
Null implementation of the custom decompress library
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||
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 <Base.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
|
||||
EFIAPI
|
||||
CustomDecompressGetInfo (
|
||||
|
@ -24,29 +36,23 @@ CustomDecompressGetInfo (
|
|||
OUT UINT32 *DestinationSize,
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
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
|
||||
EFIAPI
|
||||
CustomDecompress (
|
||||
|
@ -54,24 +60,6 @@ CustomDecompress (
|
|||
IN OUT VOID *Destination,
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
/*++
|
||||
/** @file
|
||||
PEI Services Table Pointer Library for IA-32 and X64.
|
||||
|
||||
Copyright (c) 2006 Intel Corporation. All rights reserved
|
||||
This software and associated documentation (if any) is furnished
|
||||
under a license and may only be used or copied in accordance
|
||||
with the terms of the license. Except as permitted by such
|
||||
license, no part of this software or documentation may be
|
||||
reproduced, stored in a retrieval system, or transmitted in any
|
||||
form or by any means without the express written consent of
|
||||
Intel Corporation.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||
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
|
||||
|
||||
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"
|
||||
|
||||
|
||||
/**
|
||||
|
||||
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
|
||||
base addres is used to save the EFI_PEI_SERVICES**.
|
||||
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.
|
||||
|
||||
**/
|
||||
|
|
|
@ -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
|
||||
This software and associated documentation (if any) is furnished
|
||||
under a license and may only be used or copied in accordance
|
||||
with the terms of the license. Except as permitted by such
|
||||
license, no part of this software or documentation may be
|
||||
reproduced, stored in a retrieval system, or transmitted in any
|
||||
form or by any means without the express written consent of
|
||||
Intel Corporation.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||
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.
|
||||
|
||||
**/
|
||||
|
||||
PEI Services Table Pointer Library.
|
||||
|
||||
--*/
|
||||
|
||||
#include <Library/BaseLib.h>
|
||||
|
||||
|
|
|
@ -1,20 +1,37 @@
|
|||
/*++
|
||||
/** @file
|
||||
UEFI Runtime Library implementation for non IPF processor types.
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
This library hides the global variable for the EFI Runtime Services so the
|
||||
caller does not need to deal with the possiblitly of being called from an
|
||||
OS virtual address space. All pointer values are different for a virtual
|
||||
mapping than from the normal physical mapping at boot services time.
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||
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 <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
|
||||
EFIAPI
|
||||
EfiResetSystem (
|
||||
|
@ -23,85 +40,64 @@ EfiResetSystem (
|
|||
IN UINTN DataSize,
|
||||
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);
|
||||
}
|
||||
|
||||
//
|
||||
// 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
|
||||
EFIAPI
|
||||
EfiGetTime (
|
||||
OUT EFI_TIME *Time,
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
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
|
||||
EFIAPI
|
||||
EfiSetTime (
|
||||
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 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
|
||||
EFIAPI
|
||||
EfiGetWakeupTime (
|
||||
|
@ -109,57 +105,49 @@ EfiGetWakeupTime (
|
|||
OUT BOOLEAN *Pending,
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
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
|
||||
EFIAPI
|
||||
EfiSetWakeupTime (
|
||||
IN BOOLEAN Enable,
|
||||
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 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
|
||||
EFIAPI
|
||||
EfiGetVariable (
|
||||
|
@ -169,32 +157,28 @@ EfiGetVariable (
|
|||
IN OUT UINTN *DataSize,
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
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
|
||||
EFIAPI
|
||||
EfiGetNextVariableName (
|
||||
|
@ -202,32 +186,26 @@ EfiGetNextVariableName (
|
|||
IN OUT CHAR16 *VariableName,
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
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
|
||||
EFIAPI
|
||||
EfiSetVariable (
|
||||
|
@ -237,104 +215,69 @@ EfiSetVariable (
|
|||
IN UINTN DataSize,
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
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
|
||||
EFIAPI
|
||||
EfiGetNextHighMonotonicCount (
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
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
|
||||
EFIAPI
|
||||
EfiConvertPointer (
|
||||
IN UINTN DebugDisposition,
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
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
|
||||
EFIAPI
|
||||
EfiConvertList (
|
||||
IN UINTN DebugDisposition,
|
||||
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 *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
|
||||
EFIAPI
|
||||
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
|
||||
EFIAPI
|
||||
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
|
||||
EFIAPI
|
||||
EfiQueryVariableInfo (
|
||||
|
|
|
@ -1,32 +1,53 @@
|
|||
/*++
|
||||
/** @file
|
||||
UEFI SCSI Library implementation
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation.<BR>
|
||||
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.
|
||||
|
||||
**/
|
||||
|
||||
--*/
|
||||
|
||||
//
|
||||
// The package level header files this module uses
|
||||
//
|
||||
#include <PiDxe.h>
|
||||
|
||||
//
|
||||
// The protocols, PPI and GUID defintions for this module
|
||||
//
|
||||
//
|
||||
// The Library classes this module consumes
|
||||
//
|
||||
#include <Library/ScsiLib.h>
|
||||
#include <Library/BaseMemoryLib.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
|
||||
SubmitTestUnitReadyCommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -36,40 +57,6 @@ SubmitTestUnitReadyCommand (
|
|||
OUT UINT8 *HostAdapterStatus,
|
||||
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;
|
||||
UINT64 Lun;
|
||||
|
@ -109,6 +96,38 @@ Returns:
|
|||
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
|
||||
SubmitInquiryCommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -121,43 +140,6 @@ SubmitInquiryCommand (
|
|||
IN OUT UINT32 *InquiryDataLength,
|
||||
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;
|
||||
UINT64 Lun;
|
||||
|
@ -203,6 +185,40 @@ Returns:
|
|||
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
|
||||
SubmitModeSense10Command (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -217,45 +233,6 @@ SubmitModeSense10Command (
|
|||
IN UINT8 PageControl,
|
||||
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;
|
||||
UINT64 Lun;
|
||||
|
@ -298,6 +275,42 @@ Returns:
|
|||
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
|
||||
SubmitRequestSenseCommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -307,40 +320,6 @@ SubmitRequestSenseCommand (
|
|||
OUT UINT8 *HostAdapterStatus,
|
||||
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;
|
||||
UINT64 Lun;
|
||||
|
@ -380,6 +359,38 @@ Returns:
|
|||
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
|
||||
SubmitReadCapacityCommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -392,43 +403,6 @@ SubmitReadCapacityCommand (
|
|||
IN OUT UINT32 *DataLength,
|
||||
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;
|
||||
UINT64 Lun;
|
||||
|
@ -476,6 +450,39 @@ Returns:
|
|||
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
|
||||
SubmitRead10Command (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -489,44 +496,6 @@ SubmitRead10Command (
|
|||
IN UINT32 StartLba,
|
||||
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;
|
||||
UINT64 Lun;
|
||||
|
@ -572,6 +541,39 @@ Returns:
|
|||
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
|
||||
SubmitWrite10Command (
|
||||
IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
|
||||
|
@ -585,44 +587,6 @@ SubmitWrite10Command (
|
|||
IN UINT32 StartLba,
|
||||
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;
|
||||
UINT64 Lun;
|
||||
|
|
Loading…
Reference in New Issue