diff options
author | Wojtek Kosior <kwojtus@protonmail.com> | 2020-01-03 04:53:01 +0100 |
---|---|---|
committer | Wojtek Kosior <kwojtus@protonmail.com> | 2020-01-03 04:53:01 +0100 |
commit | ffb2c4adfb8e65e355b39abd39d994eebc649c98 (patch) | |
tree | 760ef43f89b480ecd0be4bfd9312eb0d8c744d05 /scheduler.h | |
parent | 6bf5a3b8c6e8a5d1cb3fb4880a5d9688ab094c62 (diff) | |
download | rpi-MMU-example-ffb2c4adfb8e65e355b39abd39d994eebc649c98.tar.gz rpi-MMU-example-ffb2c4adfb8e65e355b39abd39d994eebc649c98.zip |
add (not yet fully working - it can only send through uart now) interrupt-driven uart together with "scheduler"
Diffstat (limited to 'scheduler.h')
-rw-r--r-- | scheduler.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/scheduler.h b/scheduler.h new file mode 100644 index 0000000..8c0f569 --- /dev/null +++ b/scheduler.h @@ -0,0 +1,32 @@ +#ifndef SCHEDULER_H +#define SCHEDULER_H + +#include <stdint.h> + +#include "psr.h" + +extern PSR_t PL1_PSR; + +void setup_scheduler_structures(void); + +// to be called by irq handler when respective uart interrupt happens +void scheduler_try_output(void); + +// to be called by irq handler when respective uart interrupt happens +void scheduler_try_input(void); + +void __attribute__((noreturn)) +schedule_wait_for_output(uint32_t regs[14], char c); + +void __attribute__((noreturn)) +schedule_wait_for_input(uint32_t regs[14]); + +void __attribute__((noreturn)) +schedule_save_context(uint32_t regs[14]); + +void __attribute__((noreturn)) schedule(void); + +void __attribute__((noreturn)) +schedule_new(uint32_t pc, uint32_t sp); + +#endif |