< prev index next >

src/hotspot/share/runtime/continuationJavaClasses.hpp

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
+  * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

@@ -69,14 +69,16 @@
    static inline void set_preempted(oop continuation, bool value);
  };
  
  // Interface to jdk.internal.vm.StackChunk objects
  #define STACKCHUNK_INJECTED_FIELDS(macro)                                          \
-   macro(jdk_internal_vm_StackChunk, cont,           continuation_signature, false) \
-   macro(jdk_internal_vm_StackChunk, flags,          byte_signature,         false) \
-   macro(jdk_internal_vm_StackChunk, pc,             intptr_signature,       false) \
-   macro(jdk_internal_vm_StackChunk, maxThawingSize, int_signature,          false) \
+   macro(jdk_internal_vm_StackChunk, cont,            continuation_signature, false) \
+   macro(jdk_internal_vm_StackChunk, flags,           byte_signature,         false) \
+   macro(jdk_internal_vm_StackChunk, pc,              intptr_signature,       false) \
+   macro(jdk_internal_vm_StackChunk, maxThawingSize,  int_signature,          false) \
+   macro(jdk_internal_vm_StackChunk, lockStackSize,   byte_signature,         false) \
+   macro(jdk_internal_vm_StackChunk, objectWaiter,    intptr_signature,       false) \
  
  class jdk_internal_vm_StackChunk: AllStatic {
    friend class JavaClasses;
   private:
    static int _parent_offset;

@@ -84,10 +86,12 @@
    static int _sp_offset;
    static int _pc_offset;
    static int _bottom_offset;
    static int _flags_offset;
    static int _maxThawingSize_offset;
+   static int _lockStackSize_offset;
+   static int _objectWaiter_offset;
    static int _cont_offset;
  
  
    static void compute_offsets();
   public:

@@ -122,10 +126,16 @@
    static inline bool try_set_flags(oop chunk, uint8_t expected_value, uint8_t new_value);
  
    static inline int maxThawingSize(oop chunk);
    static inline void set_maxThawingSize(oop chunk, int value);
  
+   static inline uint8_t lockStackSize(oop chunk);
+   static inline void set_lockStackSize(oop chunk, uint8_t value);
+ 
+   static inline address objectWaiter(oop chunk);
+   static inline void set_objectWaiter(oop chunk, address mon);
+ 
    // cont oop's processing is essential for the chunk's GC protocol
    static inline oop cont(oop chunk);
    template<typename P>
    static inline oop cont_raw(oop chunk);
    static inline void set_cont(oop chunk, oop value);
< prev index next >