X-Git-Url: http://git.megacz.com/?p=nestedvm.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fnestedvm%2Futil%2FSeekable.java;h=2e48a7de4b251df9b23f8a09de8712b46a70aa5b;hp=98f2c8e413dc0bebf6eeb53f9db205d2d4135472;hb=c59b7cfc7a6b67574d38c5c8eb7732bad37236b0;hpb=034a42fa65955289442614ef9914e5474fac62aa diff --git a/src/org/ibex/nestedvm/util/Seekable.java b/src/org/ibex/nestedvm/util/Seekable.java index 98f2c8e..2e48a7d 100644 --- a/src/org/ibex/nestedvm/util/Seekable.java +++ b/src/org/ibex/nestedvm/util/Seekable.java @@ -16,6 +16,18 @@ public abstract class Seekable { return n == -1 ? -1 : buf[0]&0xff; } + public int tryReadFully(byte[] buf, int off, int len) throws IOException { + int total = 0; + while(len > 0) { + int n = read(buf,off,len); + if(n == -1) break; + off += n; + len -= n; + total += n; + } + return total == 0 ? -1 : total; + } + public static class ByteArray extends Seekable { protected byte[] data; protected int pos;