< prev index next >
src/hotspot/share/gc/z/vmStructs_z.hpp
Print this page
rev 48258 : [mq]: zSALoadBarriers
*** 1,7 ****
/*
! * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 27,55 ****
--- 27,110 ----
#include "gc/z/zCollectedHeap.hpp"
#include "gc/z/zHeap.hpp"
#include "gc/z/zPageAllocator.hpp"
#include "gc/z/zPhysicalMemory.hpp"
+ #include "gc/z/zAddressRangeMap.hpp"
#include "utilities/macros.hpp"
+ // Expose some ZGC globals to the SA agent.
+ class ZGlobalsForVMStructs {
+ static ZGlobalsForVMStructs _instance;
+
+ public:
+ static ZGlobalsForVMStructs* _instance_p;
+
+ ZGlobalsForVMStructs();
+
+ uint32_t* _ZGlobalPhase;
+
+ uintptr_t* _ZAddressGoodMask;
+ uintptr_t* _ZAddressBadMask;
+ uintptr_t* _ZAddressWeakBadMask;
+
+ const int* _ZObjectAlignmentSmallShift;
+ const int* _ZObjectAlignmentSmall;
+ };
+
+
+ typedef ZAddressRangeMap<ZPageTableEntry, ZPageSizeMinShift> ZAddressRangeMapForPageTable;
+
#define VM_STRUCTS_Z(nonstatic_field, static_field) \
\
+ static_field(ZGlobalsForVMStructs, _instance_p, ZGlobalsForVMStructs*) \
+ nonstatic_field(ZGlobalsForVMStructs, _ZGlobalPhase, uint32_t*) \
+ nonstatic_field(ZGlobalsForVMStructs, _ZAddressGoodMask, uintptr_t*) \
+ nonstatic_field(ZGlobalsForVMStructs, _ZAddressBadMask, uintptr_t*) \
+ nonstatic_field(ZGlobalsForVMStructs, _ZAddressWeakBadMask, uintptr_t*) \
+ nonstatic_field(ZGlobalsForVMStructs, _ZObjectAlignmentSmallShift, const int*) \
+ nonstatic_field(ZGlobalsForVMStructs, _ZObjectAlignmentSmall, const int*) \
+ \
nonstatic_field(ZCollectedHeap, _heap, ZHeap) \
\
nonstatic_field(ZHeap, _page_allocator, ZPageAllocator) \
+ nonstatic_field(ZHeap, _pagetable, ZPageTable) \
+ \
+ nonstatic_field(ZPage, _type, const uint8_t) \
+ nonstatic_field(ZPage, _virtual, const ZVirtualMemory) \
+ nonstatic_field(ZPage, _forwarding, ZForwardingTable) \
\
nonstatic_field(ZPageAllocator, _physical, ZPhysicalMemoryManager) \
nonstatic_field(ZPageAllocator, _used, size_t) \
\
+ nonstatic_field(ZPageTable, _map, ZAddressRangeMapForPageTable) \
+ \
+ nonstatic_field(ZAddressRangeMapForPageTable, _map, ZPageTableEntry* const) \
+ \
+ nonstatic_field(ZVirtualMemory, _start, uintptr_t) \
+ nonstatic_field(ZVirtualMemory, _end, uintptr_t) \
+ \
+ nonstatic_field(ZForwardingTable, _table, ZForwardingTableEntry*) \
+ nonstatic_field(ZForwardingTable, _size, size_t) \
+ \
nonstatic_field(ZPhysicalMemoryManager, _max_capacity, const size_t) \
nonstatic_field(ZPhysicalMemoryManager, _capacity, size_t)
#define VM_TYPES_Z(declare_type, \
declare_toplevel_type) \
\
+ declare_toplevel_type(ZGlobalsForVMStructs) \
+ \
declare_type(ZCollectedHeap, CollectedHeap) \
\
declare_toplevel_type(ZHeap) \
+ declare_toplevel_type(ZPage) \
declare_toplevel_type(ZPageAllocator) \
+ declare_toplevel_type(ZPageTable) \
+ declare_toplevel_type(ZPageTableEntry) \
+ declare_toplevel_type(ZAddressRangeMapForPageTable) \
+ declare_toplevel_type(ZVirtualMemory) \
+ declare_toplevel_type(ZForwardingTable) \
+ declare_toplevel_type(ZForwardingTableEntry) \
declare_toplevel_type(ZPhysicalMemoryManager)
#endif // SHARE_VM_GC_Z_VMSTRUCTS_Z_HPP
< prev index next >