aboutsummaryrefslogtreecommitdiff
path: root/src/libfs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libfs')
-rw-r--r--src/libfs/fs.c2
-rw-r--r--src/libfs/read.c18
2 files changed, 19 insertions, 1 deletions
diff --git a/src/libfs/fs.c b/src/libfs/fs.c
index d912391f..31515250 100644
--- a/src/libfs/fs.c
+++ b/src/libfs/fs.c
@@ -259,7 +259,7 @@ _fssend(Mux *mux, void *pkt)
Fsys *fs;
fs = mux->aux;
- return write(fs->fd, pkt, GBIT32((uchar*)pkt));
+ return threadwrite(fs->fd, pkt, GBIT32((uchar*)pkt));
}
static void*
diff --git a/src/libfs/read.c b/src/libfs/read.c
index c05d40d1..f868e123 100644
--- a/src/libfs/read.c
+++ b/src/libfs/read.c
@@ -52,3 +52,21 @@ fsread(Fid *fid, void *buf, long n)
{
return fspread(fid, buf, n, -1);
}
+
+long
+fsreadn(Fid *fid, void *buf, long n)
+{
+ long tot, nn;
+
+ for(tot=0; tot<n; tot+=nn){
+ nn = fsread(fid, (char*)buf+tot, n-tot);
+ if(nn <= 0){
+ if(tot == 0)
+ return nn;
+ break;
+ }
+ }
+ return tot;
+}
+
+