ptos: ps: Add thread management groundwork

Signed-off-by: Chloe M <chloe@mensia.org>
This commit is contained in:
2026-07-14 00:47:29 -04:00
parent 78ea82f158
commit cf0e104b12
3 changed files with 81 additions and 1 deletions
+39
View File
@@ -0,0 +1,39 @@
/*
* Copyright (c) 2026, Chloe M.
* Provided under the BSD-3 clause.
*
* Description: Thread management
* Author: Chloe M.
*/
#include <ps/thread.h>
#include <ps/process.h>
#include <ex/pool.h>
#include <atomic.h>
/* Globals */
static UQUAD NextThreadTid = 0;
PT_STATUS
PsCreateThread(struct _PROCESS *Parent, ULONG Flags, THREAD **Result)
{
THREAD *Thread;
if (Parent == NULL || Result == NULL) {
return STATUS_INVALID_PARAM;
}
Thread = ExAllocatePoolWithTag(
POOL_NON_PAGED,
sizeof(*Thread),
THREAD_POOL_TAG
);
if (Thread == NULL) {
return STATUS_NO_MEMORY;
}
Thread->Tid = AtomicIncQuad(&NextThreadTid);
*Result = Thread;
return STATUS_SUCCESS;
}