• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2 *
3 *  Copyright (c) 2011-2016, ARM Limited. All rights reserved.
4 *
5 *  This program and the accompanying materials
6 *  are licensed and made available under the terms and conditions of the BSD License
7 *  which accompanies this distribution.  The full text of the license may be found at
8 *  http://opensource.org/licenses/bsd-license.php
9 *
10 *  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 *  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 *
13 **/
14 
15 #include "MarvellYukon.h"
16 
17 //
18 // EFI Component Name Functions
19 //
20 /**
21   Retrieves a Unicode string that is the user readable name of the driver.
22 
23   This function retrieves the user readable name of a driver in the form of a
24   Unicode string. If the driver specified by This has a user readable name in
25   the language specified by Language, then a pointer to the driver name is
26   returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
27   by This does not support the language specified by Language,
28   then EFI_UNSUPPORTED is returned.
29 
30    <at> param  This[in]               A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
31                                       EFI_COMPONENT_NAME_PROTOCOL instance.
32 
33    <at> param  Language[in]           A pointer to a Null-terminated ASCII string
34                                       array indicating the language. This is the
35                                       language of the driver name that the caller is
36                                       requesting, and it must match one of the
37                                       languages specified in SupportedLanguages. The
38                                       number of languages supported by a driver is up
39                                       to the driver writer. Language is specified
40                                       in RFC 4646 or ISO 639-2 language code format.
41 
42    <at> param  DriverName[out]        A pointer to the Unicode string to return.
43                                       This Unicode string is the name of the
44                                       driver specified by This in the language
45                                       specified by Language.
46 
47    <at> retval EFI_SUCCESS            The Unicode string for the Driver specified by
48                                       This and the language specified by Language was
49                                       returned in DriverName.
50 
51    <at> retval EFI_INVALID_PARAMETER  Language is NULL.
52 
53    <at> retval EFI_INVALID_PARAMETER  DriverName is NULL.
54 
55    <at> retval EFI_UNSUPPORTED        The driver specified by This does not support
56                                       the language specified by Language.
57 
58 **/
59 EFI_STATUS
60 EFIAPI
61 SimpleNetworkComponentNameGetDriverName (
62     IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
63     IN  CHAR8                        *Language,
64     OUT CHAR16                       **DriverName
65     );
66 
67 
68 /**
69   Retrieves a Unicode string that is the user readable name of the controller
70   that is being managed by a driver.
71 
72   This function retrieves the user readable name of the controller specified by
73   ControllerHandle and ChildHandle in the form of a Unicode string. If the
74   driver specified by This has a user readable name in the language specified by
75   Language, then a pointer to the controller name is returned in ControllerName,
76   and EFI_SUCCESS is returned.  If the driver specified by This is not currently
77   managing the controller specified by ControllerHandle and ChildHandle,
78   then EFI_UNSUPPORTED is returned.  If the driver specified by This does not
79   support the language specified by Language, then EFI_UNSUPPORTED is returned.
80 
81    <at> param  This[in]               A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
82                                       EFI_COMPONENT_NAME_PROTOCOL instance.
83 
84    <at> param  ControllerHandle[in]   The handle of a controller that the driver
85                                       specified by This is managing.  This handle
86                                       specifies the controller whose name is to be
87                                       returned.
88 
89    <at> param  ChildHandle[in]        The handle of the child controller to retrieve
90                                       the name of.  This is an optional parameter that
91                                       may be NULL.  It will be NULL for device
92                                       drivers.  It will also be NULL for a bus drivers
93                                       that wish to retrieve the name of the bus
94                                       controller.  It will not be NULL for a bus
95                                       driver that wishes to retrieve the name of a
96                                       child controller.
97 
98    <at> param  Language[in]           A pointer to a Null-terminated ASCII string
99                                       array indicating the language.  This is the
100                                       language of the driver name that the caller is
101                                       requesting, and it must match one of the
102                                       languages specified in SupportedLanguages. The
103                                       number of languages supported by a driver is up
104                                       to the driver writer. Language is specified in
105                                       RFC 4646 or ISO 639-2 language code format.
106 
107    <at> param  ControllerName[out]    A pointer to the Unicode string to return.
108                                       This Unicode string is the name of the
109                                       controller specified by ControllerHandle and
110                                       ChildHandle in the language specified by
111                                       Language from the point of view of the driver
112                                       specified by This.
113 
114    <at> retval EFI_SUCCESS            The Unicode string for the user readable name in
115                                       the language specified by Language for the
116                                       driver specified by This was returned in
117                                       DriverName.
118 
119    <at> retval EFI_INVALID_PARAMETER  ControllerHandle is not a valid EFI_HANDLE.
120 
121    <at> retval EFI_INVALID_PARAMETER  ChildHandle is not NULL and it is not a valid
122                                       EFI_HANDLE.
123 
124    <at> retval EFI_INVALID_PARAMETER  Language is NULL.
125 
126    <at> retval EFI_INVALID_PARAMETER  ControllerName is NULL.
127 
128    <at> retval EFI_UNSUPPORTED        The driver specified by This is not currently
129                                       managing the controller specified by
130                                       ControllerHandle and ChildHandle.
131 
132    <at> retval EFI_UNSUPPORTED        The driver specified by This does not support
133                                       the language specified by Language.
134 
135 **/
136 EFI_STATUS
137 EFIAPI
138 SimpleNetworkComponentNameGetControllerName (
139     IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
140     IN  EFI_HANDLE                                      ControllerHandle,
141     IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,
142     IN  CHAR8                                           *Language,
143     OUT CHAR16                                          **ControllerName
144     );
145 
146 
147 //
148 // EFI Component Name Protocol
149 //
150 GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL  gSimpleNetworkComponentName = {
151   SimpleNetworkComponentNameGetDriverName,
152   SimpleNetworkComponentNameGetControllerName,
153   "eng"
154 };
155 
156 //
157 // EFI Component Name 2 Protocol
158 //
159 GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gSimpleNetworkComponentName2 = {
160   (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) SimpleNetworkComponentNameGetDriverName,
161   (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) SimpleNetworkComponentNameGetControllerName,
162   "en"
163 };
164 
165 
166 GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mSimpleNetworkDriverNameTable[] = {
167   {
168     "eng;en",
169     L"Marvell Yukon Simple Network Protocol Driver"
170   },
171   {
172     NULL,
173     NULL
174   }
175 };
176 
177 /**
178   Retrieves a Unicode string that is the user readable name of the driver.
179 
180   This function retrieves the user readable name of a driver in the form of a
181   Unicode string. If the driver specified by This has a user readable name in
182   the language specified by Language, then a pointer to the driver name is
183   returned in DriverName, and EFI_SUCCESS is returned. If the driver specified
184   by This does not support the language specified by Language,
185   then EFI_UNSUPPORTED is returned.
186 
187    <at> param  This[in]               A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or
188                                       EFI_COMPONENT_NAME_PROTOCOL instance.
189 
190    <at> param  Language[in]           A pointer to a Null-terminated ASCII string
191                                       array indicating the language. This is the
192                                       language of the driver name that the caller is
193                                       requesting, and it must match one of the
194                                       languages specified in SupportedLanguages. The
195                                       number of languages supported by a driver is up
196                                       to the driver writer. Language is specified
197                                       in RFC 4646 or ISO 639-2 language code format.
198 
199    <at> param  DriverName[out]        A pointer to the Unicode string to return.
200                                       This Unicode string is the name of the
201                                       driver specified by This in the language
202                                       specified by Language.
203 
204    <at> retval EFI_SUCCESS            The Unicode string for the Driver specified by
205                                       This and the language specified by Language was
206                                       returned in DriverName.
207 
208    <at> retval EFI_INVALID_PARAMETER  Language is NULL.
209 
210    <at> retval EFI_INVALID_PARAMETER  DriverName is NULL.
211 
212    <at> retval EFI_UNSUPPORTED        The driver specified by This does not support
213                                       the language specified by Language.
214 
215 **/
216 EFI_STATUS
217 EFIAPI
SimpleNetworkComponentNameGetDriverName(IN EFI_COMPONENT_NAME_PROTOCOL * This,IN CHAR8 * Language,OUT CHAR16 ** DriverName)218 SimpleNetworkComponentNameGetDriverName (
219     IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
220     IN  CHAR8                        *Language,
221     OUT CHAR16                       **DriverName
222     )
223 {
224   return LookupUnicodeString2 (
225         Language,
226         This->SupportedLanguages,
227         mSimpleNetworkDriverNameTable,
228         DriverName,
229         (BOOLEAN)(This == &gSimpleNetworkComponentName)
230         );
231 }
232 
233 /**
234   Retrieves a Unicode string that is the user readable name of the controller
235   that is being managed by a driver.
236 
237   This function retrieves the user readable name of the controller specified by
238   ControllerHandle and ChildHandle in the form of a Unicode string. If the
239   driver specified by This has a user readable name in the language specified by
240   Language, then a pointer to the controller name is returned in ControllerName,
241   and EFI_SUCCESS is returned.  If the driver specified by This is not currently
242   managing the controller specified by ControllerHandle and ChildHandle,
243   then EFI_UNSUPPORTED is returned.  If the driver specified by This does not
244   support the language specified by Language, then EFI_UNSUPPORTED is returned.
245   Currently not implemented.
246 
247    <at> param  This[in]               A pointer to the EFI_COMPONENT_NAME2_PROTOCOL
248                                       or EFI_COMPONENT_NAME_PROTOCOL instance.
249 
250    <at> param  ControllerHandle[in]   The handle of a controller that the driver
251                                       specified by This is managing.  This handle
252                                       specifies the controller whose name is to be
253                                       returned.
254 
255    <at> param  ChildHandle[in]        The handle of the child controller to retrieve
256                                       the name of.  This is an optional parameter that
257                                       may be NULL.  It will be NULL for device
258                                       drivers.  It will also be NULL for a bus drivers
259                                       that wish to retrieve the name of the bus
260                                       controller.  It will not be NULL for a bus
261                                       driver that wishes to retrieve the name of a
262                                       child controller.
263 
264    <at> param  Language[in]           A pointer to a Null-terminated ASCII string
265                                       array indicating the language.  This is the
266                                       language of the driver name that the caller is
267                                       requesting, and it must match one of the
268                                       languages specified in SupportedLanguages. The
269                                       number of languages supported by a driver is up
270                                       to the driver writer. Language is specified in
271                                       RFC 4646 or ISO 639-2 language code format.
272 
273    <at> param  ControllerName[out]    A pointer to the Unicode string to return.
274                                       This Unicode string is the name of the
275                                       controller specified by ControllerHandle and
276                                       ChildHandle in the language specified by
277                                       Language from the point of view of the driver
278                                       specified by This.
279 
280    <at> retval EFI_SUCCESS            The Unicode string for the user readable name in
281                                       the language specified by Language for the
282                                       driver specified by This was returned in
283                                       DriverName.
284 
285    <at> retval EFI_INVALID_PARAMETER  ControllerHandle is not a valid EFI_HANDLE.
286 
287    <at> retval EFI_INVALID_PARAMETER  ChildHandle is not NULL and it is not a valid
288                                       EFI_HANDLE.
289 
290    <at> retval EFI_INVALID_PARAMETER  Language is NULL.
291 
292    <at> retval EFI_INVALID_PARAMETER  ControllerName is NULL.
293 
294    <at> retval EFI_UNSUPPORTED        The driver specified by This is not currently
295                                       managing the controller specified by
296                                       ControllerHandle and ChildHandle.
297 
298    <at> retval EFI_UNSUPPORTED        The driver specified by This does not support
299                                       the language specified by Language.
300 
301 **/
302 EFI_STATUS
303 EFIAPI
SimpleNetworkComponentNameGetControllerName(IN EFI_COMPONENT_NAME_PROTOCOL * This,IN EFI_HANDLE ControllerHandle,IN EFI_HANDLE ChildHandle OPTIONAL,IN CHAR8 * Language,OUT CHAR16 ** ControllerName)304 SimpleNetworkComponentNameGetControllerName (
305     IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
306     IN  EFI_HANDLE                                      ControllerHandle,
307     IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,
308     IN  CHAR8                                           *Language,
309     OUT CHAR16                                          **ControllerName
310     )
311 {
312   return EFI_UNSUPPORTED;
313 }
314