1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:

1.1) Bug fixes. (For details, please check  Documents & files: Snapshot/Release Notes at https://edk.tianocore.org/servlets/ProjectDocumentList?folderID=43&expandFolder=43&folderID=6)
  1.2) Add new UEFI protocol definitions for AbsolutePointer, FormBrowser2, HiiConfigAccess, HiiConfigRouting, HiiDatabase, HiiFont, HiiImage, HiiString, SimpleTextInputEx, DPC protocol.
  1.3) Add Smbios 2.5, 2.6 supports.

  Incompatible changes hilighted:
  1) EFI_MANAGED_NETWORK_PROTOCOL_GUID changed.
  2) EFI_IP4_IPCONFIG_DATA changed.

2) Add in EdkCompatibilityPkg/EdkCompatibilityPkg.dsc to build all libraries in this package.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4622 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12 2008-01-24 06:37:35 +00:00
parent 8336fd87df
commit 2c40a813fc
40 changed files with 4178 additions and 67 deletions

View File

@ -45,7 +45,7 @@ typedef enum {
typedef
VOID
(*EFI_CPU_INTERRUPT_HANDLER) (
(EFIAPI *EFI_CPU_INTERRUPT_HANDLER) (
IN EFI_EXCEPTION_TYPE InterruptType,
IN EFI_SYSTEM_CONTEXT SystemContext
);

View File

@ -106,10 +106,10 @@ EfiDisableCache (VOID)
and al, 60h
cmp al, 60h
je Exit
wbinvd
mov eax, cr0
or eax, 060000000h
mov cr0, eax
wbinvd
Exit:
}
}

View File

@ -135,10 +135,10 @@ EfiDisableCache PROC PUBLIC
and rax, 060000000h
cmp rax, 0
jne @f
wbinvd
mov rax, cr0
or rax, 060000000h
mov cr0, rax
wbinvd
@@:
ret
EfiDisableCache ENDP

View File

