< prev index next >

src/hotspot/share/memory/metaspace.hpp

Print this page




 165   static VirtualSpaceList* get_space_list(MetadataType mdtype) {
 166     assert(mdtype != MetadataTypeCount, "MetadaTypeCount can't be used as mdtype");
 167     return mdtype == ClassType ? class_space_list() : space_list();
 168   }
 169 
 170   static ChunkManager* chunk_manager_metadata() { return _chunk_manager_metadata; }
 171   static ChunkManager* chunk_manager_class()    { return _chunk_manager_class; }
 172   static ChunkManager* get_chunk_manager(MetadataType mdtype) {
 173     assert(mdtype != MetadataTypeCount, "MetadaTypeCount can't be used as mdtype");
 174     return mdtype == ClassType ? chunk_manager_class() : chunk_manager_metadata();
 175   }
 176 
 177   static const MetaspaceTracer* tracer() { return _tracer; }
 178   static void freeze() {
 179     assert(DumpSharedSpaces, "sanity");
 180     DEBUG_ONLY(_frozen = true;)
 181   }
 182 #ifdef _LP64
 183   static void allocate_metaspace_compressed_klass_ptrs(char* requested_addr, address cds_base);
 184 #endif

 185 
 186  private:
 187 
 188 #ifdef _LP64
 189   static void set_narrow_klass_base_and_shift(address metaspace_base, address cds_base);
 190 
 191   // Returns true if can use CDS with metaspace allocated as specified address.
 192   static bool can_use_cds_with_metaspace_addr(char* metaspace_base, address cds_base);
 193 
 194   static void initialize_class_space(ReservedSpace rs);
 195 #endif
 196   size_t class_chunk_size(size_t word_size);
 197 
 198  public:
 199 
 200   Metaspace(Mutex* lock, MetaspaceType type);
 201   ~Metaspace();
 202 
 203   static void ergo_initialize();
 204   static void global_initialize();




 165   static VirtualSpaceList* get_space_list(MetadataType mdtype) {
 166     assert(mdtype != MetadataTypeCount, "MetadaTypeCount can't be used as mdtype");
 167     return mdtype == ClassType ? class_space_list() : space_list();
 168   }
 169 
 170   static ChunkManager* chunk_manager_metadata() { return _chunk_manager_metadata; }
 171   static ChunkManager* chunk_manager_class()    { return _chunk_manager_class; }
 172   static ChunkManager* get_chunk_manager(MetadataType mdtype) {
 173     assert(mdtype != MetadataTypeCount, "MetadaTypeCount can't be used as mdtype");
 174     return mdtype == ClassType ? chunk_manager_class() : chunk_manager_metadata();
 175   }
 176 
 177   static const MetaspaceTracer* tracer() { return _tracer; }
 178   static void freeze() {
 179     assert(DumpSharedSpaces, "sanity");
 180     DEBUG_ONLY(_frozen = true;)
 181   }
 182 #ifdef _LP64
 183   static void allocate_metaspace_compressed_klass_ptrs(char* requested_addr, address cds_base);
 184 #endif
 185   static size_t calculate_min_metaspace_size();
 186 
 187  private:
 188 
 189 #ifdef _LP64
 190   static void set_narrow_klass_base_and_shift(address metaspace_base, address cds_base);
 191 
 192   // Returns true if can use CDS with metaspace allocated as specified address.
 193   static bool can_use_cds_with_metaspace_addr(char* metaspace_base, address cds_base);
 194 
 195   static void initialize_class_space(ReservedSpace rs);
 196 #endif
 197   size_t class_chunk_size(size_t word_size);
 198 
 199  public:
 200 
 201   Metaspace(Mutex* lock, MetaspaceType type);
 202   ~Metaspace();
 203 
 204   static void ergo_initialize();
 205   static void global_initialize();


< prev index next >