1. added common header files, Guid header filess, Protocol header files, PPI header files.
2. added Guids/Protocols/PPIs/Pcds definitions in .nspd, .dec files. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2744 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
39
MdeModulePkg/Include/Protocol/Capsule.h
Normal file
39
MdeModulePkg/Include/Protocol/Capsule.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*++
|
||||
|
||||
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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
Capsule.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Capsule Architectural Protocol is newly added to produce UEFI2.0 capsule runtime services.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __ARCH_PROTOCOL_CAPSULE_ARCH_H__
|
||||
#define __ARCH_PROTOCOL_CAPSULE_ARCH_H__
|
||||
|
||||
//
|
||||
// Global ID for the Capsule Architectural Protocol
|
||||
//
|
||||
#define EFI_CAPSULE_ARCH_PROTOCOL_GUID \
|
||||
{ 0x5053697e, 0x2ebc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54 }}
|
||||
|
||||
extern EFI_GUID gEfiCapsuleArchProtocolGuid;
|
||||
|
||||
typedef struct {
|
||||
UINT32 CapsuleArrayNumber;
|
||||
VOID* CapsulePtr[1];
|
||||
} EFI_CAPSULE_TABLE;
|
||||
|
||||
|
||||
#endif
|
121
MdeModulePkg/Include/Protocol/ConsoleControl.h
Normal file
121
MdeModulePkg/Include/Protocol/ConsoleControl.h
Normal file
@@ -0,0 +1,121 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
ConsoleControl.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Abstraction of a Text mode or UGA screen
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __CONSOLE_CONTROL_H__
|
||||
#define __CONSOLE_CONTROL_H__
|
||||
|
||||
#define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \
|
||||
{ 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21 } }
|
||||
|
||||
typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL;
|
||||
|
||||
|
||||
typedef enum {
|
||||
EfiConsoleControlScreenText,
|
||||
EfiConsoleControlScreenGraphics,
|
||||
EfiConsoleControlScreenMaxValue
|
||||
} EFI_CONSOLE_CONTROL_SCREEN_MODE;
|
||||
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) (
|
||||
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
||||
OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode,
|
||||
OUT BOOLEAN *UgaExists, OPTIONAL
|
||||
OUT BOOLEAN *StdInLocked OPTIONAL
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the current video mode information. Also returns info about existence
|
||||
of UGA Draw devices in system, and if the Std In device is locked. All the
|
||||
arguments are optional and only returned if a non NULL pointer is passed in.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
Mode - Are we in text of grahics mode.
|
||||
UgaExists - TRUE if UGA Spliter has found a UGA device
|
||||
StdInLocked - TRUE if StdIn device is keyboard locked
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Mode information returned.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) (
|
||||
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
||||
OUT EFI_CONSOLE_CONTROL_SCREEN_MODE Mode
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Set the current mode to either text or graphics. Graphics is
|
||||
for Quiet Boot.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
Mode - Mode to set the
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Mode information returned.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) (
|
||||
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
||||
IN CHAR16 *Password
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Lock Std In devices until Password is typed.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
Password - Password needed to unlock screen. NULL means unlock keyboard
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Mode information returned.
|
||||
EFI_DEVICE_ERROR - Std In not locked
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
|
||||
|
||||
struct _EFI_CONSOLE_CONTROL_PROTOCOL {
|
||||
EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE GetMode;
|
||||
EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE SetMode;
|
||||
EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN LockStdIn;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiConsoleControlProtocolGuid;
|
||||
|
||||
#endif
|
179
MdeModulePkg/Include/Protocol/DiskInfo.h
Normal file
179
MdeModulePkg/Include/Protocol/DiskInfo.h
Normal file
@@ -0,0 +1,179 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
DiskInfo.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Disk Info protocol is used to export Inquiry Data for a drive.
|
||||
Its needed to support low level formating of drives in a mannor
|
||||
thats DOS compatible.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __DISK_INFO_H__
|
||||
#define __DISK_INFO_H__
|
||||
|
||||
#define EFI_DISK_INFO_PROTOCOL_GUID \
|
||||
{ \
|
||||
0xd432a67f, 0x14dc, 0x484b, {0xb3, 0xbb, 0x3f, 0x2, 0x91, 0x84, 0x93, 0x27 } \
|
||||
}
|
||||
|
||||
//
|
||||
// Forward reference for pure ANSI compatability
|
||||
//
|
||||
typedef struct _EFI_DISK_INFO_PROTOCOL EFI_DISK_INFO_PROTOCOL;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_DISK_INFO_INQUIRY) (
|
||||
IN EFI_DISK_INFO_PROTOCOL * This,
|
||||
IN OUT VOID *InquiryData,
|
||||
IN OUT UINT32 *IntquiryDataSize
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the results of the Inquiry command to a drive in InquiryData.
|
||||
Data format of Inquiry data is defined by the Interface GUID.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
InquiryData - Results of Inquiry command to device
|
||||
InquiryDataSize - Size of InquiryData in bytes.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - InquiryData valid
|
||||
EFI_NOT_FOUND - Device does not support this data class
|
||||
EFI_DEVICE_ERROR - Error reading InquiryData from device
|
||||
EFI_BUFFER_TOO_SMALL - IntquiryDataSize not big enough
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_DISK_INFO_IDENTIFY) (
|
||||
IN EFI_DISK_INFO_PROTOCOL * This,
|
||||
IN OUT VOID *IdentifyData,
|
||||
IN OUT UINT32 *IdentifyDataSize
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the results of the Identify command to a drive in IdentifyData.
|
||||
Data format of Identify data is defined by the Interface GUID.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
IdentifyData - Results of Identify command to device
|
||||
IdentifyDataSize - Size of IdentifyData in bytes.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - IdentifyData valid
|
||||
EFI_NOT_FOUND - Device does not support this data class
|
||||
EFI_DEVICE_ERROR - Error reading IdentifyData from device
|
||||
EFI_BUFFER_TOO_SMALL - IdentifyDataSize not big enough
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_DISK_INFO_SENSE_DATA) (
|
||||
IN EFI_DISK_INFO_PROTOCOL * This,
|
||||
IN OUT VOID *SenseData,
|
||||
IN OUT UINT32 *SenseDataSize,
|
||||
OUT UINT8 *SenseDataNumber
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the results of the Request Sense command to a drive in SenseData.
|
||||
Data format of Sense data is defined by the Interface GUID.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
SenseData - Results of Request Sense command to device
|
||||
SenseDataSize - Size of SenseData in bytes.
|
||||
SenseDataNumber - Type of SenseData
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - InquiryData valid
|
||||
EFI_NOT_FOUND - Device does not support this data class
|
||||
EFI_DEVICE_ERROR - Error reading InquiryData from device
|
||||
EFI_BUFFER_TOO_SMALL - SenseDataSize not big enough
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_DISK_INFO_WHICH_IDE) (
|
||||
IN EFI_DISK_INFO_PROTOCOL * This,
|
||||
OUT UINT32 *IdeChannel,
|
||||
OUT UINT32 *IdeDevice
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the results of the Request Sense command to a drive in SenseData.
|
||||
Data format of Sense data is defined by the Interface GUID.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
IdeChannel - Primary or Secondary
|
||||
IdeDevice - Master or Slave
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - IdeChannel and IdeDevice are valid
|
||||
EFI_UNSUPPORTED - This is not an IDE device
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
//
|
||||
// GUIDs for EFI_DISK_INFO_PROTOCOL.Interface. Defines the format of the
|
||||
// buffers returned by member functions
|
||||
//
|
||||
#define EFI_DISK_INFO_IDE_INTERFACE_GUID \
|
||||
{ \
|
||||
0x5e948fe3, 0x26d3, 0x42b5, {0xaf, 0x17, 0x61, 0x2, 0x87, 0x18, 0x8d, 0xec } \
|
||||
}
|
||||
extern EFI_GUID gEfiDiskInfoIdeInterfaceGuid;
|
||||
|
||||
#define EFI_DISK_INFO_SCSI_INTERFACE_GUID \
|
||||
{ \
|
||||
0x8f74baa, 0xea36, 0x41d9, {0x95, 0x21, 0x21, 0xa7, 0xf, 0x87, 0x80, 0xbc } \
|
||||
}
|
||||
extern EFI_GUID gEfiDiskInfoScsiInterfaceGuid;
|
||||
|
||||
#define EFI_DISK_INFO_USB_INTERFACE_GUID \
|
||||
{ \
|
||||
0xcb871572, 0xc11a, 0x47b5, {0xb4, 0x92, 0x67, 0x5e, 0xaf, 0xa7, 0x77, 0x27 } \
|
||||
}
|
||||
extern EFI_GUID gEfiDiskInfoUsbInterfaceGuid;
|
||||
|
||||
struct _EFI_DISK_INFO_PROTOCOL {
|
||||
EFI_GUID Interface;
|
||||
EFI_DISK_INFO_INQUIRY Inquiry;
|
||||
EFI_DISK_INFO_IDENTIFY Identify;
|
||||
EFI_DISK_INFO_SENSE_DATA SenseData;
|
||||
EFI_DISK_INFO_WHICH_IDE WhichIde;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiDiskInfoProtocolGuid;
|
||||
|
||||
#endif
|
||||
|
||||
|
88
MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h
Normal file
88
MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/*++
|
||||
|
||||
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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
FaultTolerantWriteLite.h
|
||||
|
||||
Abstract:
|
||||
|
||||
This is a simple fault tolerant write driver, based on PlatformFd library.
|
||||
And it only supports write BufferSize <= SpareAreaLength.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__
|
||||
#define __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__
|
||||
|
||||
#define EFI_FTW_LITE_PROTOCOL_GUID \
|
||||
{ 0x3f557189, 0x8dae, 0x45ae, {0xa0, 0xb3, 0x2b, 0x99, 0xca, 0x7a, 0xa7, 0xa0 } }
|
||||
|
||||
//
|
||||
// Forward reference for pure ANSI compatability
|
||||
//
|
||||
typedef struct _EFI_FTW_LITE_PROTOCOL EFI_FTW_LITE_PROTOCOL;
|
||||
|
||||
//
|
||||
// Protocol API definitions
|
||||
//
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * EFI_FTW_LITE_WRITE) (
|
||||
IN EFI_FTW_LITE_PROTOCOL *This,
|
||||
IN EFI_HANDLE FvbHandle,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN Offset,
|
||||
IN UINTN *NumBytes,
|
||||
IN VOID *Buffer
|
||||
);
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Starts a target block update. This records information about the write
|
||||
in fault tolerant storage and will complete the write in a recoverable
|
||||
manner, ensuring at all times that either the original contents or
|
||||
the modified contents are available.
|
||||
|
||||
Arguments:
|
||||
|
||||
This - Calling context
|
||||
FvBlockHandle - The handle of FVB protocol that provides services for
|
||||
reading, writing, and erasing the target block.
|
||||
Lba - The logical block address of the target block.
|
||||
Offset - The offset within the target block to place the data.
|
||||
Length - The number of bytes to write to the target block.
|
||||
Buffer - The data to write.
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - The function completed successfully
|
||||
EFI_ABORTED - The function could not complete successfully.
|
||||
EFI_BAD_BUFFER_SIZE - The write would span a block boundary,
|
||||
which is not a valid action.
|
||||
EFI_ACCESS_DENIED - No writes have been allocated.
|
||||
EFI_NOT_READY - The last write has not been completed.
|
||||
Restart () must be called to complete it.
|
||||
|
||||
--*/
|
||||
|
||||
//
|
||||
// Protocol declaration
|
||||
//
|
||||
struct _EFI_FTW_LITE_PROTOCOL {
|
||||
EFI_FTW_LITE_WRITE Write;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid;
|
||||
|
||||
#endif
|
53
MdeModulePkg/Include/Protocol/FvbExtension.h
Normal file
53
MdeModulePkg/Include/Protocol/FvbExtension.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/*++
|
||||
|
||||
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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
FvbExtension.h
|
||||
|
||||
Abstract:
|
||||
|
||||
FVB Extension protocol that extends the FVB Class in a component fashion.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __FVB_EXTENSION_H__
|
||||
#define __FVB_EXTENSION_H__
|
||||
|
||||
#define EFI_FVB_EXTENSION_PROTOCOL_GUID \
|
||||
{0x53a4c71b, 0xb581, 0x4170, {0x91, 0xb3, 0x8d, 0xb8, 0x7a, 0x4b, 0x5c, 0x46 } }
|
||||
|
||||
typedef struct _EFI_FVB_EXTENSION_PROTOCOL EFI_FVB_EXTENSION_PROTOCOL;
|
||||
|
||||
//
|
||||
// FVB Extension Function Prototypes
|
||||
//
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * EFI_FV_ERASE_CUSTOM_BLOCK) (
|
||||
IN EFI_FVB_EXTENSION_PROTOCOL *This,
|
||||
IN EFI_LBA StartLba,
|
||||
IN UINTN OffsetStartLba,
|
||||
IN EFI_LBA LastLba,
|
||||
IN UINTN OffsetLastLba
|
||||
);
|
||||
|
||||
//
|
||||
// IPMI TRANSPORT PROTOCOL
|
||||
//
|
||||
struct _EFI_FVB_EXTENSION_PROTOCOL {
|
||||
EFI_FV_ERASE_CUSTOM_BLOCK EraseFvbCustomBlock;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiFvbExtensionProtocolGuid;
|
||||
|
||||
#endif
|
||||
|
156
MdeModulePkg/Include/Protocol/GenericMemoryTest.h
Normal file
156
MdeModulePkg/Include/Protocol/GenericMemoryTest.h
Normal file
@@ -0,0 +1,156 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
GenericMemoryTest.h
|
||||
|
||||
Abstract:
|
||||
|
||||
The EFI generic memory test protocol
|
||||
For more information please look at EfiMemoryTest.doc
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __GENERIC_MEMORY_TEST_H__
|
||||
#define __GENERIC_MEMORY_TEST_H__
|
||||
|
||||
#define EFI_GENERIC_MEMORY_TEST_PROTOCOL_GUID \
|
||||
{ 0x309de7f1, 0x7f5e, 0x4ace, {0xb4, 0x9c, 0x53, 0x1b, 0xe5, 0xaa, 0x95, 0xef} }
|
||||
|
||||
typedef struct _EFI_GENERIC_MEMORY_TEST_PROTOCOL EFI_GENERIC_MEMORY_TEST_PROTOCOL;
|
||||
|
||||
typedef enum {
|
||||
IGNORE,
|
||||
QUICK,
|
||||
SPARSE,
|
||||
EXTENSIVE,
|
||||
MAXLEVEL
|
||||
} EXTENDMEM_COVERAGE_LEVEL;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_MEMORY_TEST_INIT) (
|
||||
IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
|
||||
IN EXTENDMEM_COVERAGE_LEVEL Level,
|
||||
OUT BOOLEAN *RequireSoftECCInit
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Initialize the generic memory test.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
Level - The coverage level of the memory test.
|
||||
RequireSoftECCInit - Indicate if the memory need software ECC init.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The generic memory test initialized correctly.
|
||||
EFI_NO_MEDIA - There is not any non-tested memory found, in this
|
||||
function if not any non-tesed memory found means
|
||||
that the memory test driver have not detect any
|
||||
non-tested extended memory of current system.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PERFORM_MEMORY_TEST) (
|
||||
IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
|
||||
OUT UINT64 *TestedMemorySize,
|
||||
OUT UINT64 *TotalMemorySize,
|
||||
OUT BOOLEAN *ErrorOut,
|
||||
IN BOOLEAN IfTestAbort
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Perform the memory test.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
TestedMemorySize - Return the tested extended memory size.
|
||||
TotalMemorySize - Return the whole system physical memory size, this
|
||||
value may be changed if in some case some error
|
||||
DIMMs be disabled.
|
||||
ErrorOut - Any time the memory error occurs, this will be TRUE.
|
||||
IfTestAbort - Indicate if the user press "ESC" to skip the memory
|
||||
test.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - One block of memory test ok, the block size is hide
|
||||
internally.
|
||||
EFI_NOT_FOUND - Indicate all the non-tested memory blocks have
|
||||
already go through.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_MEMORY_TEST_FINISHED) (
|
||||
IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
The memory test finished.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Successful free all the generic memory test driver
|
||||
allocated resource and notify to platform memory
|
||||
test driver that memory test finished.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_MEMORY_TEST_COMPATIBLE_RANGE) (
|
||||
IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
|
||||
IN EFI_PHYSICAL_ADDRESS StartAddress,
|
||||
IN UINT64 Length
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Provide capability to test compatible range which used by some sepcial
|
||||
driver required using memory range before BDS perform memory test.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
StartAddress - The start address of the memory range.
|
||||
Length - The memory range's length.
|
||||
|
||||
Return:
|
||||
EFI_SUCCESS - The compatible memory range pass the memory test.
|
||||
EFI_DEVICE_ERROR - The compatible memory range test find memory error
|
||||
and also return return the error address.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
struct _EFI_GENERIC_MEMORY_TEST_PROTOCOL {
|
||||
EFI_MEMORY_TEST_INIT MemoryTestInit;
|
||||
EFI_PERFORM_MEMORY_TEST PerformMemoryTest;
|
||||
EFI_MEMORY_TEST_FINISHED Finished;
|
||||
EFI_MEMORY_TEST_COMPATIBLE_RANGE CompatibleRangeTest;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiGenericMemTestProtocolGuid;
|
||||
|
||||
#endif
|
||||
|
79
MdeModulePkg/Include/Protocol/OEMBadging.h
Normal file
79
MdeModulePkg/Include/Protocol/OEMBadging.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/*++
|
||||
|
||||
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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
EfiOEMBadging.h
|
||||
|
||||
Abstract:
|
||||
|
||||
EFI OEM Badging Protocol definition header file
|
||||
|
||||
Revision History
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __EFI_OEM_BADGING_H__
|
||||
#define __EFI_OEM_BADGING_H__
|
||||
|
||||
//
|
||||
// GUID for EFI OEM Badging Protocol
|
||||
//
|
||||
#define EFI_OEM_BADGING_PROTOCOL_GUID \
|
||||
{ 0x170e13c0, 0xbf1b, 0x4218, {0x87, 0x1d, 0x2a, 0xbd, 0xc6, 0xf8, 0x87, 0xbc } }
|
||||
|
||||
|
||||
typedef struct _EFI_OEM_BADGING_PROTOCOL EFI_OEM_BADGING_PROTOCOL;
|
||||
|
||||
typedef enum {
|
||||
EfiBadgingFormatBMP,
|
||||
EfiBadgingFormatJPEG,
|
||||
EfiBadgingFormatTIFF,
|
||||
EfiBadgingFormatGIF,
|
||||
EfiBadgingFormatUnknown
|
||||
} EFI_BADGING_FORMAT;
|
||||
|
||||
typedef enum {
|
||||
EfiBadgingDisplayAttributeLeftTop,
|
||||
EfiBadgingDisplayAttributeCenterTop,
|
||||
EfiBadgingDisplayAttributeRightTop,
|
||||
EfiBadgingDisplayAttributeCenterRight,
|
||||
EfiBadgingDisplayAttributeRightBottom,
|
||||
EfiBadgingDisplayAttributeCenterBottom,
|
||||
EfiBadgingDisplayAttributeLeftBottom,
|
||||
EfiBadgingDisplayAttributeCenterLeft,
|
||||
EfiBadgingDisplayAttributeCenter,
|
||||
EfiBadgingDisplayAttributeCustomized
|
||||
} EFI_BADGING_DISPLAY_ATTRIBUTE;
|
||||
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BADGING_GET_IMAGE) (
|
||||
IN EFI_OEM_BADGING_PROTOCOL *This,
|
||||
IN OUT UINT32 *Instance,
|
||||
OUT EFI_BADGING_FORMAT *Format,
|
||||
OUT UINT8 **ImageData,
|
||||
OUT UINTN *ImageSize,
|
||||
OUT EFI_BADGING_DISPLAY_ATTRIBUTE *Attribute,
|
||||
OUT UINTN *CoordinateX,
|
||||
OUT UINTN *CoordinateY
|
||||
);
|
||||
|
||||
|
||||
struct _EFI_OEM_BADGING_PROTOCOL {
|
||||
EFI_BADGING_GET_IMAGE GetImage;
|
||||
};
|
||||
|
||||
|
||||
extern EFI_GUID gEfiOEMBadgingProtocolGuid;
|
||||
|
||||
#endif
|
166
MdeModulePkg/Include/Protocol/Performance.h
Normal file
166
MdeModulePkg/Include/Protocol/Performance.h
Normal file
@@ -0,0 +1,166 @@
|
||||
/*++
|
||||
|
||||
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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
Performance.h
|
||||
|
||||
Abstract:
|
||||
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __PERFORMANCE_H__
|
||||
#define __PERFORMANCE_H__
|
||||
|
||||
#define PERFORMANCE_PROTOCOL_GUID \
|
||||
{ 0x76b6bdfa, 0x2acd, 0x4462, {0x9E, 0x3F, 0xcb, 0x58, 0xC9, 0x69, 0xd9, 0x37 } }
|
||||
|
||||
//
|
||||
// Forward reference for pure ANSI compatability
|
||||
//
|
||||
typedef struct _PERFORMANCE_PROTOCOL PERFORMANCE_PROTOCOL;
|
||||
|
||||
#define DXE_TOK "DXE"
|
||||
#define SHELL_TOK "SHELL"
|
||||
#define PEI_TOK "PEI"
|
||||
#define BDS_TOK "BDS"
|
||||
#define DRIVERBINDING_START_TOK "DriverBinding:Start"
|
||||
#define DRIVERBINDING_SUPPORT_TOK "DriverBinding:Support"
|
||||
#define START_IMAGE_TOK "StartImage"
|
||||
#define LOAD_IMAGE_TOK "LoadImage"
|
||||
|
||||
//
|
||||
// DXE_PERFORMANCE_STRING_SIZE must be a multiple of 8.
|
||||
//
|
||||
#define DXE_PERFORMANCE_STRING_SIZE 32
|
||||
#define DXE_PERFORMANCE_STRING_LENGTH (DXE_PERFORMANCE_STRING_SIZE - 1)
|
||||
|
||||
//
|
||||
// The default guage entries number for DXE phase.
|
||||
//
|
||||
#define INIT_DXE_GAUGE_DATA_ENTRIES 800
|
||||
|
||||
typedef struct {
|
||||
EFI_PHYSICAL_ADDRESS Handle;
|
||||
CHAR8 Token[DXE_PERFORMANCE_STRING_SIZE];
|
||||
CHAR8 Module[DXE_PERFORMANCE_STRING_SIZE];
|
||||
UINT64 StartTimeStamp;
|
||||
UINT64 EndTimeStamp;
|
||||
} GAUGE_DATA_ENTRY;
|
||||
|
||||
//
|
||||
// The header must be aligned at 8 bytes
|
||||
//
|
||||
typedef struct {
|
||||
UINT32 NumberOfEntries;
|
||||
UINT32 Reserved;
|
||||
} GAUGE_DATA_HEADER;
|
||||
|
||||
/**
|
||||
Adds a record at the end of the performance measurement log
|
||||
that records the start time of a performance measurement.
|
||||
|
||||
Adds a record to the end of the performance measurement log
|
||||
that contains the Handle, Token, and Module.
|
||||
The end time of the new record must be set to zero.
|
||||
If TimeStamp is not zero, then TimeStamp is used to fill in the start time in the record.
|
||||
If TimeStamp is zero, the start time in the record is filled in with the value
|
||||
read from the current time stamp.
|
||||
|
||||
@param Handle Pointer to environment specific context used
|
||||
to identify the component being measured.
|
||||
@param Token Pointer to a Null-terminated ASCII string
|
||||
that identifies the component being measured.
|
||||
@param Module Pointer to a Null-terminated ASCII string
|
||||
that identifies the module being measured.
|
||||
@param TimeStamp 64-bit time stamp.
|
||||
|
||||
@retval EFI_SUCCESS The data was read correctly from the device.
|
||||
@retval EFI_OUT_OF_RESOURCES There are not enough resources to record the measurement.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * PERFORMANCE_START_GAUGE) (
|
||||
IN CONST VOID *Handle, OPTIONAL
|
||||
IN CONST CHAR8 *Token, OPTIONAL
|
||||
IN CONST CHAR8 *Module, OPTIONAL
|
||||
IN UINT64 TimeStamp
|
||||
);
|
||||
|
||||
/**
|
||||
Searches the performance measurement log from the beginning of the log
|
||||
for the first matching record that contains a zero end time and fills in a valid end time.
|
||||
|
||||
Searches the performance measurement log from the beginning of the log
|
||||
for the first record that matches Handle, Token, and Module and has an end time value of zero.
|
||||
If the record can not be found then return EFI_NOT_FOUND.
|
||||
If the record is found and TimeStamp is not zero,
|
||||
then the end time in the record is filled in with the value specified by TimeStamp.
|
||||
If the record is found and TimeStamp is zero, then the end time in the matching record
|
||||
is filled in with the current time stamp value.
|
||||
|
||||
@param Handle Pointer to environment specific context used
|
||||
to identify the component being measured.
|
||||
@param Token Pointer to a Null-terminated ASCII string
|
||||
that identifies the component being measured.
|
||||
@param Module Pointer to a Null-terminated ASCII string
|
||||
that identifies the module being measured.
|
||||
@param TimeStamp 64-bit time stamp.
|
||||
|
||||
@retval EFI_SUCCESS The end of the measurement was recorded.
|
||||
@retval EFI_NOT_FOUND The specified measurement record could not be found.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * PERFORMANCE_END_GAUGE) (
|
||||
IN CONST VOID *Handle, OPTIONAL
|
||||
IN CONST CHAR8 *Token, OPTIONAL
|
||||
IN CONST CHAR8 *Module, OPTIONAL
|
||||
IN UINT64 TimeStamp
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves a previously logged performance measurement.
|
||||
|
||||
Retrieves the performance log entry from the performance log specified by LogEntryKey.
|
||||
If it stands for a valid entry, then EFI_SUCCESS is returned and
|
||||
GaugeDataEntry stores the pointer to that entry.
|
||||
|
||||
@param LogEntryKey The key for the previous performance measurement log entry.
|
||||
If 0, then the first performance measurement log entry is retrieved.
|
||||
@param GaugeDataEntry The indirect pointer to the gauge data entry specified by LogEntryKey
|
||||
if the retrieval is successful.
|
||||
|
||||
@retval EFI_SUCCESS The GuageDataEntry is successfuly found based on LogEntryKey.
|
||||
@retval EFI_NOT_FOUND The LogEntryKey is the last entry (equals to the total entry number).
|
||||
@retval EFI_INVALIDE_PARAMETER The LogEntryKey is not a valid entry (greater than the total entry number).
|
||||
@retval EFI_INVALIDE_PARAMETER GaugeDataEntry is NULL.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * PERFORMANCE_GET_GAUGE) (
|
||||
IN UINTN LogEntryKey,
|
||||
OUT GAUGE_DATA_ENTRY **GaugeDataEntry
|
||||
);
|
||||
|
||||
struct _PERFORMANCE_PROTOCOL {
|
||||
PERFORMANCE_START_GAUGE StartGauge;
|
||||
PERFORMANCE_END_GAUGE EndGauge;
|
||||
PERFORMANCE_GET_GAUGE GetGauge;
|
||||
};
|
||||
|
||||
extern EFI_GUID gPerformanceProtocolGuid;
|
||||
|
||||
#endif
|
50
MdeModulePkg/Include/Protocol/Print.h
Normal file
50
MdeModulePkg/Include/Protocol/Print.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/*++
|
||||
|
||||
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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
Print.h
|
||||
|
||||
Abstract:
|
||||
|
||||
This file defines the Print protocol
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __PPRINT_H__
|
||||
#define __PPRINT_H__
|
||||
|
||||
#define EFI_PRINT_PROTOCOL_GUID \
|
||||
{ 0xdf2d868e, 0x32fc, 0x4cf0, {0x8e, 0x6b, 0xff, 0xd9, 0x5d, 0x13, 0x43, 0xd0 } }
|
||||
|
||||
//
|
||||
// Forward reference for pure ANSI compatability
|
||||
//
|
||||
typedef struct _EFI_PRINT_PROTOCOL EFI_PRINT_PROTOCOL;
|
||||
|
||||
|
||||
typedef
|
||||
UINTN
|
||||
(EFIAPI *EFI_VSPRINT) (
|
||||
OUT CHAR16 *StartOfBuffer,
|
||||
IN UINTN BufferSize,
|
||||
IN CONST CHAR16 *FormatString,
|
||||
IN VA_LIST Marker
|
||||
);
|
||||
|
||||
struct _EFI_PRINT_PROTOCOL {
|
||||
EFI_VSPRINT VSPrint;
|
||||
};
|
||||
|
||||
|
||||
extern EFI_GUID gEfiPrintProtocolGuid;
|
||||
|
||||
#endif
|
241
MdeModulePkg/Include/Protocol/ScsiIo.h
Normal file
241
MdeModulePkg/Include/Protocol/ScsiIo.h
Normal file
@@ -0,0 +1,241 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
ScsiIo.h
|
||||
|
||||
Abstract:
|
||||
|
||||
SCSI I/O protocol.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __SCSI_IO_H__
|
||||
#define __SCSI_IO_H__
|
||||
|
||||
#define EFI_SCSI_IO_PROTOCOL_GUID \
|
||||
{ 0x403cd195, 0xf233, 0x48ec, {0x84, 0x55, 0xb2, 0xe5, 0x2f, 0x1d, 0x9e, 0x2 } }
|
||||
|
||||
//
|
||||
// Forward reference for pure ANSI compatability
|
||||
//
|
||||
typedef struct _EFI_SCSI_IO_PROTOCOL EFI_SCSI_IO_PROTOCOL;
|
||||
|
||||
//
|
||||
// SCSI Host Adapter Status definition
|
||||
//
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK 0x00
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND 0x09 // timeout when processing the command
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT 0x0b // timeout when waiting for the command processing
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT 0x0d // a message reject was received when processing command
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET 0x0e // a bus reset was detected
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR 0x0f
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED 0x10 // the adapter failed in issuing request sense command
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT 0x11 // selection timeout
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN 0x12 // data overrun or data underrun
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE 0x13 // Unexepected bus free
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR 0x14 // Target bus phase sequence failure
|
||||
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER 0x7f
|
||||
|
||||
|
||||
//
|
||||
// SCSI Target Status definition
|
||||
//
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_GOOD 0x00
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION 0x02 // check condition
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET 0x04 // condition met
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_BUSY 0x08 // busy
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE 0x10 // intermediate
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET 0x14 // intermediate-condition met
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT 0x18 // reservation conflict
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED 0x22 // command terminated
|
||||
#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL 0x28 // queue full
|
||||
|
||||
typedef struct {
|
||||
UINT64 Timeout;
|
||||
VOID *DataBuffer;
|
||||
VOID *SenseData;
|
||||
VOID *Cdb;
|
||||
UINT32 TransferLength;
|
||||
UINT8 CdbLength;
|
||||
UINT8 DataDirection;
|
||||
UINT8 HostAdapterStatus;
|
||||
UINT8 TargetStatus;
|
||||
UINT8 SenseDataLength;
|
||||
}EFI_SCSI_IO_SCSI_REQUEST_PACKET;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE) (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
OUT UINT8 *DeviceType
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Retrieves the device type information of the SCSI Controller.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
DeviceType - A pointer to the device type information
|
||||
retrieved from the SCSI Controller.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Retrieves the device type information successfully.
|
||||
EFI_INVALID_PARAMETER - The DeviceType is NULL.
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION) (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
OUT UINT32 *Target,
|
||||
OUT UINT64 *Lun
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
Retrieves the device location in the SCSI channel.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
Target - A pointer to the Target ID of a SCSI device
|
||||
on the SCSI channel.
|
||||
Lun - A pointer to the LUN of the SCSI device on
|
||||
the SCSI channel.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Retrieves the device location successfully.
|
||||
EFI_INVALID_PARAMETER - The Target or Lun is NULL.
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_BUS) (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Resets the SCSI Bus that the SCSI Controller is attached to.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The SCSI bus is reset successfully.
|
||||
EFI_DEVICE_ERROR - Errors encountered when resetting the SCSI bus.
|
||||
EFI_UNSUPPORTED - The bus reset operation is not supported by the
|
||||
SCSI Host Controller.
|
||||
EFI_TIMEOUT - A timeout occurred while attempting to reset
|
||||
the SCSI bus.
|
||||
--*/
|
||||
;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_DEVICE) (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Resets the SCSI Controller that the device handle specifies.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Reset the SCSI controller successfully.
|
||||
EFI_DEVICE_ERROR - Errors are encountered when resetting the
|
||||
SCSI Controller.
|
||||
EFI_UNSUPPORTED - The SCSI bus does not support a device
|
||||
reset operation.
|
||||
EFI_TIMEOUT - A timeout occurred while attempting to
|
||||
reset the SCSI Controller.
|
||||
--*/
|
||||
;
|
||||
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_CMD) (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet,
|
||||
IN EFI_EVENT Event OPTIONAL
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Sends a SCSI Request Packet to the SCSI Controller for execution.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
Packet - The SCSI request packet to send to the SCSI
|
||||
Controller specified by the device handle.
|
||||
Event - If the SCSI bus where the SCSI device is attached
|
||||
does not support non-blocking I/O, then Event is
|
||||
ignored, and blocking I/O is performed.
|
||||
If Event is NULL, then blocking I/O is performed.
|
||||
If Event is not NULL and non-blocking I/O is
|
||||
supported, then non-blocking I/O is performed,
|
||||
and Event will be signaled when the SCSI Request
|
||||
Packet completes.
|
||||
Returns:
|
||||
EFI_SUCCESS - The SCSI Request Packet was sent by the host
|
||||
successfully, and TransferLength bytes were
|
||||
transferred to/from DataBuffer.See
|
||||
HostAdapterStatus, TargetStatus,
|
||||
SenseDataLength, and SenseData in that order
|
||||
for additional status information.
|
||||
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. See HostAdapterStatus,
|
||||
TargetStatus, SenseDataLength, and SenseData in
|
||||
that order for additional status information.
|
||||
EFI_NOT_READY - The SCSI Request Packet could not be sent because
|
||||
there are too many SCSI Command Packets already
|
||||
queued.The caller may retry again later.
|
||||
EFI_DEVICE_ERROR - A device error occurred while attempting to send
|
||||
the SCSI Request Packet. See HostAdapterStatus,
|
||||
TargetStatus, SenseDataLength, and SenseData in
|
||||
that order for additional status information.
|
||||
EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid.
|
||||
The SCSI Request Packet was not sent, so no
|
||||
additional status information is available.
|
||||
EFI_UNSUPPORTED - The command described by the SCSI Request Packet
|
||||
is not supported by the SCSI initiator(i.e., SCSI
|
||||
Host Controller). The SCSI Request Packet was not
|
||||
sent, so no additional status information is
|
||||
available.
|
||||
EFI_TIMEOUT - A timeout occurred while waiting for the SCSI
|
||||
Request Packet to execute. See HostAdapterStatus,
|
||||
TargetStatus, SenseDataLength, and SenseData in
|
||||
that order for additional status information.
|
||||
--*/
|
||||
;
|
||||
|
||||
struct _EFI_SCSI_IO_PROTOCOL {
|
||||
EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE GetDeviceType;
|
||||
EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION GetDeviceLocation;
|
||||
EFI_SCSI_IO_PROTOCOL_RESET_BUS ResetBus;
|
||||
EFI_SCSI_IO_PROTOCOL_RESET_DEVICE ResetDevice;
|
||||
EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_CMD ExecuteSCSICommand;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiScsiIoProtocolGuid;
|
||||
|
||||
#endif
|
||||
|
83
MdeModulePkg/Include/Protocol/usbatapi.h
Normal file
83
MdeModulePkg/Include/Protocol/usbatapi.h
Normal file
@@ -0,0 +1,83 @@
|
||||
/*++
|
||||
|
||||
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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
UsbAtapi.h
|
||||
|
||||
Abstract:
|
||||
|
||||
EFI Atapi Protocol definition.
|
||||
|
||||
Revision History
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __EFI_USB_ATAPI_H__
|
||||
#define __EFI_USB_ATAPI_H__
|
||||
|
||||
//
|
||||
// Transfer protocol types
|
||||
//
|
||||
#define BOT 0x50
|
||||
#define CBI0 0x00
|
||||
#define CBI1 0x01
|
||||
|
||||
//
|
||||
// SubClass Code (defines command set)
|
||||
//
|
||||
#define EFI_USB_SUBCLASS_RBC 0x01
|
||||
#define EFI_USB_SUBCLASS_ATAPI 0x02
|
||||
#define EFI_USB_SUBCLASS_QIC_157 0x03
|
||||
#define EFI_USB_SUBCLASS_UFI 0x04
|
||||
#define EFI_USB_SUBCLASS_SFF_8070i 0x05
|
||||
#define EFI_USB_SUBCLASS_SCSI 0x06
|
||||
#define EFI_USB_SUBCLASS_RESERVED_LOW 0x07
|
||||
#define EFI_USB_SUBCLASS_RESERVED_HIGH 0xff
|
||||
//
|
||||
// Global GUID for transfer protocol interface
|
||||
//
|
||||
#define EFI_USB_ATAPI_PROTOCOL_GUID \
|
||||
{ 0x2B2F68DA, 0x0CD2, 0x44cf, {0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 } }
|
||||
|
||||
typedef struct _EFI_USB_ATAPI_PROTOCOL EFI_USB_ATAPI_PROTOCOL;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_USB_ATAPI_PACKET_CMD) (
|
||||
IN EFI_USB_ATAPI_PROTOCOL *This,
|
||||
IN VOID *Command,
|
||||
IN UINT8 CommandSize,
|
||||
IN VOID *DataBuffer,
|
||||
IN UINT32 BufferLength,
|
||||
IN EFI_USB_DATA_DIRECTION Direction,
|
||||
IN UINT16 TimeOutInMilliSeconds
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_USB_MASS_STORAGE_RESET) (
|
||||
IN EFI_USB_ATAPI_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
);
|
||||
|
||||
//
|
||||
// Protocol Interface Structure
|
||||
//
|
||||
struct _EFI_USB_ATAPI_PROTOCOL {
|
||||
EFI_USB_ATAPI_PACKET_CMD UsbAtapiPacketCmd;
|
||||
EFI_USB_MASS_STORAGE_RESET UsbAtapiReset;
|
||||
UINT32 CommandProtocol;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiUsbAtapiProtocolGuid;
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user