Files
ksOS/Kernel/Source/Support/stubs.c
T
sonya 350776d5d1 fix: added arc4random_buf stub
this fixes linking error on aarch64
also _seralPutchar was made public to prevent mangling
2026-04-20 21:30:23 +09:00

43 lines
1.2 KiB
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; }
// Swift stdlib uses arc4random_buf for Hasher seed — stub with zeroes in bare-metal
void arc4random_buf(void* buf, unsigned long nbytes) {
unsigned char* b = (unsigned char*)buf;
while (nbytes--) *b++ = 0;
}