return res; tmp.buf.size.set(res); flatbuf = tmp.buf;
return res; tmp.buf.size.set(res); flatbuf = tmp.buf;
@Override @NotImplemented public int read_buf(String path, Pointer bufp, @size_t long size, @off_t long off, FuseFileInfo fi) { // should be implemented or null long vecmem = MemoryIO.getInstance().allocateMemory(Struct.size(new FuseBufvec(Runtime.getSystemRuntime())), false); if (vecmem == 0) { return -ErrorCodes.ENOMEM(); } Pointer src = Pointer.wrap(Runtime.getSystemRuntime(), vecmem); long memAdr = MemoryIO.getInstance().allocateMemory(size, false); if (memAdr == 0) { MemoryIO.getInstance().freeMemory(vecmem); return -ErrorCodes.ENOMEM(); } Pointer mem = Pointer.wrap(Runtime.getSystemRuntime(), memAdr); FuseBufvec buf = FuseBufvec.of(src); FuseBufvec.init(buf, size); buf.buf.mem.set(mem); bufp.putAddress(0, src.address()); int res = read(path, mem, size, off, fi); if (res >= 0) buf.buf.size.set(res); return res; }
@Override @NotImplemented public int read_buf(String path, Pointer bufp, @size_t long size, @off_t long off, FuseFileInfo fi) { // should be implemented or null long vecmem = MemoryIO.getInstance().allocateMemory(Struct.size(new FuseBufvec(Runtime.getSystemRuntime())), false); if (vecmem == 0) { return -ErrorCodes.ENOMEM(); } Pointer src = Pointer.wrap(Runtime.getSystemRuntime(), vecmem); long memAdr = MemoryIO.getInstance().allocateMemory(size, false); if (memAdr == 0) { MemoryIO.getInstance().freeMemory(vecmem); return -ErrorCodes.ENOMEM(); } Pointer mem = Pointer.wrap(Runtime.getSystemRuntime(), memAdr); FuseBufvec buf = FuseBufvec.of(src); FuseBufvec.init(buf, size); buf.buf.mem.set(mem); bufp.putAddress(0, src.address()); int res = read(path, mem, size, off, fi); if (res >= 0) buf.buf.size.set(res); return res; }