mirror of https://github.com/acidanthera/audk.git
Global variables have been moved backward ahead of functions.
Only a few cases were left due to its module structure. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6816 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
4058e906c1
commit
aa79b0b379
|
@ -16,135 +16,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "Ehci.h"
|
#include "Ehci.h"
|
||||||
|
|
||||||
//
|
|
||||||
// EFI Component Name Functions
|
|
||||||
//
|
|
||||||
/**
|
|
||||||
Retrieves a Unicode string that is the user readable name of the driver.
|
|
||||||
|
|
||||||
This function retrieves the user readable name of a driver in the form of a
|
|
||||||
Unicode string. If the driver specified by This has a user readable name in
|
|
||||||
the language specified by Language, then a pointer to the driver name is
|
|
||||||
returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
|
|
||||||
by This does not support the language specified by Language,
|
|
||||||
then EFI_UNSUPPORTED is returned.
|
|
||||||
|
|
||||||
@param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
|
|
||||||
EFI_COMPONENT_NAME_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param Language[in] A pointer to a Null-terminated ASCII string
|
|
||||||
array indicating the language. This is the
|
|
||||||
language of the driver name that the caller is
|
|
||||||
requesting, and it must match one of the
|
|
||||||
languages specified in SupportedLanguages. The
|
|
||||||
number of languages supported by a driver is up
|
|
||||||
to the driver writer. Language is specified
|
|
||||||
in RFC 3066 or ISO 639-2 language code format.
|
|
||||||
|
|
||||||
@param DriverName[out] A pointer to the Unicode string to return.
|
|
||||||
This Unicode string is the name of the
|
|
||||||
driver specified by This in the language
|
|
||||||
specified by Language.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The Unicode string for the Driver specified by
|
|
||||||
This and the language specified by Language was
|
|
||||||
returned in DriverName.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER Language is NULL.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER DriverName is NULL.
|
|
||||||
|
|
||||||
@retval EFI_UNSUPPORTED The driver specified by This does not support
|
|
||||||
the language specified by Language.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
EhciComponentNameGetDriverName (
|
|
||||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
|
||||||
IN CHAR8 *Language,
|
|
||||||
OUT CHAR16 **DriverName
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Retrieves a Unicode string that is the user readable name of the controller
|
|
||||||
that is being managed by a driver.
|
|
||||||
|
|
||||||
This function retrieves the user readable name of the controller specified by
|
|
||||||
ControllerHandle and ChildHandle in the form of a Unicode string. If the
|
|
||||||
driver specified by This has a user readable name in the language specified by
|
|
||||||
Language, then a pointer to the controller name is returned in ControllerName,
|
|
||||||
and EFI_SUCCESS is returned. If the driver specified by This is not currently
|
|
||||||
managing the controller specified by ControllerHandle and ChildHandle,
|
|
||||||
then EFI_UNSUPPORTED is returned. If the driver specified by This does not
|
|
||||||
support the language specified by Language, then EFI_UNSUPPORTED is returned.
|
|
||||||
|
|
||||||
@param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
|
|
||||||
EFI_COMPONENT_NAME_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param ControllerHandle[in] The handle of a controller that the driver
|
|
||||||
specified by This is managing. This handle
|
|
||||||
specifies the controller whose name is to be
|
|
||||||
returned.
|
|
||||||
|
|
||||||
@param ChildHandle[in] The handle of the child controller to retrieve
|
|
||||||
the name of. This is an optional parameter that
|
|
||||||
may be NULL. It will be NULL for device
|
|
||||||
drivers. It will also be NULL for a bus drivers
|
|
||||||
that wish to retrieve the name of the bus
|
|
||||||
controller. It will not be NULL for a bus
|
|
||||||
driver that wishes to retrieve the name of a
|
|
||||||
child controller.
|
|
||||||
|
|
||||||
@param Language[in] A pointer to a Null-terminated ASCII string
|
|
||||||
array indicating the language. This is the
|
|
||||||
language of the driver name that the caller is
|
|
||||||
requesting, and it must match one of the
|
|
||||||
languages specified in SupportedLanguages. The
|
|
||||||
number of languages supported by a driver is up
|
|
||||||
to the driver writer. Language is specified in
|
|
||||||
RFC 3066 or ISO 639-2 language code format.
|
|
||||||
|
|
||||||
@param ControllerName[out] A pointer to the Unicode string to return.
|
|
||||||
This Unicode string is the name of the
|
|
||||||
controller specified by ControllerHandle and
|
|
||||||
ChildHandle in the language specified by
|
|
||||||
Language from the point of view of the driver
|
|
||||||
specified by This.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The Unicode string for the user readable name in
|
|
||||||
the language specified by Language for the
|
|
||||||
driver specified by This was returned in
|
|
||||||
DriverName.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid
|
|
||||||
EFI_HANDLE.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER Language is NULL.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER ControllerName is NULL.
|
|
||||||
|
|
||||||
@retval EFI_UNSUPPORTED The driver specified by This is not currently
|
|
||||||
managing the controller specified by
|
|
||||||
ControllerHandle and ChildHandle.
|
|
||||||
|
|
||||||
@retval EFI_UNSUPPORTED The driver specified by This does not support
|
|
||||||
the language specified by Language.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
EhciComponentNameGetControllerName (
|
|
||||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
|
||||||
IN EFI_HANDLE ControllerHandle,
|
|
||||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
|
||||||
IN CHAR8 *Language,
|
|
||||||
OUT CHAR16 **ControllerName
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// EFI Component Name Protocol
|
// EFI Component Name Protocol
|
||||||
|
@ -170,6 +41,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mEhciDriverNameTable[] =
|
||||||
{ NULL , NULL }
|
{ NULL , NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Retrieves a Unicode string that is the user readable name of the driver.
|
Retrieves a Unicode string that is the user readable name of the driver.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
/** @file
|
||||||
|
|
||||||
|
This file contains the delarations for componet name routines.
|
||||||
|
|
||||||
|
Copyright (c) 2008, 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.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef _COMPONENT_NAME_H_
|
||||||
|
#define _COMPONENT_NAME_H_
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves a Unicode string that is the user readable name of the driver.
|
||||||
|
|
||||||
|
This function retrieves the user readable name of a driver in the form of a
|
||||||
|
Unicode string. If the driver specified by This has a user readable name in
|
||||||
|
the language specified by Language, then a pointer to the driver name is
|
||||||
|
returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
|
||||||
|
by This does not support the language specified by Language,
|
||||||
|
then EFI_UNSUPPORTED is returned.
|
||||||
|
|
||||||
|
@param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
|
||||||
|
EFI_COMPONENT_NAME_PROTOCOL instance.
|
||||||
|
|
||||||
|
@param Language[in] A pointer to a Null-terminated ASCII string
|
||||||
|
array indicating the language. This is the
|
||||||
|
language of the driver name that the caller is
|
||||||
|
requesting, and it must match one of the
|
||||||
|
languages specified in SupportedLanguages. The
|
||||||
|
number of languages supported by a driver is up
|
||||||
|
to the driver writer. Language is specified
|
||||||
|
in RFC 3066 or ISO 639-2 language code format.
|
||||||
|
|
||||||
|
@param DriverName[out] A pointer to the Unicode string to return.
|
||||||
|
This Unicode string is the name of the
|
||||||
|
driver specified by This in the language
|
||||||
|
specified by Language.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The Unicode string for the Driver specified by
|
||||||
|
This and the language specified by Language was
|
||||||
|
returned in DriverName.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER Language is NULL.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER DriverName is NULL.
|
||||||
|
|
||||||
|
@retval EFI_UNSUPPORTED The driver specified by This does not support
|
||||||
|
the language specified by Language.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EhciComponentNameGetDriverName (
|
||||||
|
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||||
|
IN CHAR8 *Language,
|
||||||
|
OUT CHAR16 **DriverName
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves a Unicode string that is the user readable name of the controller
|
||||||
|
that is being managed by a driver.
|
||||||
|
|
||||||
|
This function retrieves the user readable name of the controller specified by
|
||||||
|
ControllerHandle and ChildHandle in the form of a Unicode string. If the
|
||||||
|
driver specified by This has a user readable name in the language specified by
|
||||||
|
Language, then a pointer to the controller name is returned in ControllerName,
|
||||||
|
and EFI_SUCCESS is returned. If the driver specified by This is not currently
|
||||||
|
managing the controller specified by ControllerHandle and ChildHandle,
|
||||||
|
then EFI_UNSUPPORTED is returned. If the driver specified by This does not
|
||||||
|
support the language specified by Language, then EFI_UNSUPPORTED is returned.
|
||||||
|
|
||||||
|
@param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
|
||||||
|
EFI_COMPONENT_NAME_PROTOCOL instance.
|
||||||
|
|
||||||
|
@param ControllerHandle[in] The handle of a controller that the driver
|
||||||
|
specified by This is managing. This handle
|
||||||
|
specifies the controller whose name is to be
|
||||||
|
returned.
|
||||||
|
|
||||||
|
@param ChildHandle[in] The handle of the child controller to retrieve
|
||||||
|
the name of. This is an optional parameter that
|
||||||
|
may be NULL. It will be NULL for device
|
||||||
|
drivers. It will also be NULL for a bus drivers
|
||||||
|
that wish to retrieve the name of the bus
|
||||||
|
controller. It will not be NULL for a bus
|
||||||
|
driver that wishes to retrieve the name of a
|
||||||
|
child controller.
|
||||||
|
|
||||||
|
@param Language[in] A pointer to a Null-terminated ASCII string
|
||||||
|
array indicating the language. This is the
|
||||||
|
language of the driver name that the caller is
|
||||||
|
requesting, and it must match one of the
|
||||||
|
languages specified in SupportedLanguages. The
|
||||||
|
number of languages supported by a driver is up
|
||||||
|
to the driver writer. Language is specified in
|
||||||
|
RFC 3066 or ISO 639-2 language code format.
|
||||||
|
|
||||||
|
@param ControllerName[out] A pointer to the Unicode string to return.
|
||||||
|
This Unicode string is the name of the
|
||||||
|
controller specified by ControllerHandle and
|
||||||
|
ChildHandle in the language specified by
|
||||||
|
Language from the point of view of the driver
|
||||||
|
specified by This.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The Unicode string for the user readable name in
|
||||||
|
the language specified by Language for the
|
||||||
|
driver specified by This was returned in
|
||||||
|
DriverName.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid
|
||||||
|
EFI_HANDLE.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER Language is NULL.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER ControllerName is NULL.
|
||||||
|
|
||||||
|
@retval EFI_UNSUPPORTED The driver specified by This is not currently
|
||||||
|
managing the controller specified by
|
||||||
|
ControllerHandle and ChildHandle.
|
||||||
|
|
||||||
|
@retval EFI_UNSUPPORTED The driver specified by This does not support
|
||||||
|
the language specified by Language.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EhciComponentNameGetControllerName (
|
||||||
|
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE ControllerHandle,
|
||||||
|
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||||
|
IN CHAR8 *Language,
|
||||||
|
OUT CHAR16 **ControllerName
|
||||||
|
);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -36,6 +36,15 @@ USB_PORT_STATE_MAP mUsbPortChangeMap[] = {
|
||||||
{PORTSC_OVERCUR_CHANGE, USB_PORT_STAT_C_OVERCURRENT}
|
{PORTSC_OVERCUR_CHANGE, USB_PORT_STAT_C_OVERCURRENT}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
EFI_DRIVER_BINDING_PROTOCOL
|
||||||
|
gEhciDriverBinding = {
|
||||||
|
EhcDriverBindingSupported,
|
||||||
|
EhcDriverBindingStart,
|
||||||
|
EhcDriverBindingStop,
|
||||||
|
0x10,
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Retrieves the capablility of root hub ports.
|
Retrieves the capablility of root hub ports.
|
||||||
|
@ -1731,12 +1740,3 @@ EhcDriverBindingStop (
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_DRIVER_BINDING_PROTOCOL
|
|
||||||
gEhciDriverBinding = {
|
|
||||||
EhcDriverBindingSupported,
|
|
||||||
EhcDriverBindingStart,
|
|
||||||
EhcDriverBindingStop,
|
|
||||||
0x10,
|
|
||||||
NULL,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
|
@ -40,6 +40,7 @@ typedef struct _USB2_HC_DEV USB2_HC_DEV;
|
||||||
#include "EhciUrb.h"
|
#include "EhciUrb.h"
|
||||||
#include "EhciSched.h"
|
#include "EhciSched.h"
|
||||||
#include "EhciDebug.h"
|
#include "EhciDebug.h"
|
||||||
|
#include "ComponentName.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
EHC_1_MICROSECOND = 1,
|
EHC_1_MICROSECOND = 1,
|
||||||
|
@ -156,4 +157,69 @@ extern EFI_DRIVER_BINDING_PROTOCOL gEhciDriverBinding;
|
||||||
extern EFI_COMPONENT_NAME_PROTOCOL gEhciComponentName;
|
extern EFI_COMPONENT_NAME_PROTOCOL gEhciComponentName;
|
||||||
extern EFI_COMPONENT_NAME2_PROTOCOL gEhciComponentName2;
|
extern EFI_COMPONENT_NAME2_PROTOCOL gEhciComponentName2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if this driver supports ControllerHandle. Any
|
||||||
|
ControllerHandle that has Usb2HcProtocol installed will
|
||||||
|
be supported.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to test.
|
||||||
|
@param RemainingDevicePath Not used.
|
||||||
|
|
||||||
|
@return EFI_SUCCESS This driver supports this device.
|
||||||
|
@return EFI_UNSUPPORTED This driver does not support this device.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EhcDriverBindingSupported (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Starting the Usb EHCI Driver.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to test.
|
||||||
|
@param RemainingDevicePath Not used.
|
||||||
|
|
||||||
|
@return EFI_SUCCESS supports this device.
|
||||||
|
@return EFI_UNSUPPORTED do not support this device.
|
||||||
|
@return EFI_DEVICE_ERROR cannot be started due to device Error.
|
||||||
|
@return EFI_OUT_OF_RESOURCES cannot allocate resources.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EhcDriverBindingStart (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop this driver on ControllerHandle. Support stoping any child handles
|
||||||
|
created by this driver.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to stop driver on.
|
||||||
|
@param NumberOfChildren Number of Children in the ChildHandleBuffer.
|
||||||
|
@param ChildHandleBuffer List of handles for the children we need to stop.
|
||||||
|
|
||||||
|
@return EFI_SUCCESS Success.
|
||||||
|
@return EFI_DEVICE_ERROR Fail.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EhcDriverBindingStop (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN UINTN NumberOfChildren,
|
||||||
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
EhciReg.c
|
EhciReg.c
|
||||||
EhciDebug.h
|
EhciDebug.h
|
||||||
ComponentName.c
|
ComponentName.c
|
||||||
|
ComponentName.h
|
||||||
EhciUrb.h
|
EhciUrb.h
|
||||||
Ehci.h
|
Ehci.h
|
||||||
EhciSched.h
|
EhciSched.h
|
||||||
|
|
|
@ -14,139 +14,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "Uhci.h"
|
#include "Uhci.h"
|
||||||
|
|
||||||
//
|
|
||||||
// EFI Component Name Functions
|
|
||||||
//
|
|
||||||
/**
|
|
||||||
Retrieves a Unicode string that is the user readable name of the driver.
|
|
||||||
|
|
||||||
This function retrieves the user readable name of a driver in the form of a
|
|
||||||
Unicode string. If the driver specified by This has a user readable name in
|
|
||||||
the language specified by Language, then a pointer to the driver name is
|
|
||||||
returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
|
|
||||||
by This does not support the language specified by Language,
|
|
||||||
then EFI_UNSUPPORTED is returned.
|
|
||||||
|
|
||||||
@param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
|
|
||||||
EFI_COMPONENT_NAME_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param Language[in] A pointer to a Null-terminated ASCII string
|
|
||||||
array indicating the language. This is the
|
|
||||||
language of the driver name that the caller is
|
|
||||||
requesting, and it must match one of the
|
|
||||||
languages specified in SupportedLanguages. The
|
|
||||||
number of languages supported by a driver is up
|
|
||||||
to the driver writer. Language is specified
|
|
||||||
in RFC 3066 or ISO 639-2 language code format.
|
|
||||||
|
|
||||||
@param DriverName[out] A pointer to the Unicode string to return.
|
|
||||||
This Unicode string is the name of the
|
|
||||||
driver specified by This in the language
|
|
||||||
specified by Language.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The Unicode string for the Driver specified by
|
|
||||||
This and the language specified by Language was
|
|
||||||
returned in DriverName.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER Language is NULL.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER DriverName is NULL.
|
|
||||||
|
|
||||||
@retval EFI_UNSUPPORTED The driver specified by This does not support
|
|
||||||
the language specified by Language.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
UhciComponentNameGetDriverName (
|
|
||||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
|
||||||
IN CHAR8 *Language,
|
|
||||||
OUT CHAR16 **DriverName
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Retrieves a Unicode string that is the user readable name of the controller
|
|
||||||
that is being managed by a driver.
|
|
||||||
|
|
||||||
This function retrieves the user readable name of the controller specified by
|
|
||||||
ControllerHandle and ChildHandle in the form of a Unicode string. If the
|
|
||||||
driver specified by This has a user readable name in the language specified by
|
|
||||||
Language, then a pointer to the controller name is returned in ControllerName,
|
|
||||||
and EFI_SUCCESS is returned. If the driver specified by This is not currently
|
|
||||||
managing the controller specified by ControllerHandle and ChildHandle,
|
|
||||||
then EFI_UNSUPPORTED is returned. If the driver specified by This does not
|
|
||||||
support the language specified by Language, then EFI_UNSUPPORTED is returned.
|
|
||||||
|
|
||||||
@param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
|
|
||||||
EFI_COMPONENT_NAME_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param ControllerHandle[in] The handle of a controller that the driver
|
|
||||||
specified by This is managing. This handle
|
|
||||||
specifies the controller whose name is to be
|
|
||||||
returned.
|
|
||||||
|
|
||||||
@param ChildHandle[in] The handle of the child controller to retrieve
|
|
||||||
the name of. This is an optional parameter that
|
|
||||||
may be NULL. It will be NULL for device
|
|
||||||
drivers. It will also be NULL for a bus drivers
|
|
||||||
that wish to retrieve the name of the bus
|
|
||||||
controller. It will not be NULL for a bus
|
|
||||||
driver that wishes to retrieve the name of a
|
|
||||||
child controller.
|
|
||||||
|
|
||||||
@param Language[in] A pointer to a Null-terminated ASCII string
|
|
||||||
array indicating the language. This is the
|
|
||||||
language of the driver name that the caller is
|
|
||||||
requesting, and it must match one of the
|
|
||||||
languages specified in SupportedLanguages. The
|
|
||||||
number of languages supported by a driver is up
|
|
||||||
to the driver writer. Language is specified in
|
|
||||||
RFC 3066 or ISO 639-2 language code format.
|
|
||||||
|
|
||||||
@param ControllerName[out] A pointer to the Unicode string to return.
|
|
||||||
This Unicode string is the name of the
|
|
||||||
controller specified by ControllerHandle and
|
|
||||||
ChildHandle in the language specified by
|
|
||||||
Language from the point of view of the driver
|
|
||||||
specified by This.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The Unicode string for the user readable name in
|
|
||||||
the language specified by Language for the
|
|
||||||
driver specified by This was returned in
|
|
||||||
DriverName.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid
|
|
||||||
EFI_HANDLE.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER Language is NULL.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER ControllerName is NULL.
|
|
||||||
|
|
||||||
@retval EFI_UNSUPPORTED The driver specified by This is not currently
|
|
||||||
managing the controller specified by
|
|
||||||
ControllerHandle and ChildHandle.
|
|
||||||
|
|
||||||
@retval EFI_UNSUPPORTED The driver specified by This does not support
|
|
||||||
the language specified by Language.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
UhciComponentNameGetControllerName (
|
|
||||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
|
||||||
IN EFI_HANDLE ControllerHandle,
|
|
||||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
|
||||||
IN CHAR8 *Language,
|
|
||||||
OUT CHAR16 **ControllerName
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// EFI Component Name Protocol
|
// EFI Component Name Protocol
|
||||||
//
|
//
|
||||||
|
|
||||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gUhciComponentName = {
|
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gUhciComponentName = {
|
||||||
UhciComponentNameGetDriverName,
|
UhciComponentNameGetDriverName,
|
||||||
UhciComponentNameGetControllerName,
|
UhciComponentNameGetControllerName,
|
||||||
|
@ -168,6 +40,11 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mUhciDriverNameTable[] =
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// EFI Component Name Functions
|
||||||
|
//
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Retrieves a Unicode string that is the user readable name of the driver.
|
Retrieves a Unicode string that is the user readable name of the driver.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,145 @@
|
||||||
|
/** @file
|
||||||
|
|
||||||
|
This file contains the delarations for componet name routines.
|
||||||
|
|
||||||
|
Copyright (c) 2008, 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.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef _COMPONENT_NAME_H_
|
||||||
|
#define _COMPONENT_NAME_H_
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves a Unicode string that is the user readable name of the driver.
|
||||||
|
|
||||||
|
This function retrieves the user readable name of a driver in the form of a
|
||||||
|
Unicode string. If the driver specified by This has a user readable name in
|
||||||
|
the language specified by Language, then a pointer to the driver name is
|
||||||
|
returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
|
||||||
|
by This does not support the language specified by Language,
|
||||||
|
then EFI_UNSUPPORTED is returned.
|
||||||
|
|
||||||
|
@param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
|
||||||
|
EFI_COMPONENT_NAME_PROTOCOL instance.
|
||||||
|
|
||||||
|
@param Language[in] A pointer to a Null-terminated ASCII string
|
||||||
|
array indicating the language. This is the
|
||||||
|
language of the driver name that the caller is
|
||||||
|
requesting, and it must match one of the
|
||||||
|
languages specified in SupportedLanguages. The
|
||||||
|
number of languages supported by a driver is up
|
||||||
|
to the driver writer. Language is specified
|
||||||
|
in RFC 3066 or ISO 639-2 language code format.
|
||||||
|
|
||||||
|
@param DriverName[out] A pointer to the Unicode string to return.
|
||||||
|
This Unicode string is the name of the
|
||||||
|
driver specified by This in the language
|
||||||
|
specified by Language.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The Unicode string for the Driver specified by
|
||||||
|
This and the language specified by Language was
|
||||||
|
returned in DriverName.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER Language is NULL.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER DriverName is NULL.
|
||||||
|
|
||||||
|
@retval EFI_UNSUPPORTED The driver specified by This does not support
|
||||||
|
the language specified by Language.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UhciComponentNameGetDriverName (
|
||||||
|
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||||
|
IN CHAR8 *Language,
|
||||||
|
OUT CHAR16 **DriverName
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves a Unicode string that is the user readable name of the controller
|
||||||
|
that is being managed by a driver.
|
||||||
|
|
||||||
|
This function retrieves the user readable name of the controller specified by
|
||||||
|
ControllerHandle and ChildHandle in the form of a Unicode string. If the
|
||||||
|
driver specified by This has a user readable name in the language specified by
|
||||||
|
Language, then a pointer to the controller name is returned in ControllerName,
|
||||||
|
and EFI_SUCCESS is returned. If the driver specified by This is not currently
|
||||||
|
managing the controller specified by ControllerHandle and ChildHandle,
|
||||||
|
then EFI_UNSUPPORTED is returned. If the driver specified by This does not
|
||||||
|
support the language specified by Language, then EFI_UNSUPPORTED is returned.
|
||||||
|
|
||||||
|
@param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
|
||||||
|
EFI_COMPONENT_NAME_PROTOCOL instance.
|
||||||
|
|
||||||
|
@param ControllerHandle[in] The handle of a controller that the driver
|
||||||
|
specified by This is managing. This handle
|
||||||
|
specifies the controller whose name is to be
|
||||||
|
returned.
|
||||||
|
|
||||||
|
@param ChildHandle[in] The handle of the child controller to retrieve
|
||||||
|
the name of. This is an optional parameter that
|
||||||
|
may be NULL. It will be NULL for device
|
||||||
|
drivers. It will also be NULL for a bus drivers
|
||||||
|
that wish to retrieve the name of the bus
|
||||||
|
controller. It will not be NULL for a bus
|
||||||
|
driver that wishes to retrieve the name of a
|
||||||
|
child controller.
|
||||||
|
|
||||||
|
@param Language[in] A pointer to a Null-terminated ASCII string
|
||||||
|
array indicating the language. This is the
|
||||||
|
language of the driver name that the caller is
|
||||||
|
requesting, and it must match one of the
|
||||||
|
languages specified in SupportedLanguages. The
|
||||||
|
number of languages supported by a driver is up
|
||||||
|
to the driver writer. Language is specified in
|
||||||
|
RFC 3066 or ISO 639-2 language code format.
|
||||||
|
|
||||||
|
@param ControllerName[out] A pointer to the Unicode string to return.
|
||||||
|
This Unicode string is the name of the
|
||||||
|
controller specified by ControllerHandle and
|
||||||
|
ChildHandle in the language specified by
|
||||||
|
Language from the point of view of the driver
|
||||||
|
specified by This.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The Unicode string for the user readable name in
|
||||||
|
the language specified by Language for the
|
||||||
|
driver specified by This was returned in
|
||||||
|
DriverName.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid
|
||||||
|
EFI_HANDLE.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER Language is NULL.
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER ControllerName is NULL.
|
||||||
|
|
||||||
|
@retval EFI_UNSUPPORTED The driver specified by This is not currently
|
||||||
|
managing the controller specified by
|
||||||
|
ControllerHandle and ChildHandle.
|
||||||
|
|
||||||
|
@retval EFI_UNSUPPORTED The driver specified by This does not support
|
||||||
|
the language specified by Language.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UhciComponentNameGetControllerName (
|
||||||
|
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE ControllerHandle,
|
||||||
|
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||||
|
IN CHAR8 *Language,
|
||||||
|
OUT CHAR16 **ControllerName
|
||||||
|
);
|
||||||
|
|
||||||
|
#endif
|
|
@ -15,6 +15,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "Uhci.h"
|
#include "Uhci.h"
|
||||||
|
|
||||||
|
|
||||||
|
EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding = {
|
||||||
|
UhciDriverBindingSupported,
|
||||||
|
UhciDriverBindingStart,
|
||||||
|
UhciDriverBindingStop,
|
||||||
|
0x20,
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Provides software reset for the USB host controller according to UEFI 2.0 spec.
|
Provides software reset for the USB host controller according to UEFI 2.0 spec.
|
||||||
|
|
||||||
|
@ -1800,11 +1810,3 @@ UhciDriverBindingStop (
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding = {
|
|
||||||
UhciDriverBindingSupported,
|
|
||||||
UhciDriverBindingStart,
|
|
||||||
UhciDriverBindingStop,
|
|
||||||
0x20,
|
|
||||||
NULL,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
|
@ -41,6 +41,7 @@ typedef struct _USB_HC_DEV USB_HC_DEV;
|
||||||
#include "UhciReg.h"
|
#include "UhciReg.h"
|
||||||
#include "UhciSched.h"
|
#include "UhciSched.h"
|
||||||
#include "UhciDebug.h"
|
#include "UhciDebug.h"
|
||||||
|
#include "ComponentName.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
UHC_1_MICROSECOND = 1,
|
UHC_1_MICROSECOND = 1,
|
||||||
|
@ -142,4 +143,67 @@ extern EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding;
|
||||||
extern EFI_COMPONENT_NAME_PROTOCOL gUhciComponentName;
|
extern EFI_COMPONENT_NAME_PROTOCOL gUhciComponentName;
|
||||||
extern EFI_COMPONENT_NAME2_PROTOCOL gUhciComponentName2;
|
extern EFI_COMPONENT_NAME2_PROTOCOL gUhciComponentName2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if this driver supports ControllerHandle. Any
|
||||||
|
ControllerHandle that has UsbHcProtocol installed will be supported.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to test.
|
||||||
|
@param RemainingDevicePath Not used.
|
||||||
|
|
||||||
|
@return EFI_SUCCESS This driver supports this device.
|
||||||
|
@return EFI_UNSUPPORTED This driver does not support this device.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UhciDriverBindingSupported (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Starting the Usb UHCI Driver.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to test.
|
||||||
|
@param RemainingDevicePath Not used.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS This driver supports this device.
|
||||||
|
@retval EFI_UNSUPPORTED This driver does not support this device.
|
||||||
|
@retval EFI_DEVICE_ERROR This driver cannot be started due to device Error.
|
||||||
|
EFI_OUT_OF_RESOURCES- Failed due to resource shortage.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UhciDriverBindingStart (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop this driver on ControllerHandle. Support stoping any child handles
|
||||||
|
created by this driver.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to stop driver on.
|
||||||
|
@param NumberOfChildren Number of Children in the ChildHandleBuffer.
|
||||||
|
@param ChildHandleBuffer List of handles for the children we need to stop.
|
||||||
|
|
||||||
|
@return EFI_SUCCESS
|
||||||
|
@return others
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UhciDriverBindingStop (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN UINTN NumberOfChildren,
|
||||||
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -14,8 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#include "Uhci.h"
|
#include "Uhci.h"
|
||||||
#include "UhciDebug.h"
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Dump the content of QH structure.
|
Dump the content of QH structure.
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
UhciReg.h
|
UhciReg.h
|
||||||
UhciSched.h
|
UhciSched.h
|
||||||
ComponentName.c
|
ComponentName.c
|
||||||
|
ComponentName.h
|
||||||
|
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
|
|
|
@ -21,6 +21,18 @@ PXE_SW_UNDI *pxe_31 = NULL; // 3.1 entry
|
||||||
UNDI32_DEV *UNDI32DeviceList[MAX_NIC_INTERFACES];
|
UNDI32_DEV *UNDI32DeviceList[MAX_NIC_INTERFACES];
|
||||||
NII_TABLE *UndiDataPointer = NULL;
|
NII_TABLE *UndiDataPointer = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
// UNDI Class Driver Global Variables
|
||||||
|
//
|
||||||
|
EFI_DRIVER_BINDING_PROTOCOL gUndiDriverBinding = {
|
||||||
|
UndiDriverSupported,
|
||||||
|
UndiDriverStart,
|
||||||
|
UndiDriverStop,
|
||||||
|
0xa,
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
When address mapping changes to virtual this should make the appropriate
|
When address mapping changes to virtual this should make the appropriate
|
||||||
|
@ -31,7 +43,6 @@ NII_TABLE *UndiDataPointer = NULL;
|
||||||
@return None
|
@return None
|
||||||
|
|
||||||
**/
|
**/
|
||||||
// TODO: Context - add argument and description to function comment
|
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
UndiNotifyVirtual (
|
UndiNotifyVirtual (
|
||||||
|
@ -86,7 +97,6 @@ UndiNotifyVirtual (
|
||||||
@return None
|
@return None
|
||||||
|
|
||||||
**/
|
**/
|
||||||
// TODO: Context - add argument and description to function comment
|
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
UndiNotifyExitBs (
|
UndiNotifyExitBs (
|
||||||
|
@ -96,18 +106,6 @@ UndiNotifyExitBs (
|
||||||
{
|
{
|
||||||
InstallConfigTable ();
|
InstallConfigTable ();
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// UNDI Class Driver Global Variables
|
|
||||||
//
|
|
||||||
EFI_DRIVER_BINDING_PROTOCOL gUndiDriverBinding = {
|
|
||||||
UndiDriverSupported,
|
|
||||||
UndiDriverStart,
|
|
||||||
UndiDriverStop,
|
|
||||||
0xa,
|
|
||||||
NULL,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -20,6 +20,31 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
//
|
//
|
||||||
EFI_GUID mUsbBusProtocolGuid = EFI_USB_BUS_PROTOCOL_GUID;
|
EFI_GUID mUsbBusProtocolGuid = EFI_USB_BUS_PROTOCOL_GUID;
|
||||||
|
|
||||||
|
EFI_USB_IO_PROTOCOL mUsbIoProtocol = {
|
||||||
|
UsbIoControlTransfer,
|
||||||
|
UsbIoBulkTransfer,
|
||||||
|
UsbIoAsyncInterruptTransfer,
|
||||||
|
UsbIoSyncInterruptTransfer,
|
||||||
|
UsbIoIsochronousTransfer,
|
||||||
|
UsbIoAsyncIsochronousTransfer,
|
||||||
|
UsbIoGetDeviceDescriptor,
|
||||||
|
UsbIoGetActiveConfigDescriptor,
|
||||||
|
UsbIoGetInterfaceDescriptor,
|
||||||
|
UsbIoGetEndpointDescriptor,
|
||||||
|
UsbIoGetStringDescriptor,
|
||||||
|
UsbIoGetSupportedLanguages,
|
||||||
|
UsbIoPortReset
|
||||||
|
};
|
||||||
|
|
||||||
|
EFI_DRIVER_BINDING_PROTOCOL mUsbBusDriverBinding = {
|
||||||
|
UsbBusControllerDriverSupported,
|
||||||
|
UsbBusControllerDriverStart,
|
||||||
|
UsbBusControllerDriverStop,
|
||||||
|
0xa,
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
USB_IO function to execute a control transfer. This
|
USB_IO function to execute a control transfer. This
|
||||||
|
@ -1037,22 +1062,6 @@ CLOSE_HC:
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_USB_IO_PROTOCOL mUsbIoProtocol = {
|
|
||||||
UsbIoControlTransfer,
|
|
||||||
UsbIoBulkTransfer,
|
|
||||||
UsbIoAsyncInterruptTransfer,
|
|
||||||
UsbIoSyncInterruptTransfer,
|
|
||||||
UsbIoIsochronousTransfer,
|
|
||||||
UsbIoAsyncIsochronousTransfer,
|
|
||||||
UsbIoGetDeviceDescriptor,
|
|
||||||
UsbIoGetActiveConfigDescriptor,
|
|
||||||
UsbIoGetInterfaceDescriptor,
|
|
||||||
UsbIoGetEndpointDescriptor,
|
|
||||||
UsbIoGetStringDescriptor,
|
|
||||||
UsbIoGetSupportedLanguages,
|
|
||||||
UsbIoPortReset
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The USB bus driver entry pointer.
|
The USB bus driver entry pointer.
|
||||||
|
@ -1435,12 +1444,3 @@ UsbBusControllerDriverStop (
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_DRIVER_BINDING_PROTOCOL mUsbBusDriverBinding = {
|
|
||||||
UsbBusControllerDriverSupported,
|
|
||||||
UsbBusControllerDriverStart,
|
|
||||||
UsbBusControllerDriverStop,
|
|
||||||
0xa,
|
|
||||||
NULL,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
|
@ -350,6 +350,396 @@ UsbBusRecursivelyConnectWantedUsbIo (
|
||||||
IN EFI_USB_BUS_PROTOCOL *UsbBusId
|
IN EFI_USB_BUS_PROTOCOL *UsbBusId
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
USB_IO function to execute a control transfer. This
|
||||||
|
function will execute the USB transfer. If transfer
|
||||||
|
successes, it will sync the internal state of USB bus
|
||||||
|
with device state.
|
||||||
|
|
||||||
|
@param This The USB_IO instance
|
||||||
|
@param Request The control transfer request
|
||||||
|
@param Direction Direction for data stage
|
||||||
|
@param Timeout The time to wait before timeout
|
||||||
|
@param Data The buffer holding the data
|
||||||
|
@param DataLength Then length of the data
|
||||||
|
@param UsbStatus USB result
|
||||||
|
|
||||||
|
@retval EFI_INVALID_PARAMETER The parameters are invalid
|
||||||
|
@retval EFI_SUCCESS The control transfer succeded.
|
||||||
|
@retval Others Failed to execute the transfer
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoControlTransfer (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
IN EFI_USB_DEVICE_REQUEST *Request,
|
||||||
|
IN EFI_USB_DATA_DIRECTION Direction,
|
||||||
|
IN UINT32 Timeout,
|
||||||
|
IN OUT VOID *Data, OPTIONAL
|
||||||
|
IN UINTN DataLength, OPTIONAL
|
||||||
|
OUT UINT32 *UsbStatus
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Execute a bulk transfer to the device endpoint.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param Endpoint The device endpoint.
|
||||||
|
@param Data The data to transfer.
|
||||||
|
@param DataLength The length of the data to transfer.
|
||||||
|
@param Timeout Time to wait before timeout.
|
||||||
|
@param UsbStatus The result of USB transfer.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The bulk transfer is OK.
|
||||||
|
@retval EFI_INVALID_PARAMETER Some parameters are invalid.
|
||||||
|
@retval Others Failed to execute transfer, reason returned in
|
||||||
|
UsbStatus.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoBulkTransfer (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
IN UINT8 Endpoint,
|
||||||
|
IN OUT VOID *Data,
|
||||||
|
IN OUT UINTN *DataLength,
|
||||||
|
IN UINTN Timeout,
|
||||||
|
OUT UINT32 *UsbStatus
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Execute a synchronous interrupt transfer.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param Endpoint The device endpoint.
|
||||||
|
@param Data The data to transfer.
|
||||||
|
@param DataLength The length of the data to transfer.
|
||||||
|
@param Timeout Time to wait before timeout.
|
||||||
|
@param UsbStatus The result of USB transfer.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The synchronous interrupt transfer is OK.
|
||||||
|
@retval EFI_INVALID_PARAMETER Some parameters are invalid.
|
||||||
|
@retval Others Failed to execute transfer, reason returned in
|
||||||
|
UsbStatus.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoSyncInterruptTransfer (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
IN UINT8 Endpoint,
|
||||||
|
IN OUT VOID *Data,
|
||||||
|
IN OUT UINTN *DataLength,
|
||||||
|
IN UINTN Timeout,
|
||||||
|
OUT UINT32 *UsbStatus
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Queue a new asynchronous interrupt transfer, or remove the old
|
||||||
|
request if (IsNewTransfer == FALSE).
|
||||||
|
|
||||||
|
@param This The USB_IO instance.
|
||||||
|
@param Endpoint The device endpoint.
|
||||||
|
@param IsNewTransfer Whether this is a new request, if it's old, remove
|
||||||
|
the request.
|
||||||
|
@param PollInterval The interval to poll the transfer result, (in ms).
|
||||||
|
@param DataLength The length of perodic data transfer.
|
||||||
|
@param Callback The function to call periodicaly when transfer is
|
||||||
|
ready.
|
||||||
|
@param Context The context to the callback.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS New transfer is queued or old request is removed.
|
||||||
|
@retval EFI_INVALID_PARAMETER Some parameters are invalid.
|
||||||
|
@retval Others Failed to queue the new request or remove the old
|
||||||
|
request.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoAsyncInterruptTransfer (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
IN UINT8 Endpoint,
|
||||||
|
IN BOOLEAN IsNewTransfer,
|
||||||
|
IN UINTN PollInterval, OPTIONAL
|
||||||
|
IN UINTN DataLength, OPTIONAL
|
||||||
|
IN EFI_ASYNC_USB_TRANSFER_CALLBACK Callback, OPTIONAL
|
||||||
|
IN VOID *Context OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Execute a synchronous isochronous transfer.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param DeviceEndpoint The device endpoint.
|
||||||
|
@param Data The data to transfer.
|
||||||
|
@param DataLength The length of the data to transfer.
|
||||||
|
@param UsbStatus The result of USB transfer.
|
||||||
|
|
||||||
|
@retval EFI_UNSUPPORTED Currently isochronous transfer isn't supported.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoIsochronousTransfer (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
IN UINT8 DeviceEndpoint,
|
||||||
|
IN OUT VOID *Data,
|
||||||
|
IN UINTN DataLength,
|
||||||
|
OUT UINT32 *Status
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Queue an asynchronous isochronous transfer.
|
||||||
|
|
||||||
|
@param This The USB_IO instance.
|
||||||
|
@param DeviceEndpoint The device endpoint.
|
||||||
|
@param Data The data to transfer.
|
||||||
|
@param DataLength The length of perodic data transfer.
|
||||||
|
@param IsochronousCallBack The function to call periodicaly when transfer is
|
||||||
|
ready.
|
||||||
|
@param Context The context to the callback.
|
||||||
|
|
||||||
|
@retval EFI_UNSUPPORTED Currently isochronous transfer isn't supported.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoAsyncIsochronousTransfer (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
IN UINT8 DeviceEndpoint,
|
||||||
|
IN OUT VOID *Data,
|
||||||
|
IN UINTN DataLength,
|
||||||
|
IN EFI_ASYNC_USB_TRANSFER_CALLBACK IsochronousCallBack,
|
||||||
|
IN VOID *Context OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieve the device descriptor of the device.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param Descriptor The variable to receive the device descriptor.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The device descriptor is returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER The parameter is invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoGetDeviceDescriptor (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
OUT EFI_USB_DEVICE_DESCRIPTOR *Descriptor
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return the configuration descriptor of the current active configuration.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param Descriptor The USB configuration descriptor.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The active configuration descriptor is returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER Some parameter is invalid.
|
||||||
|
@retval EFI_NOT_FOUND Currently no active configuration is selected.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoGetActiveConfigDescriptor (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
OUT EFI_USB_CONFIG_DESCRIPTOR *Descriptor
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieve the active interface setting descriptor for this USB IO instance.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param Descriptor The variable to receive active interface setting.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The active interface setting is returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER Some parameter is invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoGetInterfaceDescriptor (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
OUT EFI_USB_INTERFACE_DESCRIPTOR *Descriptor
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieve the endpoint descriptor from this interface setting.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param Index The index (start from zero) of the endpoint to
|
||||||
|
retrieve.
|
||||||
|
@param Descriptor The variable to receive the descriptor.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The endpoint descriptor is returned.
|
||||||
|
@retval EFI_INVALID_PARAMETER Some parameter is invalid.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoGetEndpointDescriptor (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
IN UINT8 Index,
|
||||||
|
OUT EFI_USB_ENDPOINT_DESCRIPTOR *Descriptor
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieve the supported language ID table from the device.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param LangIDTable The table to return the language IDs.
|
||||||
|
@param TableSize The number of supported languanges.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The language ID is return.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoGetSupportedLanguages (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
OUT UINT16 **LangIDTable,
|
||||||
|
OUT UINT16 *TableSize
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieve an indexed string in the language of LangID.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
@param LangID The language ID of the string to retrieve.
|
||||||
|
@param StringIndex The index of the string.
|
||||||
|
@param String The variable to receive the string.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The string is returned.
|
||||||
|
@retval EFI_NOT_FOUND No such string existed.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoGetStringDescriptor (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This,
|
||||||
|
IN UINT16 LangID,
|
||||||
|
IN UINT8 StringIndex,
|
||||||
|
OUT CHAR16 **String
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reset the device, then if that succeeds, reconfigure the
|
||||||
|
device with its address and current active configuration.
|
||||||
|
|
||||||
|
@param This The USB IO instance.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The device is reset and configured.
|
||||||
|
@retval Others Failed to reset the device.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbIoPortReset (
|
||||||
|
IN EFI_USB_IO_PROTOCOL *This
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Install Usb Bus Protocol on host controller, and start the Usb bus.
|
||||||
|
|
||||||
|
@param This The USB bus driver binding instance.
|
||||||
|
@param Controller The controller to check.
|
||||||
|
@param RemainingDevicePath The remaining device patch.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The controller is controlled by the usb bus.
|
||||||
|
@retval EFI_ALREADY_STARTED The controller is already controlled by the usb bus.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Failed to allocate resources.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbBusBuildProtocol (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
The USB bus driver entry pointer.
|
||||||
|
|
||||||
|
@param ImageHandle The driver image handle.
|
||||||
|
@param SystemTable The system table.
|
||||||
|
|
||||||
|
@return EFI_SUCCESS The component name protocol is installed.
|
||||||
|
@return Others Failed to init the usb driver.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbBusDriverEntryPoint (
|
||||||
|
IN EFI_HANDLE ImageHandle,
|
||||||
|
IN EFI_SYSTEM_TABLE *SystemTable
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Check whether USB bus driver support this device.
|
||||||
|
|
||||||
|
@param This The USB bus driver binding protocol.
|
||||||
|
@param Controller The controller handle to check.
|
||||||
|
@param RemainingDevicePath The remaining device path.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The bus supports this controller.
|
||||||
|
@retval EFI_UNSUPPORTED This device isn't supported.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbBusControllerDriverSupported (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Start to process the controller.
|
||||||
|
|
||||||
|
@param This The USB bus driver binding instance.
|
||||||
|
@param Controller The controller to check.
|
||||||
|
@param RemainingDevicePath The remaining device patch.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The controller is controlled by the usb bus.
|
||||||
|
@retval EFI_ALREADY_STARTED The controller is already controlled by the usb
|
||||||
|
bus.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Failed to allocate resources.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbBusControllerDriverStart (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop handle the controller by this USB bus driver.
|
||||||
|
|
||||||
|
@param This The USB bus driver binding protocol.
|
||||||
|
@param Controller The controller to release.
|
||||||
|
@param NumberOfChildren The child of USB bus that opened controller
|
||||||
|
BY_CHILD.
|
||||||
|
@param ChildHandleBuffer The array of child handle.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The controller or children are stopped.
|
||||||
|
@retval EFI_DEVICE_ERROR Failed to stop the driver.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
UsbBusControllerDriverStop (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN UINTN NumberOfChildren,
|
||||||
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
|
);
|
||||||
|
|
||||||
extern EFI_USB_IO_PROTOCOL mUsbIoProtocol;
|
extern EFI_USB_IO_PROTOCOL mUsbIoProtocol;
|
||||||
extern EFI_DRIVER_BINDING_PROTOCOL mUsbBusDriverBinding;
|
extern EFI_DRIVER_BINDING_PROTOCOL mUsbBusDriverBinding;
|
||||||
extern EFI_COMPONENT_NAME_PROTOCOL mUsbBusComponentName;
|
extern EFI_COMPONENT_NAME_PROTOCOL mUsbBusComponentName;
|
||||||
|
|
|
@ -15,6 +15,33 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "UsbBus.h"
|
#include "UsbBus.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// Array that maps the change bit to feature value which is
|
||||||
|
// used to clear these change bit. USB HUB API will clear
|
||||||
|
// these change bit automatically. For non-root hub, these
|
||||||
|
// bits determine whether hub will report the port in changed
|
||||||
|
// bit maps.
|
||||||
|
//
|
||||||
|
#define USB_HUB_MAP_SIZE 5
|
||||||
|
|
||||||
|
USB_CHANGE_FEATURE_MAP mHubFeatureMap[USB_HUB_MAP_SIZE] = {
|
||||||
|
{USB_PORT_STAT_C_CONNECTION, EfiUsbPortConnectChange},
|
||||||
|
{USB_PORT_STAT_C_ENABLE, EfiUsbPortEnableChange},
|
||||||
|
{USB_PORT_STAT_C_SUSPEND, EfiUsbPortSuspendChange},
|
||||||
|
{USB_PORT_STAT_C_OVERCURRENT, EfiUsbPortOverCurrentChange},
|
||||||
|
{USB_PORT_STAT_C_RESET, EfiUsbPortResetChange},
|
||||||
|
};
|
||||||
|
|
||||||
|
#define USB_ROOT_HUB_MAP_SIZE 5
|
||||||
|
|
||||||
|
USB_CHANGE_FEATURE_MAP mRootHubFeatureMap[USB_ROOT_HUB_MAP_SIZE] = {
|
||||||
|
{USB_PORT_STAT_C_CONNECTION, EfiUsbPortConnectChange},
|
||||||
|
{USB_PORT_STAT_C_ENABLE, EfiUsbPortEnableChange},
|
||||||
|
{USB_PORT_STAT_C_SUSPEND, EfiUsbPortSuspendChange},
|
||||||
|
{USB_PORT_STAT_C_OVERCURRENT, EfiUsbPortOverCurrentChange},
|
||||||
|
{USB_PORT_STAT_C_RESET, EfiUsbPortResetChange},
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// USB hub class specific requests. Although USB hub
|
// USB hub class specific requests. Although USB hub
|
||||||
// is related to an interface, these requests are sent
|
// is related to an interface, these requests are sent
|
||||||
|
@ -576,32 +603,6 @@ UsbOnHubInterrupt (
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Array that maps the change bit to feature value which is
|
|
||||||
// used to clear these change bit. USB HUB API will clear
|
|
||||||
// these change bit automatically. For non-root hub, these
|
|
||||||
// bits determine whether hub will report the port in changed
|
|
||||||
// bit maps.
|
|
||||||
//
|
|
||||||
#define USB_HUB_MAP_SIZE 5
|
|
||||||
|
|
||||||
USB_CHANGE_FEATURE_MAP mHubFeatureMap[USB_HUB_MAP_SIZE] = {
|
|
||||||
{USB_PORT_STAT_C_CONNECTION, EfiUsbPortConnectChange},
|
|
||||||
{USB_PORT_STAT_C_ENABLE, EfiUsbPortEnableChange},
|
|
||||||
{USB_PORT_STAT_C_SUSPEND, EfiUsbPortSuspendChange},
|
|
||||||
{USB_PORT_STAT_C_OVERCURRENT, EfiUsbPortOverCurrentChange},
|
|
||||||
{USB_PORT_STAT_C_RESET, EfiUsbPortResetChange},
|
|
||||||
};
|
|
||||||
|
|
||||||
#define USB_ROOT_HUB_MAP_SIZE 5
|
|
||||||
|
|
||||||
USB_CHANGE_FEATURE_MAP mRootHubFeatureMap[USB_ROOT_HUB_MAP_SIZE] = {
|
|
||||||
{USB_PORT_STAT_C_CONNECTION, EfiUsbPortConnectChange},
|
|
||||||
{USB_PORT_STAT_C_ENABLE, EfiUsbPortEnableChange},
|
|
||||||
{USB_PORT_STAT_C_SUSPEND, EfiUsbPortSuspendChange},
|
|
||||||
{USB_PORT_STAT_C_OVERCURRENT, EfiUsbPortOverCurrentChange},
|
|
||||||
{USB_PORT_STAT_C_RESET, EfiUsbPortResetChange},
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -130,40 +130,6 @@ UINT8 KeyboardLayoutTable[USB_KEYCODE_MAX_MAKE + 8][5] = {
|
||||||
{EfiKeyA3, 0, 0, EFI_RIGHT_LOGO_MODIFIER, 0}, // 0xe7
|
{EfiKeyA3, 0, 0, EFI_RIGHT_LOGO_MODIFIER, 0}, // 0xe7
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize KeyConvertionTable by using default keyboard layout.
|
|
||||||
|
|
||||||
@param UsbKeyboardDevice The USB_KB_DEV instance.
|
|
||||||
@retval None.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
LoadDefaultKeyboardLayout (
|
|
||||||
IN USB_KB_DEV *UsbKeyboardDevice
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN Index;
|
|
||||||
EFI_KEY_DESCRIPTOR *KeyDescriptor;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Construct KeyConvertionTable by default keyboard layout
|
|
||||||
//
|
|
||||||
KeyDescriptor = &UsbKeyboardDevice->KeyConvertionTable[0];
|
|
||||||
|
|
||||||
for (Index = 0; Index < (USB_KEYCODE_MAX_MAKE + 8); Index++) {
|
|
||||||
KeyDescriptor->Key = (EFI_KEY) KeyboardLayoutTable[Index][0];
|
|
||||||
KeyDescriptor->Unicode = KeyboardLayoutTable[Index][1];
|
|
||||||
KeyDescriptor->ShiftedUnicode = KeyboardLayoutTable[Index][2];
|
|
||||||
KeyDescriptor->AltGrUnicode = 0;
|
|
||||||
KeyDescriptor->ShiftedAltGrUnicode = 0;
|
|
||||||
KeyDescriptor->Modifier = KeyboardLayoutTable[Index][3];
|
|
||||||
KeyDescriptor->AffectedAttribute = KeyboardLayoutTable[Index][4];
|
|
||||||
|
|
||||||
KeyDescriptor++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// EFI_KEY to USB Scan Code convertion table
|
// EFI_KEY to USB Scan Code convertion table
|
||||||
//
|
//
|
||||||
|
@ -330,6 +296,40 @@ KB_MODIFIER KB_Mod[8] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Initialize KeyConvertionTable by using default keyboard layout.
|
||||||
|
|
||||||
|
@param UsbKeyboardDevice The USB_KB_DEV instance.
|
||||||
|
@retval None.
|
||||||
|
|
||||||
|
**/
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
LoadDefaultKeyboardLayout (
|
||||||
|
IN USB_KB_DEV *UsbKeyboardDevice
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINTN Index;
|
||||||
|
EFI_KEY_DESCRIPTOR *KeyDescriptor;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Construct KeyConvertionTable by default keyboard layout
|
||||||
|
//
|
||||||
|
KeyDescriptor = &UsbKeyboardDevice->KeyConvertionTable[0];
|
||||||
|
|
||||||
|
for (Index = 0; Index < (USB_KEYCODE_MAX_MAKE + 8); Index++) {
|
||||||
|
KeyDescriptor->Key = (EFI_KEY) KeyboardLayoutTable[Index][0];
|
||||||
|
KeyDescriptor->Unicode = KeyboardLayoutTable[Index][1];
|
||||||
|
KeyDescriptor->ShiftedUnicode = KeyboardLayoutTable[Index][2];
|
||||||
|
KeyDescriptor->AltGrUnicode = 0;
|
||||||
|
KeyDescriptor->ShiftedAltGrUnicode = 0;
|
||||||
|
KeyDescriptor->Modifier = KeyboardLayoutTable[Index][3];
|
||||||
|
KeyDescriptor->AffectedAttribute = KeyboardLayoutTable[Index][4];
|
||||||
|
|
||||||
|
KeyDescriptor++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Uses USB I/O to check whether the device is a USB Keyboard device.
|
Uses USB I/O to check whether the device is a USB Keyboard device.
|
||||||
|
|
|
@ -25,41 +25,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "mousehid.h"
|
#include "mousehid.h"
|
||||||
|
|
||||||
//
|
|
||||||
// Prototypes
|
|
||||||
// Driver model protocol interface
|
|
||||||
//
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
USBMouseAbsolutePointerDriverBindingEntryPoint (
|
|
||||||
IN EFI_HANDLE ImageHandle,
|
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
|
||||||
);
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
USBMouseAbsolutePointerDriverBindingSupported (
|
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
||||||
IN EFI_HANDLE Controller,
|
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
|
||||||
);
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
USBMouseAbsolutePointerDriverBindingStart (
|
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
||||||
IN EFI_HANDLE Controller,
|
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
|
||||||
);
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
USBMouseAbsolutePointerDriverBindingStop (
|
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
||||||
IN EFI_HANDLE Controller,
|
|
||||||
IN UINTN NumberOfChildren,
|
|
||||||
IN EFI_HANDLE *ChildHandleBuffer
|
|
||||||
);
|
|
||||||
|
|
||||||
EFI_GUID gEfiUsbMouseAbsolutePointerDriverGuid = {
|
EFI_GUID gEfiUsbMouseAbsolutePointerDriverGuid = {
|
||||||
0xa579f729, 0xa71d, 0x4b45, { 0xbe, 0xd7, 0xd, 0xb0, 0xa8, 0x7c, 0x3e, 0x8d }
|
0xa579f729, 0xa71d, 0x4b45, { 0xbe, 0xd7, 0xd, 0xb0, 0xa8, 0x7c, 0x3e, 0x8d }
|
||||||
|
|
|
@ -103,4 +103,41 @@ MouseAbsolutePointerReportStatusCode (
|
||||||
IN EFI_STATUS_CODE_VALUE Value
|
IN EFI_STATUS_CODE_VALUE Value
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Prototypes
|
||||||
|
// Driver model protocol interface
|
||||||
|
//
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
USBMouseAbsolutePointerDriverBindingEntryPoint (
|
||||||
|
IN EFI_HANDLE ImageHandle,
|
||||||
|
IN EFI_SYSTEM_TABLE *SystemTable
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
USBMouseAbsolutePointerDriverBindingSupported (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
USBMouseAbsolutePointerDriverBindingStart (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
USBMouseAbsolutePointerDriverBindingStop (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN UINTN NumberOfChildren,
|
||||||
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,86 +22,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#include "UsbMouse.h"
|
#include "UsbMouse.h"
|
||||||
#include "MouseHid.h"
|
#include "MouseHid.h"
|
||||||
|
|
||||||
/**
|
|
||||||
The USB Mouse driver entry pointer.
|
|
||||||
|
|
||||||
@param ImageHandle The driver image handle.
|
|
||||||
@param SystemTable The system table.
|
|
||||||
|
|
||||||
@return EFI_SUCCESS The component name protocol is installed.
|
|
||||||
@return Others Failed to init the usb driver.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
USBMouseDriverBindingEntryPoint (
|
|
||||||
IN EFI_HANDLE ImageHandle,
|
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Test to see if this driver supports ControllerHandle. Any ControllerHandle
|
|
||||||
that has UsbIoProtocol installed will be supported.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param Controller Handle of device to test.
|
|
||||||
@param RemainingDevicePath Not used.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS This driver supports this device.
|
|
||||||
@retval EFI_UNSUPPORTED This driver does not support this device.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
USBMouseDriverBindingSupported (
|
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
||||||
IN EFI_HANDLE Controller,
|
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Starting the Usb Mouse Driver.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param Controller Handle of device to test
|
|
||||||
@param RemainingDevicePath Not used
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS This driver supports this device.
|
|
||||||
@retval EFI_UNSUPPORTED This driver does not support this device.
|
|
||||||
@retval EFI_DEVICE_ERROR This driver cannot be started due to device Error.
|
|
||||||
@retval EFI_OUT_OF_RESOURCES Can't allocate memory resources.
|
|
||||||
@retval EFI_ALREADY_STARTED Thios driver has been started.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
USBMouseDriverBindingStart (
|
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
||||||
IN EFI_HANDLE Controller,
|
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Stop this driver on ControllerHandle. Support stoping any child handles
|
|
||||||
created by this driver.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param Controller Handle of device to stop driver on.
|
|
||||||
@param NumberOfChildren Number of Children in the ChildHandleBuffer.
|
|
||||||
@param ChildHandleBuffer List of handles for the children we need to stop.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The controller or children are stopped.
|
|
||||||
@retval Other Failed to stop the driver.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
USBMouseDriverBindingStop (
|
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
||||||
IN EFI_HANDLE Controller,
|
|
||||||
IN UINTN NumberOfChildren,
|
|
||||||
IN EFI_HANDLE *ChildHandleBuffer
|
|
||||||
);
|
|
||||||
|
|
||||||
EFI_GUID gEfiUsbMouseDriverGuid = {
|
EFI_GUID gEfiUsbMouseDriverGuid = {
|
||||||
0x290156b5, 0x6a05, 0x4ac0, {0xb8, 0x0, 0x51, 0x27, 0x55, 0xad, 0x14, 0x29}
|
0x290156b5, 0x6a05, 0x4ac0, {0xb8, 0x0, 0x51, 0x27, 0x55, 0xad, 0x14, 0x29}
|
||||||
|
|
|
@ -115,4 +115,85 @@ MouseReportStatusCode (
|
||||||
IN EFI_STATUS_CODE_VALUE Value
|
IN EFI_STATUS_CODE_VALUE Value
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
The USB Mouse driver entry pointer.
|
||||||
|
|
||||||
|
@param ImageHandle The driver image handle.
|
||||||
|
@param SystemTable The system table.
|
||||||
|
|
||||||
|
@return EFI_SUCCESS The component name protocol is installed.
|
||||||
|
@return Others Failed to init the usb driver.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
USBMouseDriverBindingEntryPoint (
|
||||||
|
IN EFI_HANDLE ImageHandle,
|
||||||
|
IN EFI_SYSTEM_TABLE *SystemTable
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if this driver supports ControllerHandle. Any ControllerHandle
|
||||||
|
that has UsbIoProtocol installed will be supported.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to test.
|
||||||
|
@param RemainingDevicePath Not used.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS This driver supports this device.
|
||||||
|
@retval EFI_UNSUPPORTED This driver does not support this device.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
USBMouseDriverBindingSupported (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Starting the Usb Mouse Driver.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to test
|
||||||
|
@param RemainingDevicePath Not used
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS This driver supports this device.
|
||||||
|
@retval EFI_UNSUPPORTED This driver does not support this device.
|
||||||
|
@retval EFI_DEVICE_ERROR This driver cannot be started due to device Error.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES Can't allocate memory resources.
|
||||||
|
@retval EFI_ALREADY_STARTED Thios driver has been started.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
USBMouseDriverBindingStart (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop this driver on ControllerHandle. Support stoping any child handles
|
||||||
|
created by this driver.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Controller Handle of device to stop driver on.
|
||||||
|
@param NumberOfChildren Number of Children in the ChildHandleBuffer.
|
||||||
|
@param ChildHandleBuffer List of handles for the children we need to stop.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The controller or children are stopped.
|
||||||
|
@retval Other Failed to stop the driver.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
USBMouseDriverBindingStop (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE Controller,
|
||||||
|
IN UINTN NumberOfChildren,
|
||||||
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -14,29 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "PeiMain.h"
|
#include "PeiMain.h"
|
||||||
|
|
||||||
/**
|
|
||||||
The wrapper function of PeiLoadImageLoadImage().
|
|
||||||
|
|
||||||
@param This - Pointer to EFI_PEI_LOAD_FILE_PPI.
|
|
||||||
@param FileHandle - Pointer to the FFS file header of the image.
|
|
||||||
@param ImageAddressArg - Pointer to PE/TE image.
|
|
||||||
@param ImageSizeArg - Size of PE/TE image.
|
|
||||||
@param EntryPoint - Pointer to entry point of specified image file for output.
|
|
||||||
@param AuthenticationState - Pointer to attestation authentication state of image.
|
|
||||||
|
|
||||||
@return Status of PeiLoadImageLoadImage().
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
PeiLoadImageLoadImageWrapper (
|
|
||||||
IN CONST EFI_PEI_LOAD_FILE_PPI *This,
|
|
||||||
IN EFI_PEI_FILE_HANDLE FileHandle,
|
|
||||||
OUT EFI_PHYSICAL_ADDRESS *ImageAddressArg, OPTIONAL
|
|
||||||
OUT UINT64 *ImageSizeArg, OPTIONAL
|
|
||||||
OUT EFI_PHYSICAL_ADDRESS *EntryPoint,
|
|
||||||
OUT UINT32 *AuthenticationState
|
|
||||||
);
|
|
||||||
|
|
||||||
EFI_PEI_LOAD_FILE_PPI mPeiLoadImagePpi = {
|
EFI_PEI_LOAD_FILE_PPI mPeiLoadImagePpi = {
|
||||||
PeiLoadImageLoadImageWrapper
|
PeiLoadImageLoadImageWrapper
|
||||||
|
|
|
@ -284,8 +284,8 @@ PeiDispatcher (
|
||||||
@param PrivateData PeiCore's private data structure
|
@param PrivateData PeiCore's private data structure
|
||||||
@param OldCoreData Old data from SecCore
|
@param OldCoreData Old data from SecCore
|
||||||
NULL if being run in non-permament memory mode.
|
NULL if being run in non-permament memory mode.
|
||||||
@param SecCoreData Points to a data structure containing SEC to PEI handoff data, such as the size
|
@param SecCoreData Points to a data structure containing SEC to PEI handoff data, such as the size
|
||||||
and location of temporary RAM, the stack location and the BFV location.
|
and location of temporary RAM, the stack location and the BFV location.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
|
@ -1023,4 +1023,47 @@ ProcessFvFile (
|
||||||
OUT UINT32 *AuthenticationState
|
OUT UINT32 *AuthenticationState
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
The wrapper function of PeiLoadImageLoadImage().
|
||||||
|
|
||||||
|
@param This - Pointer to EFI_PEI_LOAD_FILE_PPI.
|
||||||
|
@param FileHandle - Pointer to the FFS file header of the image.
|
||||||
|
@param ImageAddressArg - Pointer to PE/TE image.
|
||||||
|
@param ImageSizeArg - Size of PE/TE image.
|
||||||
|
@param EntryPoint - Pointer to entry point of specified image file for output.
|
||||||
|
@param AuthenticationState - Pointer to attestation authentication state of image.
|
||||||
|
|
||||||
|
@return Status of PeiLoadImageLoadImage().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
PeiLoadImageLoadImageWrapper (
|
||||||
|
IN CONST EFI_PEI_LOAD_FILE_PPI *This,
|
||||||
|
IN EFI_PEI_FILE_HANDLE FileHandle,
|
||||||
|
OUT EFI_PHYSICAL_ADDRESS *ImageAddressArg, OPTIONAL
|
||||||
|
OUT UINT64 *ImageSizeArg, OPTIONAL
|
||||||
|
OUT EFI_PHYSICAL_ADDRESS *EntryPoint,
|
||||||
|
OUT UINT32 *AuthenticationState
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Provide a callback for when the security PPI is installed.
|
||||||
|
|
||||||
|
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
|
||||||
|
@param NotifyDescriptor The descriptor for the notification event.
|
||||||
|
@param Ppi Pointer to the PPI in question.
|
||||||
|
|
||||||
|
@return Always success
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
SecurityPpiNotifyCallback (
|
||||||
|
IN EFI_PEI_SERVICES **PeiServices,
|
||||||
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
||||||
|
IN VOID *Ppi
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -14,24 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "PeiMain.h"
|
#include "PeiMain.h"
|
||||||
|
|
||||||
/**
|
|
||||||
|
|
||||||
Provide a callback for when the security PPI is installed.
|
|
||||||
|
|
||||||
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
|
|
||||||
@param NotifyDescriptor The descriptor for the notification event.
|
|
||||||
@param Ppi Pointer to the PPI in question.
|
|
||||||
|
|
||||||
@return Always success
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
SecurityPpiNotifyCallback (
|
|
||||||
IN EFI_PEI_SERVICES **PeiServices,
|
|
||||||
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
|
||||||
IN VOID *Ppi
|
|
||||||
);
|
|
||||||
|
|
||||||
EFI_PEI_NOTIFY_DESCRIPTOR mNotifyList = {
|
EFI_PEI_NOTIFY_DESCRIPTOR mNotifyList = {
|
||||||
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,
|
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,
|
||||||
|
|
|
@ -13,113 +13,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
#include "DxeCorePerformanceLibInternal.h"
|
||||||
|
|
||||||
#include <Protocol/Performance.h>
|
|
||||||
#include <Guid/PeiPerformanceHob.h>
|
|
||||||
|
|
||||||
#include <Library/PerformanceLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/HobLib.h>
|
|
||||||
#include <Library/BaseLib.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/TimerLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
#include <Library/MemoryAllocationLib.h>
|
|
||||||
|
|
||||||
//
|
|
||||||
// Interface declarations for Performance Protocol.
|
|
||||||
//
|
|
||||||
/**
|
|
||||||
Adds a record at the end of the performance measurement log
|
|
||||||
that records the start time of a performance measurement.
|
|
||||||
|
|
||||||
Adds a record to the end of the performance measurement log
|
|
||||||
that contains the Handle, Token, and Module.
|
|
||||||
The end time of the new record must be set to zero.
|
|
||||||
If TimeStamp is not zero, then TimeStamp is used to fill in the start time in the record.
|
|
||||||
If TimeStamp is zero, the start time in the record is filled in with the value
|
|
||||||
read from the current time stamp.
|
|
||||||
|
|
||||||
@param Handle Pointer to environment specific context used
|
|
||||||
to identify the component being measured.
|
|
||||||
@param Token Pointer to a Null-terminated ASCII string
|
|
||||||
that identifies the component being measured.
|
|
||||||
@param Module Pointer to a Null-terminated ASCII string
|
|
||||||
that identifies the module being measured.
|
|
||||||
@param TimeStamp 64-bit time stamp.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The data was read correctly from the device.
|
|
||||||
@retval EFI_OUT_OF_RESOURCES There are not enough resources to record the measurement.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
StartGauge (
|
|
||||||
IN CONST VOID *Handle, OPTIONAL
|
|
||||||
IN CONST CHAR8 *Token, OPTIONAL
|
|
||||||
IN CONST CHAR8 *Module, OPTIONAL
|
|
||||||
IN UINT64 TimeStamp
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Searches the performance measurement log from the beginning of the log
|
|
||||||
for the first matching record that contains a zero end time and fills in a valid end time.
|
|
||||||
|
|
||||||
Searches the performance measurement log from the beginning of the log
|
|
||||||
for the first record that matches Handle, Token, and Module and has an end time value of zero.
|
|
||||||
If the record can not be found then return EFI_NOT_FOUND.
|
|
||||||
If the record is found and TimeStamp is not zero,
|
|
||||||
then the end time in the record is filled in with the value specified by TimeStamp.
|
|
||||||
If the record is found and TimeStamp is zero, then the end time in the matching record
|
|
||||||
is filled in with the current time stamp value.
|
|
||||||
|
|
||||||
@param Handle Pointer to environment specific context used
|
|
||||||
to identify the component being measured.
|
|
||||||
@param Token Pointer to a Null-terminated ASCII string
|
|
||||||
that identifies the component being measured.
|
|
||||||
@param Module Pointer to a Null-terminated ASCII string
|
|
||||||
that identifies the module being measured.
|
|
||||||
@param TimeStamp 64-bit time stamp.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The end of the measurement was recorded.
|
|
||||||
@retval EFI_NOT_FOUND The specified measurement record could not be found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
EndGauge (
|
|
||||||
IN CONST VOID *Handle, OPTIONAL
|
|
||||||
IN CONST CHAR8 *Token, OPTIONAL
|
|
||||||
IN CONST CHAR8 *Module, OPTIONAL
|
|
||||||
IN UINT64 TimeStamp
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Retrieves a previously logged performance measurement.
|
|
||||||
|
|
||||||
Retrieves the performance log entry from the performance log specified by LogEntryKey.
|
|
||||||
If it stands for a valid entry, then EFI_SUCCESS is returned and
|
|
||||||
GaugeDataEntry stores the pointer to that entry.
|
|
||||||
|
|
||||||
@param LogEntryKey The key for the previous performance measurement log entry.
|
|
||||||
If 0, then the first performance measurement log entry is retrieved.
|
|
||||||
@param GaugeDataEntry The indirect pointer to the gauge data entry specified by LogEntryKey
|
|
||||||
if the retrieval is successful.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The GuageDataEntry is successfuly found based on LogEntryKey.
|
|
||||||
@retval EFI_NOT_FOUND The LogEntryKey is the last entry (equals to the total entry number).
|
|
||||||
@retval EFI_INVALIDE_PARAMETER The LogEntryKey is not a valid entry (greater than the total entry number).
|
|
||||||
@retval EFI_INVALIDE_PARAMETER GaugeDataEntry is NULL.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
GetGauge (
|
|
||||||
IN UINTN LogEntryKey,
|
|
||||||
OUT GAUGE_DATA_ENTRY **GaugeDataEntry
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Definition for global variables.
|
// Definition for global variables.
|
||||||
|
@ -134,7 +29,6 @@ PERFORMANCE_PROTOCOL mPerformanceInterface = {
|
||||||
GetGauge
|
GetGauge
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Searches in the gauge array with keyword Handle, Token and Module.
|
Searches in the gauge array with keyword Handle, Token and Module.
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
|
|
||||||
[Sources.common]
|
[Sources.common]
|
||||||
DxeCorePerformanceLib.c
|
DxeCorePerformanceLib.c
|
||||||
|
DxeCorePerformanceLibInternal.h
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
|
|
|
@ -0,0 +1,128 @@
|
||||||
|
/** @file
|
||||||
|
Module functions' declarations are included here.
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2008, Intel Corporation. <BR>
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef _DXE_CORE_PERFORMANCE_LIB_INTERNAL_H_
|
||||||
|
#define _DXE_CORE_PERFORMANCE_LIB_INTERNAL_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <PiDxe.h>
|
||||||
|
|
||||||
|
#include <Protocol/Performance.h>
|
||||||
|
#include <Guid/PeiPerformanceHob.h>
|
||||||
|
|
||||||
|
#include <Library/PerformanceLib.h>
|
||||||
|
#include <Library/DebugLib.h>
|
||||||
|
#include <Library/HobLib.h>
|
||||||
|
#include <Library/BaseLib.h>
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
#include <Library/TimerLib.h>
|
||||||
|
#include <Library/PcdLib.h>
|
||||||
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// Interface declarations for Performance Protocol.
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
Adds a record at the end of the performance measurement log
|
||||||
|
that records the start time of a performance measurement.
|
||||||
|
|
||||||
|
Adds a record to the end of the performance measurement log
|
||||||
|
that contains the Handle, Token, and Module.
|
||||||
|
The end time of the new record must be set to zero.
|
||||||
|
If TimeStamp is not zero, then TimeStamp is used to fill in the start time in the record.
|
||||||
|
If TimeStamp is zero, the start time in the record is filled in with the value
|
||||||
|
read from the current time stamp.
|
||||||
|
|
||||||
|
@param Handle Pointer to environment specific context used
|
||||||
|
to identify the component being measured.
|
||||||
|
@param Token Pointer to a Null-terminated ASCII string
|
||||||
|
that identifies the component being measured.
|
||||||
|
@param Module Pointer to a Null-terminated ASCII string
|
||||||
|
that identifies the module being measured.
|
||||||
|
@param TimeStamp 64-bit time stamp.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The data was read correctly from the device.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There are not enough resources to record the measurement.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
StartGauge (
|
||||||
|
IN CONST VOID *Handle, OPTIONAL
|
||||||
|
IN CONST CHAR8 *Token, OPTIONAL
|
||||||
|
IN CONST CHAR8 *Module, OPTIONAL
|
||||||
|
IN UINT64 TimeStamp
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Searches the performance measurement log from the beginning of the log
|
||||||
|
for the first matching record that contains a zero end time and fills in a valid end time.
|
||||||
|
|
||||||
|
Searches the performance measurement log from the beginning of the log
|
||||||
|
for the first record that matches Handle, Token, and Module and has an end time value of zero.
|
||||||
|
If the record can not be found then return EFI_NOT_FOUND.
|
||||||
|
If the record is found and TimeStamp is not zero,
|
||||||
|
then the end time in the record is filled in with the value specified by TimeStamp.
|
||||||
|
If the record is found and TimeStamp is zero, then the end time in the matching record
|
||||||
|
is filled in with the current time stamp value.
|
||||||
|
|
||||||
|
@param Handle Pointer to environment specific context used
|
||||||
|
to identify the component being measured.
|
||||||
|
@param Token Pointer to a Null-terminated ASCII string
|
||||||
|
that identifies the component being measured.
|
||||||
|
@param Module Pointer to a Null-terminated ASCII string
|
||||||
|
that identifies the module being measured.
|
||||||
|
@param TimeStamp 64-bit time stamp.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The end of the measurement was recorded.
|
||||||
|
@retval EFI_NOT_FOUND The specified measurement record could not be found.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EndGauge (
|
||||||
|
IN CONST VOID *Handle, OPTIONAL
|
||||||
|
IN CONST CHAR8 *Token, OPTIONAL
|
||||||
|
IN CONST CHAR8 *Module, OPTIONAL
|
||||||
|
IN UINT64 TimeStamp
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves a previously logged performance measurement.
|
||||||
|
|
||||||
|
Retrieves the performance log entry from the performance log specified by LogEntryKey.
|
||||||
|
If it stands for a valid entry, then EFI_SUCCESS is returned and
|
||||||
|
GaugeDataEntry stores the pointer to that entry.
|
||||||
|
|
||||||
|
@param LogEntryKey The key for the previous performance measurement log entry.
|
||||||
|
If 0, then the first performance measurement log entry is retrieved.
|
||||||
|
@param GaugeDataEntry The indirect pointer to the gauge data entry specified by LogEntryKey
|
||||||
|
if the retrieval is successful.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The GuageDataEntry is successfuly found based on LogEntryKey.
|
||||||
|
@retval EFI_NOT_FOUND The LogEntryKey is the last entry (equals to the total entry number).
|
||||||
|
@retval EFI_INVALIDE_PARAMETER The LogEntryKey is not a valid entry (greater than the total entry number).
|
||||||
|
@retval EFI_INVALIDE_PARAMETER GaugeDataEntry is NULL.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
GetGauge (
|
||||||
|
IN UINTN LogEntryKey,
|
||||||
|
OUT GAUGE_DATA_ENTRY **GaugeDataEntry
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
|
@ -21,6 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
EFI_HII_DATABASE_PROTOCOL *gIfrLibHiiDatabase;
|
EFI_HII_DATABASE_PROTOCOL *gIfrLibHiiDatabase;
|
||||||
EFI_HII_STRING_PROTOCOL *gIfrLibHiiString;
|
EFI_HII_STRING_PROTOCOL *gIfrLibHiiString;
|
||||||
|
GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_GUID mIfrVendorGuid = EFI_IFR_TIANO_GUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
ExtendedIfrSupportLib's constructor. It locates the required protocol:
|
ExtendedIfrSupportLib's constructor. It locates the required protocol:
|
||||||
|
@ -52,9 +53,6 @@ ExtendedIfrSupportLibConstructor (
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_GUID mIfrVendorGuid = EFI_IFR_TIANO_GUID;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Extract formset class for given HII handle.
|
Extract formset class for given HII handle.
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,11 @@ CONST EFI_FORM_BROWSER2_PROTOCOL *mFormBrowser2 = NULL;
|
||||||
CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *mIfrSupportLibHiiConfigRouting = NULL;
|
CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *mIfrSupportLibHiiConfigRouting = NULL;
|
||||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 mIfrSupportLibHexStr[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
|
GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 mIfrSupportLibHexStr[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Fake <ConfigHdr>
|
||||||
|
//
|
||||||
|
GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT16 mFakeConfigHdr[] = L"GUID=00000000000000000000000000000000&NAME=0000&PATH=0";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function locate FormBrowser2 protocols for later usage.
|
This function locate FormBrowser2 protocols for later usage.
|
||||||
|
|
||||||
|
@ -50,11 +55,6 @@ LocateFormBrowser2Protocols (
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Fake <ConfigHdr>
|
|
||||||
//
|
|
||||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT16 mFakeConfigHdr[] = L"GUID=00000000000000000000000000000000&NAME=0000&PATH=0";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Draw a dialog and return the selected key.
|
Draw a dialog and return the selected key.
|
||||||
|
|
||||||
|
|
|
@ -14,82 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "GraphicsConsole.h"
|
#include "GraphicsConsole.h"
|
||||||
|
|
||||||
/**
|
|
||||||
Gets Graphics Console devcie's foreground color and background color.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param Foreground Returned text foreground color.
|
|
||||||
@param Background Returned text background color.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS It returned always.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
GetTextColors (
|
|
||||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
|
||||||
OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Foreground,
|
|
||||||
OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Background
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Draw Unicode string on the Graphice Console device's screen.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
@param UnicodeWeight One Unicode string to be displayed.
|
|
||||||
@param Count The count of Unicode string.
|
|
||||||
|
|
||||||
@retval EFI_OUT_OF_RESOURCES If no memory resource to use.
|
|
||||||
@retval EFI_UNSUPPORTED If no Graphics Output protocol and UGA Draw
|
|
||||||
protocol exist.
|
|
||||||
@retval EFI_SUCCESS Drawing Unicode string implemented successfully.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
DrawUnicodeWeightAtCursorN (
|
|
||||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
|
||||||
IN CHAR16 *UnicodeWeight,
|
|
||||||
IN UINTN Count
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Erase the cursor on the screen.
|
|
||||||
|
|
||||||
@param This Protocol instance pointer.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The cursor is erased successfully.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EraseCursor (
|
|
||||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Check if the current specific mode supported the user defined resolution
|
|
||||||
for the Graphice Console devcie based on Graphics Output Protocol.
|
|
||||||
|
|
||||||
If yes, set the graphic devcice's current mode to this specific mode.
|
|
||||||
|
|
||||||
@param GraphicsOutput Graphics Output Protocol instance pointer.
|
|
||||||
@param HorizontalResolution User defined horizontal resolution
|
|
||||||
@param VerticalResolution User defined vertical resolution.
|
|
||||||
@param CurrentModeNumber Current specific mode to be check.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The mode is supported.
|
|
||||||
@retval EFI_UNSUPPORTED The specific mode is out of range of graphics
|
|
||||||
devcie supported.
|
|
||||||
@retval other The specific mode does not support user defined
|
|
||||||
resolution or failed to set the current mode to the
|
|
||||||
specific mode on graphics device.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
CheckModeSupported (
|
|
||||||
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,
|
|
||||||
IN UINT32 HorizontalResolution,
|
|
||||||
IN UINT32 VerticalResolution,
|
|
||||||
OUT UINT32 *CurrentModeNumber
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Graphics Console Devcie Private Data template
|
// Graphics Console Devcie Private Data template
|
||||||
|
@ -175,6 +99,83 @@ EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Gets Graphics Console devcie's foreground color and background color.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Foreground Returned text foreground color.
|
||||||
|
@param Background Returned text background color.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS It returned always.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
GetTextColors (
|
||||||
|
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||||
|
OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Foreground,
|
||||||
|
OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Background
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Draw Unicode string on the Graphice Console device's screen.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param UnicodeWeight One Unicode string to be displayed.
|
||||||
|
@param Count The count of Unicode string.
|
||||||
|
|
||||||
|
@retval EFI_OUT_OF_RESOURCES If no memory resource to use.
|
||||||
|
@retval EFI_UNSUPPORTED If no Graphics Output protocol and UGA Draw
|
||||||
|
protocol exist.
|
||||||
|
@retval EFI_SUCCESS Drawing Unicode string implemented successfully.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
DrawUnicodeWeightAtCursorN (
|
||||||
|
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||||
|
IN CHAR16 *UnicodeWeight,
|
||||||
|
IN UINTN Count
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Erase the cursor on the screen.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The cursor is erased successfully.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EraseCursor (
|
||||||
|
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Check if the current specific mode supported the user defined resolution
|
||||||
|
for the Graphice Console devcie based on Graphics Output Protocol.
|
||||||
|
|
||||||
|
If yes, set the graphic devcice's current mode to this specific mode.
|
||||||
|
|
||||||
|
@param GraphicsOutput Graphics Output Protocol instance pointer.
|
||||||
|
@param HorizontalResolution User defined horizontal resolution
|
||||||
|
@param VerticalResolution User defined vertical resolution.
|
||||||
|
@param CurrentModeNumber Current specific mode to be check.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The mode is supported.
|
||||||
|
@retval EFI_UNSUPPORTED The specific mode is out of range of graphics
|
||||||
|
devcie supported.
|
||||||
|
@retval other The specific mode does not support user defined
|
||||||
|
resolution or failed to set the current mode to the
|
||||||
|
specific mode on graphics device.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
CheckModeSupported (
|
||||||
|
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,
|
||||||
|
IN UINT32 HorizontalResolution,
|
||||||
|
IN UINT32 VerticalResolution,
|
||||||
|
OUT UINT32 *CurrentModeNumber
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Test to see if Graphics Console could be supported on the Controller.
|
Test to see if Graphics Console could be supported on the Controller.
|
||||||
|
|
|
@ -16,20 +16,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "Terminal.h"
|
#include "Terminal.h"
|
||||||
|
|
||||||
/**
|
|
||||||
Free notify functions list.
|
|
||||||
|
|
||||||
@param ListHead The list head
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Free the notify list successfully.
|
|
||||||
@retval EFI_INVALID_PARAMETER ListHead is NULL.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
TerminalFreeNotifyList (
|
|
||||||
IN OUT LIST_ENTRY *ListHead
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Globals
|
// Globals
|
||||||
//
|
//
|
||||||
|
@ -118,6 +104,20 @@ TERMINAL_DEV mTerminalDevTemplate = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Free notify functions list.
|
||||||
|
|
||||||
|
@param ListHead The list head
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Free the notify list successfully.
|
||||||
|
@retval EFI_INVALID_PARAMETER ListHead is NULL.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
TerminalFreeNotifyList (
|
||||||
|
IN OUT LIST_ENTRY *ListHead
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Test to see if this driver supports Controller.
|
Test to see if this driver supports Controller.
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,21 @@ typedef struct {
|
||||||
VOID (*RegisteredCallback) ();
|
VOID (*RegisteredCallback) ();
|
||||||
} IVT_ENTRY;
|
} IVT_ENTRY;
|
||||||
|
|
||||||
|
IVT_ENTRY IvtEntryTable[NUM_IVT_ENTRIES];
|
||||||
|
|
||||||
|
//
|
||||||
|
// IPF context record is overallocated by 512 bytes to guarantee a 512 byte alignment exists
|
||||||
|
// within the buffer and still have a large enough buffer to hold a whole IPF context record.
|
||||||
|
//
|
||||||
|
UINT8 IpfContextBuf[sizeof (EFI_SYSTEM_CONTEXT_IPF) + 512];
|
||||||
|
|
||||||
|
//
|
||||||
|
// The PatchSaveBuffer is used to store the original bundles from the IVT where it is patched
|
||||||
|
// with the common handler.
|
||||||
|
//
|
||||||
|
UINT8 PatchSaveBuffer[0x400];
|
||||||
|
UINTN ExternalInterruptCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This is the worker function that uninstalls and removes all handlers.
|
This is the worker function that uninstalls and removes all handlers.
|
||||||
|
|
||||||
|
@ -117,20 +132,6 @@ GetHandlerEntryPoint (
|
||||||
VOID **EntryPoint
|
VOID **EntryPoint
|
||||||
);
|
);
|
||||||
|
|
||||||
IVT_ENTRY IvtEntryTable[NUM_IVT_ENTRIES];
|
|
||||||
|
|
||||||
//
|
|
||||||
// IPF context record is overallocated by 512 bytes to guarantee a 512 byte alignment exists
|
|
||||||
// within the buffer and still have a large enough buffer to hold a whole IPF context record.
|
|
||||||
//
|
|
||||||
UINT8 IpfContextBuf[sizeof (EFI_SYSTEM_CONTEXT_IPF) + 512];
|
|
||||||
|
|
||||||
//
|
|
||||||
// The PatchSaveBuffer is used to store the original bundles from the IVT where it is patched
|
|
||||||
// with the common handler.
|
|
||||||
//
|
|
||||||
UINT8 PatchSaveBuffer[0x400];
|
|
||||||
UINTN ExternalInterruptCount;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
IPF specific DebugSupport driver initialization.
|
IPF specific DebugSupport driver initialization.
|
||||||
|
|
|
@ -23,27 +23,6 @@
|
||||||
|
|
||||||
#include <IndustryStandard/Pci.h>
|
#include <IndustryStandard/Pci.h>
|
||||||
|
|
||||||
/**
|
|
||||||
Convert EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS to PCI_LIB_ADDRESS.
|
|
||||||
|
|
||||||
@param Address PCI address with
|
|
||||||
EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS format.
|
|
||||||
|
|
||||||
@return The PCI address with PCI_LIB_ADDRESS format.
|
|
||||||
|
|
||||||
**/
|
|
||||||
UINTN
|
|
||||||
PciCfgAddressConvert (
|
|
||||||
EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *Address
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (Address->ExtendedRegister == 0) {
|
|
||||||
return PCI_LIB_ADDRESS (Address->Bus, Address->Device, Address->Function, Address->Register);
|
|
||||||
}
|
|
||||||
|
|
||||||
return PCI_LIB_ADDRESS (Address->Bus, Address->Device, Address->Function, Address->ExtendedRegister);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Reads from a given location in the PCI configuration space.
|
Reads from a given location in the PCI configuration space.
|
||||||
|
|
||||||
|
@ -184,6 +163,29 @@ EFI_PEI_PPI_DESCRIPTOR gPciCfg2PpiList = {
|
||||||
&gPciCfg2Ppi
|
&gPciCfg2Ppi
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Convert EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS to PCI_LIB_ADDRESS.
|
||||||
|
|
||||||
|
@param Address PCI address with
|
||||||
|
EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS format.
|
||||||
|
|
||||||
|
@return The PCI address with PCI_LIB_ADDRESS format.
|
||||||
|
|
||||||
|
**/
|
||||||
|
UINTN
|
||||||
|
PciCfgAddressConvert (
|
||||||
|
EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *Address
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (Address->ExtendedRegister == 0) {
|
||||||
|
return PCI_LIB_ADDRESS (Address->Bus, Address->Device, Address->Function, Address->Register);
|
||||||
|
}
|
||||||
|
|
||||||
|
return PCI_LIB_ADDRESS (Address->Bus, Address->Device, Address->Function, Address->ExtendedRegister);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Reads from a given location in the PCI configuration space.
|
Reads from a given location in the PCI configuration space.
|
||||||
|
|
||||||
|
|
|
@ -117,6 +117,7 @@ SCREEN_OPERATION_T0_CONTROL_FLAG gScreenOperationToControlFlag[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
BOOLEAN mInputError;
|
BOOLEAN mInputError;
|
||||||
|
BOOLEAN GetLineByWidthFinished = FALSE;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1075,9 +1076,6 @@ GetWidth (
|
||||||
return Width;
|
return Width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN GetLineByWidthFinished = FALSE;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Will copy LineWidth amount of a string in the OutputString buffer and return the
|
Will copy LineWidth amount of a string in the OutputString buffer and return the
|
||||||
number of CHAR16 characters that were copied into the OutputString buffer.
|
number of CHAR16 characters that were copied into the OutputString buffer.
|
||||||
|
|
|
@ -21,6 +21,25 @@ VARIABLE_MODULE_GLOBAL *mVariableModuleGlobal;
|
||||||
EFI_EVENT mVirtualAddressChangeEvent = NULL;
|
EFI_EVENT mVirtualAddressChangeEvent = NULL;
|
||||||
EFI_HANDLE mHandle = NULL;
|
EFI_HANDLE mHandle = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
// The current Hii implementation accesses this variable a larg # of times on every boot.
|
||||||
|
// Other common variables are only accessed a single time. This is why this cache algorithm
|
||||||
|
// only targets a single variable. Probably to get an performance improvement out of
|
||||||
|
// a Cache you would need a cache that improves the search performance for a variable.
|
||||||
|
//
|
||||||
|
VARIABLE_CACHE_ENTRY mVariableCache[] = {
|
||||||
|
{
|
||||||
|
&gEfiGlobalVariableGuid,
|
||||||
|
L"Lang",
|
||||||
|
0x00000000,
|
||||||
|
0x00,
|
||||||
|
NULL
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
GLOBAL_REMOVE_IF_UNREFERENCED VARIABLE_INFO_ENTRY *gVariableInfo = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// This is a temperary function which will be removed
|
// This is a temperary function which will be removed
|
||||||
|
@ -53,9 +72,6 @@ ReleaseLockOnlyAtBootTime (
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GLOBAL_REMOVE_IF_UNREFERENCED VARIABLE_INFO_ENTRY *gVariableInfo = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Routine used to track statistical information about variable usage.
|
Routine used to track statistical information about variable usage.
|
||||||
The data is stored in the EFI system table so it can be accessed later.
|
The data is stored in the EFI system table so it can be accessed later.
|
||||||
|
@ -774,23 +790,6 @@ Returns:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// The current Hii implementation accesses this variable a larg # of times on every boot.
|
|
||||||
// Other common variables are only accessed a single time. This is why this cache algorithm
|
|
||||||
// only targets a single variable. Probably to get an performance improvement out of
|
|
||||||
// a Cache you would need a cache that improves the search performance for a variable.
|
|
||||||
//
|
|
||||||
VARIABLE_CACHE_ENTRY mVariableCache[] = {
|
|
||||||
{
|
|
||||||
&gEfiGlobalVariableGuid,
|
|
||||||
L"Lang",
|
|
||||||
0x00000000,
|
|
||||||
0x00,
|
|
||||||
NULL
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Update the Cache with Variable information. These are the same
|
Update the Cache with Variable information. These are the same
|
||||||
arguments as the EFI Variable services.
|
arguments as the EFI Variable services.
|
||||||
|
|
Loading…
Reference in New Issue