Add in the 1st version of ECP.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2832 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2007-06-28 07:00:39 +00:00
parent 30d4a0c7ec
commit 3eb9473ea9
1433 changed files with 266617 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004 - 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.c
Abstract:
Abstraction of a Text mode or GOP/UGA screen
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (ConsoleControl)
EFI_GUID gEfiConsoleControlProtocolGuid = EFI_CONSOLE_CONTROL_PROTOCOL_GUID;
EFI_GUID_STRING (&gEfiConsoleControlProtocolGuid, "Console Control Protocol", "Console Control Protocol");

View File

@@ -0,0 +1,122 @@
/*++
Copyright (c) 2004 - 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 GOP/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 *GopUgaExists, OPTIONAL
OUT BOOLEAN *StdInLocked OPTIONAL
)
/*++
Routine Description:
Return the current video mode information. Also returns info about existence
of Graphics Output devices or 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.
GopUgaExists - TRUE if Console Spliter has found a GOP or 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
--*/
;
typedef 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;
} EFI_CONSOLE_CONTROL_PROTOCOL;
extern EFI_GUID gEfiConsoleControlProtocolGuid;
#endif

View File

@@ -0,0 +1,28 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
The GUID for the user Customized Decompress Protocol
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(CustomizedDecompress)
EFI_GUID gEfiCustomizedDecompressProtocolGuid = EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiCustomizedDecompressProtocolGuid, "Cutomized Decompress", "Customized Decompression Protocol");

View File

@@ -0,0 +1,139 @@
/*++
Copyright (c) 2004, 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 }
EFI_FORWARD_DECLARATION (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).
--*/
typedef struct _EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL {
EFI_CUSTOMIZED_DECOMPRESS_GET_INFO GetInfo;
EFI_CUSTOMIZED_DECOMPRESS_DECOMPRESS Decompress;
} EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL;
extern EFI_GUID gEfiCustomizedDecompressProtocolGuid;
#endif

View File

@@ -0,0 +1,30 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
This protocol allows provides debug services to a driver. This is not
debugger support, but things like ASSERT() and DEBUG() macros
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(DebugAssert)
EFI_GUID gEfiDebugAssertProtocolGuid = EFI_DEBUG_ASSERT_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiDebugAssertProtocolGuid, "EFI Debug Assert", "Efi Debug Assert Protocol");

View File

@@ -0,0 +1,89 @@
/*++
Copyright (c) 2004, 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
//
EFI_FORWARD_DECLARATION (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
);
typedef 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;
} EFI_DEBUG_ASSERT_PROTOCOL;
extern EFI_GUID gEfiDebugAssertProtocolGuid;
#endif

View File

@@ -0,0 +1,30 @@
/*++
Copyright (c) 2004, 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:
DebugMask.c
Abstract:
This protocol is used to abstract the Debug Mask serivces for
the specific driver or application image.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(DebugMask)
EFI_GUID gEfiDebugMaskProtocolGuid = EFI_DEBUG_MASK_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiDebugMaskProtocolGuid, "DebugMask Protocol", "Efi Debug Mask Protocol");

View File

@@ -0,0 +1,68 @@
/*++
Copyright (c) 2004, 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:
DebugMask.h
Abstract:
This protocol is used to abstract the Debug Mask serivces for
the specific driver or application image.
--*/
#ifndef _DEBUG_MASK_H_
#define _DEBUG_MASK_H_
//
//4C8A2451-C207-405b-9694-99EA13251341
//
#define EFI_DEBUG_MASK_PROTOCOL_GUID \
{ 0x4c8a2451, 0xc207, 0x405b, 0x96, 0x94, 0x99, 0xea, 0x13, 0x25, 0x13, 0x41 }
#define EFI_DEBUG_MASK_REVISION 0x00010000
//
// Forward reference for pure ANSI compatability
//
EFI_FORWARD_DECLARATION (EFI_DEBUG_MASK_PROTOCOL);
//
// DebugMask member functions definition
//
typedef
EFI_STATUS
(EFIAPI * EFI_GET_DEBUG_MASK) (
IN EFI_DEBUG_MASK_PROTOCOL *This, // Calling context
IN OUT UINTN *CurrentDebugMask // Ptr to store current debug mask
);
typedef
EFI_STATUS
(EFIAPI *EFI_SET_DEBUG_MASK) (
IN EFI_DEBUG_MASK_PROTOCOL *This, // Calling context
IN UINTN NewDebugMask // New Debug Mask value to set
);
//
// DebugMask protocol definition
//
typedef struct _EFI_DEBUG_MASK_PROTOCOL {
INT64 Revision;
EFI_GET_DEBUG_MASK GetDebugMask;
EFI_SET_DEBUG_MASK SetDebugMask;
} EFI_DEBUG_MASK_PROTOCOL;
extern EFI_GUID gEfiDebugMaskProtocolGuid;
#endif

View File

@@ -0,0 +1,30 @@
/*++
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:
DebugSerialIo.c
Abstract:
Debug Serial IO protocol.
Abstraction of a basic serial device. Targeted at 16550 UART, but
could be much more generic.
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (DebugSerialIo)
EFI_GUID gEfiDebugSerialIoProtocolGuid = EFI_DEBUG_SERIAL_IO_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiDebugSerialIoProtocolGuid, "DebugSerialIo Protocol", "EFI 1.0 DebugSerial IO Protocol");

View File

@@ -0,0 +1,37 @@
/*++
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:
DebugSerialIo.h
Abstract:
Debug Serial IO protocol.
Abstraction of a basic serial device. Targeted at 16550 UART, but
could be much more generic.
--*/
#ifndef _DEBUG_SERIAL_IO_H_
#define _DEBUG_SERIAL_IO_H_
#define EFI_DEBUG_SERIAL_IO_PROTOCOL_GUID \
{ 0xe683dc4f, 0x9ed, 0x4f22, { 0x86, 0x6b, 0x8e, 0x40, 0x46, 0x94, 0x7c, 0x6c } }
EFI_FORWARD_DECLARATION (EFI_DEBUG_SERIAL_IO_PROTOCOL);
#include EFI_PROTOCOL_DEFINITION (SerialIo)
extern EFI_GUID gEfiDebugSerialIoProtocolGuid;
#endif

View File

@@ -0,0 +1,30 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (DiskInfo)
EFI_GUID gEfiDiskInfoProtocolGuid = EFI_DISK_INFO_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiDiskInfoProtocolGuid, "Disk Info Protocol", "Disk Info Protocol");
EFI_GUID gEfiDiskInfoIdeInterfaceGuid = EFI_DISK_INFO_IDE_INTERFACE_GUID;
EFI_GUID gEfiDiskInfoScsiInterfaceGuid = EFI_DISK_INFO_SCSI_INTERFACE_GUID;
EFI_GUID gEfiDiskInfoUsbInterfaceGuid = EFI_DISK_INFO_USB_INTERFACE_GUID;

View File

@@ -0,0 +1,174 @@
/*++
Copyright (c) 2004, 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 \
}
EFI_FORWARD_DECLARATION (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;
typedef 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;
} EFI_DISK_INFO_PROTOCOL;
extern EFI_GUID gEfiDiskInfoProtocolGuid;
#endif

View File

@@ -0,0 +1,111 @@
#/*++
#
# Copyright (c) 2004 - 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:
#
# EdkProtocolLib.inf
#
# Abstract:
#
# Component description file.
#
#--*/
[defines]
BASE_NAME= EdkProtocolLib
COMPONENT_TYPE= LIBRARY
[includes.common]
$(EDK_SOURCE)\Foundation
$(EDK_SOURCE)\Foundation\Efi
$(EDK_SOURCE)\Foundation\Framework
$(EDK_SOURCE)\Foundation\Include
$(EDK_SOURCE)\Foundation\Efi\Include
$(EDK_SOURCE)\Foundation\Framework\Include
$(EDK_SOURCE)\Foundation\Include\IndustryStandard
$(EDK_SOURCE)\Foundation\Include\Pei
$(EDK_SOURCE)\Foundation\Library\Pei\Include
$(EDK_SOURCE)\Foundation\Core\Dxe
$(EDK_SOURCE)\Foundation\Library\Dxe\Include
[nmake.common]
[sources.common]
ConsoleControl\ConsoleControl.h
ConsoleControl\ConsoleControl.c
CustomizedDecompress\CustomizedDecompress.c
CustomizedDecompress\CustomizedDecompress.h
DebugAssert\DebugAssert.h
DebugAssert\DebugAssert.c
DebugMask\DebugMask.h
DebugMask\DebugMask.c
DebugSerialIo\DebugSerialIo.h
DebugSerialIo\DebugSerialIo.c
DiskInfo\DiskInfo.h
DiskInfo\DiskInfo.c
EfiOemBadging\EfiOemBadging.h
EfiOemBadging\EfiOemBadging.c
FaultTolerantWriteLite\FaultTolerantWriteLite.h
FaultTolerantWriteLite\FaultTolerantWriteLite.c
FirmwareVolumeDispatch\FirmwareVolumeDispatch.h
FirmwareVolumeDispatch\FirmwareVolumeDispatch.c
FvbExtension\FvbExtension.h
FvbExtension\FvbExtension.c
GenericMemoryTest\GenericMemoryTest.h
GenericMemoryTest\GenericMemoryTest.c
GuidedSectionExtraction\GuidedSectionExtraction.h
GuidedSectionExtraction\GuidedSectionExtraction.c
IsaAcpi\IsaAcpi.h
IsaAcpi\IsaAcpi.c
IsaIo\IsaIo.h
IsaIo\IsaIo.c
LegacyBiosThunk\LegacyBiosThunk.h
LegacyBiosThunk\LegacyBiosThunk.c
LoadPe32Image\LoadPe32Image.h
LoadPe32Image\LoadPe32Image.c
NicIp4Config\NicIp4Config.h
NicIp4Config\NicIp4Config.c
PciHotPlugRequest\PciHotPlugRequest.h
PciHotPlugRequest\PciHotPlugRequest.c
Performance\Performance.h
Performance\Performance.c
PlatformMemTest\PlatformMemTest.h
PlatformMemTest\PlatformMemTest.c
Print\Print.h
Print\Print.c
PxeDhcp4\PxeDhcp4.h
PxeDhcp4\PxeDhcp4.c
PxeDhcp4Callback\PxeDhcp4Callback.h
PxeDhcp4Callback\PxeDhcp4Callback.c
Tcp\Tcp.h
Tcp\Tcp.c
TianoDecompress\TianoDecompress.h
TianoDecompress\TianoDecompress.c
UgaSplash\UgaSplash.h
UgaSplash\UgaSplash.c
UsbAtapi\UsbAtapi.h
UsbAtapi\UsbAtapi.c
VariableStore\VariableStore.h
VariableStore\VariableStore.c
VirtualMemoryAccess\VirtualMemoryAccess.h
VirtualMemoryAccess\VirtualMemoryAccess.c
TcgService\TcgService.h
TcgService\TcgService.c
Ps2Policy\Ps2Policy.h
Ps2Policy\Ps2Policy.c
VgaMiniPort\VgaMiniPort.h
VgaMiniPort\VgaMiniPort.c
[sources.ipf]
ExtendedSalBootService\ExtendedSalBootService.c
ExtendedSalBootService\ExtendedSalBootService.h
ExtendedSalGuid\ExtendedSalGuid.c
ExtendedSalGuid\ExtendedSalGuid.h

