blob: 8c0f5697d2cdd87a2c25fa86b65d2de9b3e3879b (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
|