user: implement mlibc as the libc, finally.

It's finally done..

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
This commit is contained in:
kaguya
2026-05-02 03:31:49 -04:00
parent 2fa39ad85a
commit 9a9b91c940
2387 changed files with 152741 additions and 315 deletions
@@ -0,0 +1,63 @@
#pragma once
#include <stdio.h>
template<typename E>
constexpr void macro_print(const char *name, E val) {
printf("%s = %ld\n", name, val);
}
template<>
constexpr void macro_print<signed long long>(const char *name, signed long long val) {
printf("%s = %lld\n", name, val);
}
template<>
constexpr void macro_print<signed long>(const char *name, signed long val) {
printf("%s = %ld\n", name, val);
}
template<>
constexpr void macro_print<signed int>(const char *name, signed int val) {
printf("%s = %d\n", name, val);
}
template<>
constexpr void macro_print<signed short>(const char *name, signed short val) {
printf("%s = %hd\n", name, val);
}
template<>
constexpr void macro_print<signed char>(const char *name, signed char val) {
printf("%s = %hhd\n", name, val);
}
template<>
constexpr void macro_print<unsigned long long>(const char *name, unsigned long long val) {
printf("%s = %llu\n", name, val);
}
template<>
constexpr void macro_print<unsigned long>(const char *name, unsigned long val) {
printf("%s = %lu\n", name, val);
}
template<>
constexpr void macro_print<unsigned int>(const char *name, unsigned int val) {
printf("%s = %u\n", name, val);
}
template<>
constexpr void macro_print<unsigned short>(const char *name, unsigned short val) {
printf("%s = %hu\n", name, val);
}
template<>
constexpr void macro_print<unsigned char>(const char *name, unsigned char val) {
printf("%s = %hhu ('%c')\n", name, val, val);
}
template<>
constexpr void macro_print<const char *>(const char *name, const char *val) {
printf("%s = \"%s\"\n", name, val);
}