void *memset(void *s, int c, size_t n)
{
char *ptr;
+ size_t i;
ptr = (char*)s;
- while(--n >= 0) {
- *ptr++ = (char)c;
+ for(i = 0; i < n; i++) {
+ ptr[i] = (char)c;
}
return(s);
}
+
+void* memcpy(void *dst, const void *src, size_t n)
+{
+ u32_t *d;
+ const u32_t *s;
+
+ d = (u32_t*)dst;
+ s = (const u32_t*)src;
+
+ while(n > 4) {
+ *d++ = *s++;
+ n -= 4;
+ }
+
+ if(n >= 2) {
+ *((u16_t*)d) = *((u16_t*)s);
+ d = (u32_t*)(((void*)d) + 2);
+ s = (u32_t*)(((void*)s) + 2);
+ n -= 2;
+ }
+
+ if(n >= 1) {
+ *((u8_t*)d) = *((u8_t*)s);
+ }
+
+ return(dst);
+}