Re: why use memcpy when memmove is there?

From: Stefan Richter
Date: Mon Aug 13 2007 - 12:19:51 EST


sk malik wrote:
> memcpy copies a part of memory to some other location
> but It will not work for all cases of overlapping
> blocks.(if the start of destination block falls
> between the source block)
>
> while memove copes with overlapping areas.
>
> then why is memcpy present in the sources can't we
> simply do
>
> "#define memcpy memmove" in include/linux/string.h
>
> or am I missing something?

The restriction that memcpy is undefined for overlapping areas (IOW, is
only defined for non-overlapping areas) can be used for optimizations in
memcpy which are not possible in memmove. An example, I suppose:
http://lxr.linux.no/source/arch/m68k/lib/string.c#L79
http://lxr.linux.no/source/arch/m68k/lib/string.c#L146
--
Stefan Richter
-=====-=-=== =--- -==-=
http://arcgraph.de/sr/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/