View File

@@ -0,0 +1,30 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
EFI OEM Badging Protocol definition source file
Revision History
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (EfiOEMBadging)
EFI_GUID gEfiOEMBadgingProtocolGuid = EFI_OEM_BADGING_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiOEMBadgingProtocolGuid, "OEM Badging Protocol", "OEM Badging Protocol");

View File

@@ -0,0 +1,79 @@
/*++
Copyright (c) 2004, 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 }
EFI_FORWARD_DECLARATION (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
);
typedef struct _EFI_OEM_BADGING_PROTOCOL {
EFI_BADGING_GET_IMAGE GetImage;
} EFI_OEM_BADGING_PROTOCOL;
extern EFI_GUID gEfiOEMBadgingProtocolGuid;
#endif

View File

@@ -0,0 +1,27 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
This is a protocol creates infrastructure to register Extended Sal Procs.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(ExtendedSalBootService)
EFI_GUID gEfiExtendedSalBootServiceProtocolGuid = EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiExtendedSalBootServiceProtocolGuid, "EXT SAL", "Extended Sal Protocol");

View File

@@ -0,0 +1,118 @@
/*++
Copyright (c) 2004, 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_
#include "SalApi.h"
#include "LinkedList.h"
#include EFI_PROTOCOL_CONSUMER (CpuIo)
#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;
EFI_FORWARD_DECLARATION (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
//
typedef 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;
} EXTENDED_SAL_BOOT_SERVICE_PROTOCOL;
extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid;
#endif

View File

@@ -0,0 +1,74 @@
/*++
Copyright (c) 2004, 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:
ExtendedSalGuid.c
Abstract:
The Extended SAL Lock Services protocol as defined in SAL CIS.
This protocol is installed by the entity that supplies low level
lock primitives that work in dual mode. There are 3 functions
as defined below.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(ExtendedSalGuid)
EFI_GUID gEfiExtendedSalBaseIoServicesProtocolGuid = EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalStallServicesProtocolGuid = EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalLockServicesProtocolGuid = EFI_EXTENDED_SAL_LOCK_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalVirtualServicesProtocolGuid = EFI_EXTENDED_SAL_VIRTUAL_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalRtcServicesProtocolGuid = EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalVariableServicesProtocolGuid = EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalMtcServicesProtocolGuid = EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalResetServicesProtocolGuid = EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalStatusCodeServicesProtocolGuid = EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalFvBlockServicesProtocolGuid = EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalMpServicesProtocolGuid = EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalPalServicesProtocolGuid = EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalBaseServicesProtocolGuid = EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalMcaServicesProtocolGuid = EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalPciServicesProtocolGuid = EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalCacheServicesProtocolGuid = EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalMcaLogServicesProtocolGuid = EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalElogServicesProtocolGuid = EFI_EXTENDED_SAL_ELOG_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalSensorServicesProtocolGuid = EFI_EXTENDED_SAL_SENSOR_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalSmComLayerServicesProtocolGuid = EFI_EXTENDED_SAL_SM_COM_LAYER_SERVICES_PROTOCOL_GUID;
EFI_GUID gEfiExtendedSalSstGuid = EFI_EXTENDED_SAL_SST_GUID;
EFI_GUID_STRING(&gEfiExtendedSalBaseIoServicesProtocolGuid, "SAL IO", "Extended SAL Base IO Protocol");
EFI_GUID_STRING(&gEfiExtendedSalStallServicesProtocolGuid, "SAL STALL", "Extended SAL Stall Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalLockServicesProtocolGuid, "SAL LOCK", "Extended SAL Lock Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalVirtualServicesProtocolGuid, "SAL VIRT", "Extended SAL Virtual Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalRtcServicesProtocolGuid, "SAL RTC", "Extended SAL Lock RTC Protocol");
EFI_GUID_STRING(&gEfiExtendedSalVariableServicesProtocolGuid, "SAL VARIABLE", "Extended SAL Variable Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalMtcServicesProtocolGuid, "SAL MTC", "Extended SAL MTC Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalResetServicesProtocolGuid, "SAL RESET", "Extended SAL Reset Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalStatusCodeServicesProtocolGuid, "SAL STATUS CODE", "Extended SAL Status Call Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalFvBlockServicesProtocolGuid, "SAL FVB", "Extended SAL FVB Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalMpServicesProtocolGuid, "SAL MP", "Extended SAL MP Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalPalServicesProtocolGuid, "SAL PAL", "Extended SAL PAL Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalBaseServicesProtocolGuid, "SAL BASE", "Extended SAL Base Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalBaseServicesProtocolGuid, "SAL MCA", "Extended SAL MCA Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalPciServicesProtocolGuid, "SAL PCI", "Extended SAL PCI Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalCacheServicesProtocolGuid, "SAL CACHE", "Extended SAL Cache Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalMcaLogServicesProtocolGuid, "MCA LOG", "Extended SAL MCA LOG Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalElogServicesProtocolGuid, "ELOG", "Extended SAL ELOG Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalSensorServicesProtocolGuid, "SENSOR", "Extended SAL SENSOR Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalSmComLayerServicesProtocolGuid, "SAL SM COM", "Extended SAL SM COM Services Protocol");
EFI_GUID_STRING(&gEfiExtendedSalSstGuid, "SST SET UP", "SAL System Table Header Set up");

View File

@@ -0,0 +1,283 @@
/*++
Copyright (c) 2004 - 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:
ExtendedSalGuid.h
Abstract:
--*/
#ifndef _EXTENDED_SAL_GUID_H_
#define _EXTENDED_SAL_GUID_H_
//
// Extended SAL Services protocol GUIDs
//
#define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID \
{ 0x5aea42b5, 0x31e1, 0x4515, 0xbc, 0x31, 0xb8, 0xd5, 0x25, 0x75, 0x65, 0xa6 }
#define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID \
{ 0x53a58d06, 0xac27, 0x4d8c, 0xb5, 0xe9, 0xf0, 0x8a, 0x80, 0x65, 0x41, 0x70 }
#define EFI_EXTENDED_SAL_LOCK_SERVICES_PROTOCOL_GUID \
{ 0x76b75c23, 0xfe4f, 0x4e17, 0xa2, 0xad, 0x1a, 0x65, 0x3d, 0xbb, 0x49, 0x4a }
#define EFI_EXTENDED_SAL_VIRTUAL_SERVICES_PROTOCOL_GUID \
{ 0xc1a74056, 0x260e, 0x4871, 0xa0, 0x31, 0xe6, 0x45, 0xa6, 0x5b, 0x6e, 0x11 }
#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID \
{ 0x7e97a470, 0xefdb, 0x4d02, 0x8f, 0xce, 0x61, 0x90, 0xd2, 0x7b, 0xa2, 0x96 }
#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID \
{ 0x4ecb6c53, 0xc641, 0x4370, 0x8c, 0xb2, 0x3b, 0x0e, 0x49, 0x6e, 0x83, 0x78 }
#define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID \
{ 0x899afd18, 0x75e8, 0x408b, 0xa4, 0x1a, 0x6e, 0x2e, 0x7e, 0xcd, 0xf4, 0x54 }
#define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID \
{ 0x7d019990, 0x8ce1, 0x46f5, 0xa7, 0x76, 0x3c, 0x51, 0x98, 0x67, 0x6a, 0xa0 }
#define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID \
{ 0xdbd91d, 0x55e9, 0x420f, 0x96, 0x39, 0x5e, 0x9f, 0x84, 0x37, 0xb4, 0x4f }
#define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID \
{ 0xa2271df1, 0xbcbb, 0x4f1d, 0x98, 0xa9, 0x06, 0xbc, 0x17, 0x2f, 0x07, 0x1a }
#define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID \
{ 0x697d81a2, 0xcf18, 0x4dc0, 0x9e, 0x0d, 0x06, 0x11, 0x3b, 0x61, 0x8a, 0x3f }
#define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID \
{ 0xe1cd9d21, 0x0fc2, 0x438d, 0x97, 0x03, 0x04, 0xe6, 0x6d, 0x96, 0x1e, 0x57 }
#define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID \
{ 0xd9e9fa06, 0x0fe0, 0x41c3, 0x96, 0xfb, 0x83, 0x42, 0x5a, 0x33, 0x94, 0xf8 }
#define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID \
{ 0x2a591128, 0x6cc7, 0x42b1, 0x8a, 0xf0, 0x58, 0x93, 0x3b, 0x68, 0x2d, 0xbb }
#define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID \
{ 0xa46b1a31, 0xad66, 0x4905, 0x92, 0xf6, 0x2b, 0x46, 0x59, 0xdc, 0x30, 0x63 }
#define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID \
{ 0xedc9494, 0x2743, 0x4ba5, 0x88, 0x18, 0x0a, 0xef, 0x52, 0x13, 0xf1, 0x88 }
#define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID \
{ 0xcb3fd86e, 0x38a3, 0x4c03, 0x9a, 0x5c, 0x90, 0xcf, 0xa3, 0xa2, 0xab, 0x7a }
#define EFI_EXTENDED_SAL_ELOG_SERVICES_PROTOCOL_GUID \
{ 0xd5e4ee5f, 0x3e0a, 0x453c, 0xa7, 0x25, 0xb6, 0x92, 0xbb, 0x6, 0x36, 0x5a }
#define EFI_EXTENDED_SAL_SENSOR_SERVICES_PROTOCOL_GUID \
{ 0x4a153b6e, 0x85a1, 0x4982, 0x98, 0xf4, 0x6a, 0x8c, 0xfc, 0xa4, 0xab, 0xa1 }
#define EFI_EXTENDED_SAL_SM_COM_LAYER_SERVICES_PROTOCOL_GUID \
{ 0x4356799, 0x81b7, 0x4e08, 0xa3, 0x8d, 0xd9, 0x78, 0xfa, 0x47, 0xba, 0x42 }
#define EFI_EXTENDED_SAL_SST_GUID \
{ 0x38802700, 0x868a, 0x4b4e, 0x81, 0xd4, 0x4f, 0x1b, 0xdc, 0xcf, 0xb4, 0x6f }
//
// Extended Sal Proc Function IDs.
//
//
// BugBug: These enums are name colisions waiting to happen. They should all be
// prefixed with Esal! It might be better to just make them #define, so
// they would be all caps.
//
typedef enum {
IoRead,
IoWrite,
MemRead,
MemWrite
} EFI_EXTENDED_SAL_BASE_IO_SERVICES_FUNC_ID;
typedef enum {
Stall
} EFI_EXTENDED_SAL_STALL_FUNC_ID;
typedef enum {
InitializeLockService,
AcquireLockService,
ReleaseLockService,
MaxLockServiceFunctionId
} EFI_EXTENDED_SAL_LOCK_SERVICES_FUNC_ID;
//
// BugBug : Covert the first 3 functions into a lib functions
// and move SalRegisterPhysicalAddress to SAL BASE Class
//
typedef enum {
SetVirtualAddress,
IsVirtual,
IsEfiRuntime,
SalRegisterPhysicalAddress
} EFI_EXTENDED_SAL_VIRTUAL_SERVICES_FUNC_ID;
typedef enum {
GetTime,
SetTime,
GetWakeupTime,
SetWakeupTime,
GetRtcFreq,
InitializeThreshold,
BumpThresholdCount,
GetThresholdCount
} EFI_EXTENDED_SAL_RTC_SERVICES_FUNC_ID;
typedef enum {
EsalGetVariable,
EsalGetNextVariableName,
EsalSetVariable
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
,
EsalQueryVariableInfo
#endif
} EFI_EXTENDED_SAL_VARIABLE_SERVICES_FUNC_ID;
typedef enum {
GetNextHighMonotonicCount
} EFI_EXTENDED_SAL_MTC_SERVICES_FUNC_ID;
typedef enum {
ResetSystem
} EFI_EXTENDED_SAL_RESET_SERVICES_FUNC_ID;
typedef enum {
StatusCode
} EFI_EXTENDED_SAL_STATUS_CODE_FUNC_ID;
typedef enum {
ReportStatusCode
} EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_FUNC_ID;
typedef enum {
Read,
Write,
EraseBlock,
GetVolumeAttributes,
SetVolumeAttributes,
GetPhysicalAddress,
GetBlockSize,
EraseCustomBlockRange,
} EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_FUNC_ID;
typedef enum {
AddCpuData,
RemoveCpuData,
ModifyCpuData,
GetCpuDataByID,
GetCpuDataByIndex,
SendIpi,
CurrentProcInfo,
NumProcessors,
SetMinState,
GetMinState
} EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID;
typedef enum {
PalProc,
SetNewPalEntry,
GetNewPalEntry
} EFI_EXTENDED_SAL_PAL_SERVICES_FUNC_ID;
typedef enum {
SalSetVectors,
SalMcRendez,
SalMcSetParams,
EsalGetVectors,
EsalMcGetParams,
EsalMcGetMcParams,
EsalGetMcCheckinFlags,
EsalGetPlatformBaseFreq
} EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID;
typedef enum {
McaGetStateInfo,
McaRegisterCpu
} EFI_EXTENDED_SAL_MCA_SERVICES_FUNC_ID;
typedef enum {
SalPciConfigRead,
SalPciConfigWrite
} EFI_EXTENDED_SAL_PCI_SERVICES_FUNC_ID;
typedef enum {
SalCacheInit,
SalCacheFlush
} EFI_EXTENDED_SAL_CACHE_SERVICES_FUNC_ID;
typedef enum {
SalGetStateInfo,
SalGetStateInfoSize,
SalClearStateInfo,
EsalGetStateBuffer,
EsalSaveStateBuffer
} EFI_EXTENDED_SAL_MCA_LOG_SERVICES_FUNC_ID;
typedef enum {
SalSetEventLogData,
SalGetEventLogData,
SalEraseEventLogData,
SalActivateEventLogData
} EFI_EXTENDED_SAL_ELOG_SERVICES_FUNC_ID;
typedef enum {
EsalGetComControllerInfo,
EsalSendComData,
EsalReceiveComData
} EFI_EXTENDED_SAL_SM_COM_LAYER_SERVICES_FUNC_ID;
typedef enum {
SalUpdatePal
} EFI_EXTENDED_SAL_UPDATE_PAL_SERVICES_FUNC_ID;
typedef enum {
EsalReadSensorInfo,
EsalReadSensorStatus,
EsalRearmSensor,
EsalReadSensorData
} EFI_EXTENDED_SAL_SENSOR_SERVICES_FUNC_ID;
typedef struct {
UINT64 ProtoData;
} ESAL_GUID_DUMMY_PROTOCOL;
extern EFI_GUID gEfiExtendedSalBaseIoServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalStallServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalLockServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalVirtualServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalRtcServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalVariableServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalMtcServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalResetServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalStatusCodeServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalFvBlockServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalMpServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalPalServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalBaseServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalMcaServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalPciServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalCacheServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalMcaLogServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalElogServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalSensorServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalSmComLayerServicesProtocolGuid;
extern EFI_GUID gEfiExtendedSalSstGuid;
#endif

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
This is a simple fault tolerant write driver, based on PlatformFd library.
And it only supports write BufferSize <= SpareAreaLength.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(FaultTolerantWriteLite)
EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid = EFI_FTW_LITE_PROTOCOL_GUID;
EFI_GUID_STRING (&gEfiFaultTolerantWriteLiteProtocolGuid, "FaultTolerantWriteLite Protocol",
"Fault Tolerant Write Lite protocol");

