#define DIRPB (BSIZE/sizeof(struct direct))
#define MWORD(m,i) (m[(unsigned)(i-1)/MLEN])
#define MBIT(i) (1<<((unsigned)(i-1)%MLEN))
#define BIS(i,w) (MWORD(w,i) |= MBIT(i))
#define BIC(i,w) (MWORD(w,i) &= ~MBIT(i))
#define BIT(i,w) (MWORD(w,i) & MBIT(i))
struct dinode itab
[INOPB
*NI
];
printf("bad key '%c%'\n", arg
[-1]);
printf(" date = %s\n", prdate(spcl
.c_date
));
printf("dump date = %s\n", prdate(spcl
.c_ddate
));
printf("dumping %s to %s\n", disk
, tape
);
printf("dump: cannot open %s\n", disk
);
pass(mark
, (short *)NULL
);
printf("estimated %ld tape blocks on %d tape(s)\n",
printf("%ld tape blocks on %d tape(s)\n",
spcl
.c_tapea
, spcl
.c_volume
);
bread((daddr_t
)1, (char *)&sblock
, sizeof(sblock
));
mino
= (sblock
.s_isize
-2) * INOPB
;
for(j
=0; j
<INOPB
*NI
; j
++) {
bread(d
, (char *)itab
, sizeof(itab
));
l3tol(&d
[0], &ip
->di_addr
[0], NADDR
);
indir(d
[i
], fn1
, fn2
, i
-(NADDR
-3));
bread(d
, (char *)idblk
, sizeof(idblk
));
for(i
=0; i
<NINDIR
; i
++) {
for(i
=0; i
<NINDIR
; i
++) {
if(ip
->di_mtime
>= spcl
.c_ddate
||
ip
->di_ctime
>= spcl
.c_ddate
) {
if(i
!= IFDIR
&& i
!= IFREG
) {
icat(ip
, tapsrec
, dmpspc
);
spcl
.c_count
= (n
*sizeof(map
[0]) + BSIZE
)/BSIZE
;
for(i
=0; i
<spcl
.c_count
; i
++) {
for(i
=0; i
<BSIZE
/sizeof(*ip
); i
++)
spcl
.c_checksum
= CHECKSUM
- s
;
struct direct dblk
[DIRPB
];
bread(d
, (char *)dblk
, sizeof(dblk
));
if(cp
[1] == '.' && cp
[2] == '\0')
printf("asked %d; got %d\n", c
, n
);
char tblock
[NTREC
][BSIZE
];
tblock
[trecno
][i
] = *dp
++;
if(d
== 0 || tdaddr
[i
] < d
) {
bread(d
, tblock
[si
], BSIZE
);
write(to
, tblock
[0], sizeof(tblock
));
asize
+= sizeof(tblock
)/density
;
printf("change tapes\n");
read(0, place
, sizeof(place
));
printf("dump: cannot create %s\n", tape
);
printf("cannot open %s\n", increm
);
i
= read(df
, (char *)&idbuf
, sizeof(idbuf
));
if(fname
[i
] != idbuf
.id_name
[i
])
if(idbuf
.id_incno
>= incno
)
if(idbuf
.id_ddate
<= spcl
.c_ddate
)
spcl
.c_ddate
= idbuf
.id_ddate
;
printf("cannot open %s\n", increm
);
i
= read(df
, (char *)&idbuf
, sizeof(idbuf
));
if(fname
[i
] != idbuf
.id_name
[i
])
if(idbuf
.id_incno
!= incno
)
lseek(df
, (long)n
*sizeof(idbuf
), 0);
idbuf
.id_name
[i
] = fname
[i
];
idbuf
.id_ddate
= spcl
.c_date
;
write(df
, (char *)&idbuf
, sizeof(idbuf
));
printf("level %c dump on %s\n", incno
, prdate(spcl
.c_date
));
s
= (ip
->di_size
+ BSIZE
-1) / BSIZE
;
s
= (s
+ (BSIZE
/sizeof(daddr_t
))-1) / (BSIZE
/sizeof(daddr_t
));
esize
+= (n
+ (BSIZE
/sizeof(short))-1) / (BSIZE
/sizeof(short));