< prev index next >
src/java.base/share/classes/jdk/internal/access/JavaLangInvokeAccess.java
Print this page
@@ -24,10 +24,12 @@
*/
package jdk.internal.access;
import java.lang.invoke.MethodType;
+import java.lang.invoke.VarHandle;
+import java.nio.ByteOrder;
import java.util.Map;
public interface JavaLangInvokeAccess {
/**
* Create a new MemberName instance. Used by {@code StackFrameInfo}.
@@ -104,6 +106,43 @@
*/
byte[] generateInvokersHolderClassBytes(String className,
MethodType[] invokerMethodTypes,
MethodType[] callSiteMethodTypes);
+ /**
+ * Returns a var handle view of a given memory address.
+ * Used by {@code jdk.internal.foreign.LayoutPath} and
+ * {@code jdk.incubator.foreign.MemoryHandles}.
+ */
+ VarHandle memoryAddressViewVarHandle(Class<?> carrier, long alignmentMask,
+ ByteOrder order, long offset, long[] strides);
+
+ /**
+ * Returns the carrier associated with a memory access var handle.
+ * Used by {@code jdk.incubator.foreign.MemoryHandles}.
+ */
+ Class<?> memoryAddressCarrier(VarHandle handle);
+
+ /**
+ * Returns the alignment mask associated with a memory access var handle.
+ * Used by {@code jdk.incubator.foreign.MemoryHandles}.
+ */
+ long memoryAddressAlignmentMask(VarHandle handle);
+
+ /**
+ * Returns the byte order associated with a memory access var handle.
+ * Used by {@code jdk.incubator.foreign.MemoryHandles}.
+ */
+ ByteOrder memoryAddressByteOrder(VarHandle handle);
+
+ /**
+ * Returns the offset associated with a memory access var handle.
+ * Used by {@code jdk.incubator.foreign.MemoryHandles}.
+ */
+ long memoryAddressOffset(VarHandle handle);
+
+ /**
+ * Returns the strides associated with a memory access var handle.
+ * Used by {@code jdk.incubator.foreign.MemoryHandles}.
+ */
+ long[] memoryAddressStrides(VarHandle handle);
}
< prev index next >