Function Descriptor
FunctionDescriptor represents the signature of a function.
FunctionDescriptor.of(MemoryLayout, … )
takes a variadic1 input of
MemoryLayouts
. The first argument is the memory layout of the return
type, and the rest correspond to the memory layouts of the function
arguments.
For example, int foo(float, void*)
would be represented as
FunctionDescriptor.of(
ValueLayout
.JAVA_INT, ValueLayout.JAVA_FLOAT, ValueLayout.ADDRESS)
For void functions,
FunctionDescriptor.ofVoid(MemoryLayout, … )
is a static method that is
exactly the same as FunctionDescriptor.of(MemoryLayout, … )
except that its
first argument corresponds to the first function argument rather than the
return value.
For example, void foo(float, void*)
would translate to
FunctionDescriptor(ValueLayout.JAVA_FLOAT, ValueLayout.ADDRESS)
For additional information on FunctionDescriptor
, visit Oracle's official documentation.
The function can take a variable amount of arguments