Initial import.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
61
EdkModulePkg/Include/Protocol/AcpiS3Save.h
Normal file
61
EdkModulePkg/Include/Protocol/AcpiS3Save.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
AcpiS3Save.h
|
||||
|
||||
Abstract:
|
||||
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _ACPI_S3_SAVE_PROTOCOL_H
|
||||
#define _ACPI_S3_SAVE_PROTOCOL_H
|
||||
|
||||
//
|
||||
// Forward reference for pure ANSI compatability
|
||||
//
|
||||
typedef struct _EFI_ACPI_S3_SAVE_PROTOCOL EFI_ACPI_S3_SAVE_PROTOCOL;
|
||||
|
||||
//
|
||||
// S3 Save Protocol GUID
|
||||
//
|
||||
#define EFI_ACPI_S3_SAVE_GUID \
|
||||
{ \
|
||||
0x125f2de1, 0xfb85, 0x440c, {0xa5, 0x4c, 0x4d, 0x99, 0x35, 0x8a, 0x8d, 0x38 } \
|
||||
}
|
||||
|
||||
//
|
||||
// Protocol Data Structures
|
||||
//
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ACPI_S3_SAVE) (
|
||||
IN EFI_ACPI_S3_SAVE_PROTOCOL * This,
|
||||
IN VOID * LegacyMemoryAddress
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ACPI_GET_LEGACY_MEMORY_SIZE) (
|
||||
IN EFI_ACPI_S3_SAVE_PROTOCOL * This,
|
||||
OUT UINTN * Size
|
||||
);
|
||||
|
||||
struct _EFI_ACPI_S3_SAVE_PROTOCOL {
|
||||
EFI_ACPI_GET_LEGACY_MEMORY_SIZE GetLegacyMemorySize;
|
||||
EFI_ACPI_S3_SAVE S3Save;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiAcpiS3SaveProtocolGuid;
|
||||
|
||||
#endif
|
121
EdkModulePkg/Include/Protocol/ConsoleControl.h
Normal file
121
EdkModulePkg/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
|
137
EdkModulePkg/Include/Protocol/CustomizedDecompress.h
Normal file
137
EdkModulePkg/Include/Protocol/CustomizedDecompress.h
Normal file
@@ -0,0 +1,137 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
CustomizedDecompress.h
|
||||
|
||||
Abstract:
|
||||
The user Customized Decompress Protocol Interface
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __CUSTOMIZED_DECOMPRESS_H__
|
||||
#define __CUSTOMIZED_DECOMPRESS_H__
|
||||
|
||||
#define EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL_GUID \
|
||||
{ 0x9a44198e, 0xa4a2, 0x44e6, {0x8a, 0x1f, 0x39, 0xbe, 0xfd, 0xac, 0x89, 0x6f } }
|
||||
|
||||
typedef struct _EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_CUSTOMIZED_DECOMPRESS_GET_INFO) (
|
||||
IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL *This,
|
||||
IN VOID *Source,
|
||||
IN UINT32 SourceSize,
|
||||
OUT UINT32 *DestinationSize,
|
||||
OUT UINT32 *ScratchSize
|
||||
);
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
The GetInfo() function retrieves the size of the uncompressed buffer
|
||||
and the temporary scratch buffer required to decompress the buffer
|
||||
specified by Source and SourceSize. If the size of the uncompressed
|
||||
buffer or the size of the scratch buffer cannot be determined from
|
||||
the compressed data specified by Source and SourceData, then
|
||||
EFI_INVALID_PARAMETER is returned. Otherwise, the size of the uncompressed
|
||||
buffer is returned in DestinationSize, the size of the scratch buffer is
|
||||
returned in ScratchSize, and EFI_SUCCESS is returned.
|
||||
|
||||
The GetInfo() function does not have scratch buffer available to perform
|
||||
a thorough checking of the validity of the source data. It just retrieves
|
||||
the 'Original Size' field from the beginning bytes of the source data and
|
||||
output it as DestinationSize. And ScratchSize is specific to the decompression
|
||||
implementation.
|
||||
|
||||
Arguments:
|
||||
|
||||
This - The protocol instance pointer
|
||||
Source - The source buffer containing the compressed data.
|
||||
SourceSize - The size, in bytes, of source buffer.
|
||||
DestinationSize - A pointer to the size, in bytes, of the uncompressed buffer
|
||||
that will be generated when the compressed buffer specified
|
||||
by Source and SourceSize is decompressed.
|
||||
ScratchSize - A pointer to the size, in bytes, of the scratch buffer that
|
||||
is required to decompress the compressed buffer specified by
|
||||
Source and SourceSize.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The size of the uncompressed data was returned in DestinationSize
|
||||
and the size of the scratch buffer was returned in ScratchSize.
|
||||
EFI_INVALID_PARAMETER - The size of the uncompressed data or the size of the scratch
|
||||
buffer cannot be determined from the compressed data specified by
|
||||
Source and SourceData.
|
||||
|
||||
--*/
|
||||
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_CUSTOMIZED_DECOMPRESS_DECOMPRESS) (
|
||||
IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL *This,
|
||||
IN VOID* Source,
|
||||
IN UINT32 SourceSize,
|
||||
IN OUT VOID* Destination,
|
||||
IN UINT32 DestinationSize,
|
||||
IN OUT VOID* Scratch,
|
||||
IN UINT32 ScratchSize
|
||||
);
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
The Decompress() function extracts decompressed data to its original form.
|
||||
|
||||
This protocol is designed so that the decompression algorithm can be
|
||||
implemented without using any memory services. As a result, the
|
||||
Decompress() function is not allowed to call AllocatePool() or
|
||||
AllocatePages() in its implementation. It is the caller's responsibility
|
||||
to allocate and free the Destination and Scratch buffers.
|
||||
|
||||
If the compressed source data specified by Source and SourceSize is
|
||||
sucessfully decompressed into Destination, then EFI_SUCCESS is returned.
|
||||
If the compressed source data specified by Source and SourceSize is not in
|
||||
a valid compressed data format, then EFI_INVALID_PARAMETER is returned.
|
||||
|
||||
Arguments:
|
||||
|
||||
This - The protocol instance pointer
|
||||
Source - The source buffer containing the compressed data.
|
||||
SourceSize - The size of source data.
|
||||
Destination - On output, the destination buffer that contains
|
||||
the uncompressed data.
|
||||
DestinationSize - The size of destination buffer. The size of destination
|
||||
buffer needed is obtained from GetInfo().
|
||||
Scratch - A temporary scratch buffer that is used to perform the
|
||||
decompression.
|
||||
ScratchSize - The size of scratch buffer. The size of scratch buffer needed
|
||||
is obtained from GetInfo().
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Decompression completed successfully, and the uncompressed
|
||||
buffer is returned in Destination.
|
||||
EFI_INVALID_PARAMETER
|
||||
- The source buffer specified by Source and SourceSize is
|
||||
corrupted (not in a valid compressed format).
|
||||
|
||||
--*/
|
||||
|
||||
struct _EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL {
|
||||
EFI_CUSTOMIZED_DECOMPRESS_GET_INFO GetInfo;
|
||||
EFI_CUSTOMIZED_DECOMPRESS_DECOMPRESS Decompress;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiCustomizedDecompressProtocolGuid;
|
||||
|
||||
#endif
|
89
EdkModulePkg/Include/Protocol/DebugAssert.h
Normal file
89
EdkModulePkg/Include/Protocol/DebugAssert.h
Normal file
@@ -0,0 +1,89 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
DebugAssert.h
|
||||
|
||||
Abstract:
|
||||
|
||||
This protocol allows provides debug services to a driver. This is not
|
||||
debugger support, but things like ASSERT() and DEBUG() macros
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _DEBUG_ASSERT_H_
|
||||
#define _DEBUG_ASSERT_H_
|
||||
|
||||
|
||||
#define EFI_DEBUG_ASSERT_PROTOCOL_GUID \
|
||||
{ 0xbe499c92, 0x7d4b, 0x11d4, {0xbc, 0xee, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
|
||||
|
||||
//
|
||||
// Forward reference for pure ANSI compatability
|
||||
//
|
||||
typedef struct _EFI_DEBUG_ASSERT_PROTOCOL EFI_DEBUG_ASSERT_PROTOCOL;
|
||||
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_DEBUG_ASSERT) (
|
||||
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
|
||||
IN CHAR8 *FileName,
|
||||
IN INTN LineNumber,
|
||||
IN CHAR8 *Description
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_DEBUG_PRINT) (
|
||||
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
|
||||
IN UINTN ErrorLevel,
|
||||
IN CHAR8 *Format,
|
||||
IN VA_LIST Marker
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_POST_CODE) (
|
||||
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
|
||||
IN UINT16 PostCode,
|
||||
IN CHAR8 *PostCodeString OPTIONAL
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_GET_ERROR_LEVEL) (
|
||||
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
|
||||
IN UINTN *ErrorLevel
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SET_ERROR_LEVEL) (
|
||||
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
|
||||
IN UINTN ErrorLevel
|
||||
);
|
||||
|
||||
struct _EFI_DEBUG_ASSERT_PROTOCOL {
|
||||
|
||||
EFI_DEBUG_ASSERT Assert;
|
||||
EFI_DEBUG_PRINT Print;
|
||||
EFI_POST_CODE PostCode;
|
||||
|
||||
EFI_GET_ERROR_LEVEL GetErrorLevel;
|
||||
EFI_SET_ERROR_LEVEL SetErrorLevel;
|
||||
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiDebugAssertProtocolGuid;
|
||||
|
||||
#endif
|
40
EdkModulePkg/Include/Protocol/DebugLevel.h
Normal file
40
EdkModulePkg/Include/Protocol/DebugLevel.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
DebugLevel.h
|
||||
|
||||
Abstract:
|
||||
This protocol is used to abstract the Debug Mask serivces for
|
||||
the specific driver or application image.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __DEBUG_LEVEL_H__
|
||||
#define __DEBUG_LEVEL_H__
|
||||
|
||||
//
|
||||
// 8D4C62E6-CD98-4e1d-AD6E-48BB50D29FF7
|
||||
//
|
||||
#define EFI_DEBUG_LEVEL_PROTOCOL_GUID \
|
||||
{ 0x8d4c62e6, 0xcd98, 0x4e1d, {0xad, 0x6e, 0x48, 0xbb, 0x50, 0xd2, 0x9f, 0xf7 } }
|
||||
|
||||
//
|
||||
// DebugLevel protocol definition
|
||||
//
|
||||
typedef struct _EFI_DEBUG_LEVEL_PROTOCOL {
|
||||
UINTN DebugLevel;
|
||||
} EFI_DEBUG_LEVEL_PROTOCOL;
|
||||
|
||||
extern EFI_GUID gEfiDebugLevelProtocolGuid;
|
||||
|
||||
#endif
|
179
EdkModulePkg/Include/Protocol/DiskInfo.h
Normal file
179
EdkModulePkg/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
|
||||
|
||||
|
137
EdkModulePkg/Include/Protocol/EdkDecompress.h
Normal file
137
EdkModulePkg/Include/Protocol/EdkDecompress.h
Normal file
@@ -0,0 +1,137 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
EdkDecompress.h
|
||||
|
||||
Abstract:
|
||||
The Tiano Decompress Protocol Interface
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __EDK_DECOMPRESS_H__
|
||||
#define __EDK_DECOMPRESS_H__
|
||||
|
||||
#define EFI_TIANO_DECOMPRESS_PROTOCOL_GUID \
|
||||
{ 0xe84cf29c, 0x191f, 0x4eae, {0x96, 0xe1, 0xf4, 0x6a, 0xec, 0xea, 0xea, 0x0b } }
|
||||
|
||||
typedef struct _EFI_TIANO_DECOMPRESS_PROTOCOL EFI_TIANO_DECOMPRESS_PROTOCOL;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_TIANO_DECOMPRESS_GET_INFO) (
|
||||
IN EFI_TIANO_DECOMPRESS_PROTOCOL *This,
|
||||
IN VOID *Source,
|
||||
IN UINT32 SourceSize,
|
||||
OUT UINT32 *DestinationSize,
|
||||
OUT UINT32 *ScratchSize
|
||||
);
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
The GetInfo() function retrieves the size of the uncompressed buffer
|
||||
and the temporary scratch buffer required to decompress the buffer
|
||||
specified by Source and SourceSize. If the size of the uncompressed
|
||||
buffer or the size of the scratch buffer cannot be determined from
|
||||
the compressed data specified by Source and SourceData, then
|
||||
EFI_INVALID_PARAMETER is returned. Otherwise, the size of the uncompressed
|
||||
buffer is returned in DestinationSize, the size of the scratch buffer is
|
||||
returned in ScratchSize, and EFI_SUCCESS is returned.
|
||||
|
||||
The GetInfo() function does not have scratch buffer available to perform
|
||||
a thorough checking of the validity of the source data. It just retrieves
|
||||
the 'Original Size' field from the beginning bytes of the source data and
|
||||
output it as DestinationSize. And ScratchSize is specific to the decompression
|
||||
implementation.
|
||||
|
||||
Arguments:
|
||||
|
||||
This - The protocol instance pointer
|
||||
Source - The source buffer containing the compressed data.
|
||||
SourceSize - The size, in bytes, of source buffer.
|
||||
DestinationSize - A pointer to the size, in bytes, of the uncompressed buffer
|
||||
that will be generated when the compressed buffer specified
|
||||
by Source and SourceSize is decompressed.
|
||||
ScratchSize - A pointer to the size, in bytes, of the scratch buffer that
|
||||
is required to decompress the compressed buffer specified by
|
||||
Source and SourceSize.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The size of the uncompressed data was returned in DestinationSize
|
||||
and the size of the scratch buffer was returned in ScratchSize.
|
||||
EFI_INVALID_PARAMETER - The size of the uncompressed data or the size of the scratch
|
||||
buffer cannot be determined from the compressed data specified by
|
||||
Source and SourceData.
|
||||
|
||||
--*/
|
||||
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_TIANO_DECOMPRESS_DECOMPRESS) (
|
||||
IN EFI_TIANO_DECOMPRESS_PROTOCOL *This,
|
||||
IN VOID* Source,
|
||||
IN UINT32 SourceSize,
|
||||
IN OUT VOID* Destination,
|
||||
IN UINT32 DestinationSize,
|
||||
IN OUT VOID* Scratch,
|
||||
IN UINT32 ScratchSize
|
||||
);
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
The Decompress() function extracts decompressed data to its original form.
|
||||
|
||||
This protocol is designed so that the decompression algorithm can be
|
||||
implemented without using any memory services. As a result, the
|
||||
Decompress() function is not allowed to call AllocatePool() or
|
||||
AllocatePages() in its implementation. It is the caller's responsibility
|
||||
to allocate and free the Destination and Scratch buffers.
|
||||
|
||||
If the compressed source data specified by Source and SourceSize is
|
||||
sucessfully decompressed into Destination, then EFI_SUCCESS is returned.
|
||||
If the compressed source data specified by Source and SourceSize is not in
|
||||
a valid compressed data format, then EFI_INVALID_PARAMETER is returned.
|
||||
|
||||
Arguments:
|
||||
|
||||
This - The protocol instance pointer
|
||||
Source - The source buffer containing the compressed data.
|
||||
SourceSize - The size of source data.
|
||||
Destination - On output, the destination buffer that contains
|
||||
the uncompressed data.
|
||||
DestinationSize - The size of destination buffer. The size of destination
|
||||
buffer needed is obtained from GetInfo().
|
||||
Scratch - A temporary scratch buffer that is used to perform the
|
||||
decompression.
|
||||
ScratchSize - The size of scratch buffer. The size of scratch buffer needed
|
||||
is obtained from GetInfo().
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Decompression completed successfully, and the uncompressed
|
||||
buffer is returned in Destination.
|
||||
EFI_INVALID_PARAMETER
|
||||
- The source buffer specified by Source and SourceSize is
|
||||
corrupted (not in a valid compressed format).
|
||||
|
||||
--*/
|
||||
|
||||
struct _EFI_TIANO_DECOMPRESS_PROTOCOL {
|
||||
EFI_TIANO_DECOMPRESS_GET_INFO GetInfo;
|
||||
EFI_TIANO_DECOMPRESS_DECOMPRESS Decompress;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiTianoDecompressProtocolGuid;
|
||||
|
||||
#endif
|
113
EdkModulePkg/Include/Protocol/ExtendedSalBootService.h
Normal file
113
EdkModulePkg/Include/Protocol/ExtendedSalBootService.h
Normal file
@@ -0,0 +1,113 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
ExtendedSalBootService.h
|
||||
|
||||
Abstract:
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _EXTENDED_SAL_PROTOCOL_H_
|
||||
#define _EXTENDED_SAL_PROTOCOL_H_
|
||||
|
||||
#define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID \
|
||||
{0xde0ee9a4,0x3c7a,0x44f2, {0xb7,0x8b,0xe3,0xcc,0xd6,0x9c,0x3a,0xf7}}
|
||||
|
||||
#define EXTENDED_SAL_SIGNATURE EFI_SIGNATURE_32('e', 's', 'a', 'l')
|
||||
|
||||
#define SAL_MIN_STATE_SIZE 0x400 * 1
|
||||
#define PAL_SCARTCH_SIZE 0x400 * 3
|
||||
#define ALIGN_MINSTATE_SIZE 512
|
||||
#define MAX_SAL_RECORD_SIZE 8*1024
|
||||
|
||||
#define SAL_RUNTIMESERVICE
|
||||
|
||||
typedef UINT16 EFI_SAL_PROCESSOR_ID;
|
||||
|
||||
typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL EXTENDED_SAL_BOOT_SERVICE_PROTOCOL;
|
||||
|
||||
typedef
|
||||
SAL_RUNTIMESERVICE
|
||||
SAL_RETURN_REGS
|
||||
(EFIAPI *SAL_EXTENDED_SAL_PROC) (
|
||||
IN EFI_GUID *ClassGuid,
|
||||
IN UINT64 FunctionId,
|
||||
IN UINT64 Arg2,
|
||||
IN UINT64 Arg3,
|
||||
IN UINT64 Arg4,
|
||||
IN UINT64 Arg5,
|
||||
IN UINT64 Arg6,
|
||||
IN UINT64 Arg7,
|
||||
IN UINT64 Arg8
|
||||
);
|
||||
|
||||
typedef
|
||||
SAL_RUNTIMESERVICE
|
||||
SAL_RETURN_REGS
|
||||
(EFIAPI *SAL_INTERNAL_EXTENDED_SAL_PROC) (
|
||||
IN UINT64 FunctionId,
|
||||
IN UINT64 Arg2,
|
||||
IN UINT64 Arg3,
|
||||
IN UINT64 Arg4,
|
||||
IN UINT64 Arg5,
|
||||
IN UINT64 Arg6,
|
||||
IN UINT64 Arg7,
|
||||
IN UINT64 Arg8,
|
||||
IN SAL_EXTENDED_SAL_PROC ExtendedSalProc,
|
||||
IN BOOLEAN VirtualMode,
|
||||
IN VOID *ModuleGlobal
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EXTENDED_SAL_ADD_SST_INFO) (
|
||||
IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
|
||||
IN UINT16 SalAVersion,
|
||||
IN UINT16 SalBVersion,
|
||||
IN CHAR8 *OemId,
|
||||
IN CHAR8 *ProductId
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY) (
|
||||
IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
|
||||
IN UINT8 EntryType,
|
||||
IN UINT8 *TableEntry,
|
||||
IN UINTN EntrySize
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC) (
|
||||
IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
|
||||
IN EFI_GUID *ClassGuid,
|
||||
IN UINT64 FunctionId,
|
||||
IN SAL_INTERNAL_EXTENDED_SAL_PROC InternalSalProc,
|
||||
IN VOID *PhysicalModuleGlobal
|
||||
);
|
||||
|
||||
//
|
||||
// Extended Sal Boot Service Protocol Interface
|
||||
//
|
||||
struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL{
|
||||
EXTENDED_SAL_ADD_SST_INFO AddSalSystemTableInfo;
|
||||
EXTENDED_SAL_ADD_SST_ENTRY AddSalSystemTableEntry;
|
||||
EXTENDED_SAL_REGISTER_INTERNAL_PROC AddExtendedSalProc;
|
||||
SAL_EXTENDED_SAL_PROC ExtendedSalProc;
|
||||
SAL_PROC SalProc;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid;
|
||||
|
||||
#endif
|
88
EdkModulePkg/Include/Protocol/FaultTolerantWriteLite.h
Normal file
88
EdkModulePkg/Include/Protocol/FaultTolerantWriteLite.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
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
EdkModulePkg/Include/Protocol/FvbExtension.h
Normal file
53
EdkModulePkg/Include/Protocol/FvbExtension.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
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
EdkModulePkg/Include/Protocol/GenericMemoryTest.h
Normal file
156
EdkModulePkg/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
|
||||
|
177
EdkModulePkg/Include/Protocol/IsaAcpi.h
Normal file
177
EdkModulePkg/Include/Protocol/IsaAcpi.h
Normal file
@@ -0,0 +1,177 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
IsaAcpi.h
|
||||
|
||||
Abstract:
|
||||
|
||||
EFI ISA Acpi Protocol
|
||||
|
||||
Revision History
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _ISA_ACPI_H_
|
||||
#define _ISA_ACPI_H_
|
||||
|
||||
#define EFI_ISA_ACPI_PROTOCOL_GUID \
|
||||
{ 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } }
|
||||
|
||||
typedef struct _EFI_ISA_ACPI_PROTOCOL EFI_ISA_ACPI_PROTOCOL;
|
||||
|
||||
//
|
||||
// Resource Attribute definition
|
||||
//
|
||||
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE 0x01
|
||||
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE 0x02
|
||||
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE 0x04
|
||||
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE 0x08
|
||||
|
||||
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK 0x03
|
||||
|
||||
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00
|
||||
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_A 0x01
|
||||
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_B 0x02
|
||||
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_F 0x03
|
||||
#define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE 0x04
|
||||
#define EFI_ISA_ACPI_DMA_COUNT_BY_WORD 0x08
|
||||
#define EFI_ISA_ACPI_DMA_BUS_MASTER 0x10
|
||||
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x20
|
||||
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x40
|
||||
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x80
|
||||
|
||||
#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK 0x03
|
||||
|
||||
#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT 0x00
|
||||
#define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT 0x01
|
||||
#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT 0x02
|
||||
#define EFI_ISA_ACPI_MEMORY_WRITEABLE 0x04
|
||||
#define EFI_ISA_ACPI_MEMORY_CACHEABLE 0x08
|
||||
#define EFI_ISA_ACPI_MEMORY_SHADOWABLE 0x10
|
||||
#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM 0x20
|
||||
|
||||
#define EFI_ISA_ACPI_IO_DECODE_10_BITS 0x01
|
||||
#define EFI_ISA_ACPI_IO_DECODE_16_BITS 0x02
|
||||
|
||||
//
|
||||
// Resource List definition:
|
||||
// at first, the resource was defined as below
|
||||
// but in the future, it will be defined again that follow ACPI spec: ACPI resource type
|
||||
// so that, in this driver, we can interpret the ACPI table and get the ISA device information.
|
||||
//
|
||||
|
||||
typedef enum {
|
||||
EfiIsaAcpiResourceEndOfList,
|
||||
EfiIsaAcpiResourceIo,
|
||||
EfiIsaAcpiResourceMemory,
|
||||
EfiIsaAcpiResourceDma,
|
||||
EfiIsaAcpiResourceInterrupt
|
||||
} EFI_ISA_ACPI_RESOURCE_TYPE;
|
||||
|
||||
typedef struct {
|
||||
EFI_ISA_ACPI_RESOURCE_TYPE Type;
|
||||
UINT32 Attribute;
|
||||
UINT32 StartRange;
|
||||
UINT32 EndRange;
|
||||
} EFI_ISA_ACPI_RESOURCE;
|
||||
|
||||
typedef struct {
|
||||
UINT32 HID;
|
||||
UINT32 UID;
|
||||
} EFI_ISA_ACPI_DEVICE_ID;
|
||||
|
||||
typedef struct {
|
||||
EFI_ISA_ACPI_DEVICE_ID Device;
|
||||
EFI_ISA_ACPI_RESOURCE *ResourceItem;
|
||||
} EFI_ISA_ACPI_RESOURCE_LIST;
|
||||
|
||||
//
|
||||
// Prototypes for the ISA ACPI Protocol
|
||||
//
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_ACPI_DEVICE_ENUMERATE) (
|
||||
IN EFI_ISA_ACPI_PROTOCOL *This,
|
||||
OUT EFI_ISA_ACPI_DEVICE_ID **Device
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_ACPI_SET_DEVICE_POWER) (
|
||||
IN EFI_ISA_ACPI_PROTOCOL *This,
|
||||
IN EFI_ISA_ACPI_DEVICE_ID *Device,
|
||||
IN BOOLEAN OnOff
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_ACPI_GET_CUR_RESOURCE) (
|
||||
IN EFI_ISA_ACPI_PROTOCOL *This,
|
||||
IN EFI_ISA_ACPI_DEVICE_ID *Device,
|
||||
OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_ACPI_GET_POS_RESOURCE) (
|
||||
IN EFI_ISA_ACPI_PROTOCOL *This,
|
||||
IN EFI_ISA_ACPI_DEVICE_ID *Device,
|
||||
OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_ACPI_SET_RESOURCE) (
|
||||
IN EFI_ISA_ACPI_PROTOCOL *This,
|
||||
IN EFI_ISA_ACPI_DEVICE_ID *Device,
|
||||
IN EFI_ISA_ACPI_RESOURCE_LIST *ResourceList
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_ACPI_ENABLE_DEVICE) (
|
||||
IN EFI_ISA_ACPI_PROTOCOL *This,
|
||||
IN EFI_ISA_ACPI_DEVICE_ID *Device,
|
||||
IN BOOLEAN Enable
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_ACPI_INIT_DEVICE) (
|
||||
IN EFI_ISA_ACPI_PROTOCOL *This,
|
||||
IN EFI_ISA_ACPI_DEVICE_ID *Device
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT) (
|
||||
IN EFI_ISA_ACPI_PROTOCOL *This
|
||||
);
|
||||
|
||||
//
|
||||
// Interface structure for the ISA ACPI Protocol
|
||||
//
|
||||
struct _EFI_ISA_ACPI_PROTOCOL {
|
||||
EFI_ISA_ACPI_DEVICE_ENUMERATE DeviceEnumerate;
|
||||
EFI_ISA_ACPI_SET_DEVICE_POWER SetPower;
|
||||
EFI_ISA_ACPI_GET_CUR_RESOURCE GetCurResource;
|
||||
EFI_ISA_ACPI_GET_POS_RESOURCE GetPosResource;
|
||||
EFI_ISA_ACPI_SET_RESOURCE SetResource;
|
||||
EFI_ISA_ACPI_ENABLE_DEVICE EnableDevice;
|
||||
EFI_ISA_ACPI_INIT_DEVICE InitDevice;
|
||||
EFI_ISA_ACPI_INTERFACE_INIT InterfaceInit;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiIsaAcpiProtocolGuid;
|
||||
|
||||
#endif
|
174
EdkModulePkg/Include/Protocol/IsaIo.h
Normal file
174
EdkModulePkg/Include/Protocol/IsaIo.h
Normal file
@@ -0,0 +1,174 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
IsaIo.h
|
||||
|
||||
Abstract:
|
||||
|
||||
EFI ISA I/O Protocol
|
||||
|
||||
Revision History
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _EFI_ISA_IO_H
|
||||
#define _EFI_ISA_IO_H
|
||||
|
||||
//
|
||||
// Global ID for the ISA I/O Protocol
|
||||
//
|
||||
|
||||
#define EFI_ISA_IO_PROTOCOL_GUID \
|
||||
{ 0x7ee2bd44, 0x3da0, 0x11d4, { 0x9a, 0x38, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
|
||||
|
||||
typedef struct _EFI_ISA_IO_PROTOCOL EFI_ISA_IO_PROTOCOL;
|
||||
|
||||
//
|
||||
// Prototypes for the ISA I/O Protocol
|
||||
//
|
||||
|
||||
typedef enum {
|
||||
EfiIsaIoWidthUint8,
|
||||
EfiIsaIoWidthUint16,
|
||||
EfiIsaIoWidthUint32,
|
||||
EfiIsaIoWidthReserved,
|
||||
EfiIsaIoWidthFifoUint8,
|
||||
EfiIsaIoWidthFifoUint16,
|
||||
EfiIsaIoWidthFifoUint32,
|
||||
EfiIsaIoWidthFifoReserved,
|
||||
EfiIsaIoWidthFillUint8,
|
||||
EfiIsaIoWidthFillUint16,
|
||||
EfiIsaIoWidthFillUint32,
|
||||
EfiIsaIoWidthFillReserved,
|
||||
EfiIsaIoWidthMaximum
|
||||
} EFI_ISA_IO_PROTOCOL_WIDTH;
|
||||
|
||||
//
|
||||
// Attributes for common buffer allocations
|
||||
//
|
||||
#define EFI_ISA_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x080 // Map a memory range so write are combined
|
||||
#define EFI_ISA_IO_ATTRIBUTE_MEMORY_CACHED 0x800 // Map a memory range so all r/w accesses are cached
|
||||
#define EFI_ISA_IO_ATTRIBUTE_MEMORY_DISABLE 0x1000 // Disable a memory range
|
||||
|
||||
//
|
||||
// Channel attribute for DMA operations
|
||||
//
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_COMPATIBLE 0x001
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_A 0x002
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_B 0x004
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_C 0x008
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8 0x010
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_16 0x020
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE 0x040
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_DEMAND_MODE 0x080
|
||||
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_AUTO_INITIALIZE 0x100
|
||||
|
||||
typedef enum {
|
||||
EfiIsaIoOperationBusMasterRead,
|
||||
EfiIsaIoOperationBusMasterWrite,
|
||||
EfiIsaIoOperationBusMasterCommonBuffer,
|
||||
EfiIsaIoOperationSlaveRead,
|
||||
EfiIsaIoOperationSlaveWrite,
|
||||
EfiIsaIoOperationMaximum
|
||||
} EFI_ISA_IO_PROTOCOL_OPERATION;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_IO_PROTOCOL_IO_MEM) (
|
||||
IN EFI_ISA_IO_PROTOCOL *This,
|
||||
IN EFI_ISA_IO_PROTOCOL_WIDTH Width,
|
||||
IN UINT32 Offset,
|
||||
IN UINTN Count,
|
||||
IN OUT VOID *Buffer
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
EFI_ISA_IO_PROTOCOL_IO_MEM Read;
|
||||
EFI_ISA_IO_PROTOCOL_IO_MEM Write;
|
||||
} EFI_ISA_IO_PROTOCOL_ACCESS;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_IO_PROTOCOL_COPY_MEM) (
|
||||
IN EFI_ISA_IO_PROTOCOL *This,
|
||||
IN EFI_ISA_IO_PROTOCOL_WIDTH Width,
|
||||
IN UINT32 DestOffset,
|
||||
IN UINT32 SrcOffset,
|
||||
IN UINTN Count
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_IO_PROTOCOL_MAP) (
|
||||
IN EFI_ISA_IO_PROTOCOL *This,
|
||||
IN EFI_ISA_IO_PROTOCOL_OPERATION Operation,
|
||||
IN UINT8 ChannelNumber OPTIONAL,
|
||||
IN UINT32 ChannelAttributes,
|
||||
IN VOID *HostAddress,
|
||||
IN OUT UINTN *NumberOfBytes,
|
||||
OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
|
||||
OUT VOID **Mapping
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_IO_PROTOCOL_UNMAP) (
|
||||
IN EFI_ISA_IO_PROTOCOL *This,
|
||||
IN VOID *Mapping
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_IO_PROTOCOL_ALLOCATE_BUFFER) (
|
||||
IN EFI_ISA_IO_PROTOCOL *This,
|
||||
IN EFI_ALLOCATE_TYPE Type,
|
||||
IN EFI_MEMORY_TYPE MemoryType,
|
||||
IN UINTN Pages,
|
||||
OUT VOID **HostAddress,
|
||||
IN UINT64 Attributes
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_IO_PROTOCOL_FREE_BUFFER) (
|
||||
IN EFI_ISA_IO_PROTOCOL *This,
|
||||
IN UINTN Pages,
|
||||
IN VOID *HostAddress
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_ISA_IO_PROTOCOL_FLUSH) (
|
||||
IN EFI_ISA_IO_PROTOCOL *This
|
||||
);
|
||||
|
||||
//
|
||||
// Interface structure for the ISA I/O Protocol
|
||||
//
|
||||
struct _EFI_ISA_IO_PROTOCOL {
|
||||
EFI_ISA_IO_PROTOCOL_ACCESS Mem;
|
||||
EFI_ISA_IO_PROTOCOL_ACCESS Io;
|
||||
EFI_ISA_IO_PROTOCOL_COPY_MEM CopyMem;
|
||||
EFI_ISA_IO_PROTOCOL_MAP Map;
|
||||
EFI_ISA_IO_PROTOCOL_UNMAP Unmap;
|
||||
EFI_ISA_IO_PROTOCOL_ALLOCATE_BUFFER AllocateBuffer;
|
||||
EFI_ISA_IO_PROTOCOL_FREE_BUFFER FreeBuffer;
|
||||
EFI_ISA_IO_PROTOCOL_FLUSH Flush;
|
||||
EFI_ISA_ACPI_RESOURCE_LIST *ResourceList;
|
||||
UINT32 RomSize;
|
||||
VOID *RomImage;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiIsaIoProtocolGuid;
|
||||
|
||||
#endif
|
68
EdkModulePkg/Include/Protocol/LoadPe32Image.h
Normal file
68
EdkModulePkg/Include/Protocol/LoadPe32Image.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
LoadPe32Image.h
|
||||
|
||||
Abstract:
|
||||
Load File protocol as defined in the EFI 1.0 specification.
|
||||
|
||||
Load file protocol exists to supports the addition of new boot devices,
|
||||
and to support booting from devices that do not map well to file system.
|
||||
Network boot is done via a LoadFile protocol.
|
||||
|
||||
EFI 1.0 can boot from any device that produces a LoadFile protocol.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __LOAD_PE32_IMAGE_H__
|
||||
#define __LOAD_PE32_IMAGE_H__
|
||||
|
||||
#define PE32_IMAGE_PROTOCOL_GUID \
|
||||
{0x5cb5c776,0x60d5,0x45ee,{0x88,0x3c,0x45,0x27,0x8,0xcd,0x74,0x3f }}
|
||||
|
||||
#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_NONE 0x00
|
||||
#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION 0x01
|
||||
#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATION 0x02
|
||||
|
||||
typedef struct _EFI_PE32_IMAGE_PROTOCOL EFI_PE32_IMAGE_PROTOCOL;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *LOAD_PE_IMAGE) (
|
||||
IN EFI_PE32_IMAGE_PROTOCOL *This,
|
||||
IN EFI_HANDLE ParentImageHandle,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
|
||||
IN VOID *SourceBuffer OPTIONAL,
|
||||
IN UINTN SourceSize,
|
||||
IN EFI_PHYSICAL_ADDRESS DstBuffer OPTIONAL,
|
||||
OUT UINTN *NumberOfPages OPTIONAL,
|
||||
OUT EFI_HANDLE *ImageHandle,
|
||||
OUT EFI_PHYSICAL_ADDRESS *EntryPoint OPTIONAL,
|
||||
IN UINT32 Attribute
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *UNLOAD_PE_IMAGE) (
|
||||
IN EFI_PE32_IMAGE_PROTOCOL *This,
|
||||
IN EFI_HANDLE ImageHandle
|
||||
);
|
||||
|
||||
struct _EFI_PE32_IMAGE_PROTOCOL {
|
||||
LOAD_PE_IMAGE LoadPeImage;
|
||||
UNLOAD_PE_IMAGE UnLoadPeImage;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiLoadPeImageProtocolGuid;
|
||||
|
||||
#endif
|
||||
|
79
EdkModulePkg/Include/Protocol/OEMBadging.h
Normal file
79
EdkModulePkg/Include/Protocol/OEMBadging.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
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
|
54
EdkModulePkg/Include/Protocol/PciHotPlugRequest.h
Normal file
54
EdkModulePkg/Include/Protocol/PciHotPlugRequest.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
PciHotPlugRequest.h
|
||||
|
||||
Abstract:
|
||||
|
||||
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _PCI_HOTPLUG_REQUEST_H_
|
||||
#define _PCI_HOTPLUG_REQUEST_H_
|
||||
|
||||
#define EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID \
|
||||
{0x19cb87ab,0x2cb9,{0x4665,0x83,0x60,0xdd,0xcf,0x60,0x54,0xf7,0x9d}}
|
||||
|
||||
typedef enum {
|
||||
EfiPciHotPlugRequestAdd,
|
||||
EfiPciHotplugRequestRemove
|
||||
} EFI_PCI_HOTPLUG_OPERATION;
|
||||
|
||||
typedef struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL EFI_PCI_HOTPLUG_REQUEST_PROTOCOL;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PCI_HOTPLUG_REQUEST_NOTIFY) (
|
||||
IN EFI_PCI_HOTPLUG_REQUEST_PROTOCOL *This,
|
||||
IN EFI_PCI_HOTPLUG_OPERATION Operation,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL,
|
||||
IN OUT UINT8 *NumberOfChildren,
|
||||
IN OUT EFI_HANDLE *ChildHandleBuffer
|
||||
);
|
||||
|
||||
|
||||
|
||||
struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL {
|
||||
EFI_PCI_HOTPLUG_REQUEST_NOTIFY Notify;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPciHotPlugRequestProtocolGuid;
|
||||
|
||||
#endif
|
166
EdkModulePkg/Include/Protocol/Performance.h
Normal file
166
EdkModulePkg/Include/Protocol/Performance.h
Normal file
@@ -0,0 +1,166 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
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
EdkModulePkg/Include/Protocol/Print.h
Normal file
50
EdkModulePkg/Include/Protocol/Print.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
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
|
350
EdkModulePkg/Include/Protocol/PxeDhcp4.h
Normal file
350
EdkModulePkg/Include/Protocol/PxeDhcp4.h
Normal file
@@ -0,0 +1,350 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
PxeDhcp4.h
|
||||
|
||||
Abstract:
|
||||
EFI PXE DHCPv4 protocol definition
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _PXEDHCP4_H_
|
||||
#define _PXEDHCP4_H_
|
||||
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
//
|
||||
// PXE DHCPv4 GUID definition
|
||||
//
|
||||
|
||||
#define EFI_PXE_DHCP4_PROTOCOL_GUID \
|
||||
{ 0x03c4e624, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x29, 0x3f, 0xc1, 0x4d } }
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
//
|
||||
// Interface definition
|
||||
//
|
||||
|
||||
typedef struct _EFI_PXE_DHCP4_PROTOCOL EFI_PXE_DHCP4_PROTOCOL;
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
//
|
||||
// Descriptions of the DHCP version 4 header and options can be found
|
||||
// in RFC-2131 and RFC-2132 at www.ietf.org
|
||||
//
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
|
||||
UINT8 op;
|
||||
#define BOOTP_REQUEST 1
|
||||
#define BOOTP_REPLY 2
|
||||
|
||||
UINT8 htype;
|
||||
|
||||
UINT8 hlen;
|
||||
|
||||
UINT8 hops;
|
||||
|
||||
UINT32 xid;
|
||||
|
||||
UINT16 secs;
|
||||
#define DHCP4_INITIAL_SECONDS 4
|
||||
|
||||
UINT16 flags;
|
||||
#define DHCP4_BROADCAST_FLAG 0x8000
|
||||
|
||||
UINT32 ciaddr;
|
||||
|
||||
UINT32 yiaddr;
|
||||
|
||||
UINT32 siaddr;
|
||||
|
||||
UINT32 giaddr;
|
||||
|
||||
UINT8 chaddr[16];
|
||||
|
||||
UINT8 sname[64];
|
||||
|
||||
UINT8 fname[128];
|
||||
|
||||
//
|
||||
// This is the minimum option length as specified in RFC-2131.
|
||||
// The packet must be padded out this far with DHCP4_PAD.
|
||||
// DHCPv4 packets are usually 576 bytes in length. This length
|
||||
// includes the IPv4 and UDPv4 headers but not the media header.
|
||||
// Note: Not all DHCP relay agents will forward DHCPv4 packets
|
||||
// if they are less than 384 bytes or exceed 576 bytes. Even if
|
||||
// the underlying hardware can handle smaller and larger packets,
|
||||
// many older relay agents will not accept them.
|
||||
//
|
||||
UINT32 magik;
|
||||
#define DHCP4_MAGIK_NUMBER 0x63825363
|
||||
|
||||
UINT8 options[308];
|
||||
|
||||
} DHCP4_HEADER;
|
||||
#pragma pack()
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
//
|
||||
// DHCPv4 packet definition. Room for 576 bytes including IP and
|
||||
// UDP header.
|
||||
//
|
||||
|
||||
#define DHCP4_MAX_PACKET_SIZE 576
|
||||
#define DHCP4_UDP_HEADER_SIZE 8
|
||||
#define DHCP4_IP_HEADER_SIZE 20
|
||||
|
||||
#pragma pack(1)
|
||||
typedef union _DHCP4_PACKET {
|
||||
UINT32 _force_data_alignment;
|
||||
|
||||
UINT8 raw[1500];
|
||||
|
||||
DHCP4_HEADER dhcp4;
|
||||
} DHCP4_PACKET;
|
||||
#pragma pack()
|
||||
|
||||
#define DHCP4_SERVER_PORT 67
|
||||
#define DHCP4_CLIENT_PORT 68
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
//
|
||||
// DHCPv4 and PXE option numbers.
|
||||
//
|
||||
|
||||
#define DHCP4_PAD 0
|
||||
#define DHCP4_END 255
|
||||
#define DHCP4_SUBNET_MASK 1
|
||||
#define DHCP4_TIME_OFFSET 2
|
||||
#define DHCP4_ROUTER_LIST 3
|
||||
#define DHCP4_TIME_SERVERS 4
|
||||
#define DHCP4_NAME_SERVERS 5
|
||||
#define DHCP4_DNS_SERVERS 6
|
||||
#define DHCP4_LOG_SERVERS 7
|
||||
#define DHCP4_COOKIE_SERVERS 8
|
||||
#define DHCP4_LPR_SREVERS 9
|
||||
#define DHCP4_IMPRESS_SERVERS 10
|
||||
#define DHCP4_RESOURCE_LOCATION_SERVERS 11
|
||||
#define DHCP4_HOST_NAME 12
|
||||
#define DHCP4_BOOT_FILE_SIZE 13
|
||||
#define DHCP4_DUMP_FILE 14
|
||||
#define DHCP4_DOMAIN_NAME 15
|
||||
#define DHCP4_SWAP_SERVER 16
|
||||
#define DHCP4_ROOT_PATH 17
|
||||
#define DHCP4_EXTENSION_PATH 18
|
||||
#define DHCP4_IP_FORWARDING 19
|
||||
#define DHCP4_NON_LOCAL_SOURCE_ROUTE 20
|
||||
#define DHCP4_POLICY_FILTER 21
|
||||
#define DHCP4_MAX_DATAGRAM_SIZE 22
|
||||
#define DHCP4_DEFAULT_TTL 23
|
||||
#define DHCP4_MTU_AGING_TIMEOUT 24
|
||||
#define DHCP4_MTU_SIZES 25
|
||||
#define DHCP4_MTU_TO_USE 26
|
||||
#define DHCP4_ALL_SUBNETS_LOCAL 27
|
||||
#define DHCP4_BROADCAST_ADDRESS 28
|
||||
#define DHCP4_PERFORM_MASK_DISCOVERY 29
|
||||
#define DHCP4_RESPOND_TO_MASK_REQ 30
|
||||
#define DHCP4_PERFORM_ROUTER_DISCOVERY 31
|
||||
#define DHCP4_ROUTER_SOLICIT_ADDRESS 32
|
||||
#define DHCP4_STATIC_ROUTER_LIST 33
|
||||
#define DHCP4_USE_ARP_TRAILERS 34
|
||||
#define DHCP4_ARP_CACHE_TIMEOUT 35
|
||||
#define DHCP4_ETHERNET_ENCAPSULATION 36
|
||||
#define DHCP4_TCP_DEFAULT_TTL 37
|
||||
#define DHCP4_TCP_KEEP_ALIVE_INT 38
|
||||
#define DHCP4_KEEP_ALIVE_GARBAGE 39
|
||||
#define DHCP4_NIS_DOMAIN_NAME 40
|
||||
#define DHCP4_NIS_SERVERS 41
|
||||
#define DHCP4_NTP_SERVERS 42
|
||||
#define DHCP4_VENDOR_SPECIFIC 43
|
||||
# define PXE_MTFTP_IP 1
|
||||
# define PXE_MTFTP_CPORT 2
|
||||
# define PXE_MTFTP_SPORT 3
|
||||
# define PXE_MTFTP_TMOUT 4
|
||||
# define PXE_MTFTP_DELAY 5
|
||||
# define PXE_DISCOVERY_CONTROL 6
|
||||
# define PXE_DISABLE_BROADCAST_DISCOVERY 0x01
|
||||
# define PXE_DISABLE_MULTICAST_DISCOVERY 0x02
|
||||
# define PXE_ACCEPT_ONLY_PXE_BOOT_SERVERS 0x04
|
||||
# define PXE_DO_NOT_PROMPT 0x08
|
||||
# define PXE_DISCOVERY_MCAST_ADDR 7
|
||||
# define PXE_BOOT_SERVERS 8
|
||||
# define PXE_BOOT_MENU 9
|
||||
# define PXE_BOOT_PROMPT 10
|
||||
# define PXE_MCAST_ADDRS_ALLOC 11
|
||||
# define PXE_CREDENTIAL_TYPES 12
|
||||
# define PXE_BOOT_ITEM 71
|
||||
#define DHCP4_NBNS_SERVERS 44
|
||||
#define DHCP4_NBDD_SERVERS 45
|
||||
#define DHCP4_NETBIOS_NODE_TYPE 46
|
||||
#define DHCP4_NETBIOS_SCOPE 47
|
||||
#define DHCP4_XWINDOW_SYSTEM_FONT_SERVERS 48
|
||||
#define DHCP4_XWINDOW_SYSTEM_DISPLAY_MANAGERS 49
|
||||
#define DHCP4_REQUESTED_IP_ADDRESS 50
|
||||
#define DHCP4_LEASE_TIME 51
|
||||
#define DHCP4_OPTION_OVERLOAD 52
|
||||
# define DHCP4_OVERLOAD_FNAME 1
|
||||
# define DHCP4_OVERLOAD_SNAME 2
|
||||
# define DHCP4_OVERLOAD_FNAME_AND_SNAME 3
|
||||
#define DHCP4_MESSAGE_TYPE 53
|
||||
# define DHCP4_MESSAGE_TYPE_DISCOVER 1
|
||||
# define DHCP4_MESSAGE_TYPE_OFFER 2
|
||||
# define DHCP4_MESSAGE_TYPE_REQUEST 3
|
||||
# define DHCP4_MESSAGE_TYPE_DECLINE 4
|
||||
# define DHCP4_MESSAGE_TYPE_ACK 5
|
||||
# define DHCP4_MESSAGE_TYPE_NAK 6
|
||||
# define DHCP4_MESSAGE_TYPE_RELEASE 7
|
||||
# define DHCP4_MESSAGE_TYPE_INFORM 8
|
||||
#define DHCP4_SERVER_IDENTIFIER 54
|
||||
#define DHCP4_PARAMETER_REQUEST_LIST 55
|
||||
#define DHCP4_ERROR_MESSAGE 56
|
||||
#define DHCP4_MAX_MESSAGE_SIZE 57
|
||||
# define DHCP4_DEFAULT_MAX_MESSAGE_SIZE 576
|
||||
#define DHCP4_RENEWAL_TIME 58
|
||||
#define DHCP4_REBINDING_TIME 59
|
||||
#define DHCP4_CLASS_IDENTIFIER 60
|
||||
#define DHCP4_CLIENT_IDENTIFIER 61
|
||||
#define DHCP4_NISPLUS_DOMAIN_NAME 64
|
||||
#define DHCP4_NISPLUS_SERVERS 65
|
||||
#define DHCP4_TFTP_SERVER_NAME 66
|
||||
#define DHCP4_BOOTFILE 67
|
||||
#define DHCP4_MOBILE_IP_HOME_AGENTS 68
|
||||
#define DHCP4_SMPT_SERVERS 69
|
||||
#define DHCP4_POP3_SERVERS 70
|
||||
#define DHCP4_NNTP_SERVERS 71
|
||||
#define DHCP4_WWW_SERVERS 72
|
||||
#define DHCP4_FINGER_SERVERS 73
|
||||
#define DHCP4_IRC_SERVERS 74
|
||||
#define DHCP4_STREET_TALK_SERVERS 75
|
||||
#define DHCP4_STREET_TALK_DIR_ASSIST_SERVERS 76
|
||||
#define DHCP4_NDS_SERVERS 85
|
||||
#define DHCP4_NDS_TREE_NAME 86
|
||||
#define DHCP4_NDS_CONTEXT 87
|
||||
#define DHCP4_SYSTEM_ARCHITECTURE 93
|
||||
#define DHCP4_NETWORK_ARCHITECTURE 94
|
||||
#define DHCP4_PLATFORM_ID 97
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
//
|
||||
// DHCP4 option format.
|
||||
//
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
UINT8 op;
|
||||
UINT8 len;
|
||||
UINT8 data[1];
|
||||
} DHCP4_OP;
|
||||
#pragma pack()
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
typedef struct {
|
||||
DHCP4_PACKET Discover;
|
||||
DHCP4_PACKET Offer;
|
||||
DHCP4_PACKET Request;
|
||||
DHCP4_PACKET AckNak;
|
||||
BOOLEAN SetupCompleted;
|
||||
BOOLEAN InitCompleted;
|
||||
BOOLEAN SelectCompleted;
|
||||
BOOLEAN IsBootp;
|
||||
BOOLEAN IsAck;
|
||||
} EFI_PXE_DHCP4_DATA;
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PXE_DHCP4_RUN) (
|
||||
IN EFI_PXE_DHCP4_PROTOCOL *This,
|
||||
IN OPTIONAL UINTN OpLen,
|
||||
IN OPTIONAL VOID *OpList
|
||||
);
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PXE_DHCP4_SETUP) (
|
||||
IN EFI_PXE_DHCP4_PROTOCOL *This,
|
||||
IN OPTIONAL EFI_PXE_DHCP4_DATA * NewData
|
||||
);
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PXE_DHCP4_INIT) (
|
||||
IN EFI_PXE_DHCP4_PROTOCOL *This,
|
||||
IN UINTN SecondsTimeout,
|
||||
OUT UINTN *Offers,
|
||||
OUT DHCP4_PACKET **OfferList
|
||||
);
|
||||
|
||||
#define DHCP4_MIN_SECONDS 1
|
||||
#define DHCP4_MAX_SECONDS 60
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PXE_DHCP4_SELECT) (
|
||||
IN EFI_PXE_DHCP4_PROTOCOL *This,
|
||||
IN UINTN SecondsTimeout,
|
||||
IN DHCP4_PACKET * offer
|
||||
);
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PXE_DHCP4_RENEW) (
|
||||
IN EFI_PXE_DHCP4_PROTOCOL *This,
|
||||
UINTN seconds_timeout
|
||||
);
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PXE_DHCP4_REBIND) (
|
||||
IN EFI_PXE_DHCP4_PROTOCOL *This,
|
||||
UINTN seconds_timeout
|
||||
);
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PXE_DHCP4_RELEASE) (
|
||||
IN EFI_PXE_DHCP4_PROTOCOL * This
|
||||
);
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
#define EFI_PXE_DHCP4_PROTOCOL_REVISION 0x00010000
|
||||
|
||||
struct _EFI_PXE_DHCP4_PROTOCOL {
|
||||
UINT64 Revision;
|
||||
EFI_PXE_DHCP4_RUN Run;
|
||||
EFI_PXE_DHCP4_SETUP Setup;
|
||||
EFI_PXE_DHCP4_INIT Init;
|
||||
EFI_PXE_DHCP4_SELECT Select;
|
||||
EFI_PXE_DHCP4_RENEW Renew;
|
||||
EFI_PXE_DHCP4_REBIND Rebind;
|
||||
EFI_PXE_DHCP4_RELEASE Release;
|
||||
EFI_PXE_DHCP4_DATA *Data;
|
||||
};
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
extern EFI_GUID gEfiPxeDhcp4ProtocolGuid;
|
||||
|
||||
#endif /* _PXEDHCP4_H_ */
|
||||
/* EOF - PxeDhcp4.h */
|
85
EdkModulePkg/Include/Protocol/PxeDhcp4CallBack.h
Normal file
85
EdkModulePkg/Include/Protocol/PxeDhcp4CallBack.h
Normal file
@@ -0,0 +1,85 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
PxeDhcp4Callback.h
|
||||
|
||||
Abstract:
|
||||
EFI PXE DHCP4 Callback protocol definition.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _PXE_DHCP4CALLBACK_H
|
||||
#define _PXE_DHCP4CALLBACK_H
|
||||
|
||||
#include <Protocol/PxeDhcp4.h>
|
||||
//
|
||||
// GUID definition
|
||||
//
|
||||
|
||||
#define EFI_PXE_DHCP4_CALLBACK_PROTOCOL_GUID \
|
||||
{ 0xc1544c01, 0x92a4, 0x4198, {0x8a, 0x84, 0x77, 0x85, 0x83, 0xc2, 0x36, 0x21 } }
|
||||
|
||||
|
||||
//
|
||||
// Revision number
|
||||
//
|
||||
|
||||
#define EFI_PXE_DHCP4_CALLBACK_INTERFACE_REVISION 0x00010000
|
||||
|
||||
//
|
||||
// Interface definition
|
||||
//
|
||||
|
||||
typedef struct _EFI_PXE_DHCP4_CALLBACK_PROTOCOL EFI_PXE_DHCP4_CALLBACK_PROTOCOL;
|
||||
|
||||
typedef enum {
|
||||
EFI_PXE_DHCP4_FUNCTION_FIRST,
|
||||
EFI_PXE_DHCP4_FUNCTION_INIT,
|
||||
EFI_PXE_DHCP4_FUNCTION_SELECT,
|
||||
EFI_PXE_DHCP4_FUNCTION_RENEW,
|
||||
EFI_PXE_DHCP4_FUNCTION_REBIND,
|
||||
EFI_PXE_DHCP4_FUNCTION_LAST
|
||||
} EFI_PXE_DHCP4_FUNCTION;
|
||||
|
||||
typedef enum {
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS_FIRST,
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS_ABORT,
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS_IGNORE_ABORT,
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS_KEEP_ABORT,
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS_CONTINUE,
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS_IGNORE_CONTINUE,
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS_KEEP_CONTINUE,
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS_LAST
|
||||
} EFI_PXE_DHCP4_CALLBACK_STATUS;
|
||||
|
||||
typedef
|
||||
EFI_PXE_DHCP4_CALLBACK_STATUS
|
||||
(EFIAPI *EFI_PXE_DHCP4_CALLBACK) (
|
||||
IN EFI_PXE_DHCP4_PROTOCOL *This,
|
||||
IN EFI_PXE_DHCP4_FUNCTION Function,
|
||||
IN UINT32 PacketLen,
|
||||
IN DHCP4_PACKET *Packet OPTIONAL
|
||||
);
|
||||
|
||||
struct _EFI_PXE_DHCP4_CALLBACK_PROTOCOL {
|
||||
UINT64 Revision;
|
||||
EFI_PXE_DHCP4_CALLBACK Callback;
|
||||
};
|
||||
|
||||
//
|
||||
// GUID declaration
|
||||
//
|
||||
|
||||
extern EFI_GUID gEfiPxeDhcp4CallbackProtocolGuid;
|
||||
|
||||
#endif /* _PXE_DHCP4CALLBACK_H */
|
||||
/* EOF - PxeDhcp4Callback.h */
|
241
EdkModulePkg/Include/Protocol/ScsiIo.h
Normal file
241
EdkModulePkg/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
|
||||
|
33
EdkModulePkg/Include/Protocol/SecurityPolicy.h
Normal file
33
EdkModulePkg/Include/Protocol/SecurityPolicy.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
SecurityPolicy.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Security Policy protocol as defined in the DXE CIS
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _SECURITY_POLICY_H_
|
||||
#define _SECURITY_POLICY_H_
|
||||
|
||||
//
|
||||
// Security policy protocol GUID definition
|
||||
//
|
||||
#define EFI_SECURITY_POLICY_PROTOCOL_GUID \
|
||||
{0x78E4D245, 0xCD4D, 0x4a05, {0xA2, 0xBA, 0x47, 0x43, 0xE8, 0x6C, 0xFC, 0xAB} }
|
||||
|
||||
extern EFI_GUID gEfiSecurityPolicyProtocolGuid;
|
||||
|
||||
#endif
|
236
EdkModulePkg/Include/Protocol/UgaIo.h
Normal file
236
EdkModulePkg/Include/Protocol/UgaIo.h
Normal file
@@ -0,0 +1,236 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
UgaIo.h
|
||||
|
||||
Abstract:
|
||||
|
||||
UGA IO protocol from the EFI 1.1 specification.
|
||||
|
||||
Abstraction of a very simple graphics device.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UGA_IO_H__
|
||||
#define __UGA_IO_H__
|
||||
|
||||
#define EFI_UGA_IO_PROTOCOL_GUID \
|
||||
{ \
|
||||
0x61a4d49e, 0x6f68, 0x4f1b, { 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0xb, 0x7, 0xa2 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_UGA_IO_PROTOCOL EFI_UGA_IO_PROTOCOL;
|
||||
|
||||
typedef UINT32 UGA_STATUS;
|
||||
|
||||
typedef enum {
|
||||
UgaDtParentBus = 1,
|
||||
UgaDtGraphicsController,
|
||||
UgaDtOutputController,
|
||||
UgaDtOutputPort,
|
||||
UgaDtOther
|
||||
}
|
||||
UGA_DEVICE_TYPE, *PUGA_DEVICE_TYPE;
|
||||
|
||||
typedef UINT32 UGA_DEVICE_ID, *PUGA_DEVICE_ID;
|
||||
|
||||
typedef struct {
|
||||
UGA_DEVICE_TYPE deviceType;
|
||||
UGA_DEVICE_ID deviceId;
|
||||
UINT32 ui32DeviceContextSize;
|
||||
UINT32 ui32SharedContextSize;
|
||||
}
|
||||
UGA_DEVICE_DATA, *PUGA_DEVICE_DATA;
|
||||
|
||||
typedef struct _UGA_DEVICE {
|
||||
VOID *pvDeviceContext;
|
||||
VOID *pvSharedContext;
|
||||
VOID *pvRunTimeContext;
|
||||
struct _UGA_DEVICE *pParentDevice;
|
||||
VOID *pvBusIoServices;
|
||||
VOID *pvStdIoServices;
|
||||
UGA_DEVICE_DATA deviceData;
|
||||
}
|
||||
UGA_DEVICE, *PUGA_DEVICE;
|
||||
|
||||
#ifndef UGA_IO_REQUEST_CODE
|
||||
//
|
||||
// Prevent conflicts with UGA typedefs.
|
||||
//
|
||||
typedef enum {
|
||||
UgaIoGetVersion = 1,
|
||||
UgaIoGetChildDevice,
|
||||
UgaIoStartDevice,
|
||||
UgaIoStopDevice,
|
||||
UgaIoFlushDevice,
|
||||
UgaIoResetDevice,
|
||||
UgaIoGetDeviceState,
|
||||
UgaIoSetDeviceState,
|
||||
UgaIoSetPowerState,
|
||||
UgaIoGetMemoryConfiguration,
|
||||
UgaIoSetVideoMode,
|
||||
UgaIoCopyRectangle,
|
||||
UgaIoGetEdidSegment,
|
||||
UgaIoDeviceChannelOpen,
|
||||
UgaIoDeviceChannelClose,
|
||||
UgaIoDeviceChannelRead,
|
||||
UgaIoDeviceChannelWrite,
|
||||
UgaIoGetPersistentDataSize,
|
||||
UgaIoGetPersistentData,
|
||||
UgaIoSetPersistentData,
|
||||
UgaIoGetDevicePropertySize,
|
||||
UgaIoGetDeviceProperty,
|
||||
UgaIoBtPrivateInterface
|
||||
}
|
||||
UGA_IO_REQUEST_CODE, *PUGA_IO_REQUEST_CODE;
|
||||
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
IN UGA_IO_REQUEST_CODE ioRequestCode;
|
||||
IN VOID *pvInBuffer;
|
||||
IN UINT64 ui64InBufferSize;
|
||||
OUT VOID *pvOutBuffer;
|
||||
IN UINT64 ui64OutBufferSize;
|
||||
OUT UINT64 ui64BytesReturned;
|
||||
}
|
||||
UGA_IO_REQUEST, *PUGA_IO_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 VOID *RunTimeContext,
|
||||
OUT UGA_DEVICE **Device
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
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) (
|
||||
IN EFI_UGA_IO_PROTOCOL * This,
|
||||
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:
|
||||
|
||||
This is the main UGA service dispatch routine for all UGA_IO_REQUEST s.
|
||||
|
||||
Arguments:
|
||||
|
||||
pDevice - pDevice specifies a pointer to a device object associated with a
|
||||
device enumerated by a pIoRequest->ioRequestCode of type
|
||||
UgaIoGetChildDevice. The root device for the EFI_UGA_IO_PROTOCOL
|
||||
is represented by pDevice being set to NULL.
|
||||
|
||||
pIoRequest - pIoRequest points to a caller allocated buffer that contains data
|
||||
defined by pIoRequest->ioRequestCode. See Related Definitions for
|
||||
a definition of UGA_IO_REQUEST_CODE s and their associated data
|
||||
structures.
|
||||
|
||||
Returns:
|
||||
|
||||
Varies depending on pIoRequest.
|
||||
|
||||
--*/
|
||||
struct _EFI_UGA_IO_PROTOCOL {
|
||||
EFI_UGA_IO_PROTOCOL_CREATE_DEVICE CreateDevice;
|
||||
EFI_UGA_IO_PROTOCOL_DELETE_DEVICE DeleteDevice;
|
||||
PUGA_FW_SERVICE_DISPATCH DispatchService;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiUgaIoProtocolGuid;
|
||||
|
||||
//
|
||||
// Data structure that is stored in the EFI Configuration Table with the
|
||||
// EFI_UGA_IO_PROTOCOL_GUID. The option ROMs listed in this table may have
|
||||
// EBC UGA drivers.
|
||||
//
|
||||
typedef struct {
|
||||
UINT32 Version;
|
||||
UINT32 HeaderSize;
|
||||
UINT32 SizeOfEntries;
|
||||
UINT32 NumberOfEntries;
|
||||
} EFI_DRIVER_OS_HANDOFF_HEADER;
|
||||
|
||||
typedef enum {
|
||||
EfiUgaDriverFromPciRom,
|
||||
EfiUgaDriverFromSystem,
|
||||
EfiDriverHandoffMax
|
||||
} EFI_DRIVER_HANOFF_ENUM;
|
||||
|
||||
typedef struct {
|
||||
EFI_DRIVER_HANOFF_ENUM Type;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
VOID *PciRomImage;
|
||||
UINT64 PciRomSize;
|
||||
} EFI_DRIVER_OS_HANDOFF;
|
||||
|
||||
#endif
|
42
EdkModulePkg/Include/Protocol/UgaSplash.h
Normal file
42
EdkModulePkg/Include/Protocol/UgaSplash.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
UgaSplash.h
|
||||
|
||||
Abstract:
|
||||
|
||||
UGA Splash screen protocol.
|
||||
|
||||
Abstraction of a very simple graphics device.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UGA_SPLASH_H__
|
||||
#define __UGA_SPLASH_H__
|
||||
|
||||
|
||||
#define EFI_UGA_SPLASH_PROTOCOL_GUID \
|
||||
{ 0xa45b3a0d, 0x2e55, 0x4c03, {0xad, 0x9c, 0x27, 0xd4, 0x82, 0xb, 0x50, 0x7e } }
|
||||
|
||||
typedef struct _EFI_UGA_SPLASH_PROTOCOL EFI_UGA_SPLASH_PROTOCOL;
|
||||
|
||||
|
||||
struct _EFI_UGA_SPLASH_PROTOCOL {
|
||||
UINT32 PixelWidth;
|
||||
UINT32 PixelHeight;
|
||||
EFI_UGA_PIXEL *Image;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiUgaSplashProtocolGuid;
|
||||
|
||||
#endif
|
83
EdkModulePkg/Include/Protocol/usbatapi.h
Normal file
83
EdkModulePkg/Include/Protocol/usbatapi.h
Normal file
@@ -0,0 +1,83 @@
|
||||
/*++
|
||||
|
||||
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:
|
||||
|
||||
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