From b7590870cfd909baca7b5dc1d954e233ec92092e Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Wed, 16 Mar 2022 12:46:30 -0700 Subject: List Schedule --- include/globals.h | 1 + include/sys/schedule.h | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/globals.h b/include/globals.h index 249ffe7..ce98c97 100644 --- a/include/globals.h +++ b/include/globals.h @@ -17,6 +17,7 @@ extern struct Thread usrloopthread; extern unsigned int gwidth, gheight, gpitch, gisrgb; extern unsigned char thread_table[MAX_THREADS]; extern struct Thread threads[MAX_THREADS]; +extern struct ThreadEntry thread_entries[MAX_THREADS]; extern unsigned long mutex_table[MAX_MUTEXS]; extern struct Mutex mutexs[MAX_MUTEXS]; #endif diff --git a/include/sys/schedule.h b/include/sys/schedule.h index 3015e98..a6e03a9 100644 --- a/include/sys/schedule.h +++ b/include/sys/schedule.h @@ -13,6 +13,12 @@ enum ThreadStatus { THREAD_SWAIT = 2, }; +enum EntryTypes { + THREAD_ENTRY = 0, + START_ENTRY = 1, + END_ENTRY = 2, +}; + struct Thread { void* pc; void* sp; // Store r0-r12,lr on stack @@ -31,18 +37,13 @@ struct Thread { struct ThreadEntry { struct Thread* thread; - struct ThreadEntry* prev; struct ThreadEntry* next; -}; - -struct ThreadEntryIterator { - struct ThreadEntry* entry; + unsigned long entry_type; }; struct ThreadQueue { - struct ThreadEntry entry[TQUEUE_MAX]; - struct ThreadEntryIterator read; - struct ThreadEntryIterator write; + struct ThreadEntry start; + struct ThreadEntry end; }; struct Scheduler { -- cgit v1.2.1