635052c8dc
wip: DTB
37 lines
968 B
C
37 lines
968 B
C
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
void* memmove(void* dest, const void* src, unsigned long n) {
|
|
unsigned char* d = (unsigned char*)dest;
|
|
const unsigned char* s = (const unsigned char*)src;
|
|
if (d < s) {
|
|
while (n--) *d++ = *s++;
|
|
} else {
|
|
d += n; s += n;
|
|
while (n--) *--d = *--s;
|
|
}
|
|
return dest;
|
|
}
|
|
|
|
void* memcpy(void* dest, const void* src, unsigned long n) {
|
|
return memmove(dest, src, n);
|
|
}
|
|
|
|
void* memset(void* dest, int c, unsigned long n) {
|
|
unsigned char* d = (unsigned char*)dest;
|
|
while (n--) *d++ = (unsigned char)c;
|
|
return dest;
|
|
}
|
|
|
|
// Stack protection
|
|
long __stack_chk_guard = (long)0xDEADBEEFCAFEBABEULL;
|
|
void __stack_chk_fail(void) { while (1); }
|
|
|
|
// Swift runtime allocator stubs — should never be called in embedded mode
|
|
int posix_memalign(void** ptr, unsigned long align, unsigned long size) {
|
|
(void)ptr; (void)align; (void)size;
|
|
while (1);
|
|
}
|
|
|
|
void free(void* ptr) { (void)ptr; }
|