From e15d41a5619c41f3440369e625d6d96921718221 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Thu, 30 Dec 2021 20:50:44 -0800 Subject: Added Data Structures Added basic scheduling TODO: Preserve registers for context switch --- src/sys/schedule.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/sys/schedule.h (limited to 'src/sys/schedule.h') diff --git a/src/sys/schedule.h b/src/sys/schedule.h new file mode 100644 index 0000000..04dad6a --- /dev/null +++ b/src/sys/schedule.h @@ -0,0 +1,29 @@ +#ifndef SYS_SCHEDULE_H +#define SYS_SCHEDULE_H + +struct Task { + unsigned char priority; + void (*task)(void); +}; + +#ifdef FLAT +struct Scheduler { + struct Task** tasks; +}; +#elseif LL +#include "../lib/ll.h" +struct Scheduler { + struct LL* tasks; +}; +#else +#include "../lib/q.h" +struct Scheduler { + struct Q_base* tasks; +}; +#endif + +void add_task(struct Task*); +unsigned int get_task_length(void); +void execute_task(void); + +#endif -- cgit v1.2.1