diff --git a/src/core/hle/libraries/libc/libc_stdlib.cpp b/src/core/hle/libraries/libc/libc_stdlib.cpp index 0f6309c0d..e3c79da6b 100644 --- a/src/core/hle/libraries/libc/libc_stdlib.cpp +++ b/src/core/hle/libraries/libc/libc_stdlib.cpp @@ -4,6 +4,7 @@ #include "common/debug.h" #include "common/log.h" +#include namespace Core::Libraries::LibC { @@ -12,6 +13,7 @@ constexpr bool log_file_libc = true; // disable it to disable logging void PS4_SYSV_ABI exit(int code) { std::exit(code); } int PS4_SYSV_ABI atexit(void (*func)()) { + PRINT_FUNCTION_NAME(); int rt = std::atexit(func); if (rt != 0) { LOG_ERROR_IF(log_file_libc, "atexit returned {}\n", rt); @@ -20,25 +22,44 @@ int PS4_SYSV_ABI atexit(void (*func)()) { return rt; } -void* PS4_SYSV_ABI malloc(size_t size) { return std::malloc(size); } +void* PS4_SYSV_ABI malloc(size_t size) { + PRINT_FUNCTION_NAME(); + return std::malloc(size); +} -void PS4_SYSV_ABI free(void* ptr) { std::free(ptr); } +void PS4_SYSV_ABI free(void* ptr) { + PRINT_FUNCTION_NAME(); + std::free(ptr); +} typedef int(PS4_SYSV_ABI* pfunc_QsortCmp)(const void*, const void*); thread_local static pfunc_QsortCmp compair_ps4; -int qsort_compair(const void* arg1, const void* arg2) { return compair_ps4(arg1, arg2); } +int qsort_compair(const void* arg1, const void* arg2) { PRINT_FUNCTION_NAME();return compair_ps4(arg1, arg2); } void PS4_SYSV_ABI qsort(void* ptr, size_t count, size_t size, int(PS4_SYSV_ABI* comp)(const void*, const void*)) { + PRINT_FUNCTION_NAME(); compair_ps4 = comp; std::qsort(ptr, count, size, qsort_compair); } -int PS4_SYSV_ABI rand() { return std::rand(); } +int PS4_SYSV_ABI rand() { + PRINT_FUNCTION_NAME(); + return std::rand(); +} -unsigned long int PS4_SYSV_ABI _Stoul(const char* str, char** endptr, int base) { return std::strtoul(str, endptr, base); } +unsigned long int PS4_SYSV_ABI _Stoul(const char* str, char** endptr, int base) { + PRINT_FUNCTION_NAME(); + return std::strtoul(str, endptr, base); +} -void PS4_SYSV_ABI srand(unsigned int seed) { return std::srand(seed); } +void PS4_SYSV_ABI srand(unsigned int seed) { + PRINT_FUNCTION_NAME(); + return std::srand(seed); +} -s64 PS4_SYSV_ABI time(s64* pt) { return std::time(pt); } +s64 PS4_SYSV_ABI time(s64* pt) { + PRINT_FUNCTION_NAME(); + return std::time(pt); +} } // namespace Core::Libraries::LibC diff --git a/src/core/hle/libraries/libc/libc_string.cpp b/src/core/hle/libraries/libc/libc_string.cpp index 6ca6348a9..a2ffa086e 100644 --- a/src/core/hle/libraries/libc/libc_string.cpp +++ b/src/core/hle/libraries/libc/libc_string.cpp @@ -2,32 +2,68 @@ #include #include +#include "common/log.h" +#include namespace Core::Libraries::LibC { -int PS4_SYSV_ABI memcmp(const void* s1, const void* s2, size_t n) { return std::memcmp(s1, s2, n); } +int PS4_SYSV_ABI memcmp(const void* s1, const void* s2, size_t n) { + PRINT_FUNCTION_NAME(); + return std::memcmp(s1, s2, n); +} -void* PS4_SYSV_ABI memcpy(void* dest, const void* src, size_t n) { return std::memcpy(dest, src, n); } +void* PS4_SYSV_ABI memcpy(void* dest, const void* src, size_t n) { + PRINT_FUNCTION_NAME(); + return std::memcpy(dest, src, n); +} -void* PS4_SYSV_ABI memset(void* s, int c, size_t n) { return std::memset(s, c, n); } +void* PS4_SYSV_ABI memset(void* s, int c, size_t n) { + PRINT_FUNCTION_NAME(); + return std::memset(s, c, n); +} -int PS4_SYSV_ABI strcmp(const char* str1, const char* str2) { return std::strcmp(str1, str2); } +int PS4_SYSV_ABI strcmp(const char* str1, const char* str2) { + PRINT_FUNCTION_NAME(); + return std::strcmp(str1, str2); +} -char* PS4_SYSV_ABI strncpy(char* dest, const char* src, size_t count) { return std::strncpy(dest, src, count); } +char* PS4_SYSV_ABI strncpy(char* dest, const char* src, size_t count) { + PRINT_FUNCTION_NAME(); + return std::strncpy(dest, src, count); +} -void* PS4_SYSV_ABI memmove(void* dest, const void* src, std::size_t count) { return std::memmove(dest, src, count); } +void* PS4_SYSV_ABI memmove(void* dest, const void* src, std::size_t count) { + PRINT_FUNCTION_NAME(); + return std::memmove(dest, src, count); +} -char* PS4_SYSV_ABI strcpy(char* dest, const char* src) { return std::strcpy(dest, src); } +char* PS4_SYSV_ABI strcpy(char* dest, const char* src) { + PRINT_FUNCTION_NAME(); + return std::strcpy(dest, src); +} -char* PS4_SYSV_ABI strcat(char* dest, const char* src) { return std::strcat(dest, src); } +char* PS4_SYSV_ABI strcat(char* dest, const char* src) { + PRINT_FUNCTION_NAME(); + return std::strcat(dest, src); +} -size_t PS4_SYSV_ABI strlen(const char* str) { return std::strlen(str); } +size_t PS4_SYSV_ABI strlen(const char* str) { + PRINT_FUNCTION_NAME(); + return std::strlen(str); +} -int PS4_SYSV_ABI strncmp(const char* str1, const char* str2, size_t num) { return std::strncmp(str1, str2, num); } +int PS4_SYSV_ABI strncmp(const char* str1, const char* str2, size_t num) { + PRINT_FUNCTION_NAME(); + return std::strncmp(str1, str2, num); +} -char* PS4_SYSV_ABI strrchr(char* str, int character) { return (char*)std::strrchr(str, character); } +char* PS4_SYSV_ABI strrchr(char* str, int character) { + PRINT_FUNCTION_NAME(); + return (char*)std::strrchr(str, character); +} char* PS4_SYSV_ABI strdup(const char* str1) { + PRINT_FUNCTION_NAME(); char* dup = (char*)std::malloc(std::strlen(str1) + 1); if (dup != NULL) strcpy(dup, str1); return dup;