@ -343,6 +343,8 @@ typedef struct {
UINT16 RelativeTargetPort;
} SAS_DEVICE_PATH;
#endif
#define MSG_ISCSI_DP 0x13
typedef struct {
EFI_DEVICE_PATH_PROTOCOL Header;
@ -362,8 +364,6 @@ typedef struct {
#define ISCSI_LOGIN_OPTION_CHAP_BI 0x0000
#define ISCSI_LOGIN_OPTION_CHAP_UNI 0x2000
#endif
//
// Media Device Path
//
@ -477,6 +477,7 @@ typedef union {
CONTROLLER_DEVICE_PATH Controller;
ACPI_HID_DEVICE_PATH Acpi;
ACPI_EXTENDED_HID_DEVICE_PATH ExtendedAcpi;
ATAPI_DEVICE_PATH Atapi;
SCSI_DEVICE_PATH Scsi;
@ -488,6 +489,7 @@ typedef union {
USB_CLASS_DEVICE_PATH UsbClass;
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
USB_WWID_DEVICE_PATH UsbWwid;
DEVICE_LOGICAL_UNIT_DEVICE_PATH LogicUnit;
#endif
I2O_DEVICE_PATH I2O;
MAC_ADDR_DEVICE_PATH MacAddr;
@ -498,14 +500,19 @@ typedef union {
UART_FLOW_CONTROL_DEVICE_PATH UartFlowControl;
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
SAS_DEVICE_PATH Sas;
ISCSI_DEVICE_PATH Iscsi;
#endif
ISCSI_DEVICE_PATH Iscsi;
HARDDRIVE_DEVICE_PATH HardDrive;
CDROM_DEVICE_PATH CD;
FILEPATH_DEVICE_PATH FilePath;
MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol;
#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
MEDIA_FW_VOL_DEVICE_PATH PiwgFirmwareVolume;
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH PiwgFirmwareFile;
#endif
BBS_BBS_DEVICE_PATH Bbs;
} EFI_DEV_PATH;
@ -532,12 +539,22 @@ typedef union {
F1394_DEVICE_PATH *F1394;
USB_DEVICE_PATH *Usb;
USB_CLASS_DEVICE_PATH *UsbClass;
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
USB_WWID_DEVICE_PATH *UsbWwid;
DEVICE_LOGICAL_UNIT_DEVICE_PATH *LogicUnit;
#endif
I2O_DEVICE_PATH *I2O;
MAC_ADDR_DEVICE_PATH *MacAddr;
IPv4_DEVICE_PATH *Ipv4;
IPv6_DEVICE_PATH *Ipv6;
INFINIBAND_DEVICE_PATH *InfiniBand;
UART_DEVICE_PATH *Uart;
UART_FLOW_CONTROL_DEVICE_PATH *UartFlowControl;
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
SAS_DEVICE_PATH *Sas;
#endif
ISCSI_DEVICE_PATH *Iscsi;
HARDDRIVE_DEVICE_PATH *HardDrive;
CDROM_DEVICE_PATH *CD;
@ -545,6 +562,11 @@ typedef union {
FILEPATH_DEVICE_PATH *FilePath;
MEDIA_PROTOCOL_DEVICE_PATH *MediaProtocol;
#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
MEDIA_FW_VOL_DEVICE_PATH *PiwgFirmwareVolume;
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *PiwgFirmwareFile;
#endif
BBS_BBS_DEVICE_PATH *Bbs;
UINT8 *Raw;
} EFI_DEV_PATH_PTR;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
AbsolutePointer.c
Abstract:
EFI_ABSOLUTE_POINTER_PROTOCOL from the UEFI 2.1 specification.
This protocol specifies a simple method for accessing absolute pointer devices.
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (AbsolutePointer)
EFI_GUID gEfiAbsolutePointerProtocolGuid = EFI_ABSOLUTE_POINTER_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiAbsolutePointerProtocolGuid, "Absolute Pointer Protocol", "UEFI 2.1 Absolute Pointer Protocol");

View File

@ -0,0 +1,117 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
AbsolutePointer.h
Abstract:
EFI_ABSOLUTE_POINTER_PROTOCOL from the UEFI 2.1 specification.
This protocol specifies a simple method for accessing absolute pointer devices.
--*/
#ifndef __ABSOLUTE_POINTER_H__
#define __ABSOLUTE_POINTER_H__
#define EFI_ABSOLUTE_POINTER_PROTOCOL_GUID \
{ \
0x8D59D32B, 0xC655, 0x4AE9, 0x9B, 0x15, 0xF2, 0x59, 0x04, 0x99, 0x2A, 0x43 \
}
EFI_FORWARD_DECLARATION (EFI_ABSOLUTE_POINTER_PROTOCOL);
//
// Data structures
//
typedef struct {
UINT64 AbsoluteMinX;
UINT64 AbsoluteMinY;
UINT64 AbsoluteMinZ;
UINT64 AbsoluteMaxX;
UINT64 AbsoluteMaxY;
UINT64 AbsoluteMaxZ;
UINT32 Attributes;
} EFI_ABSOLUTE_POINTER_MODE;
typedef struct {
UINT64 CurrentX;
UINT64 CurrentY;
UINT64 CurrentZ;
UINT32 ActiveButtons;
} EFI_ABSOLUTE_POINTER_STATE;
#define EFI_ABSP_SupportsAltActive 0x00000001
#define EFI_ABSP_SupportsPressureAsZ 0x00000002
#define EFI_ABSP_TouchActive 0x00000001
#define EFI_ABS_AltActive 0x00000002
typedef
EFI_STATUS
(EFIAPI *EFI_ABSOLUTE_POINTER_RESET) (
IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
)
/*++
Routine Description:
Resets the pointer device hardware.
Arguments:
This - Protocol instance pointer.
ExtendedVerification - Driver may perform diagnostics on reset.
Returns:
EFI_SUCCESS - The device was reset.
EFI_DEVICE_ERROR - The device is not functioning correctly and could
not be reset.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_ABSOLUTE_POINTER_GET_STATE) (
IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
IN OUT EFI_ABSOLUTE_POINTER_STATE *State
)
/*++
Routine Description:
Retrieves the current state of a pointer device.
Arguments:
This - Protocol instance pointer.
State - A pointer to the state information on the pointer device.
Returns:
EFI_SUCCESS - The state of the pointer device was returned in State..
EFI_NOT_READY - The state of the pointer device has not changed since the last call to
GetState().
EFI_DEVICE_ERROR - A device error occurred while attempting to retrieve the pointer
device's current state.
--*/
;
typedef struct _EFI_ABSOLUTE_POINTER_PROTOCOL {
EFI_ABSOLUTE_POINTER_RESET Reset;
EFI_ABSOLUTE_POINTER_GET_STATE GetState;
EFI_EVENT WaitForInput;
EFI_ABSOLUTE_POINTER_MODE *Mode;
} EFI_ABSOLUTE_POINTER_PROTOCOL;
extern EFI_GUID gEfiAbsolutePointerProtocolGuid;
#endif

View File

@ -88,18 +88,18 @@ typedef enum{
Dhcp4SendDiscover = 0x01,
Dhcp4RcvdOffer = 0x02,
Dhcp4SelectOffer = 0x03,
Dhcp4SendRequest = 0x05,
Dhcp4RcvdAck = 0x06,
Dhcp4RcvdNak = 0x07,
Dhcp4SendDecline = 0x08,
Dhcp4BoundCompleted = 0x09,
Dhcp4EnterRenewing = 0x0a,
Dhcp4EnterRebinding = 0x0b,
Dhcp4AddressLost = 0x0c,
Dhcp4Fail = 0x0d
Dhcp4SendRequest = 0x04,
Dhcp4RcvdAck = 0x05,
Dhcp4RcvdNak = 0x06,
Dhcp4SendDecline = 0x07,
Dhcp4BoundCompleted = 0x08,
Dhcp4EnterRenewing = 0x09,
Dhcp4EnterRebinding = 0x0a,
Dhcp4AddressLost = 0x0b,
Dhcp4Fail = 0x0c
} EFI_DHCP4_EVENT;
typedef EFI_STATUS (*EFI_DHCP4_CALLBACK)(
typedef EFI_STATUS (*EFI_DHCP4_CALLBACK) (
IN EFI_DHCP4_PROTOCOL *This,
IN VOID *Context,
IN EFI_DHCP4_STATE CurrentState,
@ -139,23 +139,22 @@ typedef struct {
} EFI_DHCP4_LISTEN_POINT;
typedef struct {
OUT EFI_STATUS Status;
IN EFI_EVENT CompletionEvent;
IN EFI_IPv4_ADDRESS RemoteAddress;
IN UINT16 RemotePort;
IN EFI_IPv4_ADDRESS GatewayAddress;
IN UINT32 ListenPointCount;
IN EFI_DHCP4_LISTEN_POINT *ListenPoints;
IN UINT32 TimeoutValue;
IN EFI_DHCP4_PACKET *Packet;
OUT UINT32 ResponseCount;
OUT EFI_DHCP4_PACKET *ResponseList;
}EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN;
EFI_STATUS Status;
EFI_EVENT CompletionEvent;
EFI_IPv4_ADDRESS RemoteAddress;
UINT16 RemotePort;
EFI_IPv4_ADDRESS GatewayAddress;
UINT32 ListenPointCount;
EFI_DHCP4_LISTEN_POINT *ListenPoints;
UINT32 TimeoutValue;
EFI_DHCP4_PACKET *Packet;
UINT32 ResponseCount;
EFI_DHCP4_PACKET *ResponseList;
} EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN;
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP4_GET_MODE_DATA)(
(EFIAPI *EFI_DHCP4_GET_MODE_DATA) (
IN EFI_DHCP4_PROTOCOL *This,
OUT EFI_DHCP4_MODE_DATA *Dhcp4ModeData
);
@ -176,8 +175,8 @@ typedef EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP4_RENEW) (
IN EFI_DHCP4_PROTOCOL *This,
(EFIAPI *EFI_DHCP4_RENEW_REBIND) (
IN EFI_DHCP4_PROTOCOL *This,
IN BOOLEAN RebindRequest,
IN EFI_EVENT CompletionEvent OPTIONAL
);
@ -201,7 +200,7 @@ EFI_STATUS
IN UINT32 DeleteCount,
IN UINT8 *DeleteList OPTIONAL,
IN UINT32 AppendCount,
IN EFI_DHCP4_PACKET_OPTION *AppendList[] OPTIONAL,
IN EFI_DHCP4_PACKET_OPTION *AppendList[] OPTIONAL,
OUT EFI_DHCP4_PACKET **NewPacket
);
@ -212,7 +211,6 @@ EFI_STATUS
IN EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN *Token
);
typedef
EFI_STATUS
(EFIAPI *EFI_DHCP4_PARSE) (
@ -226,7 +224,7 @@ typedef struct _EFI_DHCP4_PROTOCOL {
EFI_DHCP4_GET_MODE_DATA GetModeData;
EFI_DHCP4_CONFIGURE Configure;
EFI_DHCP4_START Start;
EFI_DHCP4_RENEW RenewRebind;
EFI_DHCP4_RENEW_REBIND RenewRebind;
EFI_DHCP4_RELEASE Release;
EFI_DHCP4_STOP Stop;
EFI_DHCP4_BUILD Build;

View File

@ -37,6 +37,8 @@ COMPONENT_TYPE= LIBRARY
[nmake.common]
[sources.common]
AbsolutePointer\AbsolutePointer.h
AbsolutePointer\AbsolutePointer.c
AcpiTable\AcpiTable.h
AcpiTable\AcpiTable.c
Arp\Arp.h
@ -93,8 +95,22 @@ COMPONENT_TYPE= LIBRARY
FileSystemInfo\FileSystemInfo.c
FileSystemVolumeLabelInfo\FileSystemVolumeLabelInfo.h
FileSystemVolumeLabelInfo\FileSystemVolumeLabelInfo.c
FormBrowser2\FormBrowser2.h
FormBrowser2\FormBrowser2.c
GraphicsOutput\GraphicsOutput.h
GraphicsOutput\GraphicsOutput.c
HiiConfigAccess\HiiConfigAccess.h
HiiConfigAccess\HiiConfigAccess.c
HiiConfigRouting\HiiConfigRouting.h
HiiConfigRouting\HiiConfigRouting.c
HiiDatabase\HiiDatabase.h
HiiDatabase\HiiDatabase.c
HiiFont\HiiFont.h
HiiFont\HiiFont.c
HiiImage\HiiImage.h
HiiImage\HiiImage.c
HiiString\HiiString.h
HiiString\HiiString.c
Ip4\Ip4.h
Ip4\Ip4.c
Ip4Config\Ip4Config.h
@ -129,6 +145,8 @@ COMPONENT_TYPE= LIBRARY
SimplePointer\SimplePointer.c
SimpleTextIn\SimpleTextIn.h
SimpleTextIn\SimpleTextIn.c
SimpleTextInputEx\SimpleTextInputEx.h
SimpleTextInputEx\SimpleTextInputEx.c
SimpleTextOut\SimpleTextOut.h
SimpleTextOut\SimpleTextOut.c
Udp4\Udp4.h

View File

@ -0,0 +1,27 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
FormBrowser2.c
Abstract:
The EFI_FORM_BROWSER2_PROTOCOL is the interface to the UEFI configuration driver.
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (FormBrowser2)
EFI_GUID gEfiFormBrowser2ProtocolGuid = EFI_FORM_BROWSER2_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiFormBrowser2ProtocolGuid, "Form Browser2 Protocol", "Form Browser 2.1 protocol");

View File

@ -0,0 +1,136 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
FormBrowser2.h
Abstract:
The EFI_FORM_BROWSER2_PROTOCOL is the interface to the UEFI configuration driver.
--*/
#ifndef _FORM_BROWSER2_H_
#define _FORM_BROWSER2_H_
#include "EfiHii.h"
#define EFI_FORM_BROWSER2_PROTOCOL_GUID \
{ \
0xb9d4c360, 0xbcfb, 0x4f9b, 0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58 \
}
//
// Forward reference for pure ANSI compatability
//
EFI_FORWARD_DECLARATION (EFI_FORM_BROWSER2_PROTOCOL);
typedef struct _EFI_FORM_BROWSER2_PROTOCOL EFI_FORM_BROWSER2_PROTOCOL;
typedef struct {
UINTN LeftColumn;
UINTN RightColumn;
UINTN TopRow;
UINTN BottomRow;
} EFI_SCREEN_DESCRIPTOR;
typedef UINTN EFI_BROWSER_ACTION_REQUEST;
#define EFI_BROWSER_ACTION_REQUEST_NONE 0
#define EFI_BROWSER_ACTION_REQUEST_RESET 1
#define EFI_BROWSER_ACTION_REQUEST_SUBMIT 2
#define EFI_BROWSER_ACTION_REQUEST_EXIT 3
//
// The following types are currently defined:
//
typedef
EFI_STATUS
(EFIAPI *EFI_SEND_FORM2) (
IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
IN EFI_HII_HANDLE *Handles,
IN UINTN HandleCount,
IN EFI_GUID *FormSetGuid, OPTIONAL
IN UINT16 FormId, OPTIONAL
IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
)
/*++
Routine Description:
This is the routine which an external caller uses to direct the browser
where to obtain it's information.
Arguments:
This - A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance.
Handles - A pointer to an array of HII handles to display.
HandleCount - The number of handles in the array specified by Handle.
FormSetGuid - This field points to the EFI_GUID which must match the Guid field in the EFI_IFR_FORM_SET op-code for the specified
forms-based package. If FormSetGuid is NULL, then this function will display the first found forms package.
FormId - This field specifies which EFI_IFR_FORM to render as the first displayable page.
If this field has a value of 0x0000, then the forms browser will render the specified forms in their encoded order.
ScreenDimenions - This allows the browser to be called so that it occupies a portion of the physical screen instead of
dynamically determining the screen dimensions.
ActionRequest - Points to the action recommended by the form.
Returns:
EFI_SUCCESS - The function completed successfully.
EFI_INVALID_PARAMETER - One of the parameters has an invalid value.
EFI_NOT_FOUND - No valid forms could be found to display.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_BROWSER_CALLBACK2) (
IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
IN OUT UINTN *ResultsDataSize,
IN OUT EFI_STRING ResultsData,
IN BOOLEAN RetrieveData,
IN CONST EFI_GUID *VariableGuid, OPTIONAL
IN CONST CHAR16 *VariableName OPTIONAL
)
/*++
Routine Description:
This function is called by a callback handler to retrieve uncommitted state
data from the browser.
Arguments:
This - A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance.
ResultsDataSize - A pointer to the size of the buffer associated with ResultsData.
On input, the size in bytes of ResultsData.
On output, the size of data returned in ResultsData.
ResultsData - A string returned from an IFR browser or equivalent.
The results string will have no routing information in them.
RetrieveData - A BOOLEAN field which allows an agent to retrieve (if RetrieveData = TRUE)
data from the uncommitted browser state information or set
(if RetrieveData = FALSE) data in the uncommitted browser state information.
VariableGuid - An optional field to indicate the target variable GUID name to use.
VariableName - An optional field to indicate the target human-readable variable name.
Returns:
EFI_SUCCESS - The results have been distributed or are awaiting distribution.
EFI_BUFFER_TOO_SMALL - The ResultsDataSize specified was too small to contain the results data.
--*/
;
typedef struct _EFI_FORM_BROWSER2_PROTOCOL {
EFI_SEND_FORM2 SendForm;
EFI_BROWSER_CALLBACK2 BrowserCallback;
} EFI_FORM_BROWSER2_PROTOCOL;
extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
#endif

View File

@ -0,0 +1,27 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiConfigAccess.c
Abstract:
EFI_HII_CONFIG_ACCESS_PROTOCOL as defined in UEFI 2.1 spec.
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (HiiConfigAccess)
EFI_GUID gEfiHiiConfigAccessProtocolGuid = EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiHiiConfigAccessProtocolGuid, "HII Config Access Protocol", "HII Config Access 2.1 protocol");

View File

@ -0,0 +1,147 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiConfigAccess.h
Abstract:
EFI_HII_CONFIG_ACCESS_PROTOCOL as defined in UEFI 2.1 spec.
--*/
#ifndef _HII_CONFIG_ACCESS_H_
#define _HII_CONFIG_ACCESS_H_
#include EFI_PROTOCOL_DEFINITION (FormBrowser2)
#define EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID \
{ \
0x330d4706, 0xf2a0, 0x4e4f, 0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85 \
}
//
// Forward reference for pure ANSI compatability
//
EFI_FORWARD_DECLARATION (EFI_HII_CONFIG_ACCESS_PROTOCOL);
typedef UINTN EFI_BROWSER_ACTION;
#define EFI_BROWSER_ACTION_CHANGING 0
#define EFI_BROWSER_ACTION_CHANGED 1
typedef
EFI_STATUS
(EFIAPI *EFI_HII_ACCESS_EXTRACT_CONFIG) (
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN CONST EFI_STRING Request,
OUT EFI_STRING *Progress,
OUT EFI_STRING *Results
)
/*++
Routine Description:
This function allows a caller to extract the current configuration for one
or more named elements from the target driver.
Arguments:
This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Request - A null-terminated Unicode string in <ConfigRequest> format.
Progress - On return, points to a character in the Request string.
Points to the string's null terminator if request was successful.
Points to the most recent '&' before the first failing name/value
pair (or the beginning of the string if the failure is in the
first name/value pair) if the request was not successful.
Results - A null-terminated Unicode string in <ConfigAltResp> format which
has all values filled in for the names in the Request string.
String to be allocated by the called function.
Returns:
EFI_SUCCESS - The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES - Not enough memory to store the results.
EFI_INVALID_PARAMETER - Request is NULL, illegal syntax, or unknown name.
EFI_NOT_FOUND - Routing data doesn't match any storage in this driver.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_ACCESS_ROUTE_CONFIG) (
IN EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN CONST EFI_STRING Configuration,
OUT EFI_STRING *Progress
)
/*++
Routine Description:
This function processes the results of changes in configuration.
Arguments:
This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Configuration - A null-terminated Unicode string in <ConfigResp> format.
Progress - A pointer to a string filled in with the offset of the most
recent '&' before the first failing name/value pair (or the
beginning of the string if the failure is in the first
name/value pair) or the terminating NULL if all was successful.
Returns:
EFI_SUCCESS - The Results is processed successfully.
EFI_INVALID_PARAMETER - Configuration is NULL.
EFI_NOT_FOUND - Routing data doesn't match any storage in this driver.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_ACCESS_FORM_CALLBACK) (
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN EFI_BROWSER_ACTION Action,
IN EFI_QUESTION_ID QuestionId,
IN UINT8 Type,
IN EFI_IFR_TYPE_VALUE *Value,
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
)
/*++
Routine Description:
This function processes the results of changes in configuration.
Arguments:
This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Action - Specifies the type of action taken by the browser.
QuestionId - A unique value which is sent to the original exporting driver
so that it can identify the type of data to expect.
Type - The type of value for the question.
Value - A pointer to the data being sent to the original exporting driver.
ActionRequest - On return, points to the action requested by the callback function.
Returns:
EFI_SUCCESS - The callback successfully handled the action.
EFI_OUT_OF_RESOURCES - Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR - The variable could not be saved.
EFI_UNSUPPORTED - The specified Action is not supported by the callback.
--*/
;
typedef struct _EFI_HII_CONFIG_ACCESS_PROTOCOL {
EFI_HII_ACCESS_EXTRACT_CONFIG ExtractConfig;
EFI_HII_ACCESS_ROUTE_CONFIG RouteConfig;
EFI_HII_ACCESS_FORM_CALLBACK Callback;
} EFI_HII_CONFIG_ACCESS_PROTOCOL;
extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
#endif

View File

@ -0,0 +1,27 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiConfigRouting.c
Abstract:
EFI_HII_CONFIG_ROUTING_PROTOCOL as defined in UEFI 2.1 spec.
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (HiiConfigRouting)
EFI_GUID gEfiHiiConfigRoutingProtocolGuid = EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiHiiConfigRoutingProtocolGuid, "HII Config Routing Protocol", "HII Config Routing 2.1 protocol");

View File

@ -0,0 +1,314 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiConfigRouting.h
Abstract:
EFI_HII_CONFIG_ROUTING_PROTOCOL as defined in UEFI 2.1 spec.
--*/
#ifndef __EFI_HII_CONFIG_ROUTING_H__
#define __EFI_HII_CONFIG_ROUTING_H__
#include "EfiHii.h"
#define EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID \
{ \
0x587e72d7, 0xcc50, 0x4f79, 0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f \
}
//
// Forward reference for pure ANSI compatability
//
EFI_FORWARD_DECLARATION (EFI_HII_CONFIG_ROUTING_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_HII_EXTRACT_CONFIG) (
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
IN CONST EFI_STRING Request,
OUT EFI_STRING *Progress,
OUT EFI_STRING *Results
)
/*++
Routine Description:
This function allows a caller to extract the current configuration
for one or more named elements from one or more drivers.
Arguments:
This - A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
Request - A null-terminated Unicode string in <MultiConfigRequest> format.
Progress - On return, points to a character in the Request string. Points to the string's null
terminator if request was successful. Points to the most recent '&' before the first
failing name / value pair (or the beginning of the string if the failure is in the first
name / value pair) if the request was not successful.
Results - Null-terminated Unicode string in <MultiConfigAltResp> format which has all
values filled in for the names in the Request string. String to be allocated by the called
function.
Returns:
EFI_SUCCESS - The Results string is filled with the values
corresponding to all requested names.
EFI_OUT_OF_RESOURCES - Not enough memory to store the parts of the results
that must be stored awaiting possible future
protocols.
EFI_NOT_FOUND - Routing data doesn't match any known driver.
Progress set to the 'G' in "GUID" of the routing
header that doesn't match. Note: There is no
requirement that all routing data be validated before
any configuration extraction.
EFI_INVALID_PARAMETER - For example, passing in a NULL for the Request
parameter would result in this type of error. The
Progress parameter is set to NULL.
EFI_INVALID_PARAMETER - Illegal syntax. Progress set to most recent & before
the error or the beginning of the string.
EFI_INVALID_PARAMETER - Unknown name. Progress points to the & before
the name in question.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_EXPORT_CONFIG) (
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
OUT EFI_STRING *Results
)
/*++
Routine Description:
This function allows the caller to request the current configuration for the
entirety of the current HII database and returns the data in a null-terminated Unicode string.
Arguments:
This - A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
Results - Null-terminated Unicode string in <MultiConfigAltResp> format which has all
values filled in for the names in the Request string. String to be allocated by the called
function. De-allocation is up to the caller.
Returns:
EFI_SUCCESS - The Results string is filled with the values
corresponding to all requested names.
EFI_OUT_OF_RESOURCES - Not enough memory to store the parts of the results
that must be stored awaiting possible future
protocols.
EFI_INVALID_PARAMETER - For example, passing in a NULL for the Results
parameter would result in this type of error.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_ROUTE_CONFIG) (
IN EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
IN CONST EFI_STRING Configuration,
OUT EFI_STRING *Progress
)
/*++
Routine Description:
This function processes the results of processing forms and routes it to the
appropriate handlers or storage.
Arguments:
This - A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
Configuration - A null-terminated Unicode string in <MulltiConfigResp> format.
Progress - A pointer to a string filled in with the offset of the most recent "&" before the first
failing name / value pair (or the beginning of the string if the failure is in the first
name / value pair) or the terminating NULL if all was successful.
Returns:
EFI_SUCCESS - The results have been distributed or are awaiting
distribution.
EFI_OUT_OF_RESOURCES - Not enough memory to store the parts of the results
that must be stored awaiting possible future
protocols.
EFI_INVALID_PARAMETER - Passing in a NULL for the Configuration
parameter would result in this type of error.
EFI_NOT_FOUND - Target for the specified routing data was not found.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_BLOCK_TO_CONFIG) (
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
IN CONST EFI_STRING ConfigRequest,
IN CONST UINT8 *Block,
IN CONST UINTN BlockSize,
OUT EFI_STRING *Config,
OUT EFI_STRING *Progress
)
/*++
Routine Description:
This helper function is to be called by drivers to map configuration data stored
in byte array ("block") formats such as UEFI Variables into current configuration strings.
Arguments:
This - A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigRequest - A null-terminated Unicode string in <ConfigRequest> format.
Block - Array of bytes defining the block's configuration.
BlockSize - Length in bytes of Block.
Config - Filled-in configuration string. String allocated by the function.
Returned only if call is successful.
Progress - A pointer to a string filled in with the offset of the most recent "&" before the first
failing name / value pair (or the beginning of the string if the failure is in the first
name / value pair) or the terminating NULL if all was successful.
Returns:
EFI_SUCCESS - The request succeeded. Progress points to the null
terminator at the end of the ConfigRequest
string.
EFI_OUT_OF_RESOURCES - Not enough memory to allocate Config.
Progress points to the first character of
ConfigRequest.
EFI_INVALID_PARAMETER - Passing in a NULL for the ConfigRequest or
Block parameter would result in this type of
error. Progress points to the first character of
ConfigRequest.
EFI_NOT_FOUND - Target for the specified routing data was not found.
Progress points to the "G" in "GUID" of the
errant routing data.
EFI_DEVICE_ERROR - Block not large enough. Progress undefined.
EFI_INVALID_PARAMETER - Encountered non <BlockName> formatted string.
Block is left updated and Progress points at the "&"
preceding the first non-<BlockName>.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_CONFIG_TO_BLOCK) (
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
IN CONST EFI_STRING ConfigResp,
IN OUT UINT8 *Block,
IN OUT UINTN *BlockSize,
OUT EFI_STRING *Progress
)
/*++
Routine Description:
This helper function is to be called by drivers to map configuration strings
to configurations stored in byte array ("block") formats such as UEFI Variables.
Arguments:
This - A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigResp - A null-terminated Unicode string in <ConfigResp> format.
Block - A possibly null array of bytes representing the current block.
Only bytes referenced in the ConfigResp string in the block are modified.
If this parameter is null or if the *BlockSize parameter is (on input)
shorter than required by the Configuration string, only the BlockSize
parameter is updated and an appropriate status (see below) is returned.
BlockSize - The length of the Block in units of UINT8. On input, this is the size of the Block.
On output, if successful, contains the index of the last modified byte in the Block.
Progress - On return, points to an element of the ConfigResp string filled in with the offset of
the most recent "&" before the first failing name / value pair (or the beginning of the
string if the failure is in the first name / value pair) or the terminating NULL if all was
successful.
Returns:
EFI_SUCCESS - The request succeeded. Progress points to the null
terminator at the end of the ConfigResp
string.
EFI_OUT_OF_RESOURCES - Not enough memory to allocate Config.
Progress points to the first character of
ConfigResp.
EFI_INVALID_PARAMETER - Passing in a NULL for the ConfigResp or
Block parameter would result in this type of error.
Progress points to the first character of
ConfigResp.
EFI_NOT_FOUND - Target for the specified routing data was not found.
Progress points to the "G" in "GUID" of the
errant routing data.
EFI_INVALID_PARAMETER - Encountered non <BlockName> formatted name /
value pair. Block is left updated and
Progress points at the "&" preceding the first
non-<BlockName>.
--*/
;
typedef
EFI_STATUS
(EFIAPI * EFI_HII_GET_ALT_CFG) (
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
IN CONST EFI_STRING Configuration,
IN CONST EFI_GUID *Guid,
IN CONST EFI_STRING Name,
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN CONST UINT16 *AltCfgId,
OUT EFI_STRING *AltCfgResp
)
/*++
Routine Description:
This helper function is to be called by drivers to extract portions of
a larger configuration string.
Arguments:
This - A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
Configuration - A null-terminated Unicode string in <MultiConfigAltResp> format.
Guid - A pointer to the GUID value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If Guid is NULL, then all GUID
values will be searched for.
Name - A pointer to the NAME value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If Name is NULL, then all Name
values will be searched for.
DevicePath - A pointer to the PATH value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If DevicePath is NULL, then all
DevicePath values will be searched for.
AltCfgId - A pointer to the ALTCFG value to search for in the
routing portion of the ConfigResp string when retrieving
the requested data. If this parameter is NULL,
then the current setting will be retrieved.
AltCfgResp - A pointer to a buffer which will be allocated by the
function which contains the retrieved string as requested.
This buffer is only allocated if the call was successful.
Returns:
EFI_SUCCESS - The request succeeded. The requested data was extracted
and placed in the newly allocated AltCfgResp buffer.
EFI_OUT_OF_RESOURCES - Not enough memory to allocate AltCfgResp.
EFI_INVALID_PARAMETER - Any parameter is invalid.
EFI_NOT_FOUND - Target for the specified routing data was not found.
--*/
;
typedef struct _EFI_HII_CONFIG_ROUTING_PROTOCOL {
EFI_HII_EXTRACT_CONFIG ExtractConfig;
EFI_HII_EXPORT_CONFIG ExportConfig;
EFI_HII_ROUTE_CONFIG RouteConfig;
EFI_HII_BLOCK_TO_CONFIG BlockToConfig;
EFI_HII_CONFIG_TO_BLOCK ConfigToBlock;
EFI_HII_GET_ALT_CFG GetAltConfig;
} EFI_HII_CONFIG_ROUTING_PROTOCOL;
extern EFI_GUID gEfiHiiConfigRoutingProtocolGuid;
#endif

View File

@ -0,0 +1,29 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiDatabase.c
Abstract:
EFI_HII_DATABASE_PROTOCOL
Revision History
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (HiiDatabase)
EFI_GUID gEfiHiiDatabaseProtocolGuid = EFI_HII_DATABASE_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiHiiDatabaseProtocolGuid, "EFI HII DATABASE Protocol", "UEFI 2.1 HII DATABASE Protocol");

View File

@ -0,0 +1,450 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiDatabase.h
Abstract:
EFI_HII_DATABASE_PROTOCOL from UEFI 2.1 specification.
This protocol is a database manager for HII related data structures.
Revision History
--*/
#ifndef __EFI_HII_DATABASE_PROTOCOL_H__
#define __EFI_HII_DATABASE_PROTOCOL_H__
#include "EfiHii.h"
//
// Global ID for the Hii Database Protocol.
//
#define EFI_HII_DATABASE_PROTOCOL_GUID \
{ \
0xef9fc172, 0xa1b2, 0x4693, 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42 \
}
#define EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID \
{ \
0x14982a4f, 0xb0ed, 0x45b8, 0xa8, 0x11, 0x5a, 0x7a, 0x9b, 0xc2, 0x32, 0xdf \
}
EFI_FORWARD_DECLARATION (EFI_HII_DATABASE_PROTOCOL);
typedef UINTN EFI_HII_DATABASE_NOTIFY_TYPE;
#define EFI_HII_DATABASE_NOTIFY_NEW_PACK 0x00000001
#define EFI_HII_DATABASE_NOTIFY_REMOVE_PACK 0x00000002
#define EFI_HII_DATABASE_NOTIFY_EXPORT_PACK 0x00000004
#define EFI_HII_DATABASE_NOTIFY_ADD_PACK 0x00000008
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_NOTIFY) (
IN UINT8 PackageType,
IN CONST EFI_GUID *PackageGuid,
IN CONST EFI_HII_PACKAGE_HEADER *Package,
IN EFI_HII_HANDLE Handle,
IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType
)
/*++
Routine Description:
Functions which are registered to receive notification of database events have this prototype. The
actual event is encoded in NotifyType. The following table describes how PackageType,
PackageGuid, Handle, and Package are used for each of the notification types.
Arguments:
PackageType - Package type of the notification.
PackageGuid - If PackageType is EFI_HII_PACKAGE_TYPE_GUID, then this is the pointer to
the GUID which must match the Guid field of
EFI_HII_GUID_PACKAGE_GUID_HDR. Otherwise, it must be NULL.
Package - Points to the package referred to by the notification.
Handle - The handle of the package list which contains the specified package.
NotifyType - The type of change concerning the database.
Returns:
EFI status code.
--*/
;
//
// EFI_HII_DATABASE_PROTOCOL protocol prototypes
//
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_NEW_PACK) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList,
IN CONST EFI_HANDLE DriverHandle,
OUT EFI_HII_HANDLE *Handle
)
/*++
Routine Description:
This function adds the packages in the package list to the database and returns a handle. If there is a
EFI_DEVICE_PATH_PROTOCOL associated with the DriverHandle, then this function will
create a package of type EFI_PACKAGE_TYPE_DEVICE_PATH and add it to the package list.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageList - A pointer to an EFI_HII_PACKAGE_LIST_HEADER structure.
DriverHandle - Associate the package list with this EFI handle.
Handle - A pointer to the EFI_HII_HANDLE instance.
Returns:
EFI_SUCCESS - The package list associated with the Handle
was added to the HII database.
EFI_OUT_OF_RESOURCES - Unable to allocate necessary resources for the
new database contents.
EFI_INVALID_PARAMETER - PackageList is NULL or Handle is NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_REMOVE_PACK) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
IN EFI_HII_HANDLE Handle
)
/*++
Routine Description:
This function removes the package list that is associated with a handle Handle
from the HII database. Before removing the package, any registered functions
with the notification type REMOVE_PACK and the same package type will be called.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
Handle - The handle that was registered to the data that is requested
for removal.
Returns:
EFI_SUCCESS - The data associated with the Handle was removed from
the HII database.
EFI_NOT_FOUND - The specified PackageList could not be found in database.
EFI_INVALID_PARAMETER - The Handle was not valid.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_UPDATE_PACK) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
IN EFI_HII_HANDLE Handle,
IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList
)
/*++
Routine Description:
This function updates the existing package list (which has the specified Handle)
in the HII databases, using the new package list specified by PackageList.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
Handle - The handle that was registered to the data that is
requested to be updated.
PackageList - A pointer to an EFI_HII_PACKAGE_LIST_HEADER package.
Returns:
EFI_SUCCESS - The HII database was successfully updated.
EFI_OUT_OF_RESOURCES - Unable to allocate enough memory for the updated database.
EFI_INVALID_PARAMETER - Handle or PackageList was NULL.
EFI_NOT_FOUND - The Handle was not valid or could not be found in database.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_LIST_PACKS) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
IN UINT8 PackageType,
IN CONST EFI_GUID *PackageGuid,
IN OUT UINTN *HandleBufferLength,
OUT EFI_HII_HANDLE *Handle
)
/*++
Routine Description:
This function returns a list of the package handles of the specified type
that are currently active in the database. The pseudo-type
EFI_HII_PACKAGE_TYPE_ALL will cause all package handles to be listed.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageType - Specifies the package type of the packages to list or
EFI_HII_PACKAGE_TYPE_ALL for all packages to be listed.
PackageGuid - If PackageType is EFI_HII_PACKAGE_TYPE_GUID, then this
is the pointer to the GUID which must match the Guid
field of EFI_HII_GUID_PACKAGE_GUID_HDR. Otherwise,
it must be NULL.
HandleBufferLength - On input, a pointer to the length of the handle buffer.
On output, the length of the handle buffer that is
required for the handles found.
Handle - An array of EFI_HII_HANDLE instances returned.
Returns:
EFI_SUCCESS - The matching handles are outputed successfully.
EFI_BUFFER_TO_SMALL - The HandleBufferLength parameter indicates that
Handle is too small to support the number of handles.
HandleBufferLength is updated with a value that will
enable the data to fit.
EFI_NOT_FOUND - No matching handle could not be found in database.
EFI_INVALID_PARAMETER - Handle or HandleBufferLength was NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_EXPORT_PACKS) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
IN EFI_HII_HANDLE Handle,
IN OUT UINTN *BufferSize,
OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
)
/*++
Routine Description:
This function will export one or all package lists in the database to a buffer.
For each package list exported, this function will call functions registered
with EXPORT_PACK and then copy the package list to the buffer.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
Handle - An EFI_HII_HANDLE that corresponds to the desired package
list in the HII database to export or NULL to indicate
all package lists should be exported.
BufferSize - On input, a pointer to the length of the buffer.
On output, the length of the buffer that is required for
the exported data.
Buffer - A pointer to a buffer that will contain the results of
the export function.
Returns:
EFI_SUCCESS - Package exported.
EFI_BUFFER_TO_SMALL - The HandleBufferLength parameter indicates that Handle
is too small to support the number of handles.
HandleBufferLength is updated with a value that will
enable the data to fit.
EFI_NOT_FOUND - The specifiecd Handle could not be found in the current
database.
EFI_INVALID_PARAMETER - Handle or Buffer or BufferSize was NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_REGISTER_NOTIFY) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
IN UINT8 PackageType,
IN CONST EFI_GUID *PackageGuid,
IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
OUT EFI_HANDLE *NotifyHandle
)
/*++
Routine Description:
This function registers a function which will be called when specified actions related to packages of
the specified type occur in the HII database. By registering a function, other HII-related drivers are
notified when specific package types are added, removed or updated in the HII database.
Each driver or application which registers a notification should use
EFI_HII_DATABASE_PROTOCOL.UnregisterPackageNotify() before exiting.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageType - Specifies the package type of the packages to list or
EFI_HII_PACKAGE_TYPE_ALL for all packages to be listed.
PackageGuid - If PackageType is EFI_HII_PACKAGE_TYPE_GUID, then this is the pointer to
the GUID which must match the Guid field of
EFI_HII_GUID_PACKAGE_GUID_HDR. Otherwise, it must be NULL.
PackageNotifyFn - Points to the function to be called when the event specified by
NotificationType occurs.
NotifyType - Describes the types of notification which this function will be receiving.
NotifyHandle - Points to the unique handle assigned to the registered notification. Can be used in
EFI_HII_DATABASE_PROTOCOL.UnregisterPackageNotify() to stop notifications.
Returns:
EFI_SUCCESS - Notification registered successfully.
EFI_OUT_OF_RESOURCES - Unable to allocate necessary data structures
EFI_INVALID_PARAMETER - NotifyHandle is NULL.
EFI_INVALID_PARAMETER - PackageGuid is not NULL when PackageType is not
EFI_HII_PACKAGE_TYPE_GUID.
EFI_INVALID_PARAMETER - PackageGuid is NULL when PackageType is EFI_HII_PACKAGE_TYPE_GUID.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_UNREGISTER_NOTIFY) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
IN EFI_HANDLE NotificationHandle
)
/*++
Routine Description:
Removes the specified HII database package-related notification.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
NotifyHandle - The handle of the notification function being unregistered.
Returns:
EFI_SUCCESS - Notification is unregistered successfully.
EFI_INVALID_PARAMETER - The Handle is invalid.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_FIND_KEYBOARD_LAYOUTS) (
IN EFI_HII_DATABASE_PROTOCOL *This,
IN OUT UINT16 *KeyGuidBufferLength,
OUT EFI_GUID *KeyGuidBuffer
)
/*++
Routine Description:
This routine retrieves an array of GUID values for each keyboard layout that
was previously registered in the system.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
KeyGuidBufferLength - On input, a pointer to the length of the keyboard GUID
buffer. On output, the length of the handle buffer
that is required for the handles found.
KeyGuidBuffer - An array of keyboard layout GUID instances returned.
Returns:
EFI_SUCCESS - KeyGuidBuffer was updated successfully.
EFI_BUFFER_TOO_SMALL - The KeyGuidBufferLength parameter indicates
that KeyGuidBuffer is too small to support the
number of GUIDs. KeyGuidBufferLength is
updated with a value that will enable the data to fit.
EFI_INVALID_PARAMETER - The KeyGuidBuffer or KeyGuidBufferLength was NULL.
EFI_NOT_FOUND - There was no keyboard layout.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_GET_KEYBOARD_LAYOUT) (
IN EFI_HII_DATABASE_PROTOCOL *This,
IN EFI_GUID *KeyGuid,
IN OUT UINT16 *KeyboardLayoutLength,
OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout
)
/*++
Routine Description:
This routine retrieves the requested keyboard layout. The layout is a physical description of the keys
on a keyboard and the character(s) that are associated with a particular set of key strokes.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
KeyGuid - A pointer to the unique ID associated with a given keyboard layout. If KeyGuid is
NULL then the current layout will be retrieved.
KeyboardLayoutLength - On input, a pointer to the length of the KeyboardLayout buffer.
On output, the length of the data placed into KeyboardLayout.
KeyboardLayout - A pointer to a buffer containing the retrieved keyboard layout.
Returns:
EFI_SUCCESS - The keyboard layout was retrieved successfully.
EFI_NOT_FOUND - The requested keyboard layout was not found.
EFI_INVALID_PARAMETER - The KeyboardLayout or KeyboardLayoutLength was NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_SET_KEYBOARD_LAYOUT) (
IN EFI_HII_DATABASE_PROTOCOL *This,
IN EFI_GUID *KeyGuid
)
/*++
Routine Description:
This routine sets the default keyboard layout to the one referenced by KeyGuid. When this routine
is called, an event will be signaled of the EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID
group type. This is so that agents which are sensitive to the current keyboard layout being changed
can be notified of this change.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
KeyGuid - A pointer to the unique ID associated with a given keyboard layout.
Returns:
EFI_SUCCESS - The current keyboard layout was successfully set.
EFI_NOT_FOUND - The referenced keyboard layout was not found, so action was taken.
EFI_INVALID_PARAMETER - The KeyGuid was NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_GET_PACK_HANDLE) (
IN EFI_HII_DATABASE_PROTOCOL *This,
IN EFI_HII_HANDLE PackageListHandle,
OUT EFI_HANDLE *DriverHandle
)
/*++
Routine Description:
Return the EFI handle associated with a package list.
Arguments:
This - A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageListHandle - An EFI_HII_HANDLE that corresponds to the desired package list in the
HIIdatabase.
DriverHandle - On return, contains the EFI_HANDLE which was registered with the package list in
NewPackageList().
Returns:
EFI_SUCCESS - The DriverHandle was returned successfully.
EFI_INVALID_PARAMETER - The PackageListHandle was not valid or DriverHandle was NULL.
--*/
;
typedef struct _EFI_HII_DATABASE_PROTOCOL {
EFI_HII_DATABASE_NEW_PACK NewPackageList;
EFI_HII_DATABASE_REMOVE_PACK RemovePackageList;
EFI_HII_DATABASE_UPDATE_PACK UpdatePackageList;
EFI_HII_DATABASE_LIST_PACKS ListPackageLists;
EFI_HII_DATABASE_EXPORT_PACKS ExportPackageLists;
EFI_HII_DATABASE_REGISTER_NOTIFY RegisterPackageNotify;
EFI_HII_DATABASE_UNREGISTER_NOTIFY UnregisterPackageNotify;
EFI_HII_FIND_KEYBOARD_LAYOUTS FindKeyboardLayouts;
EFI_HII_GET_KEYBOARD_LAYOUT GetKeyboardLayout;
EFI_HII_SET_KEYBOARD_LAYOUT SetKeyboardLayout;
EFI_HII_DATABASE_GET_PACK_HANDLE GetPackageListHandle;
} EFI_HII_DATABASE_PROTOCOL;
extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
#endif

