66 67 bool MetaspaceShared::_has_error_classes; 68 bool MetaspaceShared::_archive_loading_failed = false; 69 bool MetaspaceShared::_remapped_readwrite = false; 70 address MetaspaceShared::_cds_i2i_entry_code_buffers = NULL; 71 size_t MetaspaceShared::_cds_i2i_entry_code_buffers_size = 0; 72 SharedMiscRegion MetaspaceShared::_mc; 73 SharedMiscRegion MetaspaceShared::_md; 74 SharedMiscRegion MetaspaceShared::_od; 75 76 void SharedMiscRegion::initialize(ReservedSpace rs, size_t committed_byte_size, SharedSpaceType space_type) { 77 _vs.initialize(rs, committed_byte_size); 78 _alloc_top = _vs.low(); 79 _space_type = space_type; 80 } 81 82 // NOT thread-safe, but this is called during dump time in single-threaded mode. 83 char* SharedMiscRegion::alloc(size_t num_bytes) { 84 assert(DumpSharedSpaces, "dump time only"); 85 size_t alignment = sizeof(char*); 86 num_bytes = align_size_up(num_bytes, alignment); 87 _alloc_top = align_ptr_up(_alloc_top, alignment); 88 if (_alloc_top + num_bytes > _vs.high()) { 89 report_out_of_shared_space(_space_type); 90 } 91 92 char* p = _alloc_top; 93 _alloc_top += num_bytes; 94 95 memset(p, 0, num_bytes); 96 return p; 97 } 98 99 void MetaspaceShared::initialize_shared_rs(ReservedSpace* rs) { 100 assert(DumpSharedSpaces, "dump time only"); 101 _shared_rs = rs; 102 103 size_t core_spaces_size = FileMapInfo::core_spaces_size(); 104 size_t metadata_size = SharedReadOnlySize + SharedReadWriteSize; 105 106 // Split into the core and optional sections 107 ReservedSpace core_data = _shared_rs->first_part(core_spaces_size); | 66 67 bool MetaspaceShared::_has_error_classes; 68 bool MetaspaceShared::_archive_loading_failed = false; 69 bool MetaspaceShared::_remapped_readwrite = false; 70 address MetaspaceShared::_cds_i2i_entry_code_buffers = NULL; 71 size_t MetaspaceShared::_cds_i2i_entry_code_buffers_size = 0; 72 SharedMiscRegion MetaspaceShared::_mc; 73 SharedMiscRegion MetaspaceShared::_md; 74 SharedMiscRegion MetaspaceShared::_od; 75 76 void SharedMiscRegion::initialize(ReservedSpace rs, size_t committed_byte_size, SharedSpaceType space_type) { 77 _vs.initialize(rs, committed_byte_size); 78 _alloc_top = _vs.low(); 79 _space_type = space_type; 80 } 81 82 // NOT thread-safe, but this is called during dump time in single-threaded mode. 83 char* SharedMiscRegion::alloc(size_t num_bytes) { 84 assert(DumpSharedSpaces, "dump time only"); 85 size_t alignment = sizeof(char*); 86 num_bytes = align_up(num_bytes, alignment); 87 _alloc_top = align_up(_alloc_top, alignment); 88 if (_alloc_top + num_bytes > _vs.high()) { 89 report_out_of_shared_space(_space_type); 90 } 91 92 char* p = _alloc_top; 93 _alloc_top += num_bytes; 94 95 memset(p, 0, num_bytes); 96 return p; 97 } 98 99 void MetaspaceShared::initialize_shared_rs(ReservedSpace* rs) { 100 assert(DumpSharedSpaces, "dump time only"); 101 _shared_rs = rs; 102 103 size_t core_spaces_size = FileMapInfo::core_spaces_size(); 104 size_t metadata_size = SharedReadOnlySize + SharedReadWriteSize; 105 106 // Split into the core and optional sections 107 ReservedSpace core_data = _shared_rs->first_part(core_spaces_size); |