mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-31 11:13:53 +01:00 
			
		
		
		
	git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5820 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Provides a way for 3rd party applications to register themselves for launch by the
 | |
|   Boot Manager based on hot key
 | |
| 
 | |
| Copyright (c) 2007 - 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 _HOTKEY_H_
 | |
| #define _HOTKEY_H_
 | |
| 
 | |
| #include "Bds.h"
 | |
| #include "String.h"
 | |
| 
 | |
| #define GET_KEY_CODE_COUNT(KeyOptions)      (((KeyOptions) & EFI_KEY_CODE_COUNT) >> 8)
 | |
| 
 | |
| #define BDS_HOTKEY_OPTION_SIGNATURE EFI_SIGNATURE_32 ('B', 'd', 'K', 'O')
 | |
| typedef struct {
 | |
|   UINTN                     Signature;
 | |
|   LIST_ENTRY                Link;
 | |
| 
 | |
|   EFI_HANDLE                NotifyHandle;
 | |
|   UINT16                    BootOptionNumber;
 | |
|   UINT8                     CodeCount;
 | |
|   UINT8                     WaitingKey;
 | |
|   EFI_KEY_DATA              KeyData[3];
 | |
| } BDS_HOTKEY_OPTION;
 | |
| 
 | |
| #define BDS_HOTKEY_OPTION_FROM_LINK(a) CR (a, BDS_HOTKEY_OPTION, Link, BDS_HOTKEY_OPTION_SIGNATURE)
 | |
| 
 | |
| #define VAR_KEY_ORDER       L"KeyOrder"
 | |
| 
 | |
| /**
 | |
| 
 | |
|   Create Key#### for the given hotkey.
 | |
| 
 | |
| 
 | |
|   @param KeyOption       - The Hot Key Option to be added.
 | |
|   @param KeyOptionNumber - The key option number for Key#### (optional).
 | |
| 
 | |
|   @retval  EFI_SUCCESS            Register hotkey successfully.
 | |
|   @retval  EFI_INVALID_PARAMETER  The hotkey option is invalid.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| RegisterHotkey (
 | |
|   IN EFI_KEY_OPTION     *KeyOption,
 | |
|   OUT UINT16            *KeyOptionNumber
 | |
|   );
 | |
| 
 | |
| /**
 | |
| 
 | |
|   Delete Key#### for the given Key Option number.
 | |
| 
 | |
| 
 | |
|   @param KeyOptionNumber - Key option number for Key####
 | |
| 
 | |
|   @retval  EFI_SUCCESS            Unregister hotkey successfully.
 | |
|   @retval  EFI_NOT_FOUND          No Key#### is found for the given Key Option number.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| UnregisterHotkey (
 | |
|   IN UINT16             KeyOptionNumber
 | |
|   );
 | |
| 
 | |
| 
 | |
| /**
 | |
| 
 | |
|   Process all the "Key####" variables, associate Hotkeys with corresponding Boot Options.
 | |
| 
 | |
| 
 | |
|   @param VOID
 | |
| 
 | |
|   @retval  EFI_SUCCESS    Hotkey services successfully initialized.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| InitializeHotkeyService (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| #endif
 |