View File

@ -0,0 +1,29 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiFont.c
Abstract:
EFI_HII_FONT_PROTOCOL
Revision History
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (HiiFont)
EFI_GUID gEfiHiiFontProtocolGuid = EFI_HII_FONT_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiHiiFontProtocolGuid, "EFI HII FONT Protocol", "UEFI 2.1 HII FONT Protocol");

View File

@ -0,0 +1,283 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiFont.h
Abstract:
EFI_HII_FONT_PROTOCOL from UEFI 2.1 specification.
This protocol provides interfaces to retrieve font information.
Revision History
--*/
#ifndef __EFI_HII_FONT_PROTOCOL_H__
#define __EFI_HII_FONT_PROTOCOL_H__
#include EFI_PROTOCOL_DEFINITION (GraphicsOutput)
#include EFI_PROTOCOL_DEFINITION (HiiImage)
//
// Global ID for the Hii Font Protocol.
//
#define EFI_HII_FONT_PROTOCOL_GUID \
{ \
0xe9ca4775, 0x8657, 0x47fc, 0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x8, 0x43, 0x24 \
}
EFI_FORWARD_DECLARATION (EFI_HII_FONT_PROTOCOL);
typedef UINT32 EFI_HII_OUT_FLAGS;
typedef UINT32 EFI_FONT_INFO_MASK;
typedef VOID* EFI_FONT_HANDLE;
typedef struct _EFI_HII_ROW_INFO {
UINTN StartIndex;
UINTN EndIndex;
UINTN LineHeight;
UINTN LineWidth;
UINTN BaselineOffset;
} EFI_HII_ROW_INFO;
typedef struct {
UINT32 FontStyle;
UINT16 FontSize; // character cell size in pixels
CHAR16 FontName[1];
} EFI_FONT_INFO;
typedef struct _EFI_FONT_DISPLAY_INFO {
EFI_GRAPHICS_OUTPUT_BLT_PIXEL ForegroundColor;
EFI_GRAPHICS_OUTPUT_BLT_PIXEL BackgroundColor;
EFI_FONT_INFO_MASK FontInfoMask;
EFI_FONT_INFO FontInfo;
} EFI_FONT_DISPLAY_INFO;
#define EFI_HII_OUT_FLAG_CLIP 0x00000001
#define EFI_HII_OUT_FLAG_WRAP 0x00000002
#define EFI_HII_OUT_FLAG_CLEAN_Y 0x00000004
#define EFI_HII_OUT_FLAG_CLEAN_X 0x00000008
#define EFI_HII_OUT_FLAG_TRANSPARENT 0x00000010
#define EFI_HII_IGNORE_IF_NO_GLYPH 0x00000020
#define EFI_HII_IGNORE_LINE_BREAK 0x00000040
#define EFI_HII_DIRECT_TO_SCREEN 0x00000080
#define EFI_FONT_INFO_SYS_FONT 0x00000001
#define EFI_FONT_INFO_SYS_SIZE 0x00000002
#define EFI_FONT_INFO_SYS_STYLE 0x00000004
#define EFI_FONT_INFO_SYS_FORE_COLOR 0x00000010
#define EFI_FONT_INFO_SYS_BACK_COLOR 0x00000020
#define EFI_FONT_INFO_RESIZE 0x00001000
#define EFI_FONT_INFO_RESTYLE 0x00002000
#define EFI_FONT_INFO_ANY_FONT 0x00010000
#define EFI_FONT_INFO_ANY_SIZE 0x00020000
#define EFI_FONT_INFO_ANY_STYLE 0x00040000
typedef
EFI_STATUS
(EFIAPI *EFI_HII_STRING_TO_IMAGE) (
IN CONST EFI_HII_FONT_PROTOCOL *This,
IN EFI_HII_OUT_FLAGS Flags,
IN CONST EFI_STRING String,
IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
IN OUT EFI_IMAGE_OUTPUT **Blt,
IN UINTN BltX,
IN UINTN BltY,
OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
OUT UINTN *RowInfoArraySize OPTIONAL,
OUT UINTN *ColumnInfoArray OPTIONAL
)
/*++
Routine Description:
Renders a string to a bitmap or to the display.
Arguments:
This - A pointer to the EFI_HII_FONT_PROTOCOL instance.
Flags - Describes how the string is to be drawn.
String - Points to the null-terminated string to be displayed.
StringInfo - Points to the string output information, including the color and font.
If NULL, then the string will be output in the default system font and color.
Blt - If this points to a non-NULL on entry, this points to the image, which is Width pixels
wide and Height pixels high. The string will be drawn onto this image and
EFI_HII_OUT_FLAG_CLIP is implied. If this points to a NULL on entry, then a
buffer will be allocated to hold the generated image and the pointer updated on exit. It
is the caller¡¯s responsibility to free this buffer.
BltX,BLTY - Specifies the offset from the left and top edge of the image of the first character cell in
the image.
RowInfoArray - If this is non-NULL on entry, then on exit, this will point to an allocated buffer
containing row information and RowInfoArraySize will be updated to contain the
number of elements. This array describes the characters which were at least partially
drawn and the heights of the rows. It is the caller¡¯s responsibility to free this buffer.
RowInfoArraySize - If this is non-NULL on entry, then on exit it contains the number of elements in
RowInfoArray.
ColumnInfoArray - If this is non-NULL, then on return it will be filled with the horizontal offset for each
character in the string on the row where it is displayed. Non-printing characters will
have the offset ~0. The caller is responsible to allocate a buffer large enough so that
there is one entry for each character in the string, not including the null-terminator. It
is possible when character display is normalized that some character cells overlap.
Returns:
EFI_SUCCESS - The string was successfully rendered.
EFI_OUT_OF_RESOURCES - Unable to allocate an output buffer for RowInfoArray or Blt.
EFI_INVALID_PARAMETER - The String was NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_STRING_ID_TO_IMAGE) (
IN CONST EFI_HII_FONT_PROTOCOL *This,
IN EFI_HII_OUT_FLAGS Flags,
IN EFI_HII_HANDLE PackageList,
IN EFI_STRING_ID StringId,
IN CONST CHAR8* Language,
IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
IN OUT EFI_IMAGE_OUTPUT **Blt,
IN UINTN BltX,
IN UINTN BltY,
OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
OUT UINTN *RowInfoArraySize OPTIONAL,
OUT UINTN *ColumnInfoArray OPTIONAL
)
/*++
Routine Description:
Render a string to a bitmap or the screen containing the contents of the specified string.
Arguments:
This - A pointer to the EFI_HII_FONT_PROTOCOL instance.
Flags - Describes how the string is to be drawn.
PackageList - The package list in the HII database to search for the specified string.
StringId - The string¡¯s id, which is unique within PackageList.
Language - Points to the language for the retrieved string. If NULL, then the current system
language is used.
StringInfo - Points to the string output information, including the color and font.
If NULL, then the string will be output in the default system font and color.
Blt - If this points to a non-NULL on entry, this points to the image, which is Width pixels
wide and Height pixels high. The string will be drawn onto this image and
EFI_HII_OUT_FLAG_CLIP is implied. If this points to a NULL on entry, then a
buffer will be allocated to hold the generated image and the pointer updated on exit. It
is the caller¡¯s responsibility to free this buffer.
BltX,BLTY - Specifies the offset from the left and top edge of the image of the first character cell in
the image.
RowInfoArray - If this is non-NULL on entry, then on exit, this will point to an allocated buffer
containing row information and RowInfoArraySize will be updated to contain the
number of elements. This array describes the characters which were at least partially
drawn and the heights of the rows. It is the caller¡¯s responsibility to free this buffer.
RowInfoArraySize - If this is non-NULL on entry, then on exit it contains the number of elements in
RowInfoArray.
ColumnInfoArray - If this is non-NULL, then on return it will be filled with the horizontal offset for each
character in the string on the row where it is displayed. Non-printing characters will
have the offset ~0. The caller is responsible to allocate a buffer large enough so that
there is one entry for each character in the string, not including the null-terminator. It
is possible when character display is normalized that some character cells overlap.
Returns:
EFI_SUCCESS - The string was successfully rendered.
EFI_OUT_OF_RESOURCES - Unable to allocate an output buffer for RowInfoArray or Blt.
EFI_INVALID_PARAMETER - The String was NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_GET_GLYPH) (
IN CONST EFI_HII_FONT_PROTOCOL *This,
IN CHAR16 Char,
IN CONST EFI_FONT_DISPLAY_INFO *StringInfo,
OUT EFI_IMAGE_OUTPUT **Blt,
OUT UINTN *Baseline OPTIONAL
)
/*++
Routine Description:
Convert the glyph for a single character into a bitmap.
Arguments:
This - A pointer to the EFI_HII_FONT_PROTOCOL instance.
Char - Character to retrieve.
StringInfo - Points to the string font and color information or NULL if the string should use the
default system font and color.
Blt - Thus must point to a NULL on entry. A buffer will be allocated to hold the output and
the pointer updated on exit. It is the caller¡¯s responsibility to free this buffer.
Baseline - Number of pixels from the bottom of the bitmap to the baseline.
Returns:
EFI_SUCCESS - Glyph bitmap created.
EFI_OUT_OF_RESOURCES - Unable to allocate the output buffer Blt.
EFI_WARN_UNKNOWN_GLYPH - The glyph was unknown and was
replaced with the glyph for Unicode
character 0xFFFD.
EFI_INVALID_PARAMETER - Blt is NULL or *Blt is not NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_GET_FONT_INFO) (
IN CONST EFI_HII_FONT_PROTOCOL *This,
IN OUT EFI_FONT_HANDLE *FontHandle,
IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn,
OUT EFI_FONT_DISPLAY_INFO **StringInfoOut,
IN CONST EFI_STRING String OPTIONAL
)
/*++
Routine Description:
This function iterates through fonts which match the specified font, using
the specified criteria. If String is non-NULL, then all of the characters in
the string must exist in order for a candidate font to be returned.
Arguments:
This - A pointer to the EFI_HII_FONT_PROTOCOL instance.
FontHandle - On entry, points to the font handle returned by a
previous call to GetFontInfo() or NULL to start with the
first font. On return, points to the returned font handle or
points to NULL if there are no more matching fonts.
StringInfoIn - Upon entry, points to the font to return information about.
StringInfoOut - Upon return, contains the matching font¡¯s information.
If NULL, then no information is returned.
It's caller's responsibility to free this buffer.
String - Points to the string which will be tested to determine
if all characters are available. If NULL, then any font
is acceptable.
Returns:
EFI_SUCCESS - Matching font returned successfully.
EFI_NOT_FOUND - No matching font was found.
EFI_INVALID_PARAMETER - StringInfoIn is NULL.
EFI_OUT_OF_RESOURCES - There were insufficient resources to complete the request.
--*/
;
//
// Interface structure for the EFI_HII_FONT_PROTOCOL
//
typedef struct _EFI_HII_FONT_PROTOCOL {
EFI_HII_STRING_TO_IMAGE StringToImage;
EFI_HII_STRING_ID_TO_IMAGE StringIdToImage;
EFI_HII_GET_GLYPH GetGlyph;
EFI_HII_GET_FONT_INFO GetFontInfo;
} EFI_HII_FONT_PROTOCOL;
extern EFI_GUID gEfiHiiFontProtocolGuid;
#endif

