mirror of
https://github.com/SysRay/psOff_public.git
synced 2024-10-07 03:43:54 +00:00
Symbols
This commit is contained in:
parent
0a3c8a49dd
commit
5b83e13a70
@ -6,6 +6,7 @@
|
||||
#include "utility/utility.h"
|
||||
|
||||
#include <windows.h>
|
||||
#include <mutex>
|
||||
|
||||
LOG_DEFINE_MODULE(memory);
|
||||
|
||||
@ -299,4 +300,40 @@ void installHook_long(uintptr_t dst, uintptr_t src, _t_hook& pGateway, size_t le
|
||||
|
||||
protect((uintptr_t)pGateway.data.data(), pGateway.data.size(), SceProtExecute | SceProtRead, nullptr);
|
||||
}
|
||||
|
||||
int VirtualLock::check_mmaped(void* addr, size_t len) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
VirtualLock& VirtualLock::instance() {
|
||||
static VirtualLock instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
void VirtualLock::lock() {
|
||||
MMLock.lock();
|
||||
}
|
||||
|
||||
void VirtualLock::unlock() {
|
||||
MMLock.unlock();
|
||||
}
|
||||
|
||||
void MLOCK(VirtualLock& vLock) {
|
||||
vLock.lock();
|
||||
}
|
||||
|
||||
void MUNLOCK(VirtualLock& vLock) {
|
||||
vLock.unlock();
|
||||
}
|
||||
|
||||
int check_mmaped(void* addr, size_t len) {
|
||||
LOG_USE_MODULE(memory);
|
||||
VirtualLock& vLock = VirtualLock::instance();
|
||||
MLOCK(vLock);
|
||||
|
||||
int result = vLock.check_mmaped(addr, len);
|
||||
|
||||
MUNLOCK(vLock);
|
||||
return result;
|
||||
}
|
||||
} // namespace memory
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
#include <array>
|
||||
#include <stdint.h>
|
||||
#include <mutex>
|
||||
|
||||
constexpr int SceProtRead = 1;
|
||||
constexpr int SceProtWrite = 2;
|
||||
@ -25,6 +26,20 @@ struct _t_hook {
|
||||
std::array<uint8_t, 14 + 8> data; // Should be enough for inserting the hook (min 14 max 14+8)
|
||||
};
|
||||
|
||||
class VirtualLock {
|
||||
public:
|
||||
int check_mmaped(void* addr, size_t len);
|
||||
static VirtualLock& instance();
|
||||
void lock();
|
||||
void unlock();
|
||||
|
||||
private:
|
||||
std::mutex MMLock;
|
||||
};
|
||||
|
||||
void MLOCK(VirtualLock& vLock);
|
||||
void MUNLOCK(VirtualLock& vLock);
|
||||
|
||||
__APICALL int getpagesize(void);
|
||||
__APICALL uint64_t getTotalSystemMemory();
|
||||
__APICALL uintptr_t reserve(uint64_t start, uint64_t size, uint64_t alignment, bool isGpu);
|
||||
@ -37,6 +52,7 @@ __APICALL bool allocFixed(uint64_t address, uint64_t size, int prot);
|
||||
__APICALL bool free(uint64_t address);
|
||||
__APICALL bool protect(uint64_t address, uint64_t size, int prot, int* oldMode = nullptr);
|
||||
__APICALL int getProtection(uint64_t address);
|
||||
__APICALL int check_mmaped(void* addr, size_t len);
|
||||
|
||||
__APICALL void installHook_long(uintptr_t dst, uintptr_t src, _t_hook& pGateway, size_t lenOpCodes);
|
||||
} // namespace memory
|
||||
|
@ -97,6 +97,12 @@ EXPORT SYSV_ABI int32_t sceGameLiveStreamingClearSocialFeedbackMessages(const Sc
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceGameLiveStreamingSetStandbyScreenResource(const char* resource) {
|
||||
LOG_USE_MODULE(libSceGameLiveStreaming);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceGameLiveStreamingTerminate() {
|
||||
LOG_USE_MODULE(libSceGameLiveStreaming);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
|
@ -26,4 +26,5 @@ constexpr uint32_t SCE_NP_LANGUAGE_CODE_MAX_LEN = (5);
|
||||
constexpr uint32_t SCE_NP_COUNTRY_CODE_LENGTH = (2);
|
||||
constexpr uint32_t SCE_NP_NO_AGE_RESTRICTION = (0);
|
||||
constexpr uint32_t SCE_NP_PLUS_FEATURE_REALTIME_MULTIPLAY = (0x1);
|
||||
constexpr uint32_t SCE_NP_PLUS_EVENT_RECHECK_NEEDED = (0x1);
|
||||
constexpr uint32_t SCE_NP_PLUS_EVENT_RECHECK_NEEDED = (0x1);
|
||||
constexpr uint32_t SCE_NP_IN_GAME_MESSAGE_DATA_SIZE_MAX = (512);
|
@ -340,4 +340,60 @@ EXPORT SYSV_ABI int sceNpInGameMessageInitialize(size_t poolSize, void* option)
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessageAbortHandle(int32_t libCtxId, int32_t handleId) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessageCreateHandle(int32_t libCtxId) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessageDeleteHandle(int32_t libCtxId, int32_t handleId) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessagePrepare(int32_t libCtxId, int32_t handleId, const void* pReserved, SceNpInGameMessageEventCallbackA cbFunc,
|
||||
void* pUserArg) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessagePrepareA(int32_t libCtxId, int32_t handleId, const void* pReserved, SceNpInGameMessageEventCallbackA cbFunc,
|
||||
void* pUserArg) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessageSendData(int32_t libCtxId, const SceNpPeerAddressA* pTo, const SceNpPeerAddressA* pFrom, const SceNpInGameMessageData* pMessage) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessageSendDataA(int32_t libCtxId, const SceNpPeerAddressA* pTo, const SceNpPeerAddressA* pFrom, const SceNpInGameMessageData* pMessage) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessageGetMemoryPoolStatistics(int32_t libCtxId, SceNpInGameMessageMemoryPoolStatistics* pMemStats) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceNpInGameMessageTerminate(int32_t libCtxId) {
|
||||
LOG_USE_MODULE(libSceNpManager);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
return Ok;
|
||||
}
|
||||
}
|
||||
|
@ -152,3 +152,17 @@ struct SceNpCreateAsyncRequestParameter {
|
||||
uint64_t cpuAffinityMask;
|
||||
int threadPriority;
|
||||
};
|
||||
|
||||
struct SceNpInGameMessageData {
|
||||
char data[SCE_NP_IN_GAME_MESSAGE_DATA_SIZE_MAX];
|
||||
size_t dataSize;
|
||||
};
|
||||
|
||||
typedef void* SceNpInGameMessageEventCallbackA(int32_t libCtxId, const SceNpPeerAddressA* pTo, const SceNpOnlineId* pToOnlineId, const SceNpPeerAddressA* pFrom, const SceNpOnlineId* pFromOnlineId, const SceNpInGameMessageData* pMessage, void* pUserArg);
|
||||
|
||||
struct SceNpInGameMessageMemoryPoolStatistics {
|
||||
size_t poolSize;
|
||||
size_t maxInuseSize;
|
||||
size_t currentInuseSize;
|
||||
int32_t reserved;
|
||||
};
|
||||
|
@ -37,6 +37,16 @@ EXPORT SYSV_ABI int32_t _sceUltWaitingQueueResourcePoolCreate(SceUltWaitingQueue
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t _sceUltUlthreadRuntimeOptParamInitialize(SceUltUlthreadOptParam* optParam) {
|
||||
LOG_USE_MODULE(libSceUlt);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceUltUlthreadRuntimeGetWorkAreaSize(uint32_t maxUlThread, uint32_t maxWorkerThread) {
|
||||
LOG_USE_MODULE(libSceUlt);
|
||||
return 8;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t _sceUltQueueDataResourcePoolCreate(SceUltQueueDataResourcePool* pool, const char* name, uint32_t numData, size_t dataSize,
|
||||
uint32_t numQueueObjs, SceUltWaitingQueueResourcePool* waitingQueue, void* workArea,
|
||||
SceUltQueueDataResourcePoolOptParam* param) {
|
||||
|
@ -58,6 +58,11 @@ struct SceUltQueue {
|
||||
char _unknown[336];
|
||||
};
|
||||
|
||||
struct SceUltUlthreadOptParam {
|
||||
uint32_t attr;
|
||||
char _unknown[127-4];
|
||||
};
|
||||
|
||||
struct SceUltMutexOptParam {
|
||||
char _unknown[128];
|
||||
};
|
||||
};
|
@ -261,6 +261,16 @@ EXPORT SYSV_ABI int sceKernelMprotect(uint64_t addr, size_t len, int prot) {
|
||||
return memory::protect(addr, len, prot, nullptr) ? Ok : getErr(ErrCode::_EACCES);
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int sceKernelMlock(void* addr, size_t len) {
|
||||
LOG_USE_MODULE(libkernel);
|
||||
return memory::check_mmaped(addr, len) ? Ok : getErr(ErrCode::_EACCES);
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int sceKernelMunlock(void* addr, size_t len) {
|
||||
LOG_USE_MODULE(libkernel);
|
||||
return memory::check_mmaped(addr, len) ? Ok : getErr(ErrCode::_EACCES);
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int sceKernelMsync(void* addr, size_t len, int flags) {
|
||||
LOG_USE_MODULE(libkernel);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
|
Loading…
Reference in New Issue
Block a user