27
28 #include "gc/shared/generation.hpp"
29 #include "utilities/align.hpp"
30
31 // The specification of a generation. This class also encapsulates
32 // some generation-specific behavior. This is done here rather than as a
33 // virtual function of Generation because these methods are needed in
34 // initialization of the Generations.
35 class GenerationSpec : public CHeapObj<mtGC> {
36 friend class VMStructs;
37 private:
38 Generation::Name _name;
39 size_t _init_size;
40 size_t _min_size;
41 size_t _max_size;
42
43 public:
44 GenerationSpec(Generation::Name name, size_t init_size, size_t max_size, size_t alignment) :
45 _name(name),
46 _init_size(align_up(init_size, alignment)),
47 _max_size(align_up(max_size, alignment))
48 { }
49
50 Generation* init(ReservedSpace rs, CardTableRS* remset);
51
52 Generation::Name name() const { return _name; }
53 size_t init_size() const { return _init_size; }
54 size_t min_size() const { return _min_size; }
55 size_t max_size() const { return _max_size; }
56 };
57
58 typedef GenerationSpec* GenerationSpecPtr;
59
60 #endif // SHARE_GC_SHARED_GENERATIONSPEC_HPP
|
27
28 #include "gc/shared/generation.hpp"
29 #include "utilities/align.hpp"
30
31 // The specification of a generation. This class also encapsulates
32 // some generation-specific behavior. This is done here rather than as a
33 // virtual function of Generation because these methods are needed in
34 // initialization of the Generations.
35 class GenerationSpec : public CHeapObj<mtGC> {
36 friend class VMStructs;
37 private:
38 Generation::Name _name;
39 size_t _init_size;
40 size_t _min_size;
41 size_t _max_size;
42
43 public:
44 GenerationSpec(Generation::Name name, size_t init_size, size_t max_size, size_t alignment) :
45 _name(name),
46 _init_size(align_up(init_size, alignment)),
47 _min_size(_init_size),
48 _max_size(align_up(max_size, alignment))
49 { }
50
51 Generation* init(ReservedSpace rs, CardTableRS* remset);
52
53 Generation::Name name() const { return _name; }
54 size_t init_size() const { return _init_size; }
55 size_t min_size() const { return _min_size; }
56 size_t max_size() const { return _max_size; }
57 };
58
59 typedef GenerationSpec* GenerationSpecPtr;
60
61 #endif // SHARE_GC_SHARED_GENERATIONSPEC_HPP
|