32#ifndef __AA64_SCHED_H__
33#define __AA64_SCHED_H__
40#define THREAD_STATE_READY 1
41#define THREAD_STATE_BLOCKED 3
42#define THREAD_STATE_SLEEP 4
43#define THREAD_STATE_KILLABLE 5
49#define THREAD_LEVEL_KERNEL (1<<0)
50#define THREAD_LEVEL_USER (1<<1)
51#define THREAD_LEVEL_SUBTHREAD (1<<2)
52#define THREAD_LEVEL_MAIN_THREAD (1<<3)
71typedef struct _aa64_task_ {
106 bool returnFromSyscall;
112 struct _aa64_task_* next;
113 struct _aa64_task_* prev;
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
XETime t
Definition main.cpp:53
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
__declspec(align(2)) typedef struct _icmp_head_
Definition icmp.h:37
void(* entry)(void *)
Definition process.h:91
AA64Thread * AuGetIdleThread()
Definition sched.c:513
uint64_t thread_id
Definition sched.c:68
void AuSchedulerInitialize()
AuSchedulerInitialize – initialize the scheduler.
Definition sched.c:481
void AuScheduleThread(AA64Registers *regs)
AuScheduleThread – the core of multi-tasking. It schedules threads next to be runned.
Definition sched.c:392
uint64_t AuCreateKernelStack(uint64_t *pml)
AuCreateKernelStack – maps kernel stack and return the top of the stack, it only maps 4KiB of stack.
Definition sched.c:467
Definition x86_64_sched.h:98
uint64_t ss
Definition x86_64_sched.h:102
char ** argvs
Definition x86_64_sched.h:105
uint64_t stackBase
Definition x86_64_sched.h:106
uint64_t argvaddr
Definition x86_64_sched.h:104
uint64_t entrypoint
Definition x86_64_sched.h:99
uint64_t rsp
Definition x86_64_sched.h:100
int num_args
Definition x86_64_sched.h:103
uint64_t cs
Definition x86_64_sched.h:101
AU_EXTERN AU_EXPORT void AuForceScheduler()
AuForceScheduler – force the scheduler to switch next thread.
Definition x86_64_sched.cpp:621
AU_EXTERN AU_EXPORT void AuUnblockThread(AuThread *t)
Definition x86_64_sched.cpp:541
void AuSchedulerStart()
AuSchedulerStart – start the scheduler.
Definition x86_64_sched.cpp:485
AU_EXTERN AU_EXPORT AuThread * AuThreadFindByIDBlockList(uint16_t id)
Definition x86_64_sched.cpp:609
AU_EXTERN AU_EXPORT AuThread * AuGetCurrentThread()
Definition x86_64_sched.cpp:505
AU_EXTERN AU_EXPORT void AuSleepThread(AuThread *thread, uint64_t ms)
Definition x86_64_sched.cpp:523
AU_EXTERN AU_EXPORT AuThread * AuThreadFindByID(uint16_t id)
Definition x86_64_sched.cpp:596
struct _uentry_ AuUserEntry
AU_EXTERN AU_EXPORT void AuBlockThread(AuThread *thread)
Definition x86_64_sched.cpp:514
void AuThreadMoveToTrash(AuThread *t)
Definition x86_64_sched.cpp:560
AU_EXTERN AU_EXPORT uint64_t AuGetSystemTimerTick()
AuGetSystemTimerTick – return the current system timer tick.
Definition x86_64_sched.cpp:634
AU_EXTERN AU_EXPORT AuThread * AuCreateKthread(void(*entry)(uint64_t), uint64_t stack, uint64_t cr3, char *name)
Definition x86_64_sched.cpp:253