From 3de42a19661a3d6d24de46ca2920b06e1dc88fe0 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Tue, 3 Oct 2023 23:16:08 -0600 Subject: demo: initial commit --- demo/demo.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 demo/demo.h (limited to 'demo/demo.h') diff --git a/demo/demo.h b/demo/demo.h new file mode 100644 index 0000000..1bff8d6 --- /dev/null +++ b/demo/demo.h @@ -0,0 +1,34 @@ +#ifndef DEMO_H +#define DEMO_H + +#define NUM_CPUS 4 + +struct lock +{ + volatile unsigned val; +}; + +struct cpu +{ + unsigned num; +}; + +/* R12 está reservado por la ABI + * https://gcc.gnu.org/onlinedocs/gcc/Global-Register-Variables.html + */ +register struct cpu *this_cpu asm("ip"); + +void spin_init(struct lock *lock); +void spin_lock(struct lock *lock, unsigned *irq_save); +void spin_unlock(struct lock *lock, unsigned irq_save); + +void console_init(void); +void print(const char *fmt, ...); + +int cpus_ready(void); +void run_cpu(unsigned num); +void run_cpus(unsigned mask); +void halt_cpu(unsigned num); +void halt_cpus(unsigned mask); + +#endif -- cgit v1.2.3