# Uses of Interface
jdk.incubator.foreign.Addressable

Packages that use Addressable
Package
Description
jdk.incubator.foreign
Classes to support low-level and efficient foreign memory/function access, directly from Java.

## Uses of Addressable in jdk.incubator.foreign

Subinterfaces of Addressable in jdk.incubator.foreign
Modifier and Type
Interface
Description
`interface`
`MemoryAddress`
A memory address models a reference into a memory location.
`interface`
`MemorySegment`
A memory segment models a contiguous region of memory.
`interface`
`NativeSymbol`
A native symbol models a reference to a location (typically the entry point of a function) in a native library.
`interface`
`VaList`
An interface that models a variable argument list, similar in functionality to a C `va_list`.
Methods in jdk.incubator.foreign with parameters of type Addressable
Modifier and Type
Method
Description
`VaList.Builder`
VaList.Builder.`addVarg(ValueLayout.OfAddress layout, Addressable value)`
Writes an `Addressable` value to the variable argument list being constructed.
`default MemorySegment`
SegmentAllocator.`allocate(ValueLayout.OfAddress layout, Addressable value)`
Allocate a memory segment with given layout and initialize it with given address value (expressed as an `Addressable` instance).
`void`
MemoryAddress.`set(ValueLayout.OfAddress layout, long offset, Addressable value)`
Writes an address to this address instance and offset with given layout.
`default void`
MemorySegment.`set(ValueLayout.OfAddress layout, long offset, Addressable value)`
Writes an address to this segment and offset with given layout.
`void`
MemoryAddress.`setAtIndex(ValueLayout.OfAddress layout, long index, Addressable value)`
Writes an address to this address instance and index, scaled by given layout size.
`default void`
MemorySegment.`setAtIndex(ValueLayout.OfAddress layout, long index, Addressable value)`
Writes an address to this segment and index, scaled by given layout size.