Files
open_kernel/boot/memory.c
T

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;
}