APIdia Launch Partner
Top Fields Constructors Methods
jdk.internal.foreign.abi

public Class CallingSequenceBuilder

extends Object
Class Inheritance
Imports
jdk.internal.foreign.Utils, jdk.internal.foreign.abi.Binding.Allocate, .Binding.BoxAddress, .Binding.BufferLoad, .Binding.BufferStore, .Binding.Cast, .Binding.Copy, .Binding.Dup, .Binding.SegmentBase, .Binding.SegmentOffset, .Binding.ShiftLeft, .Binding.ShiftRight, .Binding.VMLoad, .Binding.VMStore, java.lang.foreign.FunctionDescriptor, .MemoryLayout, .MemorySegment, .ValueLayout, java.lang.invoke.MethodType, java.util.ArrayDeque, .ArrayList, .Deque, .List

Field Summary

Modifier and TypeField and Description
private final ABIDescriptor
private FunctionDescriptor
private final boolean
private final List<List<Binding>>
private final LinkerOptions
private MethodType
private List<Binding>
private static final boolean

Constructor Summary

AccessConstructor and Description
public
CallingSequenceBuilder(ABIDescriptor abi, boolean forUpcall, LinkerOptions linkerOptions)

Method Summary

Modifier and TypeMethod and Description
private void
addArgumentBinding(int index, Class<?> carrier, MemoryLayout layout, List<Binding> bindings)

public final CallingSequenceBuilder
addArgumentBindings(Class<?> carrier, MemoryLayout layout, List<Binding> bindings)

public CallingSequence
private long
private MethodType
private MethodType
private long
private MethodType
computeTypeHelper(Class<? extends Binding.Move> inputVMClass, Class<? extends Binding.Move> outputVMClass)

pack-priv static boolean
isBox(Binding binding)

pack-priv static boolean
isUnbox(Binding binding)

private boolean
public CallingSequenceBuilder
setReturnBindings(Class<?> carrier, MemoryLayout layout, List<Binding> bindings)

private void
verifyBindings(boolean forArguments, Class<?> carrier, List<Binding> bindings)

private static void
verifyBoxBindings(Class<?> expectedOutType, List<Binding> bindings)

private static void
verifyUnboxBindings(Class<?> inType, List<Binding> bindings)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

abiback to summary
private final ABIDescriptor abi
descback to summary
private FunctionDescriptor desc
forUpcallback to summary
private final boolean forUpcall
inputBindingsback to summary
private final List<List<Binding>> inputBindings
linkerOptionsback to summary
private final LinkerOptions linkerOptions
mtback to summary
private MethodType mt
outputBindingsback to summary
private List<Binding> outputBindings
VERIFY_BINDINGSback to summary
private static final boolean VERIFY_BINDINGS

Constructor Detail

CallingSequenceBuilderback to summary
public CallingSequenceBuilder(ABIDescriptor abi, boolean forUpcall, LinkerOptions linkerOptions)

Method Detail

addArgumentBindingback to summary
private void addArgumentBinding(int index, Class<?> carrier, MemoryLayout layout, List<Binding> bindings)
addArgumentBindingsback to summary
public final CallingSequenceBuilder addArgumentBindings(Class<?> carrier, MemoryLayout layout, List<Binding> bindings)
buildback to summary
public CallingSequence build()
computeAllocationSizeback to summary
private long computeAllocationSize()
computeCalleeTypeForDowncallback to summary
private MethodType computeCalleeTypeForDowncall()
computeCallerTypeForUpcallback to summary
private MethodType computeCallerTypeForUpcall()
computeReturnBufferSizeback to summary
private long computeReturnBufferSize()
computeTypeHelperback to summary
private MethodType computeTypeHelper(Class<? extends Binding.Move> inputVMClass, Class<? extends Binding.Move> outputVMClass)
isBoxback to summary
pack-priv static boolean isBox(Binding binding)
isUnboxback to summary
pack-priv static boolean isUnbox(Binding binding)
needsReturnBufferback to summary
private boolean needsReturnBuffer()
setReturnBindingsback to summary
public CallingSequenceBuilder setReturnBindings(Class<?> carrier, MemoryLayout layout, List<Binding> bindings)
verifyBindingsback to summary
private void verifyBindings(boolean forArguments, Class<?> carrier, List<Binding> bindings)
verifyBoxBindingsback to summary
private static void verifyBoxBindings(Class<?> expectedOutType, List<Binding> bindings)
verifyUnboxBindingsback to summary
private static void verifyUnboxBindings(Class<?> inType, List<Binding> bindings)