hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
changeset 14123 944e56f74fba
parent 13728 882756847a04
child 14574 1193d3742872
equal deleted inserted replaced
14115:f5e31fb61738 14123:944e56f74fba
    23  */
    23  */
    24 
    24 
    25 #ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
    25 #ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
    26 #define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
    26 #define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
    27 
    27 
       
    28 typedef BinaryTreeDictionary<FreeChunk, AdaptiveFreeList> AFLBinaryTreeDictionary;
       
    29 
    28 #define VM_STRUCTS_CMS(nonstatic_field, \
    30 #define VM_STRUCTS_CMS(nonstatic_field, \
    29                    volatile_nonstatic_field, \
    31                    volatile_nonstatic_field, \
    30                    static_field) \
    32                    static_field) \
    31   nonstatic_field(CompactibleFreeListSpace,    _collector,                                    CMSCollector*)                         \
    33   nonstatic_field(CompactibleFreeListSpace,    _collector,                                    CMSCollector*)                         \
    32   nonstatic_field(CompactibleFreeListSpace,    _bt,                                           BlockOffsetArrayNonContigSpace)        \
    34   nonstatic_field(CompactibleFreeListSpace,    _bt,                                           BlockOffsetArrayNonContigSpace)        \
    36   nonstatic_field(CMSBitMap,                      _bm,                                           BitMap)                            \
    38   nonstatic_field(CMSBitMap,                      _bm,                                           BitMap)                            \
    37   nonstatic_field(CMSBitMap,                   _virtual_space,                                VirtualSpace)                         \
    39   nonstatic_field(CMSBitMap,                   _virtual_space,                                VirtualSpace)                         \
    38   nonstatic_field(CMSCollector,                _markBitMap,                                   CMSBitMap)                             \
    40   nonstatic_field(CMSCollector,                _markBitMap,                                   CMSBitMap)                             \
    39   nonstatic_field(ConcurrentMarkSweepGeneration, _cmsSpace,                                   CompactibleFreeListSpace*)             \
    41   nonstatic_field(ConcurrentMarkSweepGeneration, _cmsSpace,                                   CompactibleFreeListSpace*)             \
    40      static_field(ConcurrentMarkSweepThread,   _collector,                                    CMSCollector*)                         \
    42      static_field(ConcurrentMarkSweepThread,   _collector,                                    CMSCollector*)                         \
    41   volatile_nonstatic_field(FreeChunk,          _size,                                         size_t)                                \
       
    42   nonstatic_field(FreeChunk,                   _next,                                         FreeChunk*)                            \
       
    43   nonstatic_field(FreeChunk,                   _prev,                                         FreeChunk*)                            \
       
    44   nonstatic_field(LinearAllocBlock,            _word_size,                                    size_t)                                \
    43   nonstatic_field(LinearAllocBlock,            _word_size,                                    size_t)                                \
    45   nonstatic_field(FreeList<FreeChunk>,         _size,                                         size_t)                                \
    44   nonstatic_field(AFLBinaryTreeDictionary,     _total_size,                                   size_t)                                \
    46   nonstatic_field(FreeList<FreeChunk>,         _count,                                        ssize_t)                               \
       
    47   nonstatic_field(BinaryTreeDictionary<FreeChunk>,_total_size,                                 size_t)                                \
       
    48   nonstatic_field(CompactibleFreeListSpace,    _dictionary,                                   FreeBlockDictionary<FreeChunk>*)       \
       
    49   nonstatic_field(CompactibleFreeListSpace,    _indexedFreeList[0],                           FreeList<FreeChunk>)                   \
    45   nonstatic_field(CompactibleFreeListSpace,    _indexedFreeList[0],                           FreeList<FreeChunk>)                   \
    50   nonstatic_field(CompactibleFreeListSpace,    _smallLinearAllocBlock,                        LinearAllocBlock)
    46   nonstatic_field(CompactibleFreeListSpace,    _smallLinearAllocBlock,                        LinearAllocBlock)
    51 
    47 
    52 
    48 
    53 #define VM_TYPES_CMS(declare_type,                                        \
    49 #define VM_TYPES_CMS(declare_type,                                        \
    58            declare_type(ConcurrentMarkSweepThread,    NamedThread)        \
    54            declare_type(ConcurrentMarkSweepThread,    NamedThread)        \
    59            declare_type(SurrogateLockerThread, JavaThread)                \
    55            declare_type(SurrogateLockerThread, JavaThread)                \
    60   declare_toplevel_type(CMSCollector)                                     \
    56   declare_toplevel_type(CMSCollector)                                     \
    61   declare_toplevel_type(CMSBitMap)                                        \
    57   declare_toplevel_type(CMSBitMap)                                        \
    62   declare_toplevel_type(FreeChunk)                                        \
    58   declare_toplevel_type(FreeChunk)                                        \
       
    59   declare_toplevel_type(Metablock)                                        \
    63   declare_toplevel_type(ConcurrentMarkSweepThread*)                       \
    60   declare_toplevel_type(ConcurrentMarkSweepThread*)                       \
    64   declare_toplevel_type(ConcurrentMarkSweepGeneration*)                   \
    61   declare_toplevel_type(ConcurrentMarkSweepGeneration*)                   \
    65   declare_toplevel_type(SurrogateLockerThread*)                           \
    62   declare_toplevel_type(SurrogateLockerThread*)                           \
    66   declare_toplevel_type(CompactibleFreeListSpace*)                        \
    63   declare_toplevel_type(CompactibleFreeListSpace*)                        \
    67   declare_toplevel_type(CMSCollector*)                                    \
    64   declare_toplevel_type(CMSCollector*)                                    \
    68   declare_toplevel_type(FreeChunk*)                                       \
    65   declare_toplevel_type(AFLBinaryTreeDictionary*)                         \
    69   declare_toplevel_type(BinaryTreeDictionary<FreeChunk>*)                 \
       
    70   declare_toplevel_type(FreeBlockDictionary<FreeChunk>*)                  \
       
    71   declare_toplevel_type(FreeList<FreeChunk>*)                             \
       
    72   declare_toplevel_type(FreeList<FreeChunk>)                              \
       
    73   declare_toplevel_type(LinearAllocBlock)                                 \
    66   declare_toplevel_type(LinearAllocBlock)                                 \
    74   declare_toplevel_type(FreeBlockDictionary<FreeChunk>)                   \
    67   declare_toplevel_type(FreeBlockDictionary<FreeChunk>)                   \
    75             declare_type(BinaryTreeDictionary<FreeChunk>, FreeBlockDictionary<FreeChunk>)
    68   declare_type(AFLBinaryTreeDictionary, FreeBlockDictionary<FreeChunk>)   \
       
    69             declare_type(AFLBinaryTreeDictionary, FreeBlockDictionary<FreeChunk>) \
    76 
    70 
    77 #define VM_INT_CONSTANTS_CMS(declare_constant)                            \
    71 #define VM_INT_CONSTANTS_CMS(declare_constant)                            \
    78   declare_constant(Generation::ConcurrentMarkSweep)                       \
    72   declare_constant(Generation::ConcurrentMarkSweep)                       \
    79 
    73 
    80 #endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
    74 #endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP