X-Git-Url: https://rtime.felk.cvut.cz/gitweb/l4.git/blobdiff_plain/35719fdd2ff27177690edb32843d32e092a006e3..5658d2ec9c1081516a8868259fa867926e25ab3f:/kernel/fiasco/src/kern/context_base.cpp diff --git a/kernel/fiasco/src/kern/context_base.cpp b/kernel/fiasco/src/kern/context_base.cpp index aeb5f4e14..5ea22f666 100644 --- a/kernel/fiasco/src/kern/context_base.cpp +++ b/kernel/fiasco/src/kern/context_base.cpp @@ -17,34 +17,12 @@ public: // all start at offset 0 virtual ~Context_base() = 0; -protected: - Mword _state; -}; - -//--------------------------------------------------------------------------- -INTERFACE [mp]: - -EXTENSION class Context_base -{ protected: friend unsigned &__cpu_of(const void *); + Mword _state; unsigned _cpu; }; -//--------------------------------------------------------------------------- -IMPLEMENTATION [!mp]: - -inline -void set_cpu_of(const void *ptr, unsigned cpu) -{ (void)ptr; (void)cpu; } - -inline -unsigned cpu_of(const void *) -{ return 0; } - -inline -unsigned current_cpu() -{ return 0; } //--------------------------------------------------------------------------- IMPLEMENTATION: @@ -65,11 +43,6 @@ inline NEEDS [context_of, "processor.h"] Context *current() { return context_of((void *)Proc::stack_pointer()); } -//--------------------------------------------------------------------------- -IMPLEMENTATION [mp]: - -#include "config.h" - inline NEEDS ["config.h"] unsigned &__cpu_of(const void *ptr) { return reinterpret_cast(context_of(ptr))->_cpu; } @@ -83,6 +56,16 @@ inline NEEDS [__cpu_of] unsigned cpu_of(const void *ptr) { return __cpu_of(ptr); } +//--------------------------------------------------------------------------- +IMPLEMENTATION [!mp]: + +inline +unsigned current_cpu() +{ return 0; } + +//--------------------------------------------------------------------------- +IMPLEMENTATION [mp]: + inline NEEDS [current, cpu_of] unsigned current_cpu() { return cpu_of(current()); }