summaryrefslogtreecommitdiff
path: root/firmware/include
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2014-08-06 04:26:52 -0400
committerMichael Sevakis <jethead71@rockbox.org>2014-08-29 22:06:57 -0400
commit77b3625763ae4d5aa6aaa9d44fbc1bfec6b29335 (patch)
tree74b12e2669da8653932f48f1ca3816eef4bf6324 /firmware/include
parent7d1a47cf13726c95ac46027156cc12dd9da5b855 (diff)
downloadrockbox-77b3625763ae4d5aa6aaa9d44fbc1bfec6b29335.tar.gz
rockbox-77b3625763ae4d5aa6aaa9d44fbc1bfec6b29335.zip
Add mempcpy implementation
A GNU extension that returns dst + size instead of dst. It's a nice shortcut when copying strings with a known size or back-to-back blocks and you have to do it often. May of course be called directly or alternately through __builtin_mempcpy in some compiler versions. For ASM on native targets, it is implemented as an alternate entrypoint to memcpy which adds minimal code and overhead. Change-Id: I4cbb3483f6df3c1007247fe0a95fd7078737462b
Diffstat (limited to 'firmware/include')
-rw-r--r--firmware/include/string-extra.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/firmware/include/string-extra.h b/firmware/include/string-extra.h
index bae250d7c9..6a9e0c77be 100644
--- a/firmware/include/string-extra.h
+++ b/firmware/include/string-extra.h
@@ -18,8 +18,8 @@
18 * KIND, either express or implied. 18 * KIND, either express or implied.
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21 21#ifndef STRING_EXTRA_H
22 22#define STRING_EXTRA_H
23#include <string.h> 23#include <string.h>
24#include "strlcpy.h" 24#include "strlcpy.h"
25#include "strlcat.h" 25#include "strlcat.h"
@@ -27,3 +27,11 @@
27#include "strcasestr.h" 27#include "strcasestr.h"
28#include "strtok_r.h" 28#include "strtok_r.h"
29#include "memset16.h" 29#include "memset16.h"
30
31#if defined(WIN32) || defined(APPLICATION)
32#ifndef mempcpy
33#define mempcpy __builtin_mempcpy
34#endif
35#endif
36
37#endif /* STRING_EXTRA_H */