Make allocatePinned use local storage, and other refactorings
[ghc-hetmet.git] / rts / Capability.h
index 6fdc002..ff6e368 100644 (file)
@@ -22,7 +22,7 @@
 #include "Task.h"
 #include "Sparks.h"
 
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
 
 struct Capability_ {
     // State required by the STG virtual machine when running Haskell
@@ -69,6 +69,9 @@ struct Capability_ {
     bdescr **mut_lists;
     bdescr **saved_mut_lists; // tmp use during GC
 
+    // block for allocating pinned objects into
+    bdescr *pinned_object_block;
+
     // Context switch flag. We used to have one global flag, now one 
     // per capability. Locks required  : none (conflicts are harmless)
     int context_switch;
@@ -332,6 +335,6 @@ contextSwitchCapability (Capability *cap)
     cap->context_switch = 1;
 }
 
-#pragma GCC visibility pop
+END_RTS_PRIVATE
 
 #endif /* CAPABILITY_H */