28 #include "memory/allocation.hpp"
29 #include "memory/blockOffsetTable.hpp"
30 #include "memory/cardTableModRefBS.hpp"
31 #include "memory/iterator.hpp"
32 #include "memory/memRegion.hpp"
33 #include "memory/watermark.hpp"
34 #include "oops/markOop.hpp"
35 #include "runtime/mutexLocker.hpp"
36 #include "runtime/prefetch.hpp"
37 #include "utilities/macros.hpp"
38 #include "utilities/workgroup.hpp"
39 #ifdef TARGET_OS_FAMILY_linux
40 # include "os_linux.inline.hpp"
41 #endif
42 #ifdef TARGET_OS_FAMILY_solaris
43 # include "os_solaris.inline.hpp"
44 #endif
45 #ifdef TARGET_OS_FAMILY_windows
46 # include "os_windows.inline.hpp"
47 #endif
48 #ifdef TARGET_OS_FAMILY_bsd
49 # include "os_bsd.inline.hpp"
50 #endif
51
52 // A space is an abstraction for the "storage units" backing
53 // up the generation abstraction. It includes specific
54 // implementations for keeping track of free and used space,
55 // for iterating over objects and free blocks, etc.
56
57 // Here's the Space hierarchy:
58 //
59 // - Space -- an asbtract base class describing a heap area
60 // - CompactibleSpace -- a space supporting compaction
61 // - CompactibleFreeListSpace -- (used for CMS generation)
62 // - ContiguousSpace -- a compactible space in which all free space
63 // is contiguous
64 // - EdenSpace -- contiguous space used as nursery
65 // - ConcEdenSpace -- contiguous space with a 'soft end safe' allocation
66 // - OffsetTableContigSpace -- contiguous space with a block offset array
67 // that allows "fast" block_start calls
|
28 #include "memory/allocation.hpp"
29 #include "memory/blockOffsetTable.hpp"
30 #include "memory/cardTableModRefBS.hpp"
31 #include "memory/iterator.hpp"
32 #include "memory/memRegion.hpp"
33 #include "memory/watermark.hpp"
34 #include "oops/markOop.hpp"
35 #include "runtime/mutexLocker.hpp"
36 #include "runtime/prefetch.hpp"
37 #include "utilities/macros.hpp"
38 #include "utilities/workgroup.hpp"
39 #ifdef TARGET_OS_FAMILY_linux
40 # include "os_linux.inline.hpp"
41 #endif
42 #ifdef TARGET_OS_FAMILY_solaris
43 # include "os_solaris.inline.hpp"
44 #endif
45 #ifdef TARGET_OS_FAMILY_windows
46 # include "os_windows.inline.hpp"
47 #endif
48 #ifdef TARGET_OS_FAMILY_aix
49 # include "os_aix.inline.hpp"
50 #endif
51 #ifdef TARGET_OS_FAMILY_bsd
52 # include "os_bsd.inline.hpp"
53 #endif
54
55 // A space is an abstraction for the "storage units" backing
56 // up the generation abstraction. It includes specific
57 // implementations for keeping track of free and used space,
58 // for iterating over objects and free blocks, etc.
59
60 // Here's the Space hierarchy:
61 //
62 // - Space -- an asbtract base class describing a heap area
63 // - CompactibleSpace -- a space supporting compaction
64 // - CompactibleFreeListSpace -- (used for CMS generation)
65 // - ContiguousSpace -- a compactible space in which all free space
66 // is contiguous
67 // - EdenSpace -- contiguous space used as nursery
68 // - ConcEdenSpace -- contiguous space with a 'soft end safe' allocation
69 // - OffsetTableContigSpace -- contiguous space with a block offset array
70 // that allows "fast" block_start calls
|