43 static private synchronized void initialize(TypeDataBase db) { 44 Type type = db.lookupType("ZAddressRangeMapForPageTable"); 45 46 mapField = type.getAddressField("_map"); 47 } 48 49 public ZAddressRangeMapForPageTable(Address addr) { 50 super(addr); 51 } 52 53 private Address map() { 54 return mapField.getValue(addr); 55 } 56 57 private long index_for_addr(Address addr) { 58 long index = ZAddress.offset(addr) >> AddressRangeShift; 59 60 return index; 61 } 62 63 Address get(Address addr) { 64 long index = index_for_addr(addr); 65 66 return map().getAddressAt(index * VM.getVM().getBytesPerLong()); 67 } 68 } | 43 static private synchronized void initialize(TypeDataBase db) { 44 Type type = db.lookupType("ZAddressRangeMapForPageTable"); 45 46 mapField = type.getAddressField("_map"); 47 } 48 49 public ZAddressRangeMapForPageTable(Address addr) { 50 super(addr); 51 } 52 53 private Address map() { 54 return mapField.getValue(addr); 55 } 56 57 private long index_for_addr(Address addr) { 58 long index = ZAddress.offset(addr) >> AddressRangeShift; 59 60 return index; 61 } 62 63 Address get(long index) { 64 return map().getAddressAt(index * VM.getVM().getBytesPerLong()); 65 } 66 67 Address get(Address addr) { 68 return get(index_for_addr(addr)); 69 } 70 71 long size() { 72 return ZGlobals.ZAddressOffsetMax >>> ZGlobals.ZPageSizeMinShift; 73 } 74 } |