155 static metaspace::ChunkManager* chunk_manager_class() { return _chunk_manager_class; } 156 static metaspace::ChunkManager* get_chunk_manager(MetadataType mdtype) { 157 assert(mdtype != MetadataTypeCount, "MetadaTypeCount can't be used as mdtype"); 158 return mdtype == ClassType ? chunk_manager_class() : chunk_manager_metadata(); 159 } 160 161 // convenience function 162 static metaspace::ChunkManager* get_chunk_manager(bool is_class) { 163 return is_class ? chunk_manager_class() : chunk_manager_metadata(); 164 } 165 166 static const MetaspaceTracer* tracer() { return _tracer; } 167 static void freeze() { 168 assert(DumpSharedSpaces, "sanity"); 169 DEBUG_ONLY(_frozen = true;) 170 } 171 static void assert_not_frozen() { 172 assert(!_frozen, "sanity"); 173 } 174 #ifdef _LP64 175 static void allocate_metaspace_compressed_klass_ptrs(char* requested_addr, address cds_base); 176 #endif 177 178 private: 179 180 #ifdef _LP64 181 static void set_narrow_klass_base_and_shift(address metaspace_base, address cds_base); 182 183 // Returns true if can use CDS with metaspace allocated as specified address. 184 static bool can_use_cds_with_metaspace_addr(char* metaspace_base, address cds_base); 185 186 static void initialize_class_space(ReservedSpace rs); 187 #endif 188 189 public: 190 191 static void ergo_initialize(); 192 static void global_initialize(); 193 static void post_initialize(); 194 195 static void verify_global_initialization(); 196 197 static size_t first_chunk_word_size() { return _first_chunk_word_size; } 198 static size_t first_class_chunk_word_size() { return _first_class_chunk_word_size; } 199 200 static size_t reserve_alignment() { return _reserve_alignment; } 201 static size_t reserve_alignment_words() { return _reserve_alignment / BytesPerWord; } 202 static size_t commit_alignment() { return _commit_alignment; } 203 static size_t commit_alignment_words() { return _commit_alignment / BytesPerWord; } 204 | 155 static metaspace::ChunkManager* chunk_manager_class() { return _chunk_manager_class; } 156 static metaspace::ChunkManager* get_chunk_manager(MetadataType mdtype) { 157 assert(mdtype != MetadataTypeCount, "MetadaTypeCount can't be used as mdtype"); 158 return mdtype == ClassType ? chunk_manager_class() : chunk_manager_metadata(); 159 } 160 161 // convenience function 162 static metaspace::ChunkManager* get_chunk_manager(bool is_class) { 163 return is_class ? chunk_manager_class() : chunk_manager_metadata(); 164 } 165 166 static const MetaspaceTracer* tracer() { return _tracer; } 167 static void freeze() { 168 assert(DumpSharedSpaces, "sanity"); 169 DEBUG_ONLY(_frozen = true;) 170 } 171 static void assert_not_frozen() { 172 assert(!_frozen, "sanity"); 173 } 174 #ifdef _LP64 175 static void allocate_metaspace_compressed_klass_ptrs(ReservedSpace metaspace_rs, char* requested_addr, address cds_base); 176 #endif 177 178 private: 179 180 #ifdef _LP64 181 static void set_narrow_klass_base_and_shift(ReservedSpace metaspace_rs, address cds_base); 182 183 static void initialize_class_space(ReservedSpace rs); 184 #endif 185 186 public: 187 188 static void ergo_initialize(); 189 static void global_initialize(); 190 static void post_initialize(); 191 192 static void verify_global_initialization(); 193 194 static size_t first_chunk_word_size() { return _first_chunk_word_size; } 195 static size_t first_class_chunk_word_size() { return _first_class_chunk_word_size; } 196 197 static size_t reserve_alignment() { return _reserve_alignment; } 198 static size_t reserve_alignment_words() { return _reserve_alignment / BytesPerWord; } 199 static size_t commit_alignment() { return _commit_alignment; } 200 static size_t commit_alignment_words() { return _commit_alignment / BytesPerWord; } 201 |