diff mbox series

[v4,13/17] efi_loader: new function efi_memcpy_runtime()

Message ID 20200711220544.120976-14-xypron.glpk@gmx.de
State Accepted
Commit b0dd8cb4076ea178df93ad56be6636dcdb444c33
Headers show
Series efi_loader: non-volatile and runtime variables | expand

Commit Message

Heinrich Schuchardt July 11, 2020, 10:05 p.m. UTC
Provide a memcpy() function that we can use at UEFI runtime.

Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
 include/efi_loader.h         |  3 +++
 lib/efi_loader/efi_runtime.c | 19 +++++++++++++++++++
 2 files changed, 22 insertions(+)

--
2.27.0
diff mbox series

Patch

diff --git a/include/efi_loader.h b/include/efi_loader.h
index be6cede92f..98944640be 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -792,6 +792,9 @@  bool efi_secure_boot_enabled(void);
 bool efi_image_parse(void *efi, size_t len, struct efi_image_regions **regp,
 		     WIN_CERTIFICATE **auth, size_t *auth_len);

+/* runtime implementation of memcpy() */
+void efi_memcpy_runtime(void *dest, const void *src, size_t n);
+
 #else /* CONFIG_IS_ENABLED(EFI_LOADER) */

 /* Without CONFIG_EFI_LOADER we don't have a runtime section, stub it out */
diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c
index a4aa1d8b6c..5b6506fbdc 100644
--- a/lib/efi_loader/efi_runtime.c
+++ b/lib/efi_loader/efi_runtime.c
@@ -137,6 +137,25 @@  efi_status_t efi_init_runtime_supported(void)
 	return ret;
 }

+/**
+ * efi_memcpy_runtime() - copy memory area
+ *
+ * At runtime memcpy() is not available.
+ *
+ * @dest:	destination buffer
+ * @src:	source buffer
+ * @n:		number of bytes to copy
+ * Return:	pointer to destination buffer
+ */
+void __efi_runtime efi_memcpy_runtime(void *dest, const void *src, size_t n)
+{
+	u8 *d = dest;
+	const u8 *s = src;
+
+	for (; n; --n)
+		*d++ = *s++;
+}
+
 /**
  * efi_update_table_header_crc32() - Update crc32 in table header
  *