src/hotspot/share/gc/cms/vmStructs_cms.hpp
changeset 49730 c2761ef9fd95
parent 47816 ac0af7750da9
child 50193 49c3e91c424f
--- a/src/hotspot/share/gc/cms/vmStructs_cms.hpp	Tue Apr 10 12:12:43 2018 +0200
+++ b/src/hotspot/share/gc/cms/vmStructs_cms.hpp	Tue Apr 10 12:15:07 2018 +0200
@@ -25,9 +25,15 @@
 #ifndef SHARE_VM_GC_CMS_VMSTRUCTS_CMS_HPP
 #define SHARE_VM_GC_CMS_VMSTRUCTS_CMS_HPP
 
-#define VM_STRUCTS_CMS(nonstatic_field, \
-                   volatile_nonstatic_field, \
-                   static_field) \
+#include "gc/cms/cmsHeap.hpp"
+#include "gc/cms/compactibleFreeListSpace.hpp"
+#include "gc/cms/concurrentMarkSweepGeneration.hpp"
+#include "gc/cms/concurrentMarkSweepThread.hpp"
+#include "gc/cms/parNewGeneration.hpp"
+
+#define VM_STRUCTS_CMSGC(nonstatic_field,                                                                                            \
+                         volatile_nonstatic_field,                                                                                   \
+                         static_field)                                                                                               \
   nonstatic_field(CompactibleFreeListSpace,    _collector,                                    CMSCollector*)                         \
   nonstatic_field(CompactibleFreeListSpace,    _bt,                                           BlockOffsetArrayNonContigSpace)        \
      static_field(CompactibleFreeListSpace,    _min_chunk_size_in_bytes,                      size_t)                                \
@@ -43,13 +49,22 @@
   nonstatic_field(AFLBinaryTreeDictionary,     _total_size,                                   size_t)                                \
   nonstatic_field(CompactibleFreeListSpace,    _dictionary,                                   AFLBinaryTreeDictionary*)              \
   nonstatic_field(CompactibleFreeListSpace,    _indexedFreeList[0],                           AdaptiveFreeList<FreeChunk>)           \
-  nonstatic_field(CompactibleFreeListSpace,    _smallLinearAllocBlock,                        LinearAllocBlock)
+  nonstatic_field(CompactibleFreeListSpace,    _smallLinearAllocBlock,                        LinearAllocBlock)                      \
+  volatile_nonstatic_field(FreeChunk,          _size,                                         size_t)                                \
+  nonstatic_field(FreeChunk,                   _next,                                         FreeChunk*)                            \
+  nonstatic_field(FreeChunk,                   _prev,                                         FreeChunk*)                            \
+  nonstatic_field(AdaptiveFreeList<FreeChunk>, _size,                                         size_t)                                \
+  nonstatic_field(AdaptiveFreeList<FreeChunk>, _count,                                        ssize_t)
 
 
-#define VM_TYPES_CMS(declare_type,                                        \
-                     declare_toplevel_type)                               \
+
+#define VM_TYPES_CMSGC(declare_type,                                      \
+                       declare_toplevel_type,                             \
+                       declare_integer_type)                              \
                                                                           \
+           declare_type(CMSHeap,                      GenCollectedHeap)   \
            declare_type(ConcurrentMarkSweepGeneration,CardGeneration)     \
+           declare_type(ParNewGeneration,             DefNewGeneration)   \
            declare_type(CompactibleFreeListSpace,     CompactibleSpace)   \
            declare_type(ConcurrentMarkSweepThread,    NamedThread)        \
   declare_toplevel_type(CMSCollector)                                     \
@@ -61,10 +76,16 @@
   declare_toplevel_type(CompactibleFreeListSpace*)                        \
   declare_toplevel_type(CMSCollector*)                                    \
   declare_toplevel_type(AFLBinaryTreeDictionary)                          \
-  declare_toplevel_type(LinearAllocBlock)
+  declare_toplevel_type(LinearAllocBlock)                                 \
+  declare_toplevel_type(FreeChunk*)                                       \
+  declare_toplevel_type(AdaptiveFreeList<FreeChunk>*)                     \
+  declare_toplevel_type(AdaptiveFreeList<FreeChunk>)
 
-#define VM_INT_CONSTANTS_CMS(declare_constant)                            \
+
+#define VM_INT_CONSTANTS_CMSGC(declare_constant,                          \
+                               declare_constant_with_value)               \
   declare_constant(CompactibleFreeListSpace::IndexSetSize)                \
   declare_constant(Generation::ConcurrentMarkSweep)                       \
+  declare_constant(Generation::ParNew)
 
 #endif // SHARE_VM_GC_CMS_VMSTRUCTS_CMS_HPP