mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-10-28 20:48:42 +01:00
* p2p crypto schema * adding p2p keyring * p2p framing and testing * fixups * test fix * missing definations * implementation of host functions * tcp/transport of p2p packets * improvements in binding * guest_net ,improvements and test cases * all mighty clang * fixing macOS tests failures * misc * net_rewrite : net_errors , types and translation schemas * updated fixed chunks transfer on windows * bye bye old net * small updates for the new net * settings and tests * net lib first draft * allow more than 1 P2P instances on from same pc * improved shadnet replies * possible fix for jojo * cleanup * move net files to libaries/net * fixed macOS tests * mighty clang * fixed cmakelists * don't cosume inviation event on client (test code) * fix macOS tests * Large multi-file rework for Signaling and Matching2 network handling / optimization. Consolidates Matching2-signaling and signaling to one process (signaling_handler) General cleanup and consolidation of matching2 context management > nphandler Removal of a lot SIgnaling overall structure cleanup. Matching2: added get and set roommemberdatainternal and the proper type / shadnet call / request / reply. Consolidated signaling/matching2 typedefs to np_types2 Utilized Codex as a reviewer and for general cleanup. * all mighty clang * fixed member attributes * fixed MAPPED address for matching signaling * Fixed sceNpMatching2SignalingGetLocalNetInfo * fixups on net core/library based on fw * improved errno * spilt p2p to net_p2p * some cleanups * fix for localinfo * clang * fix up * cleanups * cleanups * added KernelFstat * fixed fstat * one more fix for fstat... * cleanup old deprecated code * cleanup * General logging cleanup across NP changes. Thanks Stephen! * cleanup based on stephen's suggestions * fixup * fixing tests * blah * fixup * improve memory pools * cleaunp * force https disable option * clang * @stephen's fixes * added network field in settings and ported old network ones --------- Co-authored-by: Metr1k <blackkn1ght1991@gmail.com>
51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
// SPDX-FileCopyrightText: Copyright 2026 shadPS4 Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
// The kernel calls libSceNet forwards to (threads, sleep, process time), on host threads.
|
|
|
|
#include <chrono>
|
|
#include <cstdlib>
|
|
#include <thread>
|
|
|
|
#include "core/libraries/kernel/threads.h"
|
|
#include "core/libraries/kernel/threads/pthread.h"
|
|
#include "core/libraries/kernel/time.h"
|
|
|
|
namespace Libraries::Kernel {
|
|
|
|
u64 PS4_SYSV_ABI sceKernelGetProcessTime() {
|
|
static const auto start = std::chrono::steady_clock::now();
|
|
return static_cast<u64>(std::chrono::duration_cast<std::chrono::microseconds>(
|
|
std::chrono::steady_clock::now() - start)
|
|
.count());
|
|
}
|
|
|
|
s32 PS4_SYSV_ABI sceKernelUsleep(u32 microseconds) {
|
|
std::this_thread::sleep_for(std::chrono::microseconds{microseconds});
|
|
return 0;
|
|
}
|
|
|
|
int PS4_SYSV_ABI posix_pthread_create_name_np(PthreadT* thread, const PthreadAttrT*,
|
|
PthreadEntryFunc start_routine, void* arg,
|
|
const char*) {
|
|
auto* t = new std::thread([start_routine, arg] { start_routine(arg); });
|
|
*thread = reinterpret_cast<PthreadT>(t);
|
|
return 0;
|
|
}
|
|
|
|
int PS4_SYSV_ABI posix_pthread_join(PthreadT pthread, void** thread_return) {
|
|
auto* t = reinterpret_cast<std::thread*>(pthread);
|
|
t->join();
|
|
delete t;
|
|
if (thread_return != nullptr) {
|
|
*thread_return = nullptr;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void PS4_SYSV_ABI posix_pthread_exit(void*) {
|
|
std::abort(); // no test exits a thread this way
|
|
}
|
|
|
|
} // namespace Libraries::Kernel
|