LibC: Implement {,l,ll}{abs,div}

This commit is contained in:
Bananymous 2025-11-06 23:20:35 +02:00
parent 979059c804
commit 4e14f7d483
1 changed files with 39 additions and 5 deletions

View File

@ -45,11 +45,6 @@ void _Exit(int status)
_exit(status); _exit(status);
} }
int abs(int val)
{
return val < 0 ? -val : val;
}
int atexit(void (*func)(void)) int atexit(void (*func)(void))
{ {
void* func_addr = reinterpret_cast<void*>(func); void* func_addr = reinterpret_cast<void*>(func);
@ -367,6 +362,45 @@ unsigned long long strtoull(const char* __restrict str, char** __restrict endp,
return strtoT<unsigned long long>(str, endp, base, errno); return strtoT<unsigned long long>(str, endp, base, errno);
} }
int abs(int val)
{
return val < 0 ? -val : val;
}
long labs(long val)
{
return val < 0 ? -val : val;
}
long long llabs(long long val)
{
return val < 0 ? -val : val;
}
div_t div(int numer, int denom)
{
return {
.quot = numer / denom,
.rem = numer % denom,
};
}
ldiv_t ldiv(long numer, long denom)
{
return {
.quot = numer / denom,
.rem = numer % denom,
};
}
lldiv_t lldiv(long long numer, long long denom)
{
return {
.quot = numer / denom,
.rem = numer % denom,
};
}
char* realpath(const char* __restrict file_name, char* __restrict resolved_name) char* realpath(const char* __restrict file_name, char* __restrict resolved_name)
{ {
char buffer[PATH_MAX] {}; char buffer[PATH_MAX] {};