< prev index next >

src/hotspot/share/classfile/javaClasses.hpp

Print this page
rev 50073 : [mq]: cont

*** 307,316 **** --- 307,317 ---- static int _eetop_offset; static int _daemon_offset; static int _stillborn_offset; static int _stackSize_offset; static int _tid_offset; + static int _continuation_offset; static int _thread_status_offset; static int _park_blocker_offset; static int _park_event_offset ; static void compute_offsets();
*** 347,356 **** --- 348,360 ---- static oop inherited_access_control_context(oop java_thread); // Stack size hint static jlong stackSize(oop java_thread); // Thread ID static jlong thread_id(oop java_thread); + // Continuation + static oop continuation(oop java_thread); + static void set_continuation(oop java_thread, oop continuation); // Blocker object responsible for thread parking static oop park_blocker(oop java_thread); // Pointer to type-stable park handler, encoded as jlong.
*** 944,953 **** --- 948,1010 ---- static void compute_offsets(); static void serialize(SerializeClosure* f) NOT_CDS_RETURN; }; + // Interface to java.lang.Continuation objects + class java_lang_Continuation: AllStatic { + friend class JavaClasses; + private: + static void compute_offsets(); + public: + enum { + hc_fp_offset = 0, + hc_sp_offset = 11, + hc_entrySP_offset = 1, + hc_entryFP_offset = 3, + hc_target_offset = 13, + hc_parent_offset = 14, + hc_stack_offset = 15, + }; + static int scope_offset; + static int target_offset; + static int parent_offset; + static int entrySP_offset; + static int entryFP_offset; + static int entryPC_offset; + static int stack_offset; + static int refStack_offset; + static int fp_offset; + static int sp_offset; + static int pc_offset; + static int refSP_offset; + static Method* stack_method; + // Accessors + static inline oop scope(oop ref); + static inline oop target(oop ref); + static inline oop parent(oop ref); + static inline typeArrayOop stack(oop ref); + static inline objArrayOop refStack(oop ref); + static inline jlong fp(oop ref); + static inline void set_fp(oop ref, const jlong i); + static inline jint sp(oop ref); + static inline void set_sp(oop ref, const jint i); + static inline void* pc(oop ref); + static inline void set_pc(oop ref, const void* pc); + static inline jint refSP(oop ref); + static inline void set_refSP(oop ref, jint i); + static inline intptr_t* entrySP(oop ref); + static inline intptr_t* entryFP(oop ref); + static inline void set_entryFP(oop ref, intptr_t* fp); + static inline address entryPC(oop ref); + static inline void set_entryPC(oop ref, address pc); + static inline int stack_size(oop ref); + static inline void* stack_base(oop ref); + static inline HeapWord* refStack_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 >