diff options
Diffstat (limited to 'lib/efi_loader/efi_hii_config.c')
| -rw-r--r-- | lib/efi_loader/efi_hii_config.c | 149 | 
1 files changed, 149 insertions, 0 deletions
| diff --git a/lib/efi_loader/efi_hii_config.c b/lib/efi_loader/efi_hii_config.c new file mode 100644 index 00000000000..ae0f3ecd3b1 --- /dev/null +++ b/lib/efi_loader/efi_hii_config.c @@ -0,0 +1,149 @@ +// 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 <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 +}; | 