View File

@ -0,0 +1,29 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiImage.c
Abstract:
EFI_HII_IMAGE_PROTOCOL
Revision History
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (HiiImage)
EFI_GUID gEfiHiiImageProtocolGuid = EFI_HII_IMAGE_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiHiiImageProtocolGuid, "EFI HII IMAGE Protocol", "UEFI 2.1 HII IMAGE Protocol");

View File

@ -0,0 +1,254 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiImage.h
Abstract:
EFI_HII_IMAGE_PROTOCOL from UEFI 2.1 specification.
This protocol provides access to images in the images database.
Revision History
--*/
#ifndef __EFI_HII_IMAGE_PROTOCOL_H__
#define __EFI_HII_IMAGE_PROTOCOL_H__
#include "EfiHii.h"
#include EFI_PROTOCOL_DEFINITION (GraphicsOutput)
//
// Global ID for the Hii Image Protocol.
//
#define EFI_HII_IMAGE_PROTOCOL_GUID \
{ \
0x31a6406a, 0x6bdf, 0x4e46, 0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x9, 0x20 \
}
EFI_FORWARD_DECLARATION (EFI_HII_IMAGE_PROTOCOL);
typedef UINT32 EFI_HII_DRAW_FLAGS;
typedef struct _EFI_IMAGE_INPUT {
UINT32 Flags;
UINT16 Width;
UINT16 Height;
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Bitmap[1];
} EFI_IMAGE_INPUT;
#define EFI_IMAGE_TRANSPARENT 0x00000001
typedef struct _EFI_IMAGE_OUTPUT {
UINT16 Width;
UINT16 Height;
union {
EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Bitmap;
EFI_GRAPHICS_OUTPUT_PROTOCOL *Screen;
} Image;
} EFI_IMAGE_OUTPUT;
#define EFI_HII_DRAW_FLAG_CLIP 0x00000001
#define EFI_HII_DRAW_FLAG_TRANSPARENT 0x00000030
#define EFI_HII_DRAW_FLAG_DEFAULT 0x00000000
#define EFI_HII_DRAW_FLAG_FORCE_TRANS 0x00000010
#define EFI_HII_DRAW_FLAG_FORCE_OPAQUE 0x00000020
#define EFI_HII_DIRECT_TO_SCREEN 0x00000080
typedef
EFI_STATUS
(EFIAPI *EFI_HII_NEW_IMAGE) (
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
IN EFI_HII_HANDLE PackageList,
OUT EFI_IMAGE_ID *ImageId,
IN CONST EFI_IMAGE_INPUT *Image
)
/*++
Routine Description:
This function adds the image Image to the group of images owned by PackageList, and returns
a new image identifier (ImageId).
Arguments:
This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
PackageList - Handle of the package list where this image will be added.
ImageId - On return, contains the new image id, which is unique within PackageList.
Image - Points to the image.
Returns:
EFI_SUCCESS - The new image was added successfully.
EFI_NOT_FOUND - The specified PackageList could not be found in database.
EFI_OUT_OF_RESOURCES - Could not add the image due to lack of resources.
EFI_INVALID_PARAMETER - Image is NULL or ImageId is NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_GET_IMAGE) (
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
OUT EFI_IMAGE_INPUT *Image,
OUT UINTN *ImageSize
)
/*++
Routine Description:
This function retrieves the image specified by ImageId which is associated with
the specified PackageList and copies it into the buffer specified by Image.
Arguments:
This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
PackageList - Handle of the package list where this image will be searched.
ImageId - The image¡¯s id,, which is unique within PackageList.
Image - Points to the image.
ImageSize - On entry, points to the size of the buffer pointed to by Image, in bytes. On return,
points to the length of the image, in bytes.
Returns:
EFI_SUCCESS - The new image was returned successfully.
EFI_NOT_FOUND - The image specified by ImageId is not available.
EFI_BUFFER_TOO_SMALL - The buffer specified by ImageSize is too small to hold the image.
EFI_INVALID_PARAMETER - The Image or ImageSize was NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_SET_IMAGE) (
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
IN CONST EFI_IMAGE_INPUT *Image
)
/*++
Routine Description:
This function updates the image specified by ImageId in the specified PackageListHandle to
the image specified by Image.
Arguments:
This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
PackageList - The package list containing the images.
ImageId - The image¡¯s id,, which is unique within PackageList.
Image - Points to the image.
Returns:
EFI_SUCCESS - The new image was updated successfully.
EFI_NOT_FOUND - The image specified by ImageId is not in the database.
EFI_INVALID_PARAMETER - The Image was NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DRAW_IMAGE) (
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
IN EFI_HII_DRAW_FLAGS Flags,
IN CONST EFI_IMAGE_INPUT *Image,
IN OUT EFI_IMAGE_OUTPUT **Blt,
IN UINTN BltX,
IN UINTN BltY
)
/*++
Routine Description:
This function renders an image to a bitmap or the screen using the specified
color and options. It draws the image on an existing bitmap, allocates a new
bitmap or uses the screen. The images can be clipped.
Arguments:
This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
Flags - Describes how the image is to be drawn.
Image - Points to the image to be displayed.
Blt - If this points to a non-NULL on entry, this points to the
image, which is Width pixels wide and Height pixels high.
The image will be drawn onto this image and
EFI_HII_DRAW_FLAG_CLIP is implied. If this points to a
NULL on entry, then a buffer will be allocated to hold
the generated image and the pointer updated on exit. It
is the caller¡¯s responsibility to free this buffer.
BltX, BltY - Specifies the offset from the left and top edge of the
output image of the first pixel in the image.
Returns:
EFI_SUCCESS - The image was successfully drawn.
EFI_OUT_OF_RESOURCES - Unable to allocate an output buffer for Blt.
EFI_INVALID_PARAMETER - The Image or Blt was NULL.
EFI_INVALID_PARAMETER - Any combination of Flags is invalid.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DRAW_IMAGE_ID) (
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
IN EFI_HII_DRAW_FLAGS Flags,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
IN OUT EFI_IMAGE_OUTPUT **Blt,
IN UINTN BltX,
IN UINTN BltY
)
/*++
Routine Description:
This function renders an image to a bitmap or the screen using the specified
color and options. It draws the image on an existing bitmap, allocates a new
bitmap or uses the screen. The images can be clipped.
Arguments:
This - A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
Flags - Describes how the image is to be drawn.
PackageList - The package list in the HII database to search for the
specified image.
ImageId - The image's id, which is unique within PackageList.
Blt - If this points to a non-NULL on entry, this points to the
image, which is Width pixels wide and Height pixels high.
The image will be drawn onto this image and
EFI_HII_DRAW_FLAG_CLIP is implied. If this points to a
NULL on entry, then a buffer will be allocated to hold
the generated image and the pointer updated on exit. It
is the caller¡¯s responsibility to free this buffer.
BltX, BltY - Specifies the offset from the left and top edge of the
output image of the first pixel in the image.
Returns:
EFI_SUCCESS - The image was successfully drawn.
EFI_OUT_OF_RESOURCES - Unable to allocate an output buffer for Blt.
EFI_INVALID_PARAMETER - The Image was NULL.
--*/
;
//
// Interface structure for the EFI_HII_IMAGE_PROTOCOL
//
typedef struct _EFI_HII_IMAGE_PROTOCOL {
EFI_HII_NEW_IMAGE NewImage;
EFI_HII_GET_IMAGE GetImage;
EFI_HII_SET_IMAGE SetImage;
EFI_HII_DRAW_IMAGE DrawImage;
EFI_HII_DRAW_IMAGE_ID DrawImageId;
} EFI_HII_IMAGE_PROTOCOL;
extern EFI_GUID gEfiHiiImageProtocolGuid;
#endif