View File

@@ -0,0 +1,88 @@
/*++
Copyright (c) 2004, 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
//
EFI_FORWARD_DECLARATION (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
//
typedef struct _EFI_FTW_LITE_PROTOCOL {
EFI_FTW_LITE_WRITE Write;
} EFI_FTW_LITE_PROTOCOL;
extern EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid;
#endif

View File

@@ -0,0 +1,32 @@
/*++
Copyright (c) 2004, 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:
FirmwareVolumeDispatch.c
Abstract:
Firmware Volume Dispatch protocol as defined in the Tiano Firmware Volume
specification.
Presence of this protocol tells the dispatch to dispatch from this Firmware
Volume
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (FirmwareVolumeDispatch)
EFI_GUID gEfiFirmwareVolumeDispatchProtocolGuid = EFI_FIRMWARE_VOLUME_DISPATCH_PROTOCOL_GUID;
EFI_GUID_STRING (&gEfiFirmwareVolumeDispatchProtocolGuid, "FirmwareVolumeDispatch Protocol",
"Firmware Volume Dispatch protocol");

View File

@@ -0,0 +1,35 @@
/*++
Copyright (c) 2004, 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:
FirmwareVolumeDispatch.h
Abstract:
Firmware Volume Dispatch protocol as defined in the Tiano Firmware Volume
specification.
Presence of this protocol tells the dispatch to dispatch from this Firmware
Volume
--*/
#ifndef __FIRMWARE_VOLUME_DISPATCH_H__
#define __FIRMWARE_VOLUME_DISPATCH_H__
#define EFI_FIRMWARE_VOLUME_DISPATCH_PROTOCOL_GUID \
{ 0x7aa35a69, 0x506c, 0x444f, 0xa7, 0xaf, 0x69, 0x4b, 0xf5, 0x6f, 0x71, 0xc8 }
extern EFI_GUID gEfiFirmwareVolumeDispatchProtocolGuid;
#endif

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
IPMI Extension Protocol to extend the FVB functionality to multiple erase blocks
at different block offsets.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(FvbExtension)
EFI_GUID gEfiFvbExtensionProtocolGuid = EFI_FVB_EXTENSION_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiFvbExtensionProtocolGuid, "FVB EXTENSION", "FVB EXTENSION");

View File

@@ -0,0 +1,53 @@
/*++
Copyright (c) 2004, 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 }
EFI_FORWARD_DECLARATION (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
//
typedef struct _EFI_FVB_EXTENSION_PROTOCOL {
EFI_FV_ERASE_CUSTOM_BLOCK EraseFvbCustomBlock;
} EFI_FVB_EXTENSION_PROTOCOL;
extern EFI_GUID gEfiFvbExtensionProtocolGuid;
#endif

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
The generic memory test protocol is used to test EFI memory.
For more information please look at EfiMemoryTest.doc
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (GenericMemoryTest)
EFI_GUID gEfiGenericMemTestProtocolGuid = EFI_GENERIC_MEMORY_TEST_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiGenericMemTestProtocolGuid, "GenericMemoryTest Protocol", "Tiano Generic Memory Test Protocol");

View File

@@ -0,0 +1,154 @@
/*++
Copyright (c) 2004, 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}
EFI_FORWARD_DECLARATION (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.
--*/
;
typedef 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;
} EFI_GENERIC_MEMORY_TEST_PROTOCOL;
extern EFI_GUID gEfiGenericMemTestProtocolGuid;
#endif

View File

@@ -0,0 +1,35 @@
/*++
Copyright (c) 2004, 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:
GuidedSectionExtraction.c
Abstract:
GUIDed section extraction protocol as defined in the Tiano File Image
Format specification.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (GuidedSectionExtraction)
//
// may add more GUIDed section extraction protocol GUID here.
//
EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid = EFI_CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_GUID;
EFI_GUID_STRING
(
&gEfiSectionExtractionProtocolGuid, "CRC32 GUIDed Section Extraction Protocol",
"Tiano CRC32 GUIDed Section Extraction Protocol"
);

View File

@@ -0,0 +1,73 @@
/*++
Copyright (c) 2004, 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:
GuidedSectionExtraction.h
Abstract:
GUIDed section extraction protocol as defined in the Tiano File
Image Format specification.
This interface provides a means of decoding a GUID defined encapsulation
section. There may be multiple different GUIDs associated with the GUIDed
section extraction protocol. That is, all instances of the GUIDed section
extraction protocol must have the same interface structure.
--*/
#ifndef _GUIDED_SECTION_EXTRACTION_PROTOCOL_H
#define _GUIDED_SECTION_EXTRACTION_PROTOCOL_H
#include "EfiFirmwareFileSystem.h"
//
// Protocol GUID definition. Each GUIDed section extraction protocol has the
// same interface but with different GUID. All the GUIDs is defined here.
// May add multiple GUIDs here.
//
#define EFI_CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_GUID \
{ \
0xFC1BCDB0, 0x7D31, 0x49aa, 0x93, 0x6A, 0xA4, 0x60, 0x0D, 0x9D, 0xD0, 0x83 \
}
//
// Forward reference for pure ANSI compatability
//
EFI_FORWARD_DECLARATION (EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL);
//
// Protocol member functions
//
typedef
EFI_STATUS
(EFIAPI *EFI_EXTRACT_GUIDED_SECTION) (
IN EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL * This,
IN VOID *InputSection,
OUT VOID **OutputBuffer,
OUT UINTN *OutputSize,
OUT UINT32 *AuthenticationStatus
);
//
// Protocol definition
//
typedef struct _EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL {
EFI_EXTRACT_GUIDED_SECTION ExtractSection;
} EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL;
//
// may add other GUID here
//
extern EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid;
#endif

