From 38c7eb9bd22e05ef32998858b178edaf8269cbab Mon Sep 17 00:00:00 2001 From: rsc Date: Sun, 21 May 2006 18:24:59 +0000 Subject: plan 9 import --- src/cmd/tapefs/32vfs.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/cmd/tapefs/32vfs.c') diff --git a/src/cmd/tapefs/32vfs.c b/src/cmd/tapefs/32vfs.c index c273bcf4..adccd590 100644 --- a/src/cmd/tapefs/32vfs.c +++ b/src/cmd/tapefs/32vfs.c @@ -20,9 +20,11 @@ #define VSUPERB 1 #define VROOT 2 /* root inode */ #define VNAMELEN 14 -#define BLSIZE 512 +#define MAXBLSIZE 1024 +int BLSIZE; #define LINOPB (BLSIZE/sizeof(struct v32dinode)) -#define LNINDIR (BLSIZE/sizeof(unsigned long)) +#define LNINDIR (BLSIZE/4) +#define MAXLNINDIR (MAXBLSIZE/4) struct v32dinode { unsigned char flags[2]; @@ -51,6 +53,13 @@ populate(char *name) { Fileinf f; + BLSIZE = 512; /* 32v */ + if(blocksize){ + /* 1024 for 4.1BSD */ + if(blocksize != 512 && blocksize != 1024) + error("bad block size"); + BLSIZE = blocksize; + } replete = 0; tapefile = open(name, OREAD); if (tapefile<0) @@ -106,7 +115,7 @@ docreate(Ram *r) char * doread(Ram *r, vlong off, long cnt) { - static char buf[Maxbuf+BLSIZE]; + static char buf[Maxbuf+MAXBLSIZE]; int bno, i; bno = off/BLSIZE; @@ -147,7 +156,7 @@ dopermw(Ram *r) Fileinf iget(int ino) { - char buf[BLSIZE]; + char buf[MAXBLSIZE]; struct v32dinode *dp; long flags, i; Fileinf f; -- cgit v1.2.3