mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-05-29 23:03:18 +00:00
cleanup libc (wip) and separated it to several files
This commit is contained in:
parent
28a5277e2b
commit
bb578ae377
8 changed files with 70 additions and 41 deletions
|
@ -2,22 +2,14 @@
|
|||
|
||||
#include <debug.h>
|
||||
|
||||
#include <cmath>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
namespace Core::Libraries::LibC {
|
||||
|
||||
PS4_SYSV_ABI int printf(VA_ARGS) {
|
||||
VA_CTX(ctx);
|
||||
return printf_ctx(&ctx);
|
||||
}
|
||||
void PS4_SYSV_ABI exit(int code) { std::exit(code); }
|
||||
|
||||
int PS4_SYSV_ABI vsnprintf(char* s, size_t n, const char* format, VaList* arg) { return vsnprintf_ctx(s, n, format, arg); }
|
||||
|
||||
PS4_SYSV_ABI void exit(int code) { std::exit(code); }
|
||||
|
||||
PS4_SYSV_ABI int atexit(void (*func)()) {
|
||||
int PS4_SYSV_ABI atexit(void (*func)()) {
|
||||
int rt = std::atexit(func);
|
||||
if (rt != 0) {
|
||||
BREAKPOINT();
|
||||
|
@ -48,16 +40,5 @@ char* PS4_SYSV_ABI strcpy(char* dest, const char* src) { return std::strcpy(dest
|
|||
char* PS4_SYSV_ABI strcat(char* dest, const char* src) { return std::strcat(dest, src); }
|
||||
|
||||
// math
|
||||
float PS4_SYSV_ABI atan2f(float y, float x) { return std::atan2f(y, x); }
|
||||
|
||||
float PS4_SYSV_ABI acosf(float num) { return std::acosf(num); }
|
||||
|
||||
float PS4_SYSV_ABI tanf(float num) { return std::tanf(num); }
|
||||
|
||||
float PS4_SYSV_ABI asinf(float num) { return std::asinf(num); }
|
||||
|
||||
double PS4_SYSV_ABI pow(double base, double exponent) { return std::pow(base, exponent); }
|
||||
|
||||
double PS4_SYSV_ABI _Sin(double x) { return std::sin(x); }
|
||||
|
||||
}; // namespace Core::Libraries::LibC
|
|
@ -1,16 +1,14 @@
|
|||
#pragma once
|
||||
|
||||
#include <types.h>
|
||||
|
||||
#include "printf.h"
|
||||
#include <cstddef>
|
||||
|
||||
namespace Core::Libraries::LibC {
|
||||
|
||||
// HLE functions
|
||||
PS4_SYSV_ABI int printf(VA_ARGS);
|
||||
int PS4_SYSV_ABI vsnprintf(char* s, size_t n, const char* format, VaList* arg);
|
||||
PS4_SYSV_ABI void exit(int code);
|
||||
PS4_SYSV_ABI int atexit(void (*func)());
|
||||
|
||||
void PS4_SYSV_ABI exit(int code);
|
||||
int PS4_SYSV_ABI atexit(void (*func)());
|
||||
int PS4_SYSV_ABI memcmp(const void* s1, const void* s2, size_t n);
|
||||
void* PS4_SYSV_ABI memcpy(void* dest, const void* src, size_t n);
|
||||
void* PS4_SYSV_ABI memset(void* s, int c, size_t n);
|
||||
|
@ -22,11 +20,5 @@ char* PS4_SYSV_ABI strncpy(char* dest, const char* src, size_t count);
|
|||
void* PS4_SYSV_ABI memmove(void* dest, const void* src, std::size_t count);
|
||||
char* PS4_SYSV_ABI strcpy(char* destination, const char* source);
|
||||
char* PS4_SYSV_ABI strcat(char* dest, const char* src);
|
||||
float PS4_SYSV_ABI atan2f(float y, float x);
|
||||
float PS4_SYSV_ABI acosf(float num);
|
||||
float PS4_SYSV_ABI tanf(float num);
|
||||
float PS4_SYSV_ABI asinf(float num);
|
||||
double PS4_SYSV_ABI pow(double base, double exponent);
|
||||
double PS4_SYSV_ABI _Sin(double x);
|
||||
|
||||
} // namespace Core::Libraries::LibC
|
18
src/core/hle/libraries/libc/libc_math.cpp
Normal file
18
src/core/hle/libraries/libc/libc_math.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
#include "libc_math.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
namespace Core::Libraries::LibC::math {
|
||||
|
||||
float PS4_SYSV_ABI atan2f(float y, float x) { return std::atan2f(y, x); }
|
||||
|
||||
float PS4_SYSV_ABI acosf(float num) { return std::acosf(num); }
|
||||
|
||||
float PS4_SYSV_ABI tanf(float num) { return std::tanf(num); }
|
||||
|
||||
float PS4_SYSV_ABI asinf(float num) { return std::asinf(num); }
|
||||
|
||||
double PS4_SYSV_ABI pow(double base, double exponent) { return std::pow(base, exponent); }
|
||||
|
||||
double PS4_SYSV_ABI _Sin(double x) { return std::sin(x); }
|
||||
} // namespace Core::Libraries::LibC::math
|
12
src/core/hle/libraries/libc/libc_math.h
Normal file
12
src/core/hle/libraries/libc/libc_math.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
#pragma once
|
||||
|
||||
#include <types.h>
|
||||
|
||||
namespace Core::Libraries::LibC::math {
|
||||
float PS4_SYSV_ABI atan2f(float y, float x);
|
||||
float PS4_SYSV_ABI acosf(float num);
|
||||
float PS4_SYSV_ABI tanf(float num);
|
||||
float PS4_SYSV_ABI asinf(float num);
|
||||
double PS4_SYSV_ABI pow(double base, double exponent);
|
||||
double PS4_SYSV_ABI _Sin(double x);
|
||||
} // namespace Core::Libraries::LibC::math
|
10
src/core/hle/libraries/libc/libc_stdio.cpp
Normal file
10
src/core/hle/libraries/libc/libc_stdio.cpp
Normal file
|
@ -0,0 +1,10 @@
|
|||
#include "libc_stdio.h"
|
||||
|
||||
namespace Core::Libraries::LibC::stdio {
|
||||
int PS4_SYSV_ABI printf(VA_ARGS) {
|
||||
VA_CTX(ctx);
|
||||
return printf_ctx(&ctx);
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI vsnprintf(char* s, size_t n, const char* format, VaList* arg) { return vsnprintf_ctx(s, n, format, arg); }
|
||||
} // namespace Core::Libraries::LibC::stdio
|
10
src/core/hle/libraries/libc/libc_stdio.h
Normal file
10
src/core/hle/libraries/libc/libc_stdio.h
Normal file
|
@ -0,0 +1,10 @@
|
|||
#pragma once
|
||||
|
||||
#include <types.h>
|
||||
#include "printf.h"
|
||||
|
||||
namespace Core::Libraries::LibC::stdio {
|
||||
int PS4_SYSV_ABI printf(VA_ARGS);
|
||||
int PS4_SYSV_ABI vsnprintf(char* s, size_t n, const char* format, VaList* arg);
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue