Re: [PATCH v2] lib/decompress_unxz.c: removing all memory helper functions

From
Nicolas Pitre <hidden>
Date
2012-06-12 17:26:28
Also in
linux-arm-kernel, lkml
Reply to
Lasse Collin, 2012-06-12
On Tue, 12 Jun 2012, Lasse Collin wrote:
On 2012-06-11 T Makphaibulchoke wrote:
quoted
+#ifndef __HAVE_PREBOOT_ARCH_MEMMOVE
+void *memmove(void *__dest, __const void *__src, size_t count)
+{
+	unsigned char *d = __dest;
+	const unsigned char *s = __src;
+
+	if (__dest = __src)
+		return __dest;
+
+	if (__dest < __src)
+		return memcpy(__dest, __src, count);
+
+	while (count--)
+		d[count] = s[count];
+	return __dest;
+}
+#endif
The use of memcpy when __dest < __src is OK with some memcpy
implementations, but in a generic case it isn't guaranteed to work.
Of course, if the memcpy implementation is also provided along with this 
memmove code, as it was the case on ARM before this patch, then you can 
guarantee it.  And if that memcpy() happens to be slightly more 
optimized then this is a win.
I think it would be better to just copy memmove from lib/string.c.
Instead of copying, maybe this would be much better to make the content 
of lib/string.c usable in a pre-boot environment.


Nicolas
Thread (18 messages) 18 messages, 9 authors, last reply 2012-06-14
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help