View File

@@ -0,0 +1,30 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
EFI ISA ACPI Protocol
Revision History
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (IsaAcpi)
EFI_GUID gEfiIsaAcpiProtocolGuid = EFI_ISA_ACPI_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiIsaAcpiProtocolGuid, "ISA Acpi Protocol", "ISA Acpi Protocol");

View File

@@ -0,0 +1,177 @@
/*++
Copyright (c) 2004, 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}
EFI_FORWARD_DECLARATION (EFI_ISA_ACPI);
//
// 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 *This,
OUT EFI_ISA_ACPI_DEVICE_ID **Device
);
typedef
EFI_STATUS
(EFIAPI *EFI_ISA_ACPI_SET_DEVICE_POWER) (
IN EFI_ISA_ACPI *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 *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 *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 *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 *This,
IN EFI_ISA_ACPI_DEVICE_ID *Device,
IN BOOLEAN Enable
);
typedef
EFI_STATUS
(EFIAPI *EFI_ISA_ACPI_INIT_DEVICE) (
IN EFI_ISA_ACPI *This,
IN EFI_ISA_ACPI_DEVICE_ID *Device
);
typedef
EFI_STATUS
(EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT) (
IN EFI_ISA_ACPI *This
);
//
// Interface structure for the ISA ACPI Protocol
//
typedef struct _EFI_ISA_ACPI {
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;
} EFI_ISA_ACPI_PROTOCOL;
extern EFI_GUID gEfiIsaAcpiProtocolGuid;
#endif

View File

@@ -0,0 +1,42 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
EFI_ISA_IO_PROTOCOL or EFI_LIGHT_ISA_IO_PROTOCOL
based on macro SIZE_REDUCTION_ISA_COMBINED.
Revision History
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (IsaIo)
#ifndef SIZE_REDUCTION_ISA_COMBINED
//
// EFI_ISA_IO_PROTOCOL
//
EFI_GUID gEfiIsaIoProtocolGuid = EFI_ISA_IO_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiIsaIoProtocolGuid, "ISA IO Protocol", "ISA IO Protocol");
#else
//
// EFI_LIGHT_ISA_IO_PROTOCOL
//
EFI_GUID gEfiLightIsaIoProtocolGuid = EFI_LIGHT_ISA_IO_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiLightIsaIoProtocolGuid, "Light ISA IO Protocol", "Light ISA IO Protocol");
#endif

View File

@@ -0,0 +1,362 @@
/*++
Copyright (c) 2004 - 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_IO_PROTOCOL or EFI_LIGHT_ISA_IO_PROTOCOL
based on macro SIZE_REDUCTION_ISA_COMBINED.
Revision History
--*/
#ifndef _EFI_ISA_IO_H
#define _EFI_ISA_IO_H
//
// Common definitions for Light ISA I/O Protocol and ISA I/O Protocol
//
#include EFI_PROTOCOL_DEFINITION(IsaAcpi)
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;
#ifndef SIZE_REDUCTION_ISA_COMBINED
//
// Specific for ISA I/O Protocol
//
#define EFI_INTERFACE_DEFINITION_FOR_ISA_IO EFI_ISA_IO_PROTOCOL
#define EFI_ISA_IO_PROTOCOL_VERSION &gEfiIsaIoProtocolGuid
#define EFI_ISA_IO_OPERATION_TOKEN EfiIsaIoOperationBusMasterWrite
//
// 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 }
EFI_FORWARD_DECLARATION (EFI_ISA_IO_PROTOCOL);
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
//
typedef 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;
} EFI_ISA_IO_PROTOCOL;
extern EFI_GUID gEfiIsaIoProtocolGuid;
#else
//
// Specific for Light ISA I/O Protocol
//
#define EFI_INTERFACE_DEFINITION_FOR_ISA_IO EFI_LIGHT_ISA_IO_PROTOCOL
#define EFI_ISA_IO_PROTOCOL_VERSION &gEfiLightIsaIoProtocolGuid
#define EFI_ISA_IO_OPERATION_TOKEN EfiIsaIoOperationSlaveWrite
#define ADD_SERIAL_NAME(x, y)
//
// Global ID for the Light ISA I/O Protocol
//
#define EFI_LIGHT_ISA_IO_PROTOCOL_GUID \
{ 0x7cc7ed80, 0x9a68, 0x4781, 0x80, 0xe4, 0xda, 0x16, 0x99, 0x10, 0x5a, 0xfe }
EFI_FORWARD_DECLARATION (EFI_LIGHT_ISA_IO_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_LIGHT_ISA_IO_PROTOCOL_IO_MEM) (
IN EFI_LIGHT_ISA_IO_PROTOCOL *This,
IN EFI_ISA_IO_PROTOCOL_WIDTH Width,
IN UINT32 Offset,
IN UINTN Count,
IN OUT VOID *Buffer
)
/*++
Routine Description:
Performs an ISA I/O Read/Write Cycle
EFI_LIGHT_ISA_IO_PROTOCOL doesn't verfiy access for I/O operation.
Arguments:
This - A pointer to the EFI_ISA_IO_PROTOCOL or EFI_LIGHT_ISA_IO_PROTOCOL instance.
Width - Signifies the width of the I/O operation.
Offset - The offset in ISA I/O space to start the I/O operation.
Count - The number of I/O operations to perform.
Buffer - The source/destination buffer
Returns:
EFI_SUCCESS - The data was read from or written to the device sucessfully.
EFI_UNSUPPORTED - The Offset is not valid for this device.
EFI_INVALID_PARAMETER - Width or Count, or both, were invalid.
EFI_OUT_OF_RESOURCES - The request could not be completed due to a lack of resources.
--*/
;
typedef struct {
EFI_LIGHT_ISA_IO_PROTOCOL_IO_MEM Read;
EFI_LIGHT_ISA_IO_PROTOCOL_IO_MEM Write;
} EFI_LIGHT_ISA_IO_PROTOCOL_ACCESS;
typedef
EFI_STATUS
(EFIAPI *EFI_LIGHT_ISA_IO_PROTOCOL_MAP) (
IN EFI_LIGHT_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
)
/*++
Routine Description:
Maps a memory region for DMA, EFI_LIGHT_ISA_IO_PROTOCOL only supports
Slave read/write operation to save code size.
Arguments:
This - A pointer to the EFI_LIGHT_ISA_IO_PROTOCOL instance.
Operation - Indicates the type of DMA (slave or bus master), and if
the DMA operation is going to read or write to system memory.
ChannelNumber - The slave channel number to use for this DMA operation.
If Operation and ChannelAttributes shows that this device
performs bus mastering DMA, then this field is ignored.
The legal range for this field is 0..7.
ChannelAttributes - The attributes of the DMA channel to use for this DMA operation
HostAddress - The system memory address to map to the device.
NumberOfBytes - On input the number of bytes to map. On output the number
of bytes that were mapped.
DeviceAddress - The resulting map address for the bus master device to use
to access the hosts HostAddress.
Mapping - A resulting value to pass to EFI_ISA_IO.Unmap().
Returns:
EFI_SUCCESS - The range was mapped for the returned NumberOfBytes.
EFI_INVALID_PARAMETER - The Operation or HostAddress is undefined.
EFI_UNSUPPORTED - The HostAddress can not be mapped as a common buffer.
EFI_DEVICE_ERROR - The system hardware could not map the requested address.
EFI_OUT_OF_RESOURCES - The memory pages could not be allocated.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_LIGHT_ISA_IO_PROTOCOL_UNMAP) (
IN EFI_LIGHT_ISA_IO_PROTOCOL *This,
IN VOID *Mapping
)
/*++
Routine Description:
Unmaps a memory region for DMA
Arguments:
This - A pointer to the EFI_ISA_IO_PROTOCOL or EFI_LIGHT_ISA_IO_PROTOCOL instance.
Mapping - The mapping value returned from EFI_ISA_IO.Map().
Returns:
EFI_SUCCESS - The range was unmapped.
EFI_DEVICE_ERROR - The data was not committed to the target system memory.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_LIGHT_ISA_IO_PROTOCOL_FLUSH) (
IN EFI_LIGHT_ISA_IO_PROTOCOL *This
)
/*++
Routine Description:
Flushes a DMA buffer
Arguments:
This - A pointer to the EFI_ISA_IO_PROTOCOL or EFI_LIGHT_ISA_IO_PROTOCOL instance.
Returns:
EFI_SUCCESS - The buffers were flushed.
EFI_DEVICE_ERROR - The buffers were not flushed due to a hardware error.
--*/
;
//
// Interface structure for the Light ISA I/O Protocol
//
typedef struct _EFI_LIGHT_ISA_IO_PROTOCOL {
EFI_LIGHT_ISA_IO_PROTOCOL_ACCESS Io;
EFI_LIGHT_ISA_IO_PROTOCOL_MAP Map;
EFI_LIGHT_ISA_IO_PROTOCOL_UNMAP Unmap;
EFI_LIGHT_ISA_IO_PROTOCOL_FLUSH Flush;
EFI_ISA_ACPI_RESOURCE_LIST *ResourceList;
UINT32 RomSize;
VOID *RomImage;
} EFI_LIGHT_ISA_IO_PROTOCOL;
extern EFI_GUID gEfiLightIsaIoProtocolGuid;
#endif
#endif

View File

