Added memmove(3).
This commit is contained in:
parent
a52200f4a7
commit
6c6e1091a1
|
@ -36,6 +36,7 @@ __BEGIN_DECLS
|
||||||
void* memchr(const void*, int, size_t);
|
void* memchr(const void*, int, size_t);
|
||||||
int memcmp(const void*, const void*, size_t);
|
int memcmp(const void*, const void*, size_t);
|
||||||
void* memcpy(void* restrict, const void* restrict, size_t);
|
void* memcpy(void* restrict, const void* restrict, size_t);
|
||||||
|
void* memmove(void*, const void*, size_t);
|
||||||
void* memset(void*, int, size_t);
|
void* memset(void*, int, size_t);
|
||||||
char* stpcpy(char* restrict, const char* restrict);
|
char* stpcpy(char* restrict, const char* restrict);
|
||||||
char* strcat(char* restrict, const char* restrict);
|
char* strcat(char* restrict, const char* restrict);
|
||||||
|
@ -57,7 +58,6 @@ char* strtok_r(char* restrict, const char* restrict, char** restrict);
|
||||||
/* TODO: These are not implemented in libmaxsi/sortix yet. */
|
/* TODO: These are not implemented in libmaxsi/sortix yet. */
|
||||||
#if defined(__SORTIX_SHOW_UNIMPLEMENTED)
|
#if defined(__SORTIX_SHOW_UNIMPLEMENTED)
|
||||||
void* memccpy(void* restrict, const void* restrict, int, size_t);
|
void* memccpy(void* restrict, const void* restrict, int, size_t);
|
||||||
void* memmove(void*, const void*, size_t);
|
|
||||||
char* stpncpy(char* restrict, const char* restrict, size_t);
|
char* stpncpy(char* restrict, const char* restrict, size_t);
|
||||||
int strcoll_l(const char*, const char*, locale_t);
|
int strcoll_l(const char*, const char*, locale_t);
|
||||||
char* strerror_l(int, locale_t);
|
char* strerror_l(int, locale_t);
|
||||||
|
|
|
@ -52,6 +52,18 @@ namespace Maxsi
|
||||||
{
|
{
|
||||||
return SysGetPageSize();
|
return SysGetPageSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: This is a hacky implementation!
|
||||||
|
extern "C" void* memmove(void* _dest, const void* _src, size_t n)
|
||||||
|
{
|
||||||
|
uint8_t* dest = (uint8_t*) _dest;
|
||||||
|
const uint8_t* src = (const uint8_t*) _src;
|
||||||
|
uint8_t* tmp = new uint8_t[n];
|
||||||
|
Memory::Copy(tmp, src, n);
|
||||||
|
Memory::Copy(dest, tmp, n);
|
||||||
|
delete[] tmp;
|
||||||
|
return _dest;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DUAL_FUNCTION(void*, memcpy, Copy, (void* Dest, const void* Src, size_t Length))
|
DUAL_FUNCTION(void*, memcpy, Copy, (void* Dest, const void* Src, size_t Length))
|
||||||
|
|
Loading…
Reference in New Issue