mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-20 10:56:58 +02:00
Fix linux compilation
This commit is contained in:
+28
-27
@@ -1910,20 +1910,21 @@ int32_t KYTY_SYSV_ABI KernelMapNamedFlexibleMemory(void** addr_in_out, size_t le
|
||||
constexpr size_t PAGE_SIZE = 0x4000;
|
||||
constexpr size_t MAXIMUM_NAME_SIZE = 32;
|
||||
constexpr uint64_t DEFAULT_PS5_BASE = 0x200000000;
|
||||
constexpr int MAP_FIXED = 0x10;
|
||||
constexpr int MAP_SHARED = 0x01;
|
||||
constexpr int MAP_PRIVATE = 0x02;
|
||||
constexpr int MAP_NO_OVERWRITE = 0x80;
|
||||
constexpr int MAP_VOID = 0x100;
|
||||
constexpr int MAP_STACK = 0x400;
|
||||
constexpr int MAP_NO_SYNC = 0x800;
|
||||
constexpr int MAP_ANON = 0x1000;
|
||||
constexpr int MAP_UNKNOWN_8000 = 0x8000;
|
||||
constexpr int MAP_NO_CORE = 0x20000;
|
||||
constexpr int MAP_NO_COALESCE = 0x400000;
|
||||
constexpr int SUPPORTED_MAP_BITS = MAP_SHARED | MAP_PRIVATE | MAP_FIXED | MAP_NO_OVERWRITE |
|
||||
MAP_VOID | MAP_STACK | MAP_NO_SYNC | MAP_ANON |
|
||||
MAP_UNKNOWN_8000 | MAP_NO_CORE | MAP_NO_COALESCE;
|
||||
constexpr int GUEST_MAP_FIXED = 0x10;
|
||||
constexpr int GUEST_MAP_SHARED = 0x01;
|
||||
constexpr int GUEST_MAP_PRIVATE = 0x02;
|
||||
constexpr int GUEST_MAP_NO_OVERWRITE = 0x80;
|
||||
constexpr int GUEST_MAP_VOID = 0x100;
|
||||
constexpr int GUEST_MAP_STACK = 0x400;
|
||||
constexpr int GUEST_MAP_NO_SYNC = 0x800;
|
||||
constexpr int GUEST_MAP_ANON = 0x1000;
|
||||
constexpr int GUEST_MAP_UNKNOWN_8000 = 0x8000;
|
||||
constexpr int GUEST_MAP_NO_CORE = 0x20000;
|
||||
constexpr int GUEST_MAP_NO_COALESCE = 0x400000;
|
||||
constexpr int SUPPORTED_MAP_BITS =
|
||||
GUEST_MAP_SHARED | GUEST_MAP_PRIVATE | GUEST_MAP_FIXED | GUEST_MAP_NO_OVERWRITE |
|
||||
GUEST_MAP_VOID | GUEST_MAP_STACK | GUEST_MAP_NO_SYNC | GUEST_MAP_ANON |
|
||||
GUEST_MAP_UNKNOWN_8000 | GUEST_MAP_NO_CORE | GUEST_MAP_NO_COALESCE;
|
||||
|
||||
if (len == 0 || (len & (PAGE_SIZE - 1)) != 0) {
|
||||
return KERNEL_ERROR_EINVAL;
|
||||
@@ -1956,11 +1957,11 @@ int32_t KYTY_SYSV_ABI KernelMapNamedFlexibleMemory(void** addr_in_out, size_t le
|
||||
bool consumed_reserved = false;
|
||||
VirtualRanges::Range consumed_range {};
|
||||
|
||||
if ((flags & MAP_FIXED) != 0) {
|
||||
if ((flags & GUEST_MAP_FIXED) != 0) {
|
||||
if (in_addr == 0 || (in_addr & (PAGE_SIZE - 1)) != 0) {
|
||||
return KERNEL_ERROR_EINVAL;
|
||||
}
|
||||
if ((flags & MAP_NO_OVERWRITE) != 0 && g_virtual_ranges->HasOverlap(in_addr, len)) {
|
||||
if ((flags & GUEST_MAP_NO_OVERWRITE) != 0 && g_virtual_ranges->HasOverlap(in_addr, len)) {
|
||||
return KERNEL_ERROR_ENOMEM;
|
||||
}
|
||||
if (g_virtual_ranges->Query(in_addr, 0, &consumed_range) &&
|
||||
@@ -2005,7 +2006,7 @@ int32_t KYTY_SYSV_ABI KernelMapNamedFlexibleMemory(void** addr_in_out, size_t le
|
||||
}
|
||||
|
||||
const auto range_type =
|
||||
((flags & MAP_STACK) != 0 ? VirtualRangeType::Stack : VirtualRangeType::Flexible);
|
||||
((flags & GUEST_MAP_STACK) != 0 ? VirtualRangeType::Stack : VirtualRangeType::Flexible);
|
||||
if (!g_virtual_ranges->Add(out_addr, len, 0, prot, 0, range_type, name,
|
||||
committed_from_reserved)) {
|
||||
GpuAccessMode rollback_gpu_mode = GpuAccessMode::NoAccess;
|
||||
@@ -2673,11 +2674,11 @@ int KYTY_SYSV_ABI KernelMapDirectMemory(void** addr, size_t len, int prot, int f
|
||||
std::lock_guard<std::recursive_mutex> memory_operation_lock(g_memory_operation_mutex);
|
||||
|
||||
EXIT_NOT_IMPLEMENTED(addr == nullptr);
|
||||
constexpr int MAP_FIXED = 0x10;
|
||||
constexpr int MAP_NO_OVERWRITE = 0x80;
|
||||
constexpr int GUEST_MAP_FIXED = 0x10;
|
||||
constexpr int GUEST_MAP_NO_OVERWRITE = 0x80;
|
||||
|
||||
bool fixed = ((flags & MAP_FIXED) != 0);
|
||||
bool no_overwrite = ((flags & MAP_NO_OVERWRITE) != 0);
|
||||
bool fixed = ((flags & GUEST_MAP_FIXED) != 0);
|
||||
bool no_overwrite = ((flags & GUEST_MAP_NO_OVERWRITE) != 0);
|
||||
|
||||
VirtualMemory::Mode mode = VirtualMemory::Mode::NoAccess;
|
||||
GpuAccessMode gpu_mode = GpuAccessMode::NoAccess;
|
||||
@@ -3279,8 +3280,8 @@ int KYTY_SYSV_ABI KernelReserveVirtualRange(void** addr, size_t len, int flags,
|
||||
in_addr, len, flags, alignment);
|
||||
|
||||
constexpr size_t PAGE_SIZE = 0x4000;
|
||||
constexpr int MAP_FIXED = 0x10;
|
||||
constexpr int MAP_NO_OVERWRITE = 0x80;
|
||||
constexpr int GUEST_MAP_FIXED = 0x10;
|
||||
constexpr int GUEST_MAP_NO_OVERWRITE = 0x80;
|
||||
|
||||
if (addr == nullptr || len == 0 || (len & (PAGE_SIZE - 1)) != 0) {
|
||||
return KERNEL_ERROR_EINVAL;
|
||||
@@ -3292,11 +3293,11 @@ int KYTY_SYSV_ABI KernelReserveVirtualRange(void** addr, size_t len, int flags,
|
||||
uint64_t out_addr = 0;
|
||||
bool range_already_added = false;
|
||||
bool placeholder_backed = false;
|
||||
if ((flags & MAP_FIXED) != 0) {
|
||||
if ((flags & GUEST_MAP_FIXED) != 0) {
|
||||
if (in_addr == 0 || (in_addr & (PAGE_SIZE - 1)) != 0) {
|
||||
return KERNEL_ERROR_EINVAL;
|
||||
}
|
||||
if ((flags & MAP_NO_OVERWRITE) != 0 && g_virtual_ranges->HasOverlap(in_addr, len)) {
|
||||
if ((flags & GUEST_MAP_NO_OVERWRITE) != 0 && g_virtual_ranges->HasOverlap(in_addr, len)) {
|
||||
return KERNEL_ERROR_ENOMEM;
|
||||
}
|
||||
if (ReplaceFixedRangeWithReserved(in_addr, len, &placeholder_backed)) {
|
||||
@@ -3710,8 +3711,8 @@ int KYTY_SYSV_ABI KernelBatchMap2(KernelBatchMapEntry* entries, int num_entries,
|
||||
|
||||
int KYTY_SYSV_ABI KernelBatchMap(KernelBatchMapEntry* entries, int num_entries,
|
||||
int* num_entries_out) {
|
||||
constexpr int MAP_FIXED = 0x10;
|
||||
return KernelBatchMap2(entries, num_entries, num_entries_out, MAP_FIXED);
|
||||
constexpr int GUEST_MAP_FIXED = 0x10;
|
||||
return KernelBatchMap2(entries, num_entries, num_entries_out, GUEST_MAP_FIXED);
|
||||
}
|
||||
|
||||
static bool IsAligned(uint64_t value, uint64_t alignment) {
|
||||
|
||||
@@ -1382,8 +1382,8 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t m_granularity = 0x10000;
|
||||
std::mutex m_mutex;
|
||||
std::map<uint64_t, uint64_t> m_free;
|
||||
#endif
|
||||
uint64_t m_granularity = 0x10000;
|
||||
};
|
||||
|
||||
+12
-12
@@ -61,7 +61,7 @@ LIB_NAME("libkernel", "libkernel");
|
||||
constexpr int KEYS_MAX = 256;
|
||||
constexpr int DESTRUCTOR_ITERATIONS = 4;
|
||||
constexpr size_t PTHREAD_STACK_DEFAULT = 0x100000;
|
||||
constexpr size_t PTHREAD_STACK_MIN = 0x4000;
|
||||
constexpr size_t GUEST_PTHREAD_STACK_MIN = 0x4000;
|
||||
constexpr size_t PTHREAD_STACK_PAGE = 0x4000;
|
||||
constexpr size_t PTHREAD_STACK_GRANULARITY = 0x10000;
|
||||
constexpr size_t PTHREAD_STACK_INITIAL = 0x200000;
|
||||
@@ -290,12 +290,12 @@ static bool KernelClockGettimeSpecial(KernelClockid clock_id, KernelTimespec* tp
|
||||
}
|
||||
}
|
||||
#else
|
||||
static bool kernel_clock_gettime_special(KernelClockid clock_id, KernelTimespec* tp, int* error) {
|
||||
static bool KernelClockGettimeSpecial(KernelClockid clock_id, KernelTimespec* tp, int* error) {
|
||||
EXIT_IF(tp == nullptr);
|
||||
EXIT_IF(error == nullptr);
|
||||
|
||||
if (clock_id == KERNEL_CLOCK_PROCTIME) {
|
||||
kernel_us_to_timespec(kernel_get_process_time_us_native(), tp);
|
||||
KernelUsToTimespec(KernelGetProcessTimeUsNative(), tp);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -709,15 +709,15 @@ static int CreateGuestStack(PthreadAttr attr) {
|
||||
|
||||
void* mapped_addr = reinterpret_cast<void*>(stack_addr);
|
||||
|
||||
constexpr int PROT_READ_WRITE = 0x03;
|
||||
constexpr int MAP_PRIVATE = 0x02;
|
||||
constexpr int MAP_FIXED = 0x10;
|
||||
constexpr int MAP_STACK = 0x400;
|
||||
constexpr int MAP_ANON = 0x1000;
|
||||
constexpr int GUEST_PROT_READ_WRITE = 0x03;
|
||||
constexpr int GUEST_MAP_PRIVATE = 0x02;
|
||||
constexpr int GUEST_MAP_FIXED = 0x10;
|
||||
constexpr int GUEST_MAP_STACK = 0x400;
|
||||
constexpr int GUEST_MAP_ANON = 0x1000;
|
||||
|
||||
int result = Memory::KernelMapNamedFlexibleMemory(
|
||||
&mapped_addr, map_size, PROT_READ_WRITE, MAP_PRIVATE | MAP_FIXED | MAP_STACK | MAP_ANON,
|
||||
"stack");
|
||||
&mapped_addr, map_size, GUEST_PROT_READ_WRITE,
|
||||
GUEST_MAP_PRIVATE | GUEST_MAP_FIXED | GUEST_MAP_STACK | GUEST_MAP_ANON, "stack");
|
||||
if (result != OK) {
|
||||
return KERNEL_ERROR_EAGAIN;
|
||||
}
|
||||
@@ -2177,7 +2177,7 @@ int KYTY_SYSV_ABI PthreadAttrSetstack(PthreadAttr* attr, void* addr, size_t size
|
||||
// PRINT_NAME();
|
||||
|
||||
auto* attr_value = GetPthreadAttrValue(attr, "PthreadAttrSetstack");
|
||||
if (addr == nullptr || size < PTHREAD_STACK_MIN || attr_value == nullptr) {
|
||||
if (addr == nullptr || size < GUEST_PTHREAD_STACK_MIN || attr_value == nullptr) {
|
||||
return KERNEL_ERROR_EINVAL;
|
||||
}
|
||||
|
||||
@@ -2210,7 +2210,7 @@ int KYTY_SYSV_ABI PthreadAttrSetstacksize(PthreadAttr* attr, size_t stack_size)
|
||||
// PRINT_NAME();
|
||||
|
||||
auto* attr_value = GetPthreadAttrValue(attr, "PthreadAttrSetstacksize");
|
||||
if (stack_size < PTHREAD_STACK_MIN || attr_value == nullptr) {
|
||||
if (stack_size < GUEST_PTHREAD_STACK_MIN || attr_value == nullptr) {
|
||||
return KERNEL_ERROR_EINVAL;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "libs/libs.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <atomic>
|
||||
#include <limits>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
Reference in New Issue
Block a user