53
/** Move memory block with possible overlapping.
55
* Copy cnt bytes from src address to dst address. The source
56
* and destination memory areas may overlap.
58
* @param dst Destination address to copy to.
59
* @param src Source address to copy from.
60
* @param cnt Number of bytes to copy.
62
* @return Destination address.
65
void *memmove(void *dst, const void *src, size_t cnt)
71
/* Non-overlapping? */
72
if ((dst >= src + cnt) || (src >= dst + cnt))
73
return memcpy(dst, src, cnt);
78
/* Which direction? */