TP_BSIZE
#define TP_NINDIR (TP_BSIZE/2)
char dummy[TP_BSIZE];
size = ntrec * TP_BSIZE;
while (size > TP_BSIZE &&
size -= TP_BSIZE;
if (TP_BSIZE / DEV_BSIZE == 0 || TP_BSIZE % DEV_BSIZE != 0)
tp_bshift = ffs(TP_BSIZE) - 1;
if (TP_BSIZE != (1 << tp_bshift))
quit("TP_BSIZE (%d) is not a power of 2", TP_BSIZE);
mapsize = roundup(howmany(maxino, CHAR_BIT), TP_BSIZE);
tapesize = 3 * (howmany(mapsize * sizeof(char), TP_BSIZE) + 1);
* TP_BSIZE /* bytes/block */
* TP_BSIZE /* bytes / block */
(howmany(mapsize * sizeof(char), TP_BSIZE) + 1);
char (*tblock)[TP_BSIZE]; /* buffer for data blocks */
static char (*nextblock)[TP_BSIZE];
writesize = ntrec * TP_BSIZE;
malloc((unsigned)(reqsiz + writesize + pgoff + TP_BSIZE));
workers[i].tblock = (char (*)[TP_BSIZE])
prev->count * (TP_BSIZE / DEV_BSIZE);
p->count * TP_BSIZE);
TP_BSIZE) != TP_BSIZE)
blkest = howmany(dbtob(DIP(dp, di_blocks)), TP_BSIZE);
sizeest = howmany(DIP(dp, di_size), TP_BSIZE);
UFS_NDADDR * sblock->fs_bsize / TP_BSIZE, TP_NINDIR);
char buf[TP_BSIZE];
blks = howmany(frags * sblock->fs_fsize, TP_BSIZE);
dumpblock(*bp, (count - j) * TP_BSIZE);
blks = howmany(frags * sblock->fs_fsize, TP_BSIZE);
TP_BSIZE);
TP_BSIZE);
blks -= howmany(sblock->fs_fsize, TP_BSIZE) - resid;
dumpblock(*bp, (count - j) * TP_BSIZE);
blks = howmany(UFS_NXADDR * sblock->fs_bsize, TP_BSIZE);
blks = howmany(spcl.c_extsize, TP_BSIZE);
blks = howmany(UFS_NXADDR * sblock->fs_bsize, TP_BSIZE);
blks = howmany(spcl.c_extsize, TP_BSIZE);
dumpblock(*bp, (blks - i) * TP_BSIZE);
spcl.c_count = howmany(mapsize * sizeof(char), TP_BSIZE);
for (i = 0, cp = map; i < spcl.c_count; i++, cp += TP_BSIZE)
memmove(buf, &tapebuf[(blkcnt++ * TP_BSIZE) + byteslide], (long)TP_BSIZE);
memmove(&tapebuf[-TP_BSIZE],
&tapebuf[(numtrec-1) * TP_BSIZE], (long)TP_BSIZE);
((struct s_spcl *)&tapebuf[i * TP_BSIZE])->c_magic = 0;
cnt = ntrec * TP_BSIZE;
else if (i > 0 && i != ntrec * TP_BSIZE) {
if (i % TP_BSIZE != 0)
i, ntrec * TP_BSIZE);
numtrec = i / TP_BSIZE;
i = ntrec * TP_BSIZE;
if (rd % TP_BSIZE != 0)
rd, ntrec * TP_BSIZE);
memmove(&tapebuf[rd], &endoftapemark, (long)TP_BSIZE);
&tapebuf[(blkcnt++ * TP_BSIZE) + byteslide], (long)TP_BSIZE);
((struct s_spcl *)&tapebuf[i * TP_BSIZE])->c_magic = 0;
i = rmtread(tapebuf, ntrec * TP_BSIZE);
i = read(mt, tapebuf, ntrec * TP_BSIZE);
if (i % TP_BSIZE != 0) {
i, "is not a multiple of dump block size", TP_BSIZE);
ntrec = i / TP_BSIZE;
buf->c_size = buf->c_count * TP_BSIZE;
char buf[TP_BSIZE];
if (byteslide < TP_BSIZE) {
if (byteslide < TP_BSIZE) {
free(tapebuf - TP_BSIZE);
tapebuf = malloc((size+1) * TP_BSIZE);
tapebuf += TP_BSIZE;
if (stbuf.st_blksize > 0 && stbuf.st_blksize < TP_BSIZE )
fssize = TP_BSIZE;
if (stbuf.st_blksize >= TP_BSIZE && stbuf.st_blksize <= MAXBSIZE)
if (((TP_BSIZE - 1) & stbuf.st_blksize) != 0) {
"blocksize (%d);\n", TP_BSIZE, stbuf.st_blksize);
fssize = roundup(fssize, TP_BSIZE);
maxino = (spcl.c_count * TP_BSIZE * NBBY) + 1;
char buf[TP_BSIZE];
char buf[MAXBSIZE / TP_BSIZE][TP_BSIZE];
char junk[TP_BSIZE];
if (curblk == fssize / TP_BSIZE) {
(*fillit)((char *)buf, (long)(size > TP_BSIZE ?
fssize : (curblk - 1) * TP_BSIZE + size));
(*fillit)((char *)buf, (long)(size > TP_BSIZE ?
curblk * TP_BSIZE :
(curblk - 1) * TP_BSIZE + size));
seekpos += (long)MIN(TP_BSIZE, size);
if ((size -= TP_BSIZE) <= 0) {
if (size > -TP_BSIZE && curblk > 0) {
(long)((curblk * TP_BSIZE) + size));