]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/kern/fpu.cpp
update
[l4.git] / kernel / fiasco / src / kern / fpu.cpp
index 6caf09e8954adf6318b6b8b5d26b8c404e47ace8..280892a1ca99f5e6ad7737cdfc3e89504afa9f32 100644 (file)
@@ -34,32 +34,40 @@ public:
   static void enable();
 
 private:
+  Context *_owner;
 
-  static Per_cpu<Context *>_owner;
+  static Per_cpu<Fpu> _fpu;
 };
 
 IMPLEMENTATION:
 
 #include "fpu_state.h"
 
-Per_cpu<Context *> DEFINE_PER_CPU Fpu::_owner;
+Per_cpu<Fpu> DEFINE_PER_CPU Fpu::_fpu;
 
 IMPLEMENT inline
 Context * Fpu::owner(unsigned cpu)
 {
-  return _owner.cpu(cpu);
+  return _fpu.cpu(cpu)._owner;
 }
 
 IMPLEMENT inline
 void Fpu::set_owner(unsigned cpu, Context *owner)
 {
-  _owner.cpu(cpu) = owner;
+  _fpu.cpu(cpu)._owner = owner;
 }
 
 IMPLEMENT inline
 bool Fpu::is_owner(unsigned cpu, Context *owner)
 {
-  return _owner.cpu(cpu) == owner;
+  return _fpu.cpu(cpu)._owner == owner;
+}
+
+PUBLIC static inline
+Fpu &
+Fpu::fpu(unsigned cpu)
+{
+  return _fpu.cpu(cpu);
 }
 
 //---------------------------------------------------------------------------