@@ -0,0 +1,30 @@
/*++
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:
LegacyBiosThunk.c
Abstract:
Legacy BIOS Thunk Protocol
Revision History
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (LegacyBiosThunk)
EFI_GUID gEfiLegacyBiosThunkProtocolGuid = EFI_LEGACY_BIOS_THUNK_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiLegacyBiosThunkProtocolGuid, "Legacy BIOS Thunk Protocol", "Legacy BIOS Thunk Protocol");

View File

@@ -0,0 +1,120 @@
/*++
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:
LegacyBiosThunk.h
Abstract:
The EFI Legacy BIOS Thunk Protocol is used to abstract Thunk16 call.
Note: The names for EFI_IA32_REGISTER_SET elements were picked to follow
well known naming conventions.
Thunk - A thunk is a transition from one processor mode to another. A Thunk
is a transition from native EFI mode to 16-bit mode. A reverse thunk
would be a transition from 16-bit mode to native EFI mode.
Note: Note: Note: Note: Note: Note: Note:
You most likely should not use this protocol! Find the EFI way to solve the
problem to make your code portable
Note: Note: Note: Note: Note: Note: Note:
Revision History
--*/
#ifndef _EFI_LEGACY_BIOS_THUNK_H_
#define _EFI_LEGACY_BIOS_THUNK_H_
#include EFI_PROTOCOL_DEFINITION (LegacyBios)
#define EFI_LEGACY_BIOS_THUNK_PROTOCOL_GUID \
{ \
0x4c51a7ba, 0x7195, 0x442d, 0x87, 0x92, 0xbe, 0xea, 0x6e, 0x2f, 0xf6, 0xec \
}
EFI_FORWARD_DECLARATION (EFI_LEGACY_BIOS_THUNK_PROTOCOL);
typedef
BOOLEAN
(EFIAPI *EFI_LEGACY_BIOS_THUNK_INT86) (
IN EFI_LEGACY_BIOS_THUNK_PROTOCOL * This,
IN UINT8 BiosInt,
IN OUT EFI_IA32_REGISTER_SET * Regs
)
/*++
Routine Description:
Thunk to 16-bit real mode and execute a software interrupt with a vector
of BiosInt. Regs will contain the 16-bit register context on entry and
exit.
Arguments:
This - Protocol instance pointer.
BiosInt - Processor interrupt vector to invoke
Reg - Register contexted passed into (and returned) from thunk to
16-bit mode
Returns:
FALSE - Thunk completed, and there were no BIOS errors in the target code.
See Regs for status.
TRUE - There was a BIOS erro in the target code.
--*/
;
typedef
BOOLEAN
(EFIAPI *EFI_LEGACY_BIOS_THUNK_FARCALL86) (
IN EFI_LEGACY_BIOS_THUNK_PROTOCOL * This,
IN UINT16 Segment,
IN UINT16 Offset,
IN EFI_IA32_REGISTER_SET * Regs,
IN VOID *Stack,
IN UINTN StackSize
)
/*++
Routine Description:
Thunk to 16-bit real mode and call Segment:Offset. Regs will contain the
16-bit register context on entry and exit. Arguments can be passed on
the Stack argument
Arguments:
This - Protocol instance pointer.
Segment - Segemnt of 16-bit mode call
Offset - Offset of 16-bit mdoe call
Reg - Register contexted passed into (and returned) from thunk to
16-bit mode
Stack - Caller allocated stack used to pass arguments
StackSize - Size of Stack in bytes
Returns:
FALSE - Thunk completed, and there were no BIOS errors in the target code.
See Regs for status.
TRUE - There was a BIOS erro in the target code.
--*/
;
typedef struct _EFI_LEGACY_BIOS_THUNK_PROTOCOL {
EFI_LEGACY_BIOS_THUNK_INT86 Int86;
EFI_LEGACY_BIOS_THUNK_FARCALL86 FarCall86;
} EFI_LEGACY_BIOS_THUNK_PROTOCOL;
extern EFI_GUID gEfiLegacyBiosThunkProtocolGuid;
#endif

View File

@@ -0,0 +1,27 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
Load PE32 Image Protocol
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (LoadPe32Image)
EFI_GUID gEfiLoadPeImageGuid = PE32_IMAGE_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiLoadPeImageGuid, "LoadPe32Image Protocol", "Tiano Load Pe32 Image Protocol");

View File

@@ -0,0 +1,64 @@
/*++
Copyright (c) 2004, 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 PE32 Image 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
EFI_FORWARD_DECLARATION (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
);
typedef struct _EFI_PE32_IMAGE_PROTOCOL {
LOAD_PE_IMAGE LoadPeImage;
UNLOAD_PE_IMAGE UnLoadPeImage;
} EFI_PE32_IMAGE_PROTOCOL;
extern EFI_GUID gEfiLoadPeImageGuid;
#endif

View File

@@ -0,0 +1,37 @@
/*++
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:
NicIp4Config.c
Abstract:
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (NicIp4Config)
EFI_GUID gEfiNicIp4ConfigProtocolGuid = EFI_NIC_IP4_CONFIG_PROTOCOL_GUID;
EFI_GUID_STRING (
&gEfiNicIp4ConfigProtocolGuid,
"NicIP4Config Protocol",
"NicIP4Config Protocol"
);
EFI_GUID gEfiNicIp4ConfigVariableGuid = EFI_NIC_IP4_CONFIG_VARIABLE_GUID;
EFI_GUID_STRING(
&gEfiNicIp4ConfigVariableGuid,
"Ip4 Static Config",
"Ip4 Configuration Data"
);

View File

@@ -0,0 +1,118 @@
/*++
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:
NicIp4Config.h
Abstract:
--*/
#ifndef _NIC_IP4_CONFIG_H_
#define _NIC_IP4_CONFIG_H_
#include EFI_PROTOCOL_DEFINITION (Ip4Config)
#define EFI_NIC_IP4_CONFIG_PROTOCOL_GUID \
{0xdca3d4d, 0x12da, 0x4728, 0xbf, 0x7e, 0x86, 0xce, 0xb9, 0x28, 0xd0, 0x67}
#define EFI_NIC_IP4_CONFIG_VARIABLE_GUID \
{0xd8944553, 0xc4dd, 0x41f4, 0x9b, 0x30, 0xe1, 0x39, 0x7c, 0xfb, 0x26, 0x7b}
#define EFI_NIC_IP4_CONFIG_VARIABLE L"EfiNicIp4ConfigVariable"
typedef struct _EFI_NIC_IP4_CONFIG_PROTOCOL EFI_NIC_IP4_CONFIG_PROTOCOL;
typedef enum {
//
// Config source: dhcp or static
//
IP4_CONFIG_SOURCE_DHCP = 0,
IP4_CONFIG_SOURCE_STATIC,
IP4_CONFIG_SOURCE_MAX,
IP4_NIC_NAME_LENGTH = 64,
MAX_IP4_CONFIG_IN_VARIABLE = 16,
};
//
// The following structures are used by drivers/applications other
// than EFI_IP4_PROTOCOL, such as ifconfig shell application, to
// communicate the IP configuration information to EFI_IP4_CONFIG_PROTOCOL.
// EFI_IP4_CONFIG_PROTOCOL in turn is used by EFI_IP4_PROTOCOL to get
// the default IP4 configuration. ifconfig can't use the EFI_IP4_PROTOCOL
// because it don't know how to configure the default IP address even
// it has got the address.
//
// NIC_ADDR contains the interface's type and MAC address to identify
// a specific NIC. NIC_IP4_CONFIG_INFO contains the IP4 configure
// parameters for that NIC. IP4_CONFIG_VARIABLE is the EFI variable to
// save the configuration. NIC_IP4_CONFIG_INFO and IP4_CONFIG_VARIABLE
// is of variable length.
//
// EFI_NIC_IP4_CONFIG_PROTOCOL is a priority protocol, not defined by UEFI2.0
//
typedef struct {
UINT16 Type;
UINT8 Len;
EFI_MAC_ADDRESS MacAddr;
} NIC_ADDR;
typedef struct {
NIC_ADDR NicAddr; // Link layer address to identify the NIC
UINT32 Source; // Static or DHCP
BOOLEAN Perment; // Survive the reboot or not
EFI_IP4_IPCONFIG_DATA Ip4Info; // IP addresses
} NIC_IP4_CONFIG_INFO;
typedef struct {
UINT32 Len; // Total length of the variable
UINT16 CheckSum; // CheckSum, the same as IP4 head checksum
UINT32 Count; // Number of NIC_IP4_CONFIG_INFO follows
NIC_IP4_CONFIG_INFO ConfigInfo;
} IP4_CONFIG_VARIABLE;
typedef
EFI_STATUS
(EFIAPI *EFI_NIC_IP4_CONFIG_GET_INFO) (
IN EFI_NIC_IP4_CONFIG_PROTOCOL *This,
IN OUT UINTN *Len,
OUT NIC_IP4_CONFIG_INFO *NicConfig OPTIONAL
);
typedef
EFI_STATUS
(EFIAPI *EFI_NIC_IP4_CONFIG_SET_INFO) (
IN EFI_NIC_IP4_CONFIG_PROTOCOL *This,
IN NIC_IP4_CONFIG_INFO *NicConfig, OPTIONAL
IN BOOLEAN ReConfig
);
typedef
EFI_STATUS
(EFIAPI *EFI_NIC_IP4_CONFIG_GET_NAME) (
IN EFI_NIC_IP4_CONFIG_PROTOCOL *This,
IN UINT16 *Name, OPTIONAL
IN NIC_ADDR *NicAddr OPTIONAL
);
typedef
struct _EFI_NIC_IP4_CONFIG_PROTOCOL {
EFI_NIC_IP4_CONFIG_GET_NAME GetName;
EFI_NIC_IP4_CONFIG_GET_INFO GetInfo;
EFI_NIC_IP4_CONFIG_SET_INFO SetInfo;
};
extern EFI_GUID gEfiNicIp4ConfigVariableGuid;
extern EFI_GUID gEfiNicIp4ConfigProtocolGuid;
#endif

View File

@@ -0,0 +1,27 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (PciHotPlugRequest)
EFI_GUID gEfiPciHotPlugRequestProtocolGuid = EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiPciHotPlugRequestProtocolGuid, "Pci Hot Plug Request Protocol", "Tiano Hot Plug Request Protocol");

View File

