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"
|
||||
|
||||
//
|
||||
// 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
|
||||
|
@ -170,6 +41,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mEhciDriverNameTable[] =
|
|||
{ NULL , NULL }
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
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}
|
||||
};
|
||||
|
||||
EFI_DRIVER_BINDING_PROTOCOL
|
||||
gEhciDriverBinding = {
|
||||
EhcDriverBindingSupported,
|
||||
EhcDriverBindingStart,
|
||||
EhcDriverBindingStop,
|
||||
0x10,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
/**
|
||||
Retrieves the capablility of root hub ports.
|
||||
|
@ -1731,12 +1740,3 @@ EhcDriverBindingStop (
|
|||
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 "EhciSched.h"
|
||||
#include "EhciDebug.h"
|
||||
#include "ComponentName.h"
|
||||
|
||||
typedef enum {
|
||||
EHC_1_MICROSECOND = 1,
|
||||
|
@ -156,4 +157,69 @@ extern EFI_DRIVER_BINDING_PROTOCOL gEhciDriverBinding;
|
|||
extern EFI_COMPONENT_NAME_PROTOCOL gEhciComponentName;
|
||||
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
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
EhciReg.c
|
||||
EhciDebug.h
|
||||
ComponentName.c
|
||||
ComponentName.h
|
||||
EhciUrb.h
|
||||
Ehci.h
|
||||
EhciSched.h
|
||||
|
|
|
@ -14,139 +14,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#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
|
||||
//
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gUhciComponentName = {
|
||||
UhciComponentNameGetDriverName,
|
||||
UhciComponentNameGetControllerName,
|
||||
|
@ -168,6 +40,11 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mUhciDriverNameTable[] =
|
|||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// EFI Component Name Functions
|
||||
//
|
||||
|
||||
/**
|
||||
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"
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
@ -1800,11 +1810,3 @@ UhciDriverBindingStop (
|
|||
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 "UhciSched.h"
|
||||
#include "UhciDebug.h"
|
||||
#include "ComponentName.h"
|
||||
|
||||
typedef enum {
|
||||
UHC_1_MICROSECOND = 1,
|
||||
|
@ -142,4 +143,67 @@ extern EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding;
|
|||
extern EFI_COMPONENT_NAME_PROTOCOL gUhciComponentName;
|
||||
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
|
||||
|
|
|
@ -14,8 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
**/
|
||||
|
||||
#include "Uhci.h"
|
||||
#include "UhciDebug.h"
|
||||
|
||||
|
||||
/**
|
||||
Dump the content of QH structure.
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
UhciReg.h
|
||||
UhciSched.h
|
||||
ComponentName.c
|
||||
ComponentName.h
|
||||
|
||||
|
||||
[Packages]
|
||||
|
|
|
@ -21,6 +21,18 @@ PXE_SW_UNDI *pxe_31 = NULL; // 3.1 entry
|
|||
UNDI32_DEV *UNDI32DeviceList[MAX_NIC_INTERFACES];
|
||||
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
|
||||
|
@ -31,7 +43,6 @@ NII_TABLE *UndiDataPointer = NULL;
|
|||
@return None
|
||||
|
||||
**/
|
||||
// TODO: Context - add argument and description to function comment
|
||||
VOID
|
||||
EFIAPI
|
||||
UndiNotifyVirtual (
|
||||
|
@ -86,7 +97,6 @@ UndiNotifyVirtual (
|
|||
@return None
|
||||
|
||||
**/
|
||||
// TODO: Context - add argument and description to function comment
|
||||
VOID
|
||||
EFIAPI
|
||||
UndiNotifyExitBs (
|
||||
|
@ -96,18 +106,6 @@ UndiNotifyExitBs (
|
|||
{
|
||||
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_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
|
||||
|
@ -1037,22 +1062,6 @@ CLOSE_HC:
|
|||
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.
|
||||
|
@ -1435,12 +1444,3 @@ UsbBusControllerDriverStop (
|
|||
|
||||
return Status;
|
||||
}
|
||||
|
||||
EFI_DRIVER_BINDING_PROTOCOL mUsbBusDriverBinding = {
|
||||
UsbBusControllerDriverSupported,
|
||||
UsbBusControllerDriverStart,
|
||||
UsbBusControllerDriverStop,
|
||||
0xa,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
|
|
@ -350,6 +350,396 @@ UsbBusRecursivelyConnectWantedUsbIo (
|
|||
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_DRIVER_BINDING_PROTOCOL mUsbBusDriverBinding;
|
||||
extern EFI_COMPONENT_NAME_PROTOCOL mUsbBusComponentName;
|
||||
|
|
|
@ -15,6 +15,33 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#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
|
||||
// is related to an interface, these requests are sent
|
||||
|
@ -576,32 +603,6 @@ UsbOnHubInterrupt (
|
|||
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
|
||||
};
|
||||
|
||||
/**
|
||||
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
|
||||
//
|
||||
|
@ -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.
|
||||
|
|
|
@ -25,41 +25,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#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 = {
|
||||
0xa579f729, 0xa71d, 0x4b45, { 0xbe, 0xd7, 0xd, 0xb0, 0xa8, 0x7c, 0x3e, 0x8d }
|
||||
|
|
|
@ -103,4 +103,41 @@ MouseAbsolutePointerReportStatusCode (
|
|||
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
|
||||
|
|
|
@ -22,86 +22,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
#include "UsbMouse.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 = {
|
||||
0x290156b5, 0x6a05, 0x4ac0, {0xb8, 0x0, 0x51, 0x27, 0x55, 0xad, 0x14, 0x29}
|
||||
|
|
|
@ -115,4 +115,85 @@ MouseReportStatusCode (
|
|||
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
|
||||
|
|
|
@ -14,29 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#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 = {
|
||||
PeiLoadImageLoadImageWrapper
|
||||
|
|
|
@ -284,8 +284,8 @@ PeiDispatcher (
|
|||
@param PrivateData PeiCore's private data structure
|
||||
@param OldCoreData Old data from SecCore
|
||||
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
|
||||
and location of temporary RAM, the stack location and the BFV location.
|
||||
@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.
|
||||
|
||||
**/
|
||||
VOID
|
||||
|
@ -1023,4 +1023,47 @@ ProcessFvFile (
|
|||
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
|
||||
|
|
|
@ -14,24 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#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_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.
|
||||
|
@ -134,7 +29,6 @@ PERFORMANCE_PROTOCOL mPerformanceInterface = {
|
|||
GetGauge
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
Searches in the gauge array with keyword Handle, Token and Module.
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
[Sources.common]
|
||||
DxeCorePerformanceLib.c
|
||||
DxeCorePerformanceLibInternal.h
|
||||
|
||||
[Packages]
|
||||
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_STRING_PROTOCOL *gIfrLibHiiString;
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_GUID mIfrVendorGuid = EFI_IFR_TIANO_GUID;
|
||||
|
||||
/**
|
||||
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.
|
||||
|
||||
|
|
|
@ -19,6 +19,11 @@ CONST EFI_FORM_BROWSER2_PROTOCOL *mFormBrowser2 = 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'};
|
||||
|
||||
//
|
||||
// Fake <ConfigHdr>
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT16 mFakeConfigHdr[] = L"GUID=00000000000000000000000000000000&NAME=0000&PATH=0";
|
||||
|
||||
/**
|
||||
This function locate FormBrowser2 protocols for later usage.
|
||||
|
||||
|
@ -50,11 +55,6 @@ LocateFormBrowser2Protocols (
|
|||
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.
|
||||
|
||||
|
|
|
@ -14,82 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#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
|
||||
|
@ -175,6 +99,83 @@ EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {
|
|||
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.
|
||||
|
|
|
@ -16,20 +16,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#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
|
||||
//
|
||||
|
@ -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.
|
||||
|
||||
|
|
|
@ -35,6 +35,21 @@ typedef struct {
|
|||
VOID (*RegisteredCallback) ();
|
||||
} 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.
|
||||
|
||||
|
@ -117,20 +132,6 @@ GetHandlerEntryPoint (
|
|||
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.
|
||||
|
|
|
@ -23,27 +23,6 @@
|
|||
|
||||
#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.
|
||||
|
||||
|
@ -184,6 +163,29 @@ EFI_PEI_PPI_DESCRIPTOR gPciCfg2PpiList = {
|
|||
&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.
|
||||
|
||||
|
|
|
@ -117,6 +117,7 @@ SCREEN_OPERATION_T0_CONTROL_FLAG gScreenOperationToControlFlag[] = {
|
|||
};
|
||||
|
||||
BOOLEAN mInputError;
|
||||
BOOLEAN GetLineByWidthFinished = FALSE;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -1075,9 +1076,6 @@ GetWidth (
|
|||
return Width;
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN GetLineByWidthFinished = FALSE;
|
||||
|
||||
/**
|
||||
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.
|
||||
|
|
|
@ -21,6 +21,25 @@ VARIABLE_MODULE_GLOBAL *mVariableModuleGlobal;
|
|||
EFI_EVENT mVirtualAddressChangeEvent = 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
|
||||
|
@ -53,9 +72,6 @@ ReleaseLockOnlyAtBootTime (
|
|||
}
|
||||
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED VARIABLE_INFO_ENTRY *gVariableInfo = NULL;
|
||||
|
||||
|
||||
/**
|
||||
Routine used to track statistical information about variable usage.
|
||||
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
|
||||
arguments as the EFI Variable services.
|
||||
|
|
Loading…
Reference in New Issue