summaryrefslogtreecommitdiff
path: root/arch/arm/machine/tcb.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/machine/tcb.h')
-rw-r--r--arch/arm/machine/tcb.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/machine/tcb.h b/arch/arm/machine/tcb.h
index fc0ae372..8dca13cc 100644
--- a/arch/arm/machine/tcb.h
+++ b/arch/arm/machine/tcb.h
@@ -24,6 +24,7 @@
#include <stdnoreturn.h>
#include <kern/init.h>
+#include <machine/cpu.h>
#include <machine/page.h>
/*
@@ -41,13 +42,15 @@ void tcb_cleanup(struct tcb *tcb);
static inline struct tcb *
tcb_current(void)
{
- return NULL;
+ extern struct tcb *tcb_current_ptr;
+ return cpu_local_read(tcb_current_ptr);
}
static inline void
tcb_set_current(struct tcb *tcb)
{
- (void)tcb;
+ extern struct tcb *tcb_current_ptr;
+ cpu_local_assign(tcb_current_ptr, tcb);
}
noreturn void tcb_load(struct tcb *tcb);