@@ -0,0 +1,55 @@
/*++
Copyright (c) 2004, 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;
EFI_FORWARD_DECLARATION (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
);
typedef struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL {
EFI_PCI_HOTPLUG_REQUEST_NOTIFY Notify;
} EFI_PCI_HOTPLUG_REQUEST_PROTOCOL;
extern EFI_GUID gEfiPciHotPlugRequestProtocolGuid;
#endif

View File

@@ -0,0 +1,27 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
DXE performance checking infrastructure
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (Performance)
EFI_GUID gEfiPerformanceProtocolGuid = EFI_PERFORMANCE_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiPerformanceProtocolGuid, "Performance Protocol", "Performance Protocol");

View File

@@ -0,0 +1,103 @@
/*++
Copyright (c) 2004, 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 _EFI_PERFORMANCE_H_
#define _EFI_PERFORMANCE_H_
#define EFI_PERFORMANCE_PROTOCOL_GUID \
{ 0xFFECFFFF, 0x923C, 0x14d2, 0x9E, 0x3F, 0x22, 0xA0, 0xC9, 0x69, 0x56, 0x3B }
#define EFI_NULL_GUID \
{ 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
EFI_FORWARD_DECLARATION (EFI_PERFORMANCE_PROTOCOL);
#define DXE_TOK L"DXE"
#define SHELL_TOK L"SHELL"
#define PEI_TOK L"PEI"
#define BDS_TOK L"BDS"
#define DRIVERBINDING_START_TOK L"DriverBinding:Start"
#define DRIVERBINDING_SUPPORT_TOK L"DriverBinding:Support"
#define START_IMAGE_TOK L"StartImage"
#define LOAD_IMAGE_TOK L"LoadImage"
#define DXE_PHASE 0
#define SHELL_PHASE 1
#define PEI_PHASE 2
#define EFI_PERF_TOKEN_LENGTH 32
#define EFI_PERF_HOST_LENGTH 32
#define EFI_PERF_PDBFILENAME_LENGTH 28
typedef struct {
EFI_HANDLE Handle;
UINT16 Token[EFI_PERF_TOKEN_LENGTH];
UINT16 Host[EFI_PERF_HOST_LENGTH];
UINT64 StartTick;
UINT64 EndTick;
EFI_GUID GuidName;
UINT8 PdbFileName[EFI_PERF_PDBFILENAME_LENGTH];
UINT8 Phase;
} EFI_GAUGE_DATA ;
typedef
EFI_STATUS
(EFIAPI * EFI_PERF_START_GAUGE) (
IN EFI_PERFORMANCE_PROTOCOL *This,
IN EFI_HANDLE Handle,
IN UINT16 *Token,
IN UINT16 *Host,
IN UINT64 Ticker
);
typedef
EFI_STATUS
(EFIAPI * EFI_PERF_END_GAUGE) (
IN EFI_PERFORMANCE_PROTOCOL *This,
IN EFI_HANDLE Handle,
IN UINT16 *Token,
IN UINT16 *Host,
IN UINT64 Ticker
);
typedef
EFI_GAUGE_DATA *
(EFIAPI * EFI_PERF_GET_GAUGE) (
IN EFI_PERFORMANCE_PROTOCOL *This,
IN EFI_HANDLE Handle,
IN UINT16 *Token,
IN UINT16 *Host,
IN EFI_GAUGE_DATA *PrevGauge
);
typedef struct _EFI_PERFORMANCE_PROTOCOL{
EFI_PERF_START_GAUGE StartGauge;
EFI_PERF_END_GAUGE EndGauge;
EFI_PERF_GET_GAUGE GetGauge;
} EFI_PERFORMANCE_PROTOCOL;
extern EFI_GUID gEfiPerformanceProtocolGuid;
#endif

View File

@@ -0,0 +1,30 @@
/*++
Copyright (c) 2004, 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:
PlatformMemTest.c
Abstract:
// TBD defined in the Tiano specification??
The Platform memory test protocol is used to provide platform specific
information and functionality for memory test
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (PlatformMemTest)
EFI_GUID gEfiPlatformMemTestGuid = EFI_PLATFORM_MEMTEST_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiPlatformMemTestGuid, "Platform Memory Test Protocol", "Platform MemTest protocol");

View File

@@ -0,0 +1,258 @@
/*++
Copyright (c) 2004, 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:
PlatformMemtest.h
Abstract:
This files defines the protocol produced by platform memory test driver.
--*/
#ifndef __PLATFORM_MEMTEST_H__
#define __PLATFORM_MEMTEST_H__
#include EFI_PROTOCOL_CONSUMER (Hii)
#include EFI_PROTOCOL_CONSUMER (GenericMemoryTest)
#define EFI_PLATFORM_MEMTEST_PROTOCOL_GUID \
{ 0x859ba18, 0x7dd7, 0x4ed7, 0xa8, 0x8e, 0x10, 0x9c, 0x63, 0x91, 0x7b, 0xdd }
//
// Forward reference for pure ANSI compatability
//
EFI_FORWARD_DECLARATION (EFI_PLATFORM_MEMTEST_PROTOCOL);
//
// Basic type definitions
//
typedef UINT16 EFI_DIMM_ID;
#define EFI_INVALID_DIMM_ID 0xFFFF
//
// This describes the capabilities
//
typedef struct {
UINT32 HwCap;
EFI_PHYSICAL_ADDRESS InitBlockSize;
EFI_PHYSICAL_ADDRESS TestBlockSize;
} EFI_PLATFORM_MEMTEST_CAPABILITIES;
//
// This defines the platform driver phases to use in notify phase
//
typedef enum {
EfiMemtestPhaseBegin,
EfiMemtestPhaseEnd,
EfiMemtestPhaseMaximum
} EFI_MEMTEST_PHASE ;
//
// Definitions of Capability bits
//
#define EFI_MEMTEST_CAP_NONE 0X00000000
#define EFI_MEMTEST_CAP_ECC 0X00000001
#define EFI_MEMTEST_CAP_HW_TEST 0X00000002
#define EFI_MEMTEST_CAP_HW_INIT 0X00000004
//
// This describes the pattern for testing all memory cells
//
typedef struct {
UINT32 Count; // Number of patterns
UINT32 Width; // Width of patterns
VOID *Pattern; // Array of patterns
}EFI_MEMTEST_DATA_PATTERN;
//
// This describes the data and address line patterns
//
typedef struct {
UINT32 Count; // Number of patterns
EFI_PHYSICAL_ADDRESS *Address; // Array of addresses
EFI_PHYSICAL_ADDRESS *Pattern; // Array of patterns
} EFI_MEMTEST_ADDRESS_PATTERN;
#define EFI_INVALID_DIMM_ID 0xFFFF
//
// DIMM information exported by the platform driver
//
typedef struct {
EFI_DIMM_ID DimmId;
STRING_REF DimmReference;
} EFI_MEMTEST_DIMM_INFO;
//
// Various types of errors
//
typedef enum {
EfiMemtestCorrectableError = 1,
EfiMemtestUncorrectableError,
EfiMemtestErrorMaximum,
} EFI_DIMM_ERROR;
//
// Actions to be taken.
//
typedef enum {
EfiMemtestActionReport = 1,
EfiMemtestActionDisableMem,
EfiMemtestActionMaximum,
} EFI_MEMTEST_ERROR_ACTION;
//
// Structure indicating a policy entry.
//
typedef struct {
EFI_DIMM_ERROR ErrorType;
UINT32 Threshold;
EFI_MEMTEST_ERROR_ACTION Action;
} EFI_MEMTEST_POLICY_ENTRY;
//
// Error Information.
//
typedef struct {
EFI_DIMM_ERROR Error;
EFI_DIMM_ID DimmId;
} EFI_PLATFORM_MEMTEST_ERROR;
typedef
EFI_STATUS
(EFIAPI *EFI_PLATFORM_MEMTEST_NOTIFY_PHASE) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
IN EFI_MEMTEST_PHASE Phase
);
typedef
EFI_STATUS
(EFIAPI *EFI_PLATFORM_MEMTEST_GET_PLATFORM_INFO) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
OUT EFI_PLATFORM_MEMTEST_CAPABILITIES *Capabilities,
OUT EFI_MEMTEST_ADDRESS_PATTERN *AddressPattern,
OUT EFI_MEMTEST_DATA_PATTERN *DataPattern,
OUT EFI_MEMTEST_DATA_PATTERN *MemoryPattern,
OUT UINT32 *EntryCount,
OUT EFI_MEMTEST_POLICY_ENTRY **PolicyGrid
);
typedef
EFI_STATUS
(EFIAPI * EFI_PLATFORM_MEMTEST_GET_NEXT_DIMM_INFO) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
IN OUT EFI_MEMTEST_DIMM_INFO *DimmInfo
);
typedef
EFI_STATUS
(EFIAPI *EFI_PLATFORM_MEMTEST_INITIALIZE_MEMORY) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
IN EFI_PHYSICAL_ADDRESS Start,
IN EFI_PHYSICAL_ADDRESS Size
);
typedef
EFI_STATUS
(EFIAPI * EFI_PLATFORM_MEMTEST_HW_MEMORY_TEST) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
IN EXTENDMEM_COVERAGE_LEVEL Level,
IN EFI_PHYSICAL_ADDRESS Start,
IN EFI_PHYSICAL_ADDRESS Size,
OUT UINTN *ErrorCount,
OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfo
);
typedef
EFI_STATUS
(EFIAPI * EFI_PLATFORM_MEMTEST_FLUSH_BUFFER) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This
);
typedef
EFI_STATUS
(EFIAPI * EFI_PLATFORM_MEMTEST_CHECK_FOR_ERROR) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
OUT UINT32 *ErrorCount,
OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfo
);
typedef
EFI_STATUS
(EFIAPI * EFI_PLATFORM_MEMTEST_LOCATE_BAD_DIMM) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
IN EFI_PHYSICAL_ADDRESS FailingAddress,
IN UINT8 Expected,
IN UINT8 Found,
OUT UINT32 *ErrorInfoCount,
OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfoBuffer
);
typedef
EFI_STATUS
(EFIAPI * EFI_PLATFORM_MEMTEST_CLEAR_ERROR) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This
);
typedef
EFI_STATUS
(EFIAPI * EFI_PLATFORM_MEMTEST_DISABLE_DIMM) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
IN UINT16 *DimmCount,
IN EFI_DIMM_ID *DimmIds,
IN BOOLEAN RebootRequired
);
typedef
EFI_STATUS
(EFIAPI * EFI_PLATFORM_MEMTEST_OVERLAP) (
IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,
IN EFI_DIMM_ID DimmId,
IN EFI_PHYSICAL_ADDRESS start,
IN EFI_PHYSICAL_ADDRESS Size,
OUT BOOLEAN *Overlap
);
typedef struct _EFI_PLATFORM_MEMTEST_PROTOCOL {
EFI_PLATFORM_MEMTEST_NOTIFY_PHASE NotifyPhase;
EFI_PLATFORM_MEMTEST_GET_PLATFORM_INFO GetPlatformInfo;
EFI_PLATFORM_MEMTEST_GET_NEXT_DIMM_INFO GetNextDimmInfo;
EFI_PLATFORM_MEMTEST_INITIALIZE_MEMORY InitializeMem;
EFI_PLATFORM_MEMTEST_HW_MEMORY_TEST HwTest;
EFI_PLATFORM_MEMTEST_FLUSH_BUFFER FlushBuffer;
EFI_PLATFORM_MEMTEST_CHECK_FOR_ERROR CheckError;
EFI_PLATFORM_MEMTEST_LOCATE_BAD_DIMM LocateBadDimm;
EFI_PLATFORM_MEMTEST_CLEAR_ERROR ClearError;
EFI_PLATFORM_MEMTEST_DISABLE_DIMM DisableDimm;
EFI_PLATFORM_MEMTEST_OVERLAP Overlap;
} EFI_PLATFORM_MEMTEST_PROTOCOL;
extern EFI_GUID gEfiPlatformMemTestGuid;
#endif

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
This file defines the Print protocol interface to provide a unified
print function
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (Print)
EFI_GUID gEfiPrintProtocolGuid = EFI_PRINT_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiPrintProtocolGuid, "Print Protocol", "Print 1.0 protocol");

View File

