efi: Make unicode printf available to the app

This is needed to show unicode strings. Enable this code in the app.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
Simon Glass 2021-12-29 11:57:35 -07:00 committed by Heinrich Schuchardt
parent eaaa5fbbe4
commit 726cd9836d
2 changed files with 5 additions and 6 deletions

View file

@ -52,7 +52,7 @@ config CC_OPTIMIZE_LIBS_FOR_SPEED
config CHARSET config CHARSET
bool bool
default y if UT_UNICODE || EFI_LOADER || UFS default y if UT_UNICODE || EFI_LOADER || UFS || EFI_APP
help help
Enables support for various conversions between different Enables support for various conversions between different
character sets, such as between unicode representations and character sets, such as between unicode representations and

View file

@ -276,9 +276,8 @@ static char *string(char *buf, char *end, char *s, int field_width,
} }
/* U-Boot uses UTF-16 strings in the EFI context only. */ /* U-Boot uses UTF-16 strings in the EFI context only. */
#if CONFIG_IS_ENABLED(EFI_LOADER) && !defined(API_BUILD) static __maybe_unused char *string16(char *buf, char *end, u16 *s,
static char *string16(char *buf, char *end, u16 *s, int field_width, int field_width, int precision, int flags)
int precision, int flags)
{ {
const u16 *str = s ? s : L"<NULL>"; const u16 *str = s ? s : L"<NULL>";
ssize_t i, len = utf16_strnlen(str, precision); ssize_t i, len = utf16_strnlen(str, precision);
@ -317,7 +316,6 @@ static char *device_path_string(char *buf, char *end, void *dp, int field_width,
return buf; return buf;
} }
#endif #endif
#endif
static char *mac_address_string(char *buf, char *end, u8 *addr, int field_width, static char *mac_address_string(char *buf, char *end, u8 *addr, int field_width,
int precision, int flags) int precision, int flags)
@ -616,7 +614,8 @@ repeat:
case 's': case 's':
/* U-Boot uses UTF-16 strings in the EFI context only. */ /* U-Boot uses UTF-16 strings in the EFI context only. */
#if CONFIG_IS_ENABLED(EFI_LOADER) && !defined(API_BUILD) #if (CONFIG_IS_ENABLED(EFI_LOADER) || CONFIG_IS_ENABLED(EFI_APP)) && \
!defined(API_BUILD)
if (qualifier == 'l') { if (qualifier == 'l') {
str = string16(str, end, va_arg(args, u16 *), str = string16(str, end, va_arg(args, u16 *),
field_width, precision, flags); field_width, precision, flags);