< prev index next >

src/hotspot/share/classfile/javaClasses.hpp

Print this page

        

@@ -910,10 +910,53 @@
   static void set_clock(jlong value);
 
   static void compute_offsets();
 };
 
+// Interface to java.lang.Continuation objects
+class java_lang_Continuation: AllStatic {
+  friend class JavaClasses;
+ private:
+  static void compute_offsets();
+  static Method* get_stack_method();
+public:
+ enum {
+  hc_lastFP_offset   = 0,
+  hc_lastSP_offset   = 11,
+  hc_parentSP_offset = 1,
+  hc_parentFP_offset = 3,
+  hc_target_offset   = 13,
+  hc_parent_offset   = 14,
+  hc_stack_offset    = 15,
+  hc_reg0_offset    = 5,
+  hc_reg1_offset    = 7,
+  hc_reg2_offset    = 9,
+ };
+ static int target_offset;
+ static int parent_offset;
+ static int parentSP_offset;
+ static int parentFP_offset;
+ static int stack_offset;
+ static int lastFP_offset;
+ static int lastSP_offset;
+ static int reg0_offset;
+ static int reg1_offset;
+ static int reg2_offset;
+ static Method* stack_method;
+ // Accessors
+ static inline oop target(oop ref);
+ static inline oop parent(oop ref);
+ static inline arrayOop stack(oop ref);
+ static inline jint lastFP(oop ref);
+ static inline jint lastSP(oop ref);
+ static inline jlong parentFP(oop ref);
+ static inline jlong parentSP(oop ref);
+ static inline int stack_size(oop ref);
+ static inline void* stack_base(oop ref);
+ static bool on_local_stack(oop ref, address adr);
+};
+
 // Interface to java.lang.invoke.MethodHandle objects
 
 class MethodHandleEntry;
 
 class java_lang_invoke_MethodHandle: AllStatic {
< prev index next >