aboutsummaryrefslogtreecommitdiff
path: root/src/sys/schedule.c
blob: 3aca0ffdbdf28da643a1afadfe26080978fbe46e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <globals.h>
#include <sys/schedule.h>

void init_scheduler(void)
{
	// Set rthread to usrloopthread - an infinitely running thread so that the pointer will never be null
	usrloopthread.pc = (void*)loop;
	usrloopthread.sp = 0x0FCC;
	usrloopthread.sp_base = 0x1000;
	usrloopthread.mptr = 0;
	usrloopthread.pid = -1;
	usrloopthread.priority = -1;
	usrloopthread.status = THREAD_READY;
	scheduler.rthread = &usrloopthread;
	// Initialize Rotating Buffers
}

void loop(void)
{
	while(1)
		asm volatile ("wfe");
}