View File

@ -0,0 +1,29 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiString.c
Abstract:
EFI_HII_STRING_PROTOCOL
Revision History
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (HiiString)
EFI_GUID gEfiHiiStringProtocolGuid = EFI_HII_STRING_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiHiiStringProtocolGuid, "EFI HII STRING Protocol", "UEFI 2.1 HII STRING Protocol");

View File

@ -0,0 +1,240 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
HiiString.h
Abstract:
EFI_HII_STRING_PROTOCOL from UEFI 2.1 specification.
This protocol provides interfaces to manipulate string data.
Revision History
--*/
#ifndef __EFI_HII_STRING_PROTOCOL_H__
#define __EFI_HII_STRING_PROTOCOL_H__
#include EFI_PROTOCOL_DEFINITION (HiiFont)
//
// Global ID for the Hii String Protocol.
//
#define EFI_HII_STRING_PROTOCOL_GUID \
{ \
0xfd96974, 0x23aa, 0x4cdc, 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a \
}
EFI_FORWARD_DECLARATION (EFI_HII_STRING_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_HII_NEW_STRING) (
IN CONST EFI_HII_STRING_PROTOCOL *This,
IN EFI_HII_HANDLE PackageList,
OUT EFI_STRING_ID *StringId,
IN CONST CHAR8 *Language,
IN CONST CHAR16 *LanguageName, OPTIONAL
IN CONST EFI_STRING String,
IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
)
/*++
Routine Description:
This function adds the string String to the group of strings owned by PackageList, with the
specified font information StringFontInfo and returns a new string id.
Arguments:
This - A pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageList - Handle of the package list where this string will be added.
StringId - On return, contains the new strings id, which is unique within PackageList.
Language - Points to the language for the new string.
LanguageName - Points to the printable language name to associate with the passed in
Language field.If LanguageName is not NULL and the string package header's LanguageName
associated with a given Language is not zero, the LanguageName being passed
in will be ignored.
String - Points to the new null-terminated string.
StringFontInfo - Points to the new string¡¯s font information or NULL if the string should have the
default system font, size and style.
Returns:
EFI_SUCCESS - The new string was added successfully.
EFI_NOT_FOUND - The specified PackageList could not be found in database.
EFI_OUT_OF_RESOURCES - Could not add the string due to lack of resources.
EFI_INVALID_PARAMETER - String is NULL or StringId is NULL or Language is NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_GET_STRING) (
IN CONST EFI_HII_STRING_PROTOCOL *This,
IN CONST CHAR8 *Language,
IN EFI_HII_HANDLE PackageList,
IN EFI_STRING_ID StringId,
OUT EFI_STRING String,
IN OUT UINTN *StringSize,
OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
)
/*++
Routine Description:
This function retrieves the string specified by StringId which is associated
with the specified PackageList in the language Language and copies it into
the buffer specified by String.
Arguments:
This - A pointer to the EFI_HII_STRING_PROTOCOL instance.
Language - Points to the language for the retrieved string.
PackageList - The package list in the HII database to search for the
specified string.
StringId - The string's id, which is unique within PackageList.
String - Points to the new null-terminated string.
StringSize - On entry, points to the size of the buffer pointed to by
String, in bytes. On return,
points to the length of the string, in bytes.
StringFontInfo - If not NULL, points to the string¡¯s font information.
It's caller's responsibility to free this buffer.
Returns:
EFI_SUCCESS - The string was returned successfully.
EFI_NOT_FOUND - The string specified by StringId is not available.
EFI_BUFFER_TOO_SMALL - The buffer specified by StringSize is too small to
hold the string.
EFI_INVALID_PARAMETER - The String or Language or StringSize was NULL.
EFI_OUT_OF_RESOURCES - There were insufficient resources to complete the
request.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_SET_STRING) (
IN CONST EFI_HII_STRING_PROTOCOL *This,
IN EFI_HII_HANDLE PackageList,
IN EFI_STRING_ID StringId,
IN CONST CHAR8 *Language,
IN CONST EFI_STRING String,
IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
)
/*++
Routine Description:
This function updates the string specified by StringId in the specified PackageList to the text
specified by String and, optionally, the font information specified by StringFontInfo.
Arguments:
This - A pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageList - The package list containing the strings.
StringId - The string¡¯s id, which is unique within PackageList.
Language - Points to the language for the updated string.
String - Points to the new null-terminated string.
StringFontInfo - Points to the string¡¯s font information or NULL if the string font information is not
changed.
Returns:
EFI_SUCCESS - The string was updated successfully.
EFI_NOT_FOUND - The string specified by StringId is not in the database.
EFI_INVALID_PARAMETER - The String or Language was NULL.
EFI_OUT_OF_RESOURCES - The system is out of resources to accomplish the task.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_GET_LANGUAGES) (
IN CONST EFI_HII_STRING_PROTOCOL *This,
IN EFI_HII_HANDLE PackageList,
IN OUT CHAR8 *Languages,
IN OUT UINTN *LanguagesSize
)
/*++
Routine Description:
This function returns the list of supported languages, in the format specified
in Appendix M of UEFI 2.1 spec.
Arguments:
This - A pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageList - The package list to examine.
Languages - Points to the buffer to hold the returned string.
LanguagesSize - On entry, points to the size of the buffer pointed to by
Languages, in bytes. On
return, points to the length of Languages, in bytes.
Returns:
EFI_SUCCESS - The languages were returned successfully.
EFI_INVALID_PARAMETER - The Languages or LanguagesSize was NULL.
EFI_BUFFER_TOO_SMALL - The LanguagesSize is too small to hold the list of
supported languages. LanguageSize is updated to
contain the required size.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_GET_2ND_LANGUAGES) (
IN CONST EFI_HII_STRING_PROTOCOL *This,
IN EFI_HII_HANDLE PackageList,
IN CONST CHAR8 *FirstLanguage,
IN OUT CHAR8 *SecondLanguages,
IN OUT UINTN *SecondLanguagesSize
)
/*++
Routine Description:
Each string package has associated with it a single primary language and zero
or more secondary languages. This routine returns the secondary languages
associated with a package list.
Arguments:
This - A pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageList - The package list to examine.
FirstLanguage - Points to the primary language.
SecondaryLanguages - Points to the buffer to hold the returned list of
secondary languages for the specified FirstLanguage.
If there are no secondary languages, the function
returns successfully, but this is set to NULL.
SecondaryLanguageSize - On entry, points to the size of the buffer pointed to
by SecondLanguages, in bytes. On return, points to
the length of SecondLanguages in bytes.
Returns:
EFI_SUCCESS - Secondary languages were correctly returned.
EFI_INVALID_PARAMETER - FirstLanguage or SecondLanguages or SecondLanguagesSize was NULL.
EFI_BUFFER_TOO_SMALL - The buffer specified by SecondLanguagesSize is
too small to hold the returned information.
SecondLanguageSize is updated to hold the size of
the buffer required.
--*/
;
//
// Interface structure for the EFI_HII_STRING_PROTOCOL
//
typedef struct _EFI_HII_STRING_PROTOCOL {
EFI_HII_NEW_STRING NewString;
EFI_HII_GET_STRING GetString;
EFI_HII_SET_STRING SetString;
EFI_HII_GET_LANGUAGES GetLanguages;
EFI_HII_GET_2ND_LANGUAGES GetSecondaryLanguages;
} EFI_HII_STRING_PROTOCOL;
extern EFI_GUID gEfiHiiStringProtocolGuid;
#endif

