diff options
author | davidcunado-arm <david.cunado@arm.com> | 2017-02-16 14:49:37 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-16 14:49:37 +0000 |
commit | 108e4df7f167bccc2c9ccef87bdd62d15c3aa74b (patch) | |
tree | eab88468edac4c5281fc3116536de4726368a70d /include/lib/utils.h | |
parent | 406a4ade146a4d0caa8a763de8e024a92085a08a (diff) | |
parent | 32f0d3c6c3fb1fb9353ec0b82ddb099281b9328c (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.h | 31 |
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__ */ |