@@ -0,0 +1,51 @@
/*++
Copyright (c) 2004, 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
//
EFI_FORWARD_DECLARATION (EFI_PRINT_PROTOCOL);
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
);
typedef struct _EFI_PRINT_PROTOCOL {
EFI_VSPRINT VSPrint;
} EFI_PRINT_PROTOCOL;
extern EFI_GUID gEfiPrintProtocolGuid;
#endif

View File

@@ -0,0 +1,28 @@
/*++
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:
Ps2Policy.c
Abstract:
Protocol used for PS/2 Policy definition.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (Ps2Policy)
EFI_GUID gEfiPs2PolicyProtocolGuid = EFI_PS2_POLICY_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiPs2PolicyProtocolGuid, "PS2 Policy", "Policy for Configuring PS2");

View 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:
Ps2Policy.h
Abstract:
Protocol used for PS/2 Policy definition.
--*/
#ifndef _PS2_POLICY_PROTOCOL_H_
#define _PS2_POLICY_PROTOCOL_H_
EFI_FORWARD_DECLARATION (EFI_PS2_POLICY_PROTOCOL);
#define EFI_PS2_POLICY_PROTOCOL_GUID \
{ \
0x4df19259, 0xdc71, 0x4d46, 0xbe, 0xf1, 0x35, 0x7b, 0xb5, 0x78, 0xc4, 0x18 \
}
#define EFI_KEYBOARD_CAPSLOCK 0x0004
#define EFI_KEYBOARD_NUMLOCK 0x0002
#define EFI_KEYBOARD_SCROLLLOCK 0x0001
typedef
EFI_STATUS
(EFIAPI *EFI_PS2_INIT_HARDWARE) (
IN EFI_HANDLE Handle
);
typedef struct _EFI_PS2_POLICY_PROTOCOL {
UINT8 KeyboardLight;
EFI_PS2_INIT_HARDWARE Ps2InitHardware;
} EFI_PS2_POLICY_PROTOCOL;
extern EFI_GUID gEfiPs2PolicyProtocolGuid;
#endif

View File

@@ -0,0 +1,28 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
PxeDhcp4 GUID declaration
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (PxeDhcp4)
EFI_GUID gEfiPxeDhcp4ProtocolGuid = EFI_PXE_DHCP4_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiPxeDhcp4ProtocolGuid, "PXE DHCP4 Protocol", "PXE DHCPv4 Protocol");
/* EOF - PxeDhcp4.c */

View File

@@ -0,0 +1,350 @@
/*++
Copyright (c) 2004, 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
//
EFI_FORWARD_DECLARATION (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
typedef 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;
} EFI_PXE_DHCP4_PROTOCOL;
//
//
//
extern EFI_GUID gEfiPxeDhcp4ProtocolGuid;
#endif /* _PXEDHCP4_H_ */
/* EOF - PxeDhcp4.h */

View File

@@ -0,0 +1,28 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
PxeDhcp4Callback protocol GUID definition.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (PxeDhcp4CallBack)
EFI_GUID gEfiPxeDhcp4CallbackProtocolGuid = EFI_PXE_DHCP4_CALLBACK_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiPxeDhcp4CallbackProtocolGuid, "PXE DHCP4 Callback Protocol", "PXE DHCP IPv4 Callback Protocol");
/* EOF - PxeDhcp4Callback.c */

View File

@@ -0,0 +1,86 @@
/*++
Copyright (c) 2004, 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 "..\PxeDhcp4\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
//
EFI_FORWARD_DECLARATION (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
);
typedef struct _EFI_PXE_DHCP4_CALLBACK_PROTOCOL {
UINT64 Revision;
EFI_PXE_DHCP4_CALLBACK Callback;
} EFI_PXE_DHCP4_CALLBACK_PROTOCOL;
//
// GUID declaration
//
extern EFI_GUID gEfiPxeDhcp4CallbackProtocolGuid;
#endif /* _PXE_DHCP4CALLBACK_H */
/* EOF - PxeDhcp4Callback.h */

View File

@@ -0,0 +1,30 @@
/*++
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:
TcgService.c
Abstract:
TcgService Protocol GUID as defined in TCG_EFI_Protocol_1_20_Final
See http://trustedcomputinggroup.org for the latest specification
--*/
#include <Tiano.h>
#include EFI_PROTOCOL_DEFINITION(TcgService)
EFI_GUID gEfiTcgProtocolGuid = EFI_TCG_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiTcgServiceProtocolGuid, "TcgService", "TCG Services Protocol");

View File

@@ -0,0 +1,128 @@
/*++
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:
TcgService.h
Abstract:
TCG Service Protocol as defined in TCG_EFI_Protocol_1_20_Final
See http://trustedcomputinggroup.org for the latest specification
--*/
#ifndef _TCG_SERVICE_PROTOCOL_H_
#define _TCG_SERVICE_PROTOCOL_H_
#include <EfiTpm.h>
#define EFI_TCG_PROTOCOL_GUID \
{0xf541796d, 0xa62e, 0x4954, 0xa7, 0x75, 0x95, 0x84, 0xf6, 0x1b, 0x9c, 0xdd}
#define TSS_EVENT_DATA_MAX_SIZE 256
EFI_FORWARD_DECLARATION (EFI_TCG_PROTOCOL);
//
// Set structure alignment to 1-byte
//
#pragma pack (push, 1)
typedef struct {
UINT8 Major;
UINT8 Minor;
UINT8 RevMajor;
UINT8 RevMinor;
} TCG_VERSION;
typedef struct _TCG_EFI_BOOT_SERVICE_CAPABILITY {
UINT8 Size; // Size of this structure
TCG_VERSION StructureVersion;
TCG_VERSION ProtocolSpecVersion;
UINT8 HashAlgorithmBitmap; // Hash algorithms
// this protocol is capable of : 01=SHA-1
BOOLEAN TPMPresentFlag; // 00h = TPM not present
BOOLEAN TPMDeactivatedFlag; // 01h = TPM currently deactivated
} TCG_EFI_BOOT_SERVICE_CAPABILITY;
typedef UINT32 TCG_ALGORITHM_ID;
//
// Restore original structure alignment
//
#pragma pack (pop)
typedef
EFI_STATUS
(EFIAPI *EFI_TCG_STATUS_CHECK) (
IN EFI_TCG_PROTOCOL *This,
OUT TCG_EFI_BOOT_SERVICE_CAPABILITY
*ProtocolCapability,
OUT UINT32 *TCGFeatureFlags,
OUT EFI_PHYSICAL_ADDRESS *EventLogLocation,
OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry
);
typedef
EFI_STATUS
(EFIAPI *EFI_TCG_HASH_ALL) (
IN EFI_TCG_PROTOCOL *This,
IN UINT8 *HashData,
IN UINT64 HashDataLen,
IN TCG_ALGORITHM_ID AlgorithmId,
IN OUT UINT64 *HashedDataLen,
IN OUT UINT8 **HashedDataResult
);
typedef
EFI_STATUS
(EFIAPI *EFI_TCG_LOG_EVENT) (
IN EFI_TCG_PROTOCOL *This,
IN TCG_PCR_EVENT *TCGLogData,
IN OUT UINT32 *EventNumber,
IN UINT32 Flags
);
typedef
EFI_STATUS
(EFIAPI *EFI_TCG_PASS_THROUGH_TO_TPM) (
IN EFI_TCG_PROTOCOL *This,
IN UINT32 TpmInputParamterBlockSize,
IN UINT8 *TpmInputParamterBlock,
IN UINT32 TpmOutputParameterBlockSize,
IN UINT8 *TpmOutputParameterBlock
);
typedef
EFI_STATUS
(EFIAPI *EFI_TCG_HASH_LOG_EXTEND_EVENT) (
IN EFI_TCG_PROTOCOL *This,
IN UINT8 *HashData,
IN UINT64 HashDataLen,
IN TCG_ALGORITHM_ID AlgorithmId,
IN OUT TCG_PCR_EVENT *TCGLogData,
IN OUT UINT32 *EventNumber,
OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry
);
typedef struct _EFI_TCG_PROTOCOL {
EFI_TCG_STATUS_CHECK StatusCheck;
EFI_TCG_HASH_ALL HashAll;
EFI_TCG_LOG_EVENT LogEvent;
EFI_TCG_PASS_THROUGH_TO_TPM PassThroughToTpm;
EFI_TCG_HASH_LOG_EXTEND_EVENT HashLogExtendEvent;
} EFI_TCG_PROTOCOL;
extern EFI_GUID gEfiTcgProtocolGuid;
#endif

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004, 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:
Tcp.c
Abstract:
Revision History
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(Tcp)
EFI_GUID gEfiTcpProtocolGuid = EFI_TCP_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiTcpProtocolGuid, "Transmission Control Protocol", "EFI Transmission Control Protocol");

View File

@@ -0,0 +1,110 @@
/*++
Copyright (c) 2004, 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:
tcp.h
Abstract:
EFI Transmission Control Protocol
Revision History
--*/
#ifndef _EFITCP_H
#define _EFITCP_H
#include EFI_PROTOCOL_DEFINITION(PxeBaseCode)
//
// PXE Base Code protocol
//
#define EFI_TCP_PROTOCOL_GUID \
{ 0x02b3d5f2, 0xac28, 0x11d3, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }
EFI_FORWARD_DECLARATION (EFI_TCP_PROTOCOL);
typedef UINT16 EFI_PXE_BASE_CODE_TCP_PORT;
//
// Port Receive Filter definitions
//
#define EFI_PXE_BASE_CODE_MAX_PORTCNT 8
typedef struct {
UINT8 Filters;
UINT8 IpCnt;
UINT16 reserved;
EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_PORTCNT];
} EFI_TCP_PORT_FILTER;
typedef
EFI_STATUS
(EFIAPI *EFI_TCP_WRITE) (
IN EFI_PXE_BASE_CODE_PROTOCOL *This,
IN UINT16 OpFlags,
IN UINT16 *UrgentPointer,
IN UINT32 *SequenceNumber,
IN UINT32 *AckNumber,
IN UINT16 *HlenResCode,
IN UINT16 *Window,
IN EFI_IP_ADDRESS *DestIp,
IN UINT16 *DestPort,
IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL
IN EFI_IP_ADDRESS *SrcIp, OPTIONAL
IN UINT16 *SrcPort, OPTIONAL
IN UINTN *HeaderSize, OPTIONAL
IN VOID *HeaderPtr, OPTIONAL
IN UINTN *BufferSize,
IN VOID *BufferPtr
);
typedef
EFI_STATUS
(EFIAPI *EFI_TCP_READ) (
IN EFI_PXE_BASE_CODE_PROTOCOL *This,
IN UINT16 OpFlags,
IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL
IN OUT UINT16 *DestPort, OPTIONAL
IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL
IN OUT UINT16 *SrcPort, OPTIONAL
IN UINTN *HeaderSize, OPTIONAL
IN VOID *HeaderPtr, OPTIONAL
IN OUT UINTN *BufferSize,
IN VOID *BufferPtr
);
typedef
EFI_STATUS
(EFIAPI *EFI_TCP_SET_PORT_FILTER) (
IN EFI_PXE_BASE_CODE_PROTOCOL *This,
IN EFI_TCP_PORT_FILTER *NewFilter
);
//
// TCP Protocol structure
//
typedef struct _EFI_TCP_PROTOCOL {
EFI_TCP_WRITE TcpWrite;
EFI_TCP_READ TcpRead;
EFI_TCP_SET_PORT_FILTER SetPortFilter;
} EFI_TCP_PROTOCOL;
extern EFI_GUID gEfiTcpProtocolGuid;
#endif /* _EFITCP_H */

