23 */
24
25 package sun.jvm.hotspot.gc_implementation.g1;
26
27 import java.util.Iterator;
28 import java.util.Observable;
29 import java.util.Observer;
30
31 import sun.jvm.hotspot.debugger.Address;
32 import sun.jvm.hotspot.runtime.VM;
33 import sun.jvm.hotspot.runtime.VMObject;
34 import sun.jvm.hotspot.runtime.VMObjectFactory;
35 import sun.jvm.hotspot.types.AddressField;
36 import sun.jvm.hotspot.types.CIntegerField;
37 import sun.jvm.hotspot.types.Type;
38 import sun.jvm.hotspot.types.TypeDataBase;
39
40 // Mirror class for HeapRegionSetBase. Represents a group of regions.
41
42 public class HeapRegionSetBase extends VMObject {
43 // uint _length;
44 static private CIntegerField lengthField;
45 // uint _region_num;
46 static private CIntegerField regionNumField;
47 // size_t _total_used_bytes;
48 static private CIntegerField totalUsedBytesField;
49
50 static {
51 VM.registerVMInitializedObserver(new Observer() {
52 public void update(Observable o, Object data) {
53 initialize(VM.getVM().getTypeDataBase());
54 }
55 });
56 }
57
58 static private synchronized void initialize(TypeDataBase db) {
59 Type type = db.lookupType("HeapRegionSetBase");
60
61 lengthField = type.getCIntegerField("_length");
62 regionNumField = type.getCIntegerField("_region_num");
63 totalUsedBytesField = type.getCIntegerField("_total_used_bytes");
64 }
65
66 public long length() {
67 return lengthField.getValue(addr);
68 }
69
70 public long regionNum() {
71 return regionNumField.getValue(addr);
72 }
73
74 public long totalUsedBytes() {
75 return totalUsedBytesField.getValue(addr);
76 }
77
78 public HeapRegionSetBase(Address addr) {
79 super(addr);
80 }
81 }
|
23 */
24
25 package sun.jvm.hotspot.gc_implementation.g1;
26
27 import java.util.Iterator;
28 import java.util.Observable;
29 import java.util.Observer;
30
31 import sun.jvm.hotspot.debugger.Address;
32 import sun.jvm.hotspot.runtime.VM;
33 import sun.jvm.hotspot.runtime.VMObject;
34 import sun.jvm.hotspot.runtime.VMObjectFactory;
35 import sun.jvm.hotspot.types.AddressField;
36 import sun.jvm.hotspot.types.CIntegerField;
37 import sun.jvm.hotspot.types.Type;
38 import sun.jvm.hotspot.types.TypeDataBase;
39
40 // Mirror class for HeapRegionSetBase. Represents a group of regions.
41
42 public class HeapRegionSetBase extends VMObject {
43
44 static private long countField;
45
46 static {
47 VM.registerVMInitializedObserver(new Observer() {
48 public void update(Observable o, Object data) {
49 initialize(VM.getVM().getTypeDataBase());
50 }
51 });
52 }
53
54 static private synchronized void initialize(TypeDataBase db) {
55 Type type = db.lookupType("HeapRegionSetBase");
56
57 countField = type.getField("_count").getOffset();
58 }
59
60
61 public HeapRegionSetCount count() {
62 Address countFieldAddr = addr.addOffsetTo(countField);
63 return (HeapRegionSetCount) VMObjectFactory.newObject(HeapRegionSetCount.class,
64 countFieldAddr);
65 }
66
67 public HeapRegionSetBase(Address addr) {
68 super(addr);
69 }
70 }
|