< prev index next > src/hotspot/share/cds/filemap.hpp
Print this page
char* _mapped_base_address; // Actual base address where archive is mapped.
bool _allow_archiving_with_java_agent; // setting of the AllowArchivingWithJavaAgent option
bool _use_optimized_module_handling;// No module-relation VM options were specified, so we can skip
// some expensive operations.
+ bool _has_aot_linked_classes; // Was the CDS archive created with -XX:+AOTClassLinking
bool _has_full_module_graph; // Does this CDS archive contain the full archived module graph?
+ bool _has_archived_invokedynamic; // Does the archive have aot-linked invokedynamic CP entries?
+ bool _has_archived_packages;
+ bool _has_archived_protection_domains;
+ int _gc_kind; // Universe::heap()->kind();
+ char _gc_name[32]; // Universe::heap()->name();
+ size_t _ptrmap_size_in_bits; // Size of pointer relocation bitmap
HeapRootSegments _heap_root_segments; // Heap root segments info
size_t _heap_oopmap_start_pos; // The first bit in the oopmap corresponds to this position in the heap.
size_t _heap_ptrmap_start_pos; // The first bit in the ptrmap corresponds to this position in the heap.
size_t _rw_ptrmap_start_pos; // The first bit in the ptrmap corresponds to this position in the rw region
size_t _ro_ptrmap_start_pos; // The first bit in the ptrmap corresponds to this position in the ro region
const char* jvm_ident() const { return _jvm_ident; }
char* requested_base_address() const { return _requested_base_address; }
char* mapped_base_address() const { return _mapped_base_address; }
bool has_platform_or_app_classes() const { return _has_platform_or_app_classes; }
bool has_non_jar_in_classpath() const { return _has_non_jar_in_classpath; }
+ bool has_aot_linked_classes() const { return _has_aot_linked_classes; }
+ int gc_kind() const { return _gc_kind; }
+ const char* gc_name() const { return _gc_name; }
+ size_t ptrmap_size_in_bits() const { return _ptrmap_size_in_bits; }
bool compressed_oops() const { return _compressed_oops; }
bool compressed_class_pointers() const { return _compressed_class_ptrs; }
HeapRootSegments heap_root_segments() const { return _heap_root_segments; }
bool has_full_module_graph() const { return _has_full_module_graph; }
size_t heap_oopmap_start_pos() const { return _heap_oopmap_start_pos; }
void open_for_write();
void write_header();
void write_region(int region, char* base, size_t size,
bool read_only, bool allow_exec);
size_t remove_bitmap_zeros(CHeapBitMap* map);
- char* write_bitmap_region(CHeapBitMap* rw_ptrmap, CHeapBitMap* ro_ptrmap, ArchiveHeapInfo* heap_info,
+ char* write_bitmap_region(CHeapBitMap* rw_ptrmap, CHeapBitMap* ro_ptrmap,
+ CHeapBitMap* cc_ptrmap, ArchiveHeapInfo* heap_info,
size_t &size_in_bytes);
size_t write_heap_region(ArchiveHeapInfo* heap_info);
void write_bytes(const void* buffer, size_t count);
void write_bytes_aligned(const void* buffer, size_t count);
size_t read_bytes(void* buffer, size_t count);
void patch_heap_embedded_pointers() NOT_CDS_JAVA_HEAP_RETURN;
bool has_heap_region() NOT_CDS_JAVA_HEAP_RETURN_(false);
MemRegion get_heap_region_requested_range() NOT_CDS_JAVA_HEAP_RETURN_(MemRegion());
bool read_region(int i, char* base, size_t size, bool do_commit);
char* map_bitmap_region();
+ bool map_cached_code_region(ReservedSpace rs);
void unmap_region(int i);
void close();
bool is_open() { return _file_open; }
ReservedSpace reserve_shared_memory();
static void allocate_shared_path_table(TRAPS);
static int add_shared_classpaths(int i, const char* which, ClassPathEntry *cpe, TRAPS);
static void check_nonempty_dir_in_shared_path_table();
bool check_module_paths();
bool validate_shared_path_table();
- void validate_non_existent_class_paths();
+ bool validate_non_existent_class_paths();
+ bool validate_aot_class_linking();
static void set_shared_path_table(FileMapInfo* info) {
_shared_path_table = info->header()->shared_path_table();
}
static void update_jar_manifest(ClassPathEntry *cpe, SharedClassPathEntry* ent, TRAPS);
static int num_non_existent_class_paths();
bool load_heap_region() NOT_CDS_JAVA_HEAP_RETURN_(false);
bool map_heap_region() NOT_CDS_JAVA_HEAP_RETURN_(false);
void init_heap_region_relocation();
MapArchiveResult map_region(int i, intx addr_delta, char* mapped_base_address, ReservedSpace rs);
bool relocate_pointers_in_core_regions(intx addr_delta);
-
+ void relocate_pointers_in_cached_code_region();
static MemRegion _mapped_heap_memregion;
public:
address heap_region_dumptime_address() NOT_CDS_JAVA_HEAP_RETURN_(nullptr);
address heap_region_requested_address() NOT_CDS_JAVA_HEAP_RETURN_(nullptr);
< prev index next >