blob: 37d8c6629e2c24235f62d2fd0d83b91a060f7b66 [file] [log] [blame]
AKASHI Takahiroca8aa712019-01-21 12:13:00 +09001// SPDX-License-Identifier: GPL-2.0+
2/*
Heinrich Schuchardt2a2654f2020-12-07 18:20:57 +01003 * EFI Human Interface Infrastructure ... Configuration
4 *
5 * Copyright (c) 2017 Leif Lindholm
6 * Copyright (c) 2018 AKASHI Takahiro, Linaro Limited
AKASHI Takahiroca8aa712019-01-21 12:13:00 +09007 *
Heinrich Schuchardt2a2654f2020-12-07 18:20:57 +01008 * As this is still a non-working stub and the protocol is neither required
9 * by the EFI shell nor by the UEFI SCT this module has been removed from
10 * the Makefile.
AKASHI Takahiroca8aa712019-01-21 12:13:00 +090011 */
12
Heinrich Schuchardt955a3212025-01-16 20:26:59 +010013#define LOG_CATEGORY LOGC_EFI
14
AKASHI Takahiroca8aa712019-01-21 12:13:00 +090015#include <efi_loader.h>
16
17const efi_guid_t efi_guid_hii_config_routing_protocol
18 = EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID;
19const efi_guid_t efi_guid_hii_config_access_protocol
20 = EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID;
21
22/*
23 * EFI_HII_CONFIG_ROUTING_PROTOCOL
24 */
25
26static efi_status_t EFIAPI
27extract_config(const struct efi_hii_config_routing_protocol *this,
28 const efi_string_t request,
29 efi_string_t *progress,
30 efi_string_t *results)
31{
32 EFI_ENTRY("%p, \"%ls\", %p, %p", this, request, progress, results);
33
34 return EFI_EXIT(EFI_OUT_OF_RESOURCES);
35}
36
37static efi_status_t EFIAPI
38export_config(const struct efi_hii_config_routing_protocol *this,
39 efi_string_t *results)
40{
41 EFI_ENTRY("%p, %p", this, results);
42
43 return EFI_EXIT(EFI_OUT_OF_RESOURCES);
44}
45
46static efi_status_t EFIAPI
47route_config(const struct efi_hii_config_routing_protocol *this,
48 const efi_string_t configuration,
49 efi_string_t *progress)
50{
51 EFI_ENTRY("%p, \"%ls\", %p", this, configuration, progress);
52
53 return EFI_EXIT(EFI_OUT_OF_RESOURCES);
54}
55
56static efi_status_t EFIAPI
57block_to_config(const struct efi_hii_config_routing_protocol *this,
58 const efi_string_t config_request,
59 const u8 *block,
60 const efi_uintn_t block_size,
61 efi_string_t *config,
62 efi_string_t *progress)
63{
64 EFI_ENTRY("%p, \"%ls\", %p, %zu, %p, %p", this, config_request,
65 block, block_size, config, progress);
66
67 return EFI_EXIT(EFI_OUT_OF_RESOURCES);
68}
69
70static efi_status_t EFIAPI
71config_to_block(const struct efi_hii_config_routing_protocol *this,
72 const efi_string_t config_resp,
73 const u8 *block,
74 const efi_uintn_t *block_size,
75 efi_string_t *progress)
76{
77 EFI_ENTRY("%p, \"%ls\", %p, %p, %p", this, config_resp,
78 block, block_size, progress);
79
80 return EFI_EXIT(EFI_OUT_OF_RESOURCES);
81}
82
83static efi_status_t EFIAPI
84get_alt_config(const struct efi_hii_config_routing_protocol *this,
85 const efi_string_t config_resp,
86 const efi_guid_t *guid,
87 const efi_string_t name,
88 const struct efi_device_path *device_path,
89 const efi_string_t alt_cfg_id,
90 efi_string_t *alt_cfg_resp)
91{
Heinrich Schuchardt282249d2022-01-16 14:15:31 +010092 EFI_ENTRY("%p, \"%ls\", %pUs, \"%ls\", %p, \"%ls\", %p",
AKASHI Takahiroca8aa712019-01-21 12:13:00 +090093 this, config_resp, guid, name, device_path,
94 alt_cfg_id, alt_cfg_resp);
95
96 return EFI_EXIT(EFI_OUT_OF_RESOURCES);
97}
98
99/*
100 * EFI_HII_ACCESS_PROTOCOL
101 */
102
103efi_status_t EFIAPI
104extract_config_access(const struct efi_hii_config_access_protocol *this,
105 const efi_string_t request,
106 efi_string_t *progress,
107 efi_string_t *results)
108{
109 EFI_ENTRY("%p, \"%ls\", %p, %p", this, request, progress, results);
110
111 return EFI_EXIT(EFI_OUT_OF_RESOURCES);
112};
113
114efi_status_t EFIAPI
115route_config_access(const struct efi_hii_config_access_protocol *this,
116 const efi_string_t configuration,
117 efi_string_t *progress)
118{
119 EFI_ENTRY("%p, \"%ls\", %p", this, configuration, progress);
120
121 return EFI_EXIT(EFI_OUT_OF_RESOURCES);
122};
123
124efi_status_t EFIAPI
125form_callback(const struct efi_hii_config_access_protocol *this,
126 efi_browser_action_t action,
127 efi_question_id_t question_id,
128 u8 type,
129 union efi_ifr_type_value *value,
130 efi_browser_action_request_t *action_request)
131{
Heinrich Schuchardt4b6f19f2019-01-23 22:55:36 +0100132 EFI_ENTRY("%p, 0x%zx, 0x%x, 0x%x, %p, %p", this, action,
AKASHI Takahiroca8aa712019-01-21 12:13:00 +0900133 question_id, type, value, action_request);
134
135 return EFI_EXIT(EFI_DEVICE_ERROR);
136};
137
138const struct efi_hii_config_routing_protocol efi_hii_config_routing = {
139 .extract_config = extract_config,
140 .export_config = export_config,
141 .route_config = route_config,
142 .block_to_config = block_to_config,
143 .config_to_block = config_to_block,
144 .get_alt_config = get_alt_config
145};
146
147const struct efi_hii_config_access_protocol efi_hii_config_access = {
148 .extract_config_access = extract_config_access,
149 .route_config_access = route_config_access,
150 .form_callback = form_callback
151};