new: 移植了LZ4库

This commit is contained in:
fslongjin
2022-09-03 16:13:29 +08:00
parent 41c7a84105
commit 4713a1a152
7 changed files with 3977 additions and 5 deletions

View File

@ -25,4 +25,35 @@ void __experimental_beep(uint64_t times)
// 延迟一段时间
for(uint64_t i=0;i<times;++i)
pause();
}
/**
* @brief 将数据从src搬运到dst并能正确处理地址重叠的问题
*
* @param dst 目标地址指针
* @param src 源地址指针
* @param size 大小
* @return void* 指向目标地址的指针
*/
void *memmove(void *dst, const void *src, uint64_t size)
{
const char *_src = src;
char *_dst = dst;
if (!size)
return dst;
// 当源地址大于目标地址时使用memcpy来完成
if (dst <= src)
return memcpy(dst, src, size);
// 当源地址小于目标地址时,为防止重叠覆盖,因此从后往前拷贝
_src += size;
_dst += size;
// 逐字节拷贝
while (size--)
*--_dst = *--_src;
return dst;
}