Kernel: move over the mem* functions from libc
This commit is contained in:
parent
4725538aa7
commit
437f51add7
@ -111,34 +111,32 @@ void* memcpy(void* dest, const void* src, size_t n)
|
|||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
void* memset(void* dest, int c, size_t n)
|
void* memset(void* buf, int c, size_t n)
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < n; ++i) { *((char*)dest + i) = (char)c; }
|
for (size_t i = 0; i < n; ++i) { *((char*)buf + i) = (char)c; }
|
||||||
return dest;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
int memcmp(const void* a, const void* b, size_t n)
|
int memcmp(const void* a, const void* b, size_t n)
|
||||||
{
|
{
|
||||||
const char* _a = (const char*)a;
|
|
||||||
const char* _b = (const char*)b;
|
|
||||||
for (; n && _a == _b; n--, _a++, _b++)
|
|
||||||
;
|
|
||||||
if (!n) return 0;
|
if (!n) return 0;
|
||||||
if (*_a > *_b) return 1;
|
const unsigned char* ap = (const unsigned char*)a;
|
||||||
return -1;
|
const unsigned char* bp = (const unsigned char*)b;
|
||||||
|
while (--n && *ap == *bp)
|
||||||
|
{
|
||||||
|
ap++;
|
||||||
|
bp++;
|
||||||
|
}
|
||||||
|
return *ap - *bp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void* memmove(void* dest, void* src, size_t n)
|
void* memmove(void* dest, const void* src, size_t n)
|
||||||
{
|
{
|
||||||
if (dest == src) return dest;
|
if (dest == src) return dest;
|
||||||
if (dest > src)
|
if (dest > src)
|
||||||
{
|
for (long i = n - 1; i >= 0; i++) { *((char*)dest + i) = *((const char*)src + i); }
|
||||||
for (long i = n - 1; i >= 0; i++) { *((char*)dest + i) = *((char*)src + i); }
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
for (long i = 0; i < (long)n; i++) { *((char*)dest + i) = *((const char*)src + i); }
|
||||||
for (long i = 0; i < (long)n; i++) { *((char*)dest + i) = *((char*)src + i); }
|
|
||||||
}
|
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user