shadPS4/src/Core/PS4/HLE/Kernel/ThreadManagement.h

38 lines
996 B
C
Raw Normal View History

2023-07-17 22:46:25 +02:00
#pragma once
2023-07-18 17:54:46 +02:00
#include <pthread.h>
#include <sched.h>
#include "../../../../types.h"
#include <string>
2023-07-18 17:54:46 +02:00
2023-07-17 22:46:25 +02:00
namespace HLE::Libs::LibKernel::ThreadManagement {
2023-07-18 17:54:46 +02:00
struct PthreadAttrInternal;
2023-07-18 18:28:28 +02:00
using SceKernelSchedParam = ::sched_param;
2023-07-18 17:54:46 +02:00
using ScePthreadAttr = PthreadAttrInternal*;
struct PthreadInternal {
u08 reserved[4096];
std::string name;
pthread_t pth;
ScePthreadAttr attr;
2023-07-18 17:54:46 +02:00
};
struct PthreadAttrInternal {
u08 reserved[64];
2023-07-18 17:54:46 +02:00
u64 affinity;
size_t guard_size;
int policy;
bool detached;
pthread_attr_t pth_attr;
2023-07-18 17:54:46 +02:00
};
class PThreadCxt {};
//HLE FUNCTIONS
int scePthreadAttrInit(ScePthreadAttr* attr);
int scePthreadAttrSetdetachstate(ScePthreadAttr* attr, int detachstate);
int scePthreadAttrSetinheritsched(ScePthreadAttr* attr, int inheritSched);
int scePthreadAttrSetschedparam(ScePthreadAttr* attr, const SceKernelSchedParam* param);
int scePthreadAttrSetschedpolicy(ScePthreadAttr* attr, int policy);
} // namespace HLE::Libs::LibKernel::ThreadManagement