40 |
40 |
41 ZGlobalsForVMStructs(); |
41 ZGlobalsForVMStructs(); |
42 |
42 |
43 uint32_t* _ZGlobalPhase; |
43 uint32_t* _ZGlobalPhase; |
44 |
44 |
|
45 uint32_t* _ZGlobalSeqNum; |
|
46 |
45 uintptr_t* _ZAddressGoodMask; |
47 uintptr_t* _ZAddressGoodMask; |
46 uintptr_t* _ZAddressBadMask; |
48 uintptr_t* _ZAddressBadMask; |
47 uintptr_t* _ZAddressWeakBadMask; |
49 uintptr_t* _ZAddressWeakBadMask; |
48 |
50 |
49 const int* _ZObjectAlignmentSmallShift; |
51 const int* _ZObjectAlignmentSmallShift; |
53 typedef ZAddressRangeMap<ZPageTableEntry, ZPageSizeMinShift> ZAddressRangeMapForPageTable; |
55 typedef ZAddressRangeMap<ZPageTableEntry, ZPageSizeMinShift> ZAddressRangeMapForPageTable; |
54 |
56 |
55 #define VM_STRUCTS_ZGC(nonstatic_field, volatile_nonstatic_field, static_field) \ |
57 #define VM_STRUCTS_ZGC(nonstatic_field, volatile_nonstatic_field, static_field) \ |
56 static_field(ZGlobalsForVMStructs, _instance_p, ZGlobalsForVMStructs*) \ |
58 static_field(ZGlobalsForVMStructs, _instance_p, ZGlobalsForVMStructs*) \ |
57 nonstatic_field(ZGlobalsForVMStructs, _ZGlobalPhase, uint32_t*) \ |
59 nonstatic_field(ZGlobalsForVMStructs, _ZGlobalPhase, uint32_t*) \ |
|
60 nonstatic_field(ZGlobalsForVMStructs, _ZGlobalSeqNum, uint32_t*) \ |
58 nonstatic_field(ZGlobalsForVMStructs, _ZAddressGoodMask, uintptr_t*) \ |
61 nonstatic_field(ZGlobalsForVMStructs, _ZAddressGoodMask, uintptr_t*) \ |
59 nonstatic_field(ZGlobalsForVMStructs, _ZAddressBadMask, uintptr_t*) \ |
62 nonstatic_field(ZGlobalsForVMStructs, _ZAddressBadMask, uintptr_t*) \ |
60 nonstatic_field(ZGlobalsForVMStructs, _ZAddressWeakBadMask, uintptr_t*) \ |
63 nonstatic_field(ZGlobalsForVMStructs, _ZAddressWeakBadMask, uintptr_t*) \ |
61 nonstatic_field(ZGlobalsForVMStructs, _ZObjectAlignmentSmallShift, const int*) \ |
64 nonstatic_field(ZGlobalsForVMStructs, _ZObjectAlignmentSmallShift, const int*) \ |
62 nonstatic_field(ZGlobalsForVMStructs, _ZObjectAlignmentSmall, const int*) \ |
65 nonstatic_field(ZGlobalsForVMStructs, _ZObjectAlignmentSmall, const int*) \ |
65 \ |
68 \ |
66 nonstatic_field(ZHeap, _page_allocator, ZPageAllocator) \ |
69 nonstatic_field(ZHeap, _page_allocator, ZPageAllocator) \ |
67 nonstatic_field(ZHeap, _pagetable, ZPageTable) \ |
70 nonstatic_field(ZHeap, _pagetable, ZPageTable) \ |
68 \ |
71 \ |
69 nonstatic_field(ZPage, _type, const uint8_t) \ |
72 nonstatic_field(ZPage, _type, const uint8_t) \ |
|
73 nonstatic_field(ZPage, _seqnum, uint32_t) \ |
70 nonstatic_field(ZPage, _virtual, const ZVirtualMemory) \ |
74 nonstatic_field(ZPage, _virtual, const ZVirtualMemory) \ |
|
75 volatile_nonstatic_field(ZPage, _top, uintptr_t) \ |
|
76 volatile_nonstatic_field(ZPage, _refcount, uint32_t) \ |
71 nonstatic_field(ZPage, _forwarding, ZForwardingTable) \ |
77 nonstatic_field(ZPage, _forwarding, ZForwardingTable) \ |
72 \ |
78 \ |
73 nonstatic_field(ZPageAllocator, _physical, ZPhysicalMemoryManager) \ |
79 nonstatic_field(ZPageAllocator, _physical, ZPhysicalMemoryManager) \ |
74 nonstatic_field(ZPageAllocator, _used, size_t) \ |
80 nonstatic_field(ZPageAllocator, _used, size_t) \ |
75 \ |
81 \ |
99 declare_constant(ZPageSizeMediumShift) \ |
105 declare_constant(ZPageSizeMediumShift) \ |
100 declare_constant(ZPageSizeMinShift) \ |
106 declare_constant(ZPageSizeMinShift) \ |
101 declare_constant(ZAddressOffsetShift) \ |
107 declare_constant(ZAddressOffsetShift) \ |
102 declare_constant(ZAddressOffsetBits) \ |
108 declare_constant(ZAddressOffsetBits) \ |
103 declare_constant(ZAddressOffsetMask) \ |
109 declare_constant(ZAddressOffsetMask) \ |
|
110 declare_constant(ZAddressOffsetMax) \ |
104 declare_constant(ZAddressSpaceStart) |
111 declare_constant(ZAddressSpaceStart) |
105 |
112 |
106 #define VM_TYPES_ZGC(declare_type, declare_toplevel_type, declare_integer_type) \ |
113 #define VM_TYPES_ZGC(declare_type, declare_toplevel_type, declare_integer_type) \ |
107 declare_toplevel_type(ZGlobalsForVMStructs) \ |
114 declare_toplevel_type(ZGlobalsForVMStructs) \ |
108 declare_type(ZCollectedHeap, CollectedHeap) \ |
115 declare_type(ZCollectedHeap, CollectedHeap) \ |