19 lines
628 B
C
19 lines
628 B
C
/* Freestanding compiler support, not an allocator or a VM subsystem. */
|
|
#include <stddef.h>
|
|
void *memset(void *dst,int value,size_t count) {
|
|
unsigned char *d=dst;
|
|
for(size_t i=0;i<count;i++)d[i]=(unsigned char)value;
|
|
return dst;
|
|
}
|
|
void *memcpy(void *dst,const void *src,size_t count) {
|
|
unsigned char *d=dst;const unsigned char *s=src;
|
|
for(size_t i=0;i<count;i++)d[i]=s[i];
|
|
return dst;
|
|
}
|
|
void *memmove(void *dst,const void *src,size_t count) {
|
|
unsigned char *d=dst;const unsigned char *s=src;
|
|
if((size_t)d<(size_t)s){for(size_t i=0;i<count;i++)d[i]=s[i];}
|
|
else {while(count){count--;d[count]=s[count];}}
|
|
return dst;
|
|
}
|