< prev index next >
src/hotspot/share/include/cds.h
Print this page
@@ -31,30 +31,32 @@
// We should use only standard C types. Do not use custom types such as bool, intx,
// etc, to avoid introducing unnecessary dependencies to other HotSpot type declarations.
//
// Also, this is a C header file. Do not use C++ here.
-#define NUM_CDS_REGIONS 8 // this must be the same as MetaspaceShared::n_regions
+#define NUM_CDS_REGIONS 9 // this must be the same as MetaspaceShared::n_regions
#define CDS_ARCHIVE_MAGIC 0xf00baba2
#define CDS_DYNAMIC_ARCHIVE_MAGIC 0xf00baba8
-#define CURRENT_CDS_ARCHIVE_VERSION 8
+#define CURRENT_CDS_ARCHIVE_VERSION 9
#define INVALID_CDS_ARCHIVE_VERSION -1
struct CDSFileMapRegion {
- int _crc; // crc checksum of the current space
- size_t _file_offset; // sizeof(this) rounded to vm page size
- union {
- char* _base; // copy-on-write base address
- size_t _offset; // offset from the compressed oop encoding base, only used
- // by archive heap space
- } _addr;
- size_t _used; // for setting space top on read
- int _read_only; // read only space?
- int _allow_exec; // executable code in space?
- void* _oopmap; // bitmap for relocating embedded oops
+ int _crc; // CRC checksum of this region.
+ int _read_only; // read only region?
+ int _allow_exec; // executable code in this region?
+ int _is_heap_region; // Used in debug build only.
+ int _mapped_from_file; // Is this region mapped from a file?
+ // If false, this region was initialized using os::read().
+ size_t _file_offset; // Data for this region starts at this offset in the archive file.
+ size_t _mapping_offset; // This region should be mapped at this offset from the base address
+ // - for non-heap regions, the base address is SharedBaseAddress
+ // - for heap regions, the base address is the compressed oop encoding base
+ size_t _used; // Number of bytes actually used by this region (excluding padding bytes added
+ // for alignment purposed.
+ size_t _oopmap_offset; // Bitmap for relocating embedded oops (offset from SharedBaseAddress).
size_t _oopmap_size_in_bits;
- int _is_heap_region; // used in debug build only.
+ char* _mapped_base; // Actually mapped address (NULL if this region is not mapped).
};
struct CDSFileMapHeaderBase {
unsigned int _magic; // identify file type
int _crc; // header crc checksum
< prev index next >