diff options
author | Michael Brown | 2016-05-09 17:03:19 +0200 |
---|---|---|
committer | Michael Brown | 2016-05-11 09:15:52 +0200 |
commit | 95716ece91a29f1d122741ec3dd307765d96e314 (patch) | |
tree | a1667c0153611091b46b5a765d97f4dda9505ba6 /src/arch/arm32 | |
parent | [libc] Avoid implicit assumptions about potentially-optimised memcpy() (diff) | |
download | ipxe-95716ece91a29f1d122741ec3dd307765d96e314.tar.gz ipxe-95716ece91a29f1d122741ec3dd307765d96e314.tar.xz ipxe-95716ece91a29f1d122741ec3dd307765d96e314.zip |
[arm] Add optimised string functions for 64-bit ARM
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/arm32')
-rw-r--r-- | src/arch/arm32/include/bits/string.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/arch/arm32/include/bits/string.h b/src/arch/arm32/include/bits/string.h new file mode 100644 index 00000000..5b1c1505 --- /dev/null +++ b/src/arch/arm32/include/bits/string.h @@ -0,0 +1,60 @@ +#ifndef BITS_STRING_H +#define BITS_STRING_H + +FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); + +/** @file + * + * String functions + * + */ + +/** + * Fill memory region + * + * @v dest Destination region + * @v character Fill character + * @v len Length + * @ret dest Destination region + */ +static inline __attribute__ (( always_inline )) void * +memset ( void *dest, int character, size_t len ) { + + /* Not yet optimised */ + generic_memset ( dest, character, len ); + return dest; +} + +/** + * Copy memory region + * + * @v dest Destination region + * @v src Source region + * @v len Length + * @ret dest Destination region + */ +static inline __attribute__ (( always_inline )) void * +memcpy ( void *dest, const void *src, size_t len ) { + + /* Not yet optimised */ + generic_memcpy ( dest, src, len ); + return dest; +} + +/** + * Copy (possibly overlapping) memory region + * + * @v dest Destination region + * @v src Source region + * @v len Length + * @ret dest Destination region + */ +static inline __attribute__ (( always_inline )) void * +memmove ( void *dest, const void *src, size_t len ) { + + /* Not yet optimised */ + generic_memmove ( dest, src, len ); + return dest; +} + +#endif /* BITS_STRING_H */ |