summaryrefslogtreecommitdiff
path: root/lib/efi_loader/efi_string.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-10-07 11:51:05 -0400
committerTom Rini <trini@konsulko.com>2022-10-07 11:51:05 -0400
commit11ef7f07ce60b60fb78c330b3ae35fd1037e50c1 (patch)
treefbbc12ec51fc3651d5fce002ebf38c76621dac8e /lib/efi_loader/efi_string.c
parentf5717231abad983b4d8f87db612ae60dec86cb1b (diff)
parenta75e8355eaa561ebd6128c92a90288d5d7c1f060 (diff)
Merge tag 'efi-2023-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for efi-2023-01-rc1 UEFI: * Provide driver binding protocol to registered events for block devices * Code simplification and refactoring * Fix pylint errors in test_efi_secboot Other: * Improve checks for register ranges
Diffstat (limited to 'lib/efi_loader/efi_string.c')
-rw-r--r--lib/efi_loader/efi_string.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/efi_loader/efi_string.c b/lib/efi_loader/efi_string.c
index 8bf1e493b89..e21e09c9461 100644
--- a/lib/efi_loader/efi_string.c
+++ b/lib/efi_loader/efi_string.c
@@ -8,6 +8,7 @@
#include <common.h>
#include <charset.h>
#include <efi_loader.h>
+#include <malloc.h>
/**
* efi_create_indexed_name - create a string name with an index
@@ -41,3 +42,26 @@ u16 *efi_create_indexed_name(u16 *buffer, size_t buffer_size, const char *name,
return p;
}
+
+/**
+ * efi_convert_string - Convert an ASCII or UTF-8 string to UTF-16
+ * @str: String to be converted
+ *
+ * Return: Converted string in UTF-16 format. The caller is responsible for
+ * freeing this string when it is no longer needed.
+ */
+efi_string_t efi_convert_string(const char *str)
+{
+ efi_string_t str_16, tmp;
+ size_t sz_16;
+
+ sz_16 = utf8_utf16_strlen(str);
+ str_16 = calloc(sz_16 + 1, sizeof(u16));
+ if (!str_16)
+ return NULL;
+
+ tmp = str_16;
+ utf8_utf16_strcpy(&tmp, str);
+
+ return str_16;
+}