View File

@@ -0,0 +1,28 @@
/*++
Copyright (c) 2004, 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:
TianoDecompress.c
Abstract:
The GUID for the Tiano Decompress Protocol
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION(TianoDecompress)
EFI_GUID gEfiTianoDecompressProtocolGuid = EFI_TIANO_DECOMPRESS_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiTianoDecompressProtocolGuid, "Tiano Decompress", "Tiano Decompression Protocol");

View File

@@ -0,0 +1,139 @@
/*++
Copyright (c) 2004, 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:
TianoDecompress.h
Abstract:
The Tiano Decompress Protocol Interface
--*/
#ifndef _TIANO_DECOMPRESS_H_
#define _TIANO_DECOMPRESS_H_
#define EFI_TIANO_DECOMPRESS_PROTOCOL_GUID \
{ 0xe84cf29c, 0x191f, 0x4eae, 0x96, 0xe1, 0xf4, 0x6a, 0xec, 0xea, 0xea, 0x0b }
EFI_FORWARD_DECLARATION (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).
--*/
typedef struct _EFI_TIANO_DECOMPRESS_PROTOCOL {
EFI_TIANO_DECOMPRESS_GET_INFO GetInfo;
EFI_TIANO_DECOMPRESS_DECOMPRESS Decompress;
} EFI_TIANO_DECOMPRESS_PROTOCOL;
extern EFI_GUID gEfiTianoDecompressProtocolGuid;
#endif

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
UGA Splash protocol.
Abstraction of a very simple graphics device splash screen.
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (UgaSplash)
EFI_GUID gEfiUgaSplashProtocolGuid = EFI_UGA_SPLASH_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiUgaSplashProtocolGuid, "UGA Splash Protocol", "UGA Splash Protocol");

View File

@@ -0,0 +1,45 @@
/*++
Copyright (c) 2004, 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__
#include EFI_PROTOCOL_DEFINITION (GraphicsOutput)
#include EFI_PROTOCOL_DEFINITION (UgaDraw)
#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;
typedef struct _EFI_UGA_SPLASH_PROTOCOL {
UINT32 PixelWidth;
UINT32 PixelHeight;
EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Image;
} EFI_UGA_SPLASH_PROTOCOL;
extern EFI_GUID gEfiUgaSplashProtocolGuid;
#endif

View File

@@ -0,0 +1,31 @@
/*++
Copyright (c) 2004, 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.c
Abstract:
EFI USB Atapi Protocol
Revision History
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (UsbIo)
#include EFI_PROTOCOL_DEFINITION (UsbAtapi)
EFI_GUID gEfiUsbAtapiProtocolGuid = EFI_USB_ATAPI_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiUsbAtapiProtocolGuid, "Usb Atapi Protocol", "Usb Atapi Protocol");

View File

@@ -0,0 +1,83 @@
/*++
Copyright (c) 2004, 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 }
EFI_FORWARD_DECLARATION (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
//
typedef struct _EFI_USB_ATAPI_PROTOCOL {
EFI_USB_ATAPI_PACKET_CMD UsbAtapiPacketCmd;
EFI_USB_MASS_STORAGE_RESET UsbAtapiReset;
UINT32 CommandProtocol;
} EFI_USB_ATAPI_PROTOCOL;
extern EFI_GUID gEfiUsbAtapiProtocolGuid;
#endif

View File

@@ -0,0 +1,36 @@
/*++
Copyright (c) 2004, 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:
VariableStore.c
Abstract:
Revision History
--*/
//
// The variable store protocol interface is specific to the reference
// implementation. The initialization code adds variable store devices
// to the system, and the FW connects to the devices to provide the
// variable store interfaces through these devices.
//
//
// Variable Store Device protocol
//
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (VariableStore)
EFI_GUID gEfiVariableStoreProtocolGuid = EFI_VARIABLE_STORE_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiVariableStoreProtocolGuid, "Variable Storage Protocol", "Tiano Variable Storage Protocol");

View File

@@ -0,0 +1,105 @@
/*++
Copyright (c) 2004, 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:
VariableStore.h
Abstract:
Revision History
--*/
#ifndef _VARIABLE_STORE_H
#define _VARIABLE_STORE_H
//
// The variable store protocol interface is specific to the reference
// implementation. The initialization code adds variable store devices
// to the system, and the FW connects to the devices to provide the
// variable store interfaces through these devices.
//
//
// Variable Store Device protocol
//
#define EFI_VARIABLE_STORE_PROTOCOL_GUID \
{ 0xf088cd91, 0xa046, 0x11d2, 0x8e, 0x42, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b }
EFI_FORWARD_DECLARATION (EFI_VARIABLE_STORE_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_CLEAR_STORE) (
IN EFI_VARIABLE_STORE_PROTOCOL *This,
IN OUT VOID *Scratch
);
typedef
EFI_STATUS
(EFIAPI *EFI_READ_STORE) (
IN EFI_VARIABLE_STORE_PROTOCOL *This,
IN UINTN Offset,
IN UINTN BufferSize,
OUT VOID *Buffer
);
typedef
EFI_STATUS
(EFIAPI *EFI_UPDATE_STORE) (
IN EFI_VARIABLE_STORE_PROTOCOL *This,
IN UINTN Offset,
IN UINTN BufferSize,
IN VOID *Buffer
);
typedef
EFI_STATUS
(EFIAPI *EFI_CLEANUP_STORE) (
IN EFI_VARIABLE_STORE_PROTOCOL *This
);
typedef struct _EFI_VARIABLE_STORE_PROTOCOL {
//
// Number of banks and bank size
//
UINT32 Attributes;
UINT32 BankSize;
//
// Functions to access the storage banks
//
EFI_CLEAR_STORE ClearStore;
EFI_READ_STORE ReadStore;
EFI_UPDATE_STORE UpdateStore;
EFI_CLEANUP_STORE CleanupStore;
} EFI_VARIABLE_STORE_PROTOCOL;
//
//
// ClearStore() - A function to clear the requested storage bank. A cleared
// bank contains all "on" bits.
//
// ReadStore() - Read data from the requested store.
//
// UpdateStore() - Updates data on the requested store. The FW will only
// ever issue updates to clear bits in the store. Updates must
// be performed in LSb to MSb order of the update buffer.
//
// CleanupStore() - Do garbage collection and reclaim operation.
//
extern EFI_GUID gEfiVariableStoreProtocolGuid;
#endif // _VARIABLE_STORE_H

View File

@@ -0,0 +1,28 @@
/*++
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:
VgaMiniPort.c
Abstract:
EFI VGA Mini Port Protocol
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (VgaMiniPort)
EFI_GUID gEfiVgaMiniPortProtocolGuid = EFI_VGA_MINI_PORT_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiVgaMiniPortProtocolGuid, "VGA Mini Port Protocol", "EFI VGA Mini Port Protocol");

View File

@@ -0,0 +1,70 @@
/*++
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:
VgaMiniPort.h
Abstract:
Vga Mini port binding for a VGA controller
--*/
#ifndef _VGA_MINI_PORT_H
#define _VGA_MINI_PORT_H
#define EFI_VGA_MINI_PORT_PROTOCOL_GUID \
{ \
0xc7735a2f, 0x88f5, 0x4882, 0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 \
}
EFI_FORWARD_DECLARATION (EFI_VGA_MINI_PORT_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_VGA_MINI_PORT_SET_MODE) (
IN EFI_VGA_MINI_PORT_PROTOCOL * This,
IN UINTN ModeNumber
);
/*++
Routine Description:
Sets the text display mode of a VGA controller
Arguments:
This - Protocol instance pointer.
Mode - Mode number. 0 - 80x25 1-80x50
Returns:
EFI_SUCCESS - The mode was set
EFI_DEVICE_ERROR - The device is not functioning properly.
--*/
typedef struct _EFI_VGA_MINI_PORT_PROTOCOL {
EFI_VGA_MINI_PORT_SET_MODE SetMode;
UINT64 VgaMemoryOffset;
UINT64 CrtcAddressRegisterOffset;
UINT64 CrtcDataRegisterOffset;
UINT8 VgaMemoryBar;
UINT8 CrtcAddressRegisterBar;
UINT8 CrtcDataRegisterBar;
UINT8 MaxMode;
} EFI_VGA_MINI_PORT_PROTOCOL;
extern EFI_GUID gEfiVgaMiniPortProtocolGuid;
#endif

View File

@@ -0,0 +1,27 @@
/*++
Copyright (c) 2004, 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:
VirtualMemoryAccess.c
Abstract:
--*/
#include "Tiano.h"
#include EFI_PROTOCOL_DEFINITION (VirtualMemoryAccess)
EFI_GUID gEfiVirtualMemoryAccessProtocolGuid = EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL_GUID;
EFI_GUID_STRING
(&gEfiVirtualMemoryAccessProtocolGuid, "Virtual Memory Access Protocol", "Tiano Virtual Memory Access Protocol");

View File

@@ -0,0 +1,64 @@
/*++
Copyright (c) 2004, 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:
VirtualmemoryAccess.h
Abstract:
--*/
#ifndef _VIRTUAL_MEMORY_ACCESS_H_
#define _VIRTUAL_MEMORY_ACCESS_H_
#define EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL_GUID \
{0x745d377a, 0xb988, 0x47b2, 0xb1, 0x8f, 0xbb, 0xc8, 0xd, 0xc5, 0x66, 0x98}
EFI_FORWARD_DECLARATION (EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_VIRTUAL_MEMORY_ACCESS_MAP) (
IN EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL *This,
IN EFI_PHYSICAL_ADDRESS MappingAddress,
IN UINTN NumberOfBytes,
IN EFI_PHYSICAL_ADDRESS MappedAddress
);
typedef
EFI_STATUS
(EFIAPI *EFI_VIRTUAL_MEMORY_ACCESS_UNMAP) (
IN EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL *This,
IN EFI_PHYSICAL_ADDRESS MappedAddress,
IN UINTN PageSizeInByte
);
typedef
EFI_STATUS
(EFIAPI *EFI_VIRTUAL_MEMORY_ACCESS_GET_PAGE_SIZE) (
IN EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL *This,
IN UINTN *PageSizeInByte
);
typedef struct _EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL {
EFI_VIRTUAL_MEMORY_ACCESS_GET_PAGE_SIZE GetPageSize;
EFI_VIRTUAL_MEMORY_ACCESS_MAP Map;
EFI_VIRTUAL_MEMORY_ACCESS_UNMAP UnMap;
} EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL;
extern EFI_GUID gEfiVirtualMemoryAccessProtocolGuid;
#endif