Uses of Interface
jdk.incubator.foreign.MemoryLayout
Package
Description
Classes to support low-level and efficient foreign memory/function access, directly from Java.
-
Uses of MemoryLayout in jdk.incubator.foreign
Modifier and TypeClassDescriptionfinal class
A group layout is used to combine together multiple member layouts.final class
A sequence layout.final class
A value layout.Modifier and TypeFieldDescriptionstatic final MemoryLayout
CLinker.C_VA_LIST
The layout for theva_list
C typestatic final MemoryLayout
MemoryLayouts.PAD_16
A padding layout constant with size of two bytes.static final MemoryLayout
MemoryLayouts.PAD_32
A padding layout constant with size of four bytes.static final MemoryLayout
MemoryLayouts.PAD_64
A padding layout constant with size of eight bytes.static final MemoryLayout
MemoryLayouts.PAD_8
A padding layout constant with size of one byte.Modifier and TypeMethodDescriptionstatic <T extends MemoryLayout>
TCLinker.asVarArg
(T layout) Returns a memory layout that is suitable to use as the layout for variadic arguments in a specialized function descriptor.Modifier and TypeMethodDescriptionSequenceLayout.elementLayout()
Returns the element layout associated with this sequence layout.default MemoryLayout
MemoryLayout.map
(UnaryOperator<MemoryLayout> op, MemoryLayout.PathElement... elements) Creates a transformed copy of this layout where a selected layout, from a path rooted in this layout, is replaced with the result of applying the given operation.static MemoryLayout
MemoryLayout.paddingLayout
(long size) Create a new padding layout with given size.default MemoryLayout
MemoryLayout.select
(MemoryLayout.PathElement... elements) Selects the layout from a path rooted in this layout.MemoryLayout.withAttribute
(String name, Constable value) Returns a new memory layout which features the same attributes as this layout, plus the newly specified attribute.MemoryLayout.withBitAlignment
(long bitAlignment) Creates a new layout which features the desired alignment constraint.Creates a new layout which features the desired layout name.Modifier and TypeMethodDescriptionFunctionDescriptor.argumentLayouts()
Returns the argument layouts associated with this function.Optional<? extends DynamicConstantDesc<? extends MemoryLayout>>
MemoryLayout.describeConstable()
GroupLayout.memberLayouts()
Returns the member layouts associated with this group.FunctionDescriptor.returnLayout()
Returns the return layout associated with this function.Modifier and TypeMethodDescriptiondefault MemorySegment
SegmentAllocator.allocate
(MemoryLayout layout) Allocate a block of memory with given layout.default MemorySegment
SegmentAllocator.allocateArray
(MemoryLayout elementLayout, long count) Allocate a block of memory corresponding to an array with given element layout and size.static MemorySegment
MemorySegment.allocateNative
(MemoryLayout layout, ResourceScope scope) Creates a new confined native memory segment that models a newly allocated block of off-heap memory with given layout and resource scope.MemorySegment.elements
(MemoryLayout elementLayout) Returns a sequentialStream
over disjoint slices (whose size matches that of the specified layout) in this segment.static FunctionDescriptor
FunctionDescriptor.of
(MemoryLayout resLayout, MemoryLayout... argLayouts) Create a function descriptor with given return and argument layouts.static FunctionDescriptor
FunctionDescriptor.ofVoid
(MemoryLayout... argLayouts) Create a function descriptor with given argument layouts and no return layout.static SequenceLayout
MemoryLayout.sequenceLayout
(long elementCount, MemoryLayout elementLayout) Create a new sequence layout with given element layout and element count.static SequenceLayout
MemoryLayout.sequenceLayout
(MemoryLayout elementLayout) Create a new sequence layout, with unbounded element count and given element layout.void
CLinker.VaList.skip
(MemoryLayout... layouts) Skips a number of elements with the given memory layouts, and advances this va list's position.MemorySegment.spliterator
(MemoryLayout elementLayout) Returns a spliterator for this memory segment.static GroupLayout
MemoryLayout.structLayout
(MemoryLayout... elements) Create a new struct group layout with given member layouts.static GroupLayout
MemoryLayout.unionLayout
(MemoryLayout... elements) Create a new union group layout with given member layouts.CLinker.VaList.vargAsAddress
(MemoryLayout layout) Reads the next value as aMemoryAddress
and advances this va list's position.double
CLinker.VaList.vargAsDouble
(MemoryLayout layout) Reads the next value as adouble
and advances this va list's position.int
CLinker.VaList.vargAsInt
(MemoryLayout layout) Reads the next value as anint
and advances this va list's position.long
CLinker.VaList.vargAsLong
(MemoryLayout layout) Reads the next value as along
and advances this va list's position.CLinker.VaList.vargAsSegment
(MemoryLayout layout, ResourceScope scope) Reads the next value as aMemorySegment
, and advances this va list's position.CLinker.VaList.vargAsSegment
(MemoryLayout layout, SegmentAllocator allocator) Reads the next value as aMemorySegment
, and advances this va list's position.FunctionDescriptor.withAppendedArgumentLayouts
(MemoryLayout... addedLayouts) Create a new function descriptor with the given argument layouts appended to the argument layout array of this function descriptor.FunctionDescriptor.withReturnLayout
(MemoryLayout newReturn) Create a new function descriptor with the given memory layout as the new return layout.Modifier and TypeMethodDescriptiondefault MemoryLayout
MemoryLayout.map
(UnaryOperator<MemoryLayout> op, MemoryLayout.PathElement... elements) Creates a transformed copy of this layout where a selected layout, from a path rooted in this layout, is replaced with the result of applying the given operation.