summaryrefslogtreecommitdiff
path: root/arch/arm/machine/tcb.h
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-11-14 09:04:14 +0100
committerRichard Braun <rbraun@sceen.net>2017-11-14 09:04:14 +0100
commit2540827b7929fe6460516e095d2c15d1c1bee92b (patch)
treeaa18a4dc7383c1dee9a8b33baa53d45493fc5413 /arch/arm/machine/tcb.h
parent3aa27e426b61b92cdb0e5b5503dd12ece85b4d69 (diff)
Per-CPU variables, TCB and SSP supportarm_port_dev
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);