mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00:00 
			
		
		
		
	For printing GUIDs with macro EFI_ENTRY use %pUs instead of %pUl to provide readable debug output. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
		
			
				
	
	
		
			151 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier:     GPL-2.0+
 | |
| /*
 | |
|  * EFI Human Interface Infrastructure ... Configuration
 | |
|  *
 | |
|  * Copyright (c) 2017 Leif Lindholm
 | |
|  * Copyright (c) 2018 AKASHI Takahiro, Linaro Limited
 | |
|  *
 | |
|  * As this is still a non-working stub and the protocol is neither required
 | |
|  * by the EFI shell nor by the UEFI SCT this module has been removed from
 | |
|  * the Makefile.
 | |
|  */
 | |
| 
 | |
| #include <common.h>
 | |
| #include <efi_loader.h>
 | |
| 
 | |
| const efi_guid_t efi_guid_hii_config_routing_protocol
 | |
| 		= EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID;
 | |
| const efi_guid_t efi_guid_hii_config_access_protocol
 | |
| 		= EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID;
 | |
| 
 | |
| /*
 | |
|  * EFI_HII_CONFIG_ROUTING_PROTOCOL
 | |
|  */
 | |
| 
 | |
| static efi_status_t EFIAPI
 | |
| extract_config(const struct efi_hii_config_routing_protocol *this,
 | |
| 	       const efi_string_t request,
 | |
| 	       efi_string_t *progress,
 | |
| 	       efi_string_t *results)
 | |
| {
 | |
| 	EFI_ENTRY("%p, \"%ls\", %p, %p", this, request, progress, results);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_OUT_OF_RESOURCES);
 | |
| }
 | |
| 
 | |
| static efi_status_t EFIAPI
 | |
| export_config(const struct efi_hii_config_routing_protocol *this,
 | |
| 	      efi_string_t *results)
 | |
| {
 | |
| 	EFI_ENTRY("%p, %p", this, results);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_OUT_OF_RESOURCES);
 | |
| }
 | |
| 
 | |
| static efi_status_t EFIAPI
 | |
| route_config(const struct efi_hii_config_routing_protocol *this,
 | |
| 	     const efi_string_t configuration,
 | |
| 	     efi_string_t *progress)
 | |
| {
 | |
| 	EFI_ENTRY("%p, \"%ls\", %p", this, configuration, progress);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_OUT_OF_RESOURCES);
 | |
| }
 | |
| 
 | |
| static efi_status_t EFIAPI
 | |
| block_to_config(const struct efi_hii_config_routing_protocol *this,
 | |
| 		const efi_string_t config_request,
 | |
| 		const u8 *block,
 | |
| 		const efi_uintn_t block_size,
 | |
| 		efi_string_t *config,
 | |
| 		efi_string_t *progress)
 | |
| {
 | |
| 	EFI_ENTRY("%p, \"%ls\", %p, %zu, %p, %p", this, config_request,
 | |
| 		  block, block_size, config, progress);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_OUT_OF_RESOURCES);
 | |
| }
 | |
| 
 | |
| static efi_status_t EFIAPI
 | |
| config_to_block(const struct efi_hii_config_routing_protocol *this,
 | |
| 		const efi_string_t config_resp,
 | |
| 		const u8 *block,
 | |
| 		const efi_uintn_t *block_size,
 | |
| 		efi_string_t *progress)
 | |
| {
 | |
| 	EFI_ENTRY("%p, \"%ls\", %p, %p, %p", this, config_resp,
 | |
| 		  block, block_size, progress);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_OUT_OF_RESOURCES);
 | |
| }
 | |
| 
 | |
| static efi_status_t EFIAPI
 | |
| get_alt_config(const struct efi_hii_config_routing_protocol *this,
 | |
| 	       const efi_string_t config_resp,
 | |
| 	       const efi_guid_t *guid,
 | |
| 	       const efi_string_t name,
 | |
| 	       const struct efi_device_path *device_path,
 | |
| 	       const efi_string_t alt_cfg_id,
 | |
| 	       efi_string_t *alt_cfg_resp)
 | |
| {
 | |
| 	EFI_ENTRY("%p, \"%ls\", %pUs, \"%ls\", %p, \"%ls\", %p",
 | |
| 		  this, config_resp, guid, name, device_path,
 | |
| 		  alt_cfg_id, alt_cfg_resp);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_OUT_OF_RESOURCES);
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * EFI_HII_ACCESS_PROTOCOL
 | |
|  */
 | |
| 
 | |
| efi_status_t EFIAPI
 | |
| extract_config_access(const struct efi_hii_config_access_protocol *this,
 | |
| 		      const efi_string_t request,
 | |
| 		      efi_string_t *progress,
 | |
| 		      efi_string_t *results)
 | |
| {
 | |
| 	EFI_ENTRY("%p, \"%ls\", %p, %p", this, request, progress, results);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_OUT_OF_RESOURCES);
 | |
| };
 | |
| 
 | |
| efi_status_t EFIAPI
 | |
| route_config_access(const struct efi_hii_config_access_protocol *this,
 | |
| 		    const efi_string_t configuration,
 | |
| 		    efi_string_t *progress)
 | |
| {
 | |
| 	EFI_ENTRY("%p, \"%ls\", %p", this, configuration, progress);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_OUT_OF_RESOURCES);
 | |
| };
 | |
| 
 | |
| efi_status_t EFIAPI
 | |
| form_callback(const struct efi_hii_config_access_protocol *this,
 | |
| 	      efi_browser_action_t action,
 | |
| 	      efi_question_id_t question_id,
 | |
| 	      u8 type,
 | |
| 	      union efi_ifr_type_value *value,
 | |
| 	      efi_browser_action_request_t *action_request)
 | |
| {
 | |
| 	EFI_ENTRY("%p, 0x%zx, 0x%x, 0x%x, %p, %p", this, action,
 | |
| 		  question_id, type, value, action_request);
 | |
| 
 | |
| 	return EFI_EXIT(EFI_DEVICE_ERROR);
 | |
| };
 | |
| 
 | |
| const struct efi_hii_config_routing_protocol efi_hii_config_routing = {
 | |
| 	.extract_config = extract_config,
 | |
| 	.export_config = export_config,
 | |
| 	.route_config = route_config,
 | |
| 	.block_to_config = block_to_config,
 | |
| 	.config_to_block = config_to_block,
 | |
| 	.get_alt_config = get_alt_config
 | |
| };
 | |
| 
 | |
| const struct efi_hii_config_access_protocol efi_hii_config_access = {
 | |
| 	.extract_config_access = extract_config_access,
 | |
| 	.route_config_access = route_config_access,
 | |
| 	.form_callback = form_callback
 | |
| };
 |