From 866a6ca0e749f4446b7fdc7579a6d553df85ec10 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Wed, 5 Jan 2022 14:27:09 -0800 Subject: Moved includes to its own directory --- include/util/mutex.h | 17 +++++++++++++++++ include/util/status.h | 6 ++++++ include/util/time.h | 26 ++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 include/util/mutex.h create mode 100644 include/util/status.h create mode 100644 include/util/time.h (limited to 'include/util') diff --git a/include/util/mutex.h b/include/util/mutex.h new file mode 100644 index 0000000..524a461 --- /dev/null +++ b/include/util/mutex.h @@ -0,0 +1,17 @@ +#ifndef UTIL_MUTEX_H +#define UTIL_MUTEX_H + +#define NULL_PID 0 +#define SYS_PID 1 +#define SCHED_PID 2 + +struct Mutex { + void* addr; + unsigned long pid; +} __attribute__((packed, aligned(4)));; + +unsigned char lock_mutex(struct Mutex*, unsigned long); +unsigned char release_mutex(struct Mutex*, unsigned long); +struct Mutex* create_mutex(void* addr); + +#endif diff --git a/include/util/status.h b/include/util/status.h new file mode 100644 index 0000000..f6966dd --- /dev/null +++ b/include/util/status.h @@ -0,0 +1,6 @@ +#ifndef UTIL_STATUS_H +#define UTIL_STATUS_H + +void status(void); + +#endif diff --git a/include/util/time.h b/include/util/time.h new file mode 100644 index 0000000..f6dacb0 --- /dev/null +++ b/include/util/time.h @@ -0,0 +1,26 @@ +#ifndef UTIL_TIME_H +#define UTIL_TIME_H + +void routing_core0cntv_to_core0irq(void); +unsigned long read_core0timer_pending(void); +unsigned long long read_cntvct(void); +unsigned long long read_cntvoff(void); +unsigned long read_cntv_tval(void); +void write_cntv_tval(unsigned long val); +unsigned long read_cntfrq(void); + +static inline void enablecntv(void) +{ + unsigned long cntv_ctl; + cntv_ctl = 1; + asm volatile ("mcr p15, 0, %0, c14, c3, 1" :: "r"(cntv_ctl) ); // write CNTV_CTL +} + +static inline void disablecntv(void) +{ + unsigned long cntv_ctl; + cntv_ctl = 0; + asm volatile ("mcr p15, 0, %0, c14, c3, 1" :: "r"(cntv_ctl) ); // write CNTV_CTL +} + +#endif -- cgit v1.2.1