View File

@ -22,19 +22,18 @@ Abstract:
#include EFI_PROTOCOL_DEFINITION (Ip4)
#define EFI_IP4_CONFIG_PROTOCOL_GUID \
{0x25c98279, 0x3d9c, 0x43f2, 0xa7, 0x0e, 0xe1, 0xea, 0x4e, 0x0d, 0xed, 0x1b}
{ 0x3b95aa31, 0x3793, 0x434b, 0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e }
EFI_FORWARD_DECLARATION (EFI_IP4_CONFIG_PROTOCOL);
#define IP4_CONFIG_VARIABLE_ATTRIBUTES (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS )
#define IP4_CONFIG_VARIABLE_ATTRIBUTES (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)
typedef struct {
EFI_IPv4_ADDRESS StationAddress;
EFI_IPv4_ADDRESS SubnetMask;
UINT32 RouteTableSize;
EFI_IP4_ROUTE_TABLE RouteTable[1];
EFI_IP4_ROUTE_TABLE *RouteTable;
} EFI_IP4_IPCONFIG_DATA;

View File

@ -26,10 +26,10 @@ Abstract:
#include EFI_PROTOCOL_DEFINITION (ServiceBinding)
#define EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL_GUID \
{0xf36ff770, 0xa7e1, 0x42cf, 0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c}
{ 0xf36ff770, 0xa7e1, 0x42cf, 0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c }
#define EFI_MANAGED_NETWORK_PROTOCOL_GUID \
{ 0x3b95aa31, 0x3793, 0x434b, 0x86, 0x67, 0xc8, 0x7, 0x8, 0x92, 0xe0, 0x5e }
{ 0x7ab33a91, 0xace5, 0x4326, 0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16 }
EFI_FORWARD_DECLARATION (EFI_MANAGED_NETWORK_PROTOCOL);

View File

@ -0,0 +1,31 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
SimpleTextInputEx.c
Abstract:
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL from the UEFI 2.1 specification.
This protocol defines an extension to the EFI_SIMPLE_TEXT_INPUT_PROTOCOL
which exposes much more state and modifier information from the input device,
also allows one to register a notification for a particular keystroke.
--*/
#include "EfiSpec.h"
#include EFI_PROTOCOL_DEFINITION (SimpleTextInputEx)
EFI_GUID gEfiSimpleTextInputExProtocolGuid = EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiSimpleTextInputExProtocolGuid, "Simple Text Input Ex Protocol", "UEFI 2.1 Simple Text Input Ex Protocol");

View File

@ -0,0 +1,255 @@
/*++
Copyright (c) 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
SimpleTextInputEx.h
Abstract:
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL from the UEFI 2.1 specification.
This protocol defines an extension to the EFI_SIMPLE_TEXT_INPUT_PROTOCOL
which exposes much more state and modifier information from the input device,
also allows one to register a notification for a particular keystroke.
--*/
#ifndef __SIMPLE_TEXT_INPUT_EX_H__
#define __SIMPLE_TEXT_INPUT_EX_H__
#include EFI_PROTOCOL_DEFINITION (SimpleTextIn)
#define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \
{ \
0xdd9e7534, 0x7762, 0x4698, 0x8c, 0x14, 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa\
}
EFI_FORWARD_DECLARATION (EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL);
//
// Data structures
//
typedef UINT8 EFI_KEY_TOGGLE_STATE;
//
// Any Shift or Toggle State that is valid should have
// high order bit set.
//
typedef struct EFI_KEY_STATE {
UINT32 KeyShiftState;
EFI_KEY_TOGGLE_STATE KeyToggleState;
} EFI_KEY_STATE;
typedef struct {
EFI_INPUT_KEY Key;
EFI_KEY_STATE KeyState;
} EFI_KEY_DATA;
//
// Shift state
//
#define EFI_SHIFT_STATE_VALID 0x80000000
#define EFI_RIGHT_SHIFT_PRESSED 0x00000001
#define EFI_LEFT_SHIFT_PRESSED 0x00000002
#define EFI_RIGHT_CONTROL_PRESSED 0x00000004
#define EFI_LEFT_CONTROL_PRESSED 0x00000008
#define EFI_RIGHT_ALT_PRESSED 0x00000010
#define EFI_LEFT_ALT_PRESSED 0x00000020
#define EFI_RIGHT_LOGO_PRESSED 0x00000040
#define EFI_LEFT_LOGO_PRESSED 0x00000080
#define EFI_MENU_KEY_PRESSED 0x00000100
#define EFI_SYS_REQ_PRESSED 0x00000200
//
// Toggle state
//
#define EFI_TOGGLE_STATE_VALID 0x80
#define EFI_SCROLL_LOCK_ACTIVE 0x01
#define EFI_NUM_LOCK_ACTIVE 0x02
#define EFI_CAPS_LOCK_ACTIVE 0x04
//
// EFI Scan codes
//
#define SCAN_F13 0x0068
#define SCAN_F14 0x0069
#define SCAN_F15 0x006A
#define SCAN_F16 0x006B
#define SCAN_F17 0x006C
#define SCAN_F18 0x006D
#define SCAN_F19 0x006E
#define SCAN_F20 0x006F
#define SCAN_F21 0x0070
#define SCAN_F22 0x0071
#define SCAN_F23 0x0072
#define SCAN_F24 0x0073
#define SCAN_MUTE 0x007F
#define SCAN_VOLUME_UP 0x0080
#define SCAN_VOLUME_DOWN 0x0081
#define SCAN_BRIGHTNESS_UP 0x0100
#define SCAN_BRIGHTNESS_DOWN 0x0101
#define SCAN_SUSPEND 0x0102
#define SCAN_HIBERNATE 0x0103
#define SCAN_TOGGLE_DISPLAY 0x0104
#define SCAN_RECOVERY 0x0105
#define SCAN_EJECT 0x0106
//
// EFI Key Notfication Function
//
typedef
EFI_STATUS
(EFIAPI *EFI_KEY_NOTIFY_FUNCTION) (
IN EFI_KEY_DATA *KeyData
)
;
typedef
EFI_STATUS
(EFIAPI *EFI_INPUT_RESET_EX) (
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
)
/*++
Routine Description:
Reset the input device and optionaly run diagnostics
Arguments:
This - Protocol instance pointer.
ExtendedVerification - Driver may perform diagnostics on reset.
Returns:
EFI_SUCCESS - The device was reset.
EFI_DEVICE_ERROR - The device is not functioning properly and could
not be reset.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_INPUT_READ_KEY_EX) (
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
OUT EFI_KEY_DATA *KeyData
)
/*++
Routine Description:
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existance of a keystroke via WaitForEvent () call.
Arguments:
This - Protocol instance pointer.
KeyData - A pointer to a buffer that is filled in with the keystroke
state data for the key that was pressed.
Returns:
EFI_SUCCESS - The keystroke information was returned.
EFI_NOT_READY - There was no keystroke data availiable.
EFI_DEVICE_ERROR - The keystroke information was not returned due to
hardware errors.
EFI_INVALID_PARAMETER - KeyData is NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_SET_STATE) (
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
IN EFI_KEY_TOGGLE_STATE *KeyToggleState
)
/*++
Routine Description:
Set certain state for the input device.
Arguments:
This - Protocol instance pointer.
KeyToggleState - A pointer to the EFI_KEY_TOGGLE_STATE to set the
state for the input device.
Returns:
EFI_SUCCESS - The device state was set successfully.
EFI_DEVICE_ERROR - The device is not functioning correctly and could
not have the setting adjusted.
EFI_UNSUPPORTED - The device does not have the ability to set its state.
EFI_INVALID_PARAMETER - KeyToggleState is NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY) (
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
IN EFI_KEY_DATA *KeyData,
IN EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,
OUT EFI_HANDLE *NotifyHandle
)
/*++
Routine Description:
Register a notification function for a particular keystroke for the input device.
Arguments:
This - Protocol instance pointer.
KeyData - A pointer to a buffer that is filled in with the keystroke
information data for the key that was pressed.
KeyNotificationFunction - Points to the function to be called when the key
sequence is typed specified by KeyData.
NotifyHandle - Points to the unique handle assigned to the registered notification.
Returns:
EFI_SUCCESS - The notification function was registered successfully.
EFI_OUT_OF_RESOURCES - Unable to allocate resources for necesssary data structures.
EFI_INVALID_PARAMETER - KeyData or NotifyHandle is NULL.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY) (
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
IN EFI_HANDLE NotificationHandle
)
/*++
Routine Description:
Remove a registered notification function from a particular keystroke.
Arguments:
This - Protocol instance pointer.
NotificationHandle - The handle of the notification function being unregistered.
Returns:
EFI_SUCCESS - The notification function was unregistered successfully.
EFI_INVALID_PARAMETER - The NotificationHandle is invalid.
EFI_NOT_FOUND - Can not find the matching entry in database.
--*/
;
typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL {
EFI_INPUT_RESET_EX Reset;
EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx;
EFI_EVENT WaitForKeyEx;
EFI_SET_STATE SetState;
EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify;
EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify;
} EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL;
extern EFI_GUID gEfiSimpleTextInputExProtocolGuid;
#endif

View File

@ -23,5 +23,7 @@ Abstract:
#include EFI_PROTOCOL_DEFINITION (UnicodeCollation)
EFI_GUID gEfiUnicodeCollationProtocolGuid = EFI_UNICODE_COLLATION_PROTOCOL_GUID;
EFI_GUID gEfiUnicodeCollation2ProtocolGuid = EFI_UNICODE_COLLATION2_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiUnicodeCollationProtocolGuid, "Unicode Collation Protocol", "EFI 1.0 Unicode Collation Protocol");
EFI_GUID_STRING(&gEfiUnicodeCollation2ProtocolGuid, "Unicode Collation Protocol", "UEFI 2.10 Unicode Collation Protocol");

View File

@ -27,6 +27,11 @@ Abstract:
0x1d85cd7f, 0xf43d, 0x11d2, 0x9a, 0xc, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d \
}
#define EFI_UNICODE_COLLATION2_PROTOCOL_GUID \
{ \
0xa4c751fc, 0x23ae, 0x4c3e, 0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49 \
}
EFI_FORWARD_DECLARATION (EFI_UNICODE_COLLATION_PROTOCOL);
//
@ -207,5 +212,6 @@ typedef struct _EFI_UNICODE_COLLATION_PROTOCOL {
} EFI_UNICODE_COLLATION_PROTOCOL;
extern EFI_GUID gEfiUnicodeCollationProtocolGuid;
extern EFI_GUID gEfiUnicodeCollation2ProtocolGuid;
#endif

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004, Intel Corporation
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -29,8 +29,11 @@ Abstract:
#ifndef _DATAHUB_RECORDS_H_
#define _DATAHUB_RECORDS_H_
#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
#include "TianoHii.h"
#else
#include "EfiInternalFormRepresentation.h"
#endif
#include "DataHubSubClass.h"
#include "DataHubSubClassProcessor.h"
#include "DataHubSubClassCache.h"

View File

@ -73,7 +73,8 @@ typedef enum {
EfiCacheAssociativity4Way = 5,
EfiCacheAssociativityFully = 6,
EfiCacheAssociativity8Way = 7,
EfiCacheAssociativity16Way = 8
EfiCacheAssociativity16Way = 8,
EfiCacheAssociativity24Way = 9
} EFI_CACHE_ASSOCIATIVITY_DATA;
typedef struct {

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004 - 2006, Intel Corporation
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -188,6 +188,7 @@ typedef struct {
EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;
UINT16 MemorySpeed;
EFI_MEMORY_STATE MemoryState;
UINT8 MemoryAttributes;
} EFI_MEMORY_ARRAY_LINK;

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004 - 2006, Intel Corporation
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -43,6 +43,11 @@ typedef struct {
UINT8 LastPciBus;
} EFI_MISC_LAST_PCI_BUS;
typedef struct {
UINT8 FunctionNum :3;
UINT8 DeviceNum :5;
} EFI_MISC_DEV_FUNC_NUM;
//
//////////////////////////////////////////////////////////////////////////////
//
@ -225,6 +230,10 @@ typedef enum {
EfiMiscChassisTypeRackMountChassis = 0x17,
EfiMiscChassisTypeSealedCasePc = 0x18,
EfiMiscChassisMultiSystemChassis = 0x19,
EfiMiscChassisCompactPCI = 0x1A,
EfiMiscChassisAdvancedTCA = 0x1B,
EfiMiscChassisBlade = 0x1C,
EfiMiscChassisBladeEnclosure = 0x1D
} EFI_MISC_CHASSIS_TYPE;
typedef struct {
@ -323,6 +332,7 @@ typedef enum {
EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,
EfiPortConnectorTypeBNC = 0x20,
EfiPortConnectorType1394 = 0x21,
EfiPortConnectorTypeSasSata = 0x22,
EfiPortConnectorTypePC98 = 0xA0,
EfiPortConnectorTypePC98Hireso = 0xA1,
EfiPortConnectorTypePCH98 = 0xA2,
@ -364,6 +374,8 @@ typedef enum {
EfiPortTypeAudioPort = 0x1D,
EfiPortTypeModemPort = 0x1E,
EfiPortTypeNetworkPort = 0x1F,
EfiPortTypeSata = 0x20,
EfiPortTypeSas = 0x21,
EfiPortType8251Compatible = 0xA0,
EfiPortType8251FifoCompatible = 0xA1,
EfiPortTypeOther = 0xFF,
@ -412,6 +424,11 @@ typedef enum {
EfiSlotTypePC98LocalBus = 0xA3,
EfiSlotTypePC98Card = 0xA4,
EfiSlotTypePciExpress = 0xA5,
EfiSlotTypePciExpressX1 = 0xA6,
EfiSlotTypePciExpressX2 = 0xA7,
EfiSlotTypePciExpressX4 = 0xA8,
EfiSlotTypePciExpressX8 = 0xA9,
EfiSlotTypePciExpressX16 = 0xAA
} EFI_MISC_SLOT_TYPE;
typedef enum {
@ -469,6 +486,9 @@ typedef struct {
UINT16 SlotId;
EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;
EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;
UINT16 SegmentGroupNum;
UINT8 BusNum;
EFI_MISC_DEV_FUNC_NUM DevFuncNum;
} EFI_MISC_SYSTEM_SLOT_DESIGNATION;
//
@ -486,6 +506,9 @@ typedef enum {
EfiOnBoardDeviceTypeEthernet = 5,
EfiOnBoardDeviceTypeTokenRing = 6,
EfiOnBoardDeviceTypeSound = 7,
EfiOnBoardDeviceTypePataController = 8,
EfiOnBoardDeviceTypeSataController = 9,
EfiOnBoardDeviceTypeSasController = 10
} EFI_MISC_ONBOARD_DEVICE_TYPE;
typedef struct {
@ -1007,6 +1030,48 @@ typedef struct {
#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E
//
//////////////////////////////////////////////////////////////////////////////
//
//Additional Information Record - SMBIOS Type 40
//
typedef struct {
UINT8 EntryLength;
UINT8 ReferencedSmbiosType;
EFI_INTER_LINK_DATA ReferencedLink;
UINT8 ReferencedOffset;
STRING_REF EntryString;
EFI_PHYSICAL_ADDRESS ValueAddress;
} EFI_MISC_ADDITIONAL_INFORMATION_ENTRY;
typedef struct {
UINT8 NumberOfAdditionalInformationEntries;
EFI_PHYSICAL_ADDRESS AdditionalInfoEntriesAddr;
} EFI_MISC_ADDITIONAL_INFORMATION;
#define EFI_MISC_ADDITIONAL_INFORMATION_RECORD_NUMBER 0x00000022
//
//////////////////////////////////////////////////////////////////////////////
//
//Onboard Devices Extended Infomation Record - SMBIOS Type 41
//
typedef struct {
UINT8 TypeOfDevice:7;
UINT8 DeviceStatus:1;
} EFI_MISC_DEVICE_TYPE;
typedef struct {
STRING_REF ReferenceDesignation;
EFI_MISC_DEVICE_TYPE DeviceType;
UINT8 DeviceTypeInstance;
UINT16 SegmentGroupNum;
UINT8 BusNum;
EFI_MISC_DEV_FUNC_NUM DevFuncNum;
} EFI_MISC_ONBOARD_DEVICES_EXTENDED_INFORMATION;
#define EFI_MISC_ONBOARD_DEVICES_EXTENDED_INFORMATION_RECORD_NUMBER 0x00000023
//
//////////////////////////////////////////////////////////////////////////////
//
@ -1113,7 +1178,9 @@ typedef union {
EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;
EFI_MISC_SYSTEM_POWER_SUPPLY MiscPowerSupplyInfo;
EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION MiscSmbiosStructEncapsulation;
EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD MiscManagementDeviceThreshold;
EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD MiscManagementDeviceThreshold;
EFI_MISC_ADDITIONAL_INFORMATION MiscAdditionalInformation;
EFI_MISC_ONBOARD_DEVICES_EXTENDED_INFORMATION MiscOnBoardDevicesExtendedInformation;
} EFI_MISC_SUBCLASS_RECORDS;
//

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004 - 2006, Intel Corporation
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -190,10 +190,16 @@ typedef enum {
EfiProcessorFamilyHobbit = 0x70,
EfiProcessorFamilyCrusoeTM5000 = 0x78,
EfiProcessorFamilyCrusoeTM3000 = 0x79,
EfiProcessorFamilyEfficeonTM8000 = 0x7A,
EfiProcessorFamilyWeitek = 0x80,
EfiProcessorFamilyItanium = 0x82,
EfiProcessorFamilyAmdAthlon64 = 0x83,
EfiProcessorFamilyAmdOpteron = 0x84,
EfiProcessorFamilyAmdSempron = 0x85,
EfiProcessorFamilyAmdTurion64Mobile = 0x86,
EfiProcessorFamilyDualCoreAmdOpteron = 0x87,
EfiProcessorFamilyAmdAthlon64X2DualCore = 0x88,
EfiProcessorFamilyAmdTurion64X2Mobile = 0x89,
EfiProcessorFamilyPARISC = 0x90,
EfiProcessorFamilyPaRisc8500 = 0x91,
EfiProcessorFamilyPaRisc8000 = 0x92,
@ -215,13 +221,35 @@ typedef enum {
EfiProcessorFamilyIntelCeleronD = 0xBA,
EfiProcessorFamilyIntelPentiumD = 0xBB,
EfiProcessorFamilyIntelPentiumEx = 0xBC,
EfiProcessorFamilyIntelCoreBrand = 0xBD,
EfiProcessorFamilyReserved = 0xBE,
EfiProcessorFamilyIntelCore2 = 0xBF,
EfiProcessorFamilyIBM390 = 0xC8,
EfiProcessorFamilyG4 = 0xC9,
EfiProcessorFamilyG5 = 0xCA,
EfiProcessorFamilyG6 = 0xCB,
EfiProcessorFamilyzArchitectur = 0xCC,
EfiProcessorFamilyViaC7M = 0xD2,
EfiProcessorFamilyViaC7D = 0xD3,
EfiProcessorFamilyViaC7 = 0xD4,
EfiProcessorFamilyViaEden = 0xD5,
EfiProcessorFamilyi860 = 0xFA,
EfiProcessorFamilyi960 = 0xFB
EfiProcessorFamilyi960 = 0xFB,
EfiProcessorFamilyIndicatorFamily2 = 0xFE
} EFI_PROCESSOR_FAMILY_DATA;
typedef enum {
EfiProcessorFamilySh3 = 0x104,
EfiProcessorFamilySh4 = 0x105,
EfiProcessorFamilyArm = 0x118,
EfiProcessorFamilyStrongArm = 0x119,
EfiProcessorFamily6x86 = 0x12C,
EfiProcessorFamilyMediaGx = 0x12D,
EfiProcessorFamilyMii = 0x12E,
EfiProcessorFamilyWinChip = 0x140,
EfiProcessorFamilyDsp = 0x15E,
EfiProcessorFamilyVideo = 0x1F4
} EFI_PROCESSOR_FAMILY2_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;
@ -282,7 +310,10 @@ typedef enum {
EfiProcessorSocket939 = 0x12,
EfiProcessorSocketmPGA604 = 0x13,
EfiProcessorSocketLGA771 = 0x14,
EfiProcessorSocketLGA775 = 0x15
EfiProcessorSocketLGA775 = 0x15,
EfiProcessorSocketS1 = 0x16,
EfiProcessorSocketAm2 = 0x17,
EfiProcessorSocketF = 0x18
} EFI_PROCESSOR_SOCKET_TYPE_DATA;
typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;
@ -297,8 +328,19 @@ typedef enum {
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;
typedef UINT8 EFI_PROCESSOR_CORE_COUNT_DATA;
typedef UINT8 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA;
typedef UINT8 EFI_PROCESSOR_THREAD_COUNT_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;
typedef struct {
UINT16 Reserved :1;
UINT16 Unknown :1;
UINT16 Capable64Bit :1;
UINT16 Reserved2 :13;
} EFI_PROCESSOR_CHARACTERISTICS_DATA;
typedef enum {
ProcessorCoreFrequencyRecordType = 1,
ProcessorFsbFrequencyRecordType = 2,
@ -323,7 +365,12 @@ typedef enum {
ProcessorPackageNumberRecordType = 21,
ProcessorCoreFrequencyListRecordType = 22,
ProcessorFsbFrequencyListRecordType = 23,
ProcessorHealthStatusRecordType = 24
ProcessorHealthStatusRecordType = 24,
ProcessorCoreCountRecordType = 25,
ProcessorEnabledCoreCountRecordType = 26,
ProcessorThreadCountRecordType = 27,
ProcessorCharacteristicsRecordType = 28,
ProcessorFamily2RecordType = 29
} EFI_CPU_VARIABLE_RECORD_TYPE;
typedef union {
@ -350,6 +397,11 @@ typedef union {
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;
EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;
EFI_PROCESSOR_CORE_COUNT_DATA ProcessorCoreCount;
EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA ProcessorEnabledCoreCount;
EFI_PROCESSOR_THREAD_COUNT_DATA ProcessorThreadCount;
EFI_PROCESSOR_CHARACTERISTICS_DATA ProcessorCharacteristics;
EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2;
} EFI_CPU_VARIABLE_RECORD;
typedef struct {

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004 - 2006, Intel Corporation
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -25,7 +25,11 @@ Abstract:
#include "EfiStatusCode.h"
#include EFI_PROTOCOL_DEFINITION (DebugSupport)
#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
#include EFI_PROTOCOL_DEFINITION (HiiDatabase)
#else
#include EFI_PROTOCOL_DEFINITION (Hii)
#endif
//
// The size of string
//

View File

@ -40,10 +40,14 @@ typedef const UINT16 EFI_BOOT_SCRIPT_OPCODE;
#define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06
#define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07
#define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08
#define EFI_BOOT_SCRIPT_INFORMATION_OPCODE 0x0A
#define EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE 0x0B
#define EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE 0x0C
//
// Extensions to boot script definitions
//
#define EFI_BOOT_SCRIPT_MEM_POLL_OPCODE 0x09
#define EFI_BOOT_SCRIPT_INFORMATION_OPCODE 0x0A
#define EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE 0x0B
#define EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE 0x0C
#define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA
#define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF
@ -173,6 +177,17 @@ typedef struct {
EFI_PHYSICAL_ADDRESS EntryPoint;
} EFI_BOOT_SCRIPT_DISPATCH;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
UINT64 BitMask;
UINT64 BitValue;
UINT64 Duration;
UINT64 LoopTimes;
} EFI_BOOT_SCRIPT_MEM_POLL;
typedef struct {
UINT16 OpCode;
UINT8 Length;
@ -199,6 +214,7 @@ typedef union {
EFI_BOOT_SCRIPT_SMBUS_EXECUTE *SmbusExecute;
EFI_BOOT_SCRIPT_STALL *Stall;
EFI_BOOT_SCRIPT_DISPATCH *Dispatch;
EFI_BOOT_SCRIPT_MEM_POLL *MemPoll;
EFI_BOOT_SCRIPT_INFORMATION *Information;
EFI_BOOT_SCRIPT_TERMINATE *Terminate;
EFI_BOOT_SCRIPT_COMMON_HEADER *CommonHeader;

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004, Intel Corporation
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -44,15 +44,13 @@ EFI_FORWARD_DECLARATION (EFI_ACPI_S3_SAVE_PROTOCOL);
//
typedef
EFI_STATUS
EFI_BOOTSERVICE
(EFIAPI *EFI_ACPI_S3_SAVE) (
IN EFI_ACPI_S3_SAVE_PROTOCOL * This,
IN VOID * LegacyMemoryAddress
);
typedef
EFI_STATUS
EFI_BOOTSERVICE
EFI_STATUS
(EFIAPI *EFI_ACPI_GET_LEGACY_MEMORY_SIZE) (
IN EFI_ACPI_S3_SAVE_PROTOCOL * This,
OUT UINTN * Size

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 1999 - 2005, Intel Corporation
Copyright (c) 1999 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -82,7 +82,6 @@ extern EFI_GUID gEfiAcpiSupportGuid;
//
typedef
EFI_STATUS
EFI_BOOTSERVICE
(EFIAPI *EFI_ACPI_GET_ACPI_TABLE) (
IN EFI_ACPI_SUPPORT_PROTOCOL * This,
IN INTN Index,
@ -96,7 +95,6 @@ EFI_BOOTSERVICE
//
typedef
EFI_STATUS
EFI_BOOTSERVICE
(EFIAPI *EFI_ACPI_SET_ACPI_TABLE) (
IN EFI_ACPI_SUPPORT_PROTOCOL * This,
IN VOID *Table OPTIONAL,
@ -110,7 +108,6 @@ EFI_BOOTSERVICE
//
typedef
EFI_STATUS
EFI_BOOTSERVICE
(EFIAPI *EFI_ACPI_PUBLISH_TABLES) (
IN EFI_ACPI_SUPPORT_PROTOCOL * This,
IN EFI_ACPI_TABLE_VERSION Version

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 1999 - 2006, Intel Corporation
Copyright (c) 1999 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -45,7 +45,6 @@ EFI_FORWARD_DECLARATION (EFI_BOOT_SCRIPT_SAVE_PROTOCOL);
//
typedef
EFI_STATUS
EFI_BOOTSERVICE
(EFIAPI *EFI_BOOT_SCRIPT_WRITE) (
IN EFI_BOOT_SCRIPT_SAVE_PROTOCOL * This,
IN UINT16 TableName,
@ -55,7 +54,6 @@ EFI_BOOTSERVICE
typedef
EFI_STATUS
EFI_BOOTSERVICE
(EFIAPI *EFI_BOOT_SCRIPT_CLOSE_TABLE) (
IN EFI_BOOT_SCRIPT_SAVE_PROTOCOL * This,
IN UINT16 TableName,

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004 - 2006, Intel Corporation
Copyright (c) 2004 - 2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -208,6 +208,19 @@ typedef struct {
UINT8 LastPciBus;
} EFI_COMPATIBILITY16_TABLE;
typedef enum {
Compatibility16InitializeYourself = 0x0000,
Compatibility16UpdateBbs = 0x0001,
Compatibility16PrepareToBoot = 0x0002,
Compatibility16Boot = 0x0003,
Compatibility16RetrieveLastBootDevice = 0x0004,
Compatibility16DispatchOprom = 0x0005,
Compatibility16GetTableAddress = 0x0006,
Compatibility16SetKeyboardLeds = 0x0007,
Compatibility16InstallPciHandler = 0x0008,
} EFI_COMPATIBILITY_FUNCTIONS;
//
// define maximum number of HDD system supports
//