1 #ifndef _THREAD_MANAGER_H_
2 #define _THREAD_MANAGER_H_
19 } __attribute__((packed))
Thread;
struct Thread * next
Definition: threads.h:10
char FPU_state[KB(16)]
Definition: threads.h:18
uint64_t UID
Definition: types.h:8
void * k_tls
Definition: threads.h:17
UID ThreadMan_GetCurThreadID(void)
Definition: threads.c:404
void ThreadMan_Yield(void)
Definition: threads.c:398
uint64_t * cr3
Definition: threads.h:12
void ThreadMan_Lock(void)
Definition: threads.c:431
void * ThreadMan_GetCurThreadTLS(void)
Definition: threads.c:410
UID uid
Definition: threads.h:15
void ThreadMan_DeleteThread(UID id)
Definition: threads.c:373
void * ThreadMan_GetThreadTLS(UID id)
Definition: threads.c:416
void ThreadMan_StartThread(UID id)
Definition: threads.c:341
int(* ProcessEntryPoint)(int, char **)
Definition: types.h:13
void ThreadMan_Setup(void)
Definition: threads.c:20
Registers regs
Definition: threads.h:11
uint32_t flags
Definition: threads.h:16
uint32_t kstack
Definition: threads.h:13
#define KB(x)
Definition: types.h:26
uint32_t status
Definition: threads.h:14
void ThreadMan_ExitThread(UID id)
Definition: threads.c:357
void ThreadMan_Unlock(void)
Definition: threads.c:442
UID ThreadMan_CreateThread(ProcessEntryPoint entry, int argc, char **argv, uint32_t flags)
Definition: threads.c:176