Package com.dylibso.chicory.runtime
Interface Memory
- All Known Implementing Classes:
ByteArrayMemory,ByteBufferMemory
public interface Memory
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intA WebAssembly page size is 64KiB = 65,536 bytes.static final intMaximum number of pages allowed by the runtime. -
Method Summary
Modifier and TypeMethodDescriptionstatic intbytes(int pages) default voidcopy(int dest, int src, int size) voiddrop(int segment) voidfill(byte value, int fromIndex, int toIndex) intgrow(int size) voidinitialize(Instance instance, DataSegment[] dataSegments) intvoidinitPassiveSegment(int segmentId, int dest, int offset, int size) intintpages()byteread(int addr) byte[]readBytes(int addr, int len) default StringreadCString(int addr) default StringreadCString(int addr, Charset charSet) doublereadDouble(int addr) longreadF32(int addr) longreadF64(int addr) floatreadFloat(int addr) default longreadI16(int addr) default longreadI32(int addr) default longreadI64(int addr) default longreadI8(int addr) intreadInt(int addr) longreadLong(int addr) shortreadShort(int addr) default StringreadString(int addr, int len) default StringreadString(int addr, int len, Charset charSet) longreadU16(int addr) default longreadU32(int addr) default longreadU8(int addr) default voidwrite(int addr, byte[] data) voidwrite(int addr, byte[] data, int offset, int size) voidwriteByte(int addr, byte data) default voidwriteCString(int offset, String str) default voidwriteCString(int offset, String str, Charset charSet) voidwriteF32(int addr, float data) voidwriteF64(int addr, double data) voidwriteI32(int addr, int data) voidwriteLong(int addr, long data) voidwriteShort(int addr, short data) default voidwriteString(int offset, String data) default voidwriteString(int offset, String data, Charset charSet) voidzero()
-
Field Details
-
PAGE_SIZE
static final int PAGE_SIZEA WebAssembly page size is 64KiB = 65,536 bytes.- See Also:
-
RUNTIME_MAX_PAGES
static final int RUNTIME_MAX_PAGESMaximum number of pages allowed by the runtime. WASM supports 2^16 pages, but we must limit based on the maximum JVM array size. This limit isInteger.MAX_VALUE / PAGE_SIZE.- See Also:
-
-
Method Details
-
bytes
static int bytes(int pages) -
pages
int pages() -
grow
int grow(int size) -
initialPages
int initialPages() -
maximumPages
int maximumPages() -
initialize
-
initPassiveSegment
void initPassiveSegment(int segmentId, int dest, int offset, int size) -
writeString
-
writeString
-
readString
-
readString
-
writeCString
-
writeCString
-
readCString
-
readCString
-
write
default void write(int addr, byte[] data) -
write
void write(int addr, byte[] data, int offset, int size) -
read
byte read(int addr) -
readBytes
byte[] readBytes(int addr, int len) -
writeI32
void writeI32(int addr, int data) -
readInt
int readInt(int addr) -
readI32
default long readI32(int addr) -
readU32
default long readU32(int addr) -
writeLong
void writeLong(int addr, long data) -
readLong
long readLong(int addr) -
readI64
default long readI64(int addr) -
writeShort
void writeShort(int addr, short data) -
readShort
short readShort(int addr) -
readI16
default long readI16(int addr) -
readU16
long readU16(int addr) -
writeByte
void writeByte(int addr, byte data) -
readU8
default long readU8(int addr) -
readI8
default long readI8(int addr) -
writeF32
void writeF32(int addr, float data) -
readF32
long readF32(int addr) -
readFloat
float readFloat(int addr) -
writeF64
void writeF64(int addr, double data) -
readDouble
double readDouble(int addr) -
readF64
long readF64(int addr) -
zero
void zero() -
fill
void fill(byte value, int fromIndex, int toIndex) -
copy
default void copy(int dest, int src, int size) -
drop
void drop(int segment)
-