[Kernel] CreateThread stub

This commit is contained in:
wheremyfoodat 2022-09-19 16:29:50 +03:00
parent 765b51696e
commit 1c4348248d
8 changed files with 58 additions and 7 deletions

View file

@ -17,7 +17,9 @@ class Kernel {
std::vector<KernelObject> objects;
std::vector<Handle> portHandles;
u32 currentProcess;
Handle currentProcess;
Handle currentThread;
u32 threadCount;
ServiceManager serviceManager;
// Get pointer to the object with the specified handle
@ -53,6 +55,7 @@ class Kernel {
Handle makeProcess();
Handle makePort(const char* name);
Handle makeSession(Handle port);
Handle makeThread(u32 entrypoint, u32 initialSP, u32 priority, u32 id);
std::optional<Handle> getPortHandle(const char* name);
void deleteObjectData(KernelObject& object);
@ -68,6 +71,7 @@ class Kernel {
// SVC implementations
void createAddressArbiter();
void createEvent();
void createThread();
void controlMemory();
void mapMemoryBlock();
void queryMemory();

View file

@ -10,12 +10,14 @@ namespace SVCResult {
// Different calls return a different value
BadHandle = 0xD8E007F7,
BadHandleAlt = 0xD9001BF7,
PortNameTooLong = 0xE0E0181E
BadThreadPriority = 0xE0E01BFD,
PortNameTooLong = 0xE0E0181E,
};
}
enum class KernelObjectType : u8 {
Event, Port, Process, ResourceLimit, Session, Dummy
Event, Port, Process, ResourceLimit, Session, Thread, Dummy
};
enum class ResourceLimitCategory : int {
@ -84,6 +86,7 @@ static const char* kernelObjectTypeToString(KernelObjectType t) {
case KernelObjectType::Process: return "process";
case KernelObjectType::ResourceLimit: return "resource limit";
case KernelObjectType::Session: return "session";
case KernelObjectType::Thread: return "thread";
case KernelObjectType::Dummy: return "dummy";
default: return "unknown";
}