#include #include "include/string_volatile.h" volatile void *memmove_volatile(volatile void *dst, const volatile void *src, volatile size_t n) { volatile char *d = dst; volatile const char *s = src; if(s < d) { d += n; s += n; while(n--) { *--d = *--s; } } else { while(n--) { *d++ = *s++; } } return dst; } volatile void *memset_volatile(volatile void *dest, int c, volatile size_t n) { volatile unsigned char *d = dest; while(n--) { *d++ = c; } return dest; } volatile void *memcpy_volatile(volatile void *restrict dst, const volatile void *restrict src, volatile size_t n) { volatile char *d = dst; volatile const char *s = src; while(n--) { *d++ = *s++; } return dst; }