summaryrefslogtreecommitdiff
path: root/Core/EM/FloppyCtrl/Names.c
diff options
context:
space:
mode:
Diffstat (limited to 'Core/EM/FloppyCtrl/Names.c')
-rw-r--r--Core/EM/FloppyCtrl/Names.c240
1 files changed, 240 insertions, 0 deletions
diff --git a/Core/EM/FloppyCtrl/Names.c b/Core/EM/FloppyCtrl/Names.c
new file mode 100644
index 0000000..61d921a
--- /dev/null
+++ b/Core/EM/FloppyCtrl/Names.c
@@ -0,0 +1,240 @@
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2009, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//**********************************************************************
+//**********************************************************************
+// $Header: /Alaska/SOURCE/Core/CORE_DXE/FloppyCtrl/Names.c 10 8/28/09 10:29a Felixp $
+//
+// $Revision: 10 $
+//
+// $Date: 8/28/09 10:29a $
+//**********************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/SOURCE/Core/CORE_DXE/FloppyCtrl/Names.c $
+//
+// 10 8/28/09 10:29a Felixp
+// Component Name protocol implementation is upadted to support both
+// ComponentName and ComponentName2 protocols
+// (based on value of the EFI_SPECIFICATION_VERSION SDL token).
+//
+// 9 7/02/09 12:54p Yul
+// Syns to coding standards
+//
+// 8 7/02/09 10:14a Yul
+// Update Header and Tailer and syns with coding standards
+//
+// 7 4/13/07 1:38p Ambikas
+// Coding standards changes: changed spaces, dashes, etc.
+//
+// 6 4/13/07 11:59a Ambikas
+//
+// 5 4/13/07 11:53a Ambikas
+// Coding standard changes: updated the year in the AMI copyright header
+// and footer; removed commented out _asm jmp $.
+//
+// 4 4/10/07 10:01a Felixp
+// LookupHID routine renamed to LookupFloppyHid to avoid linking issue
+// when linking with PS2CTRL module
+//
+// 3 3/13/06 2:22a Felixp
+//
+// 2 3/04/05 11:31a Mandal
+//
+//**********************************************************************
+
+
+//<AMI_FHDR_START>
+//----------------------------------------------------------------------
+//
+// Name: Names.c
+//
+// Description: Definitions for EFI_COMPONENT_NAME_PROTOCOL
+// (GetDriverName, GetControllerName) for FloppyCtrl driver.
+//
+//----------------------------------------------------------------------
+//<AMI_FHDR_END>
+
+
+//----------------------------------------------------------------------
+
+#include "FloppyCtrl.h"
+
+//----------------------------------------------------------------------
+
+EFI_STATUS FloppyGetDriverName (
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN CHAR8 *Language,
+ OUT CHAR16 **DriverName );
+
+EFI_STATUS FloppyGetControllerName (
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName );
+
+extern EFI_DRIVER_BINDING_PROTOCOL gFloppyCtrlDriverBindingProtocol;
+
+CHAR16 *gFloppyDriverName = L"AMI Floppy Driver";
+CHAR16 *gFloppyCtrlName = L"Floppy Controller";
+
+//==========================================================================
+// Driver component name instance for FloppyCtl Driver
+//==========================================================================
+#ifndef EFI_COMPONENT_NAME2_PROTOCOL_GUID //old Core
+#ifndef LANGUAGE_CODE_ENGLISH
+#define LANGUAGE_CODE_ENGLISH "eng"
+#endif
+static BOOLEAN LanguageCodesEqual(
+ CONST CHAR8* LangCode1, CONST CHAR8* LangCode2
+){
+ return LangCode1[0]==LangCode2[0]
+ && LangCode1[1]==LangCode2[1]
+ && LangCode1[2]==LangCode2[2];
+}
+#endif
+EFI_COMPONENT_NAME_PROTOCOL gFloppyCtlDriverName = {
+ FloppyGetDriverName,
+ FloppyGetControllerName,
+ LANGUAGE_CODE_ENGLISH
+};
+
+//<AMI_PHDR_START>
+//---------------------------------------------------------------------------
+//
+// FUNCTION: FloppyGetDriverName
+//
+// DESCRIPTION: Retrieves a Unicode string that is the user readable name of
+// the EFI Driver.
+//
+//
+// Input:
+// This - A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.
+// Language - Pointer to a three character ISO 639-2 language identifier
+// This is language of the driver name that that the caller
+// is requesting, must match one of the languages specified
+// in SupportedLanguages. Number of languages supported by a
+// driver is up to the driver writer.
+// DriverName - A pointer to the Unicode string to return. Unicode string
+// is the name of the driver specified by This in the
+// language specified by Language.
+//
+// Output:
+// EFI_SUCCES - Unicode string for the Driver specified by This
+// and the language specified by Language was
+// returned in DriverName.
+// EFI_INVALID_PARAMETER - Language is NULL.
+// EFI_INVALID_PARAMETER - DriverName is NULL.
+// EFI_UNSUPPORTED - The driver specified by This does not support
+// language specified by Language.
+//
+//---------------------------------------------------------------------------
+//<AMI_PHDR_END>
+
+EFI_STATUS FloppyGetDriverName(
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN CHAR8 *Language,
+ OUT CHAR16 **DriverName )
+{
+ if ( !Language || !DriverName ) {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ if ( !LanguageCodesEqual( Language, LANGUAGE_CODE_ENGLISH) ) {
+ return EFI_UNSUPPORTED;
+ }
+ *DriverName = gFloppyDriverName;
+ return EFI_SUCCESS;
+}
+
+//<AMI_PHDR_START>
+//---------------------------------------------------------------------------
+//
+// FUNCTION: FloppyGetControllerName
+//
+// DESCRIPTION: Retrieves a Unicode string that is the user readable name of
+// the controller that is being managed by an EFI Driver.
+//
+// Input:
+// IN EFI_COMPONENT_NAME_PROTOCOL *This,
+// IN EFI_HANDLE Controller,
+// IN EFI_HANDLE ChildHandle OPTIONAL,
+// IN CHAR8 *Language,
+//
+// Output:
+// OUT CHAR16 **ControllerName
+// 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.
+// EFI_SUCCESS - Unicode string for the user readable name in
+// language specified by Language for the driver
+// specified by This was returned in DriverName.
+// EFI_INVALID_PARAMETER - ControllerHandle is not a valid EFI_HANDLE.
+// EFI_INVALID_PARAMETER - ChildHandle is not NULL and it is not a valid
+// EFI_HANDLE.
+// EFI_INVALID_PARAMETER - Language is NULL.
+// EFI_INVALID_PARAMETER - ControllerName is NULL.
+// EFI_UNSUPPORTED - The driver specified by This is not currently
+// managing the controller specified by
+// ControllerHandle and ChildHandle.
+// EFI_UNSUPPORTED - The driver specified by This does not support
+// the language specified by Language.
+//
+//---------------------------------------------------------------------------
+//<AMI_PHDR_END>
+
+EFI_STATUS FloppyGetControllerName(
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName )
+{
+ ACPI_HID_DEVICE_PATH * acpiDP;
+
+ if ( !Language || !ControllerName ) {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ if ( !LanguageCodesEqual( Language, LANGUAGE_CODE_ENGLISH) ) {
+ return EFI_UNSUPPORTED;
+ }
+
+ //
+ // Find the last device node in the device path and return "Supported"
+ // for mouse and/or keyboard depending on the SDL switches.
+ //
+ if ( !EFI_ERROR( GetFloppy_DP( &gFloppyCtrlDriverBindingProtocol, \
+ Controller, &acpiDP, EFI_OPEN_PROTOCOL_GET_PROTOCOL, FALSE ))
+ && LookupFloppyHid( acpiDP->HID, acpiDP->UID )) {
+ *ControllerName = gFloppyCtrlName;
+ return EFI_SUCCESS;
+ }
+ return EFI_UNSUPPORTED;
+}
+
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2009, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//**********************************************************************