< prev index next >

src/java.base/share/classes/jdk/internal/access/JavaLangInvokeAccess.java

Print this page

        

*** 24,33 **** --- 24,35 ---- */ 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,109 **** --- 106,148 ---- */ 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 >