< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/z/ZGlobals.java

Print this page




  22  *
  23  */
  24 
  25 package sun.jvm.hotspot.gc.z;
  26 
  27 import sun.jvm.hotspot.runtime.VM;
  28 import sun.jvm.hotspot.types.Field;
  29 import sun.jvm.hotspot.types.Type;
  30 import sun.jvm.hotspot.types.TypeDataBase;
  31 
  32 public class ZGlobals {
  33     private static Field instanceField;
  34 
  35     // Global phase state
  36     public static int ZPhaseRelocate;
  37 
  38     public static byte ZPageTypeSmall;
  39     public static byte ZPageTypeMedium;
  40     public static byte ZPageTypeLarge;
  41 



  42     // Page size shifts
  43     public static long ZPageSizeSmallShift;
  44     public static long ZPageSizeMediumShift;
  45     public static long ZPageSizeMinShift;
  46 
  47     // Object alignment shifts
  48     public static int  ZObjectAlignmentMediumShift;
  49     public static int  ZObjectAlignmentLargeShift;
  50 
  51     // Pointer part of address
  52     public static long ZAddressOffsetShift;
  53 
  54     // Pointer part of address
  55     public static long ZAddressOffsetBits;
  56     public static long ZAddressOffsetMask;
  57     public static long ZAddressOffsetMax;
  58 
  59     // Address space start/end/size
  60     public static long ZAddressSpaceStart;
  61 
  62     static {
  63         VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase()));
  64     }
  65 
  66     static private synchronized void initialize(TypeDataBase db) {
  67         Type type = db.lookupType("ZGlobalsForVMStructs");
  68 
  69         instanceField = type.getField("_instance_p");
  70 
  71         ZPhaseRelocate = db.lookupIntConstant("ZPhaseRelocate").intValue();
  72 
  73         ZPageTypeSmall = db.lookupIntConstant("ZPageTypeSmall").byteValue();
  74         ZPageTypeMedium = db.lookupIntConstant("ZPageTypeMedium").byteValue();
  75         ZPageTypeLarge = db.lookupIntConstant("ZPageTypeLarge").byteValue();
  76 


  77         ZPageSizeSmallShift = db.lookupLongConstant("ZPageSizeSmallShift").longValue();
  78         ZPageSizeMediumShift = db.lookupLongConstant("ZPageSizeMediumShift").longValue();
  79         ZPageSizeMinShift = db.lookupLongConstant("ZPageSizeMinShift").longValue();
  80 
  81         ZObjectAlignmentMediumShift = db.lookupIntConstant("ZObjectAlignmentMediumShift").intValue();
  82         ZObjectAlignmentLargeShift = db.lookupIntConstant("ZObjectAlignmentLargeShift").intValue();;
  83 
  84         ZAddressOffsetShift = db.lookupLongConstant("ZAddressOffsetShift").longValue();
  85 
  86         ZAddressOffsetBits = db.lookupLongConstant("ZAddressOffsetBits").longValue();
  87         ZAddressOffsetMask = db.lookupLongConstant("ZAddressOffsetMask").longValue();
  88         ZAddressOffsetMax  = db.lookupLongConstant("ZAddressOffsetMax").longValue();
  89 
  90         ZAddressSpaceStart = db.lookupLongConstant("ZAddressSpaceStart").longValue();
  91     }
  92 
  93     private static ZGlobalsForVMStructs instance() {
  94         return new ZGlobalsForVMStructs(instanceField.getAddress());
  95     }
  96 
  97     public static int ZGlobalPhase() {
  98         return instance().ZGlobalPhase();
  99     }




  22  *
  23  */
  24 
  25 package sun.jvm.hotspot.gc.z;
  26 
  27 import sun.jvm.hotspot.runtime.VM;
  28 import sun.jvm.hotspot.types.Field;
  29 import sun.jvm.hotspot.types.Type;
  30 import sun.jvm.hotspot.types.TypeDataBase;
  31 
  32 public class ZGlobals {
  33     private static Field instanceField;
  34 
  35     // Global phase state
  36     public static int ZPhaseRelocate;
  37 
  38     public static byte ZPageTypeSmall;
  39     public static byte ZPageTypeMedium;
  40     public static byte ZPageTypeLarge;
  41 
  42     // Granule size shift
  43     public static long ZGranuleSizeShift;
  44 
  45     // Page size shifts
  46     public static long ZPageSizeSmallShift;
  47     public static long ZPageSizeMediumShift;

  48 
  49     // Object alignment shifts
  50     public static int  ZObjectAlignmentMediumShift;
  51     public static int  ZObjectAlignmentLargeShift;
  52 
  53     // Pointer part of address
  54     public static long ZAddressOffsetShift;
  55 
  56     // Pointer part of address
  57     public static long ZAddressOffsetBits;
  58     public static long ZAddressOffsetMask;
  59     public static long ZAddressOffsetMax;
  60 
  61     // Address space start/end/size
  62     public static long ZAddressSpaceStart;
  63 
  64     static {
  65         VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase()));
  66     }
  67 
  68     static private synchronized void initialize(TypeDataBase db) {
  69         Type type = db.lookupType("ZGlobalsForVMStructs");
  70 
  71         instanceField = type.getField("_instance_p");
  72 
  73         ZPhaseRelocate = db.lookupIntConstant("ZPhaseRelocate").intValue();
  74 
  75         ZPageTypeSmall = db.lookupIntConstant("ZPageTypeSmall").byteValue();
  76         ZPageTypeMedium = db.lookupIntConstant("ZPageTypeMedium").byteValue();
  77         ZPageTypeLarge = db.lookupIntConstant("ZPageTypeLarge").byteValue();
  78 
  79         ZGranuleSizeShift = db.lookupLongConstant("ZGranuleSizeShift").longValue();
  80 
  81         ZPageSizeSmallShift = db.lookupLongConstant("ZPageSizeSmallShift").longValue();
  82         ZPageSizeMediumShift = db.lookupLongConstant("ZPageSizeMediumShift").longValue();

  83 
  84         ZObjectAlignmentMediumShift = db.lookupIntConstant("ZObjectAlignmentMediumShift").intValue();
  85         ZObjectAlignmentLargeShift = db.lookupIntConstant("ZObjectAlignmentLargeShift").intValue();;
  86 
  87         ZAddressOffsetShift = db.lookupLongConstant("ZAddressOffsetShift").longValue();
  88 
  89         ZAddressOffsetBits = db.lookupLongConstant("ZAddressOffsetBits").longValue();
  90         ZAddressOffsetMask = db.lookupLongConstant("ZAddressOffsetMask").longValue();
  91         ZAddressOffsetMax  = db.lookupLongConstant("ZAddressOffsetMax").longValue();
  92 
  93         ZAddressSpaceStart = db.lookupLongConstant("ZAddressSpaceStart").longValue();
  94     }
  95 
  96     private static ZGlobalsForVMStructs instance() {
  97         return new ZGlobalsForVMStructs(instanceField.getAddress());
  98     }
  99 
 100     public static int ZGlobalPhase() {
 101         return instance().ZGlobalPhase();
 102     }


< prev index next >