summaryrefslogtreecommitdiff
path: root/os
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2021-01-22 13:45:09 +0100
committerVegard Storheil Eriksen <zyp@jvnv.net>2021-01-22 13:45:09 +0100
commit257c13ef064e20bfbe7330004c76a77f8a73b86b (patch)
tree8610cedea8481d8d6dbbc02edadd61e4983e758d /os
parent1a38973eb8fd0f889f7c272e9ef183687034d550 (diff)
os: Remove old threading code.
Diffstat (limited to 'os')
-rw-r--r--os/thread.cpp4
-rw-r--r--os/thread.h63
-rw-r--r--os/time.h3
3 files changed, 1 insertions, 69 deletions
diff --git a/os/thread.cpp b/os/thread.cpp
deleted file mode 100644
index 426fffd..0000000
--- a/os/thread.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "thread.h"
-
-Thread Thread::main_thread __attribute__ ((init_priority (1000)));
-Thread* Thread::active_thread = &Thread::main_thread;
diff --git a/os/thread.h b/os/thread.h
deleted file mode 100644
index 2213d6f..0000000
--- a/os/thread.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef THREAD_H
-#define THREAD_H
-
-#include <stdint.h>
-
-class Thread {
- friend void switch_context();
-
- private:
- struct int_frame_t {
- // Software saved.
- uint32_t r4;
- uint32_t r5;
- uint32_t r6;
- uint32_t r7;
- uint32_t r8;
- uint32_t r9;
- uint32_t r10;
- uint32_t r11;
- uint32_t lr_ex;
-
- // Hardware saved.
- uint32_t r0;
- uint32_t r1;
- uint32_t r2;
- uint32_t r3;
- uint32_t r12;
- uint32_t lr;
- uint32_t pc;
- uint32_t psr;
- };
-
- int_frame_t* sp;
-
- Thread* next;
-
- static Thread* active_thread;
- static Thread main_thread;
-
- Thread() : next(this) {}
-
- public:
- Thread(void* stack, uint32_t stack_size, void (*func)()) {
- sp = (int_frame_t*)((uint8_t*)stack + stack_size - sizeof(int_frame_t));
-
- sp->lr_ex = 0xfffffff9;
-
- // frame->lr = thread exit handler
- sp->pc = (uint32_t)func;
- sp->psr = 0x01000000;
- }
-
- void start() {
- next = active_thread->next;
- active_thread->next = this;
- }
-
- static inline void yield() {
- asm volatile("svc 0");
- }
-};
-
-#endif
diff --git a/os/time.h b/os/time.h
index f4e3ce6..eddba32 100644
--- a/os/time.h
+++ b/os/time.h
@@ -1,7 +1,7 @@
#ifndef TIME_H
#define TIME_H
-#include "thread.h"
+#include <cstdint>
struct STK_t {
volatile uint32_t CTRL;
@@ -28,7 +28,6 @@ class Time {
inline static void sleep(uint32_t ms) {
ms += systime;
while(systime < ms) {
- Thread::yield();
}
}
};