summaryrefslogtreecommitdiff
path: root/include/lib/utils.h
diff options
context:
space:
mode:
authordavidcunado-arm <david.cunado@arm.com>2017-02-16 14:49:37 +0000
committerGitHub <noreply@github.com>2017-02-16 14:49:37 +0000
commit108e4df7f167bccc2c9ccef87bdd62d15c3aa74b (patch)
treeeab88468edac4c5281fc3116536de4726368a70d /include/lib/utils.h
parent406a4ade146a4d0caa8a763de8e024a92085a08a (diff)
parent32f0d3c6c3fb1fb9353ec0b82ddb099281b9328c (diff)
Merge pull request #834 from douglas-raillard-arm/dr/use_dc_zva_zeroing
Use DC ZVA instruction to zero memory
Diffstat (limited to 'include/lib/utils.h')
-rw-r--r--include/lib/utils.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/lib/utils.h b/include/lib/utils.h
index b6bc9af6..69bbb430 100644
--- a/include/lib/utils.h
+++ b/include/lib/utils.h
@@ -80,4 +80,35 @@
# define ULL(_x) (_x##ull)
#endif
+/*
+ * C code should be put in this part of the header to avoid breaking ASM files
+ * or linker scripts including it.
+ */
+#if !(defined(__LINKER__) || defined(__ASSEMBLY__))
+
+#include <types.h>
+
+/*
+ * Fill a region of normal memory of size "length" in bytes with zero bytes.
+ *
+ * WARNING: This function can only operate on normal memory. This means that
+ * the MMU must be enabled when using this function. Otherwise, use
+ * zeromem.
+ */
+void zero_normalmem(void *mem, u_register_t length);
+
+/*
+ * Fill a region of memory of size "length" in bytes with null bytes.
+ *
+ * Unlike zero_normalmem, this function has no restriction on the type of
+ * memory targeted and can be used for any device memory as well as normal
+ * memory. This function must be used instead of zero_normalmem when MMU is
+ * disabled.
+ *
+ * NOTE: When data cache and MMU are enabled, prefer zero_normalmem for faster
+ * zeroing.
+ */
+void zeromem(void *mem, u_register_t length);
+#endif /* !(defined(__LINKER__) || defined(__ASSEMBLY__)) */
+
#endif /* __UTILS_H__ */