diff --git a/userspace/libraries/LibC/stdlib.cpp b/userspace/libraries/LibC/stdlib.cpp index 3a6d0c15..0d43c2ce 100644 --- a/userspace/libraries/LibC/stdlib.cpp +++ b/userspace/libraries/LibC/stdlib.cpp @@ -45,11 +45,6 @@ void _Exit(int status) _exit(status); } -int abs(int val) -{ - return val < 0 ? -val : val; -} - int atexit(void (*func)(void)) { void* func_addr = reinterpret_cast(func); @@ -367,6 +362,45 @@ unsigned long long strtoull(const char* __restrict str, char** __restrict endp, return strtoT(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 buffer[PATH_MAX] {};