Blame


1 7a4ee46d 2003-11-23 devnull #include "stdinc.h"
2 7a4ee46d 2003-11-23 devnull #include "dat.h"
3 7a4ee46d 2003-11-23 devnull #include "fns.h"
4 7a4ee46d 2003-11-23 devnull
5 7a4ee46d 2003-11-23 devnull void
6 7a4ee46d 2003-11-23 devnull zeropart(Part *part, int blocksize)
7 7a4ee46d 2003-11-23 devnull {
8 7a4ee46d 2003-11-23 devnull ZBlock *b;
9 7a4ee46d 2003-11-23 devnull u64int addr;
10 7a4ee46d 2003-11-23 devnull int w;
11 7a4ee46d 2003-11-23 devnull
12 7a4ee46d 2003-11-23 devnull fprint(2, "clearing the partition\n");
13 7a4ee46d 2003-11-23 devnull
14 7a4ee46d 2003-11-23 devnull b = alloczblock(MaxIoSize, 1);
15 7a4ee46d 2003-11-23 devnull
16 7a4ee46d 2003-11-23 devnull w = 0;
17 7a4ee46d 2003-11-23 devnull for(addr = PartBlank; addr + MaxIoSize <= part->size; addr += MaxIoSize){
18 7a4ee46d 2003-11-23 devnull if(writepart(part, addr, b->data, MaxIoSize) < 0)
19 7a4ee46d 2003-11-23 devnull sysfatal("can't initialize %s, writing block %d failed: %r", part->name, w);
20 7a4ee46d 2003-11-23 devnull w++;
21 7a4ee46d 2003-11-23 devnull }
22 7a4ee46d 2003-11-23 devnull
23 7a4ee46d 2003-11-23 devnull for(; addr + blocksize <= part->size; addr += blocksize)
24 7a4ee46d 2003-11-23 devnull if(writepart(part, addr, b->data, blocksize) < 0)
25 7a4ee46d 2003-11-23 devnull sysfatal("can't initialize %s: %r", part->name);
26 7a4ee46d 2003-11-23 devnull
27 7a4ee46d 2003-11-23 devnull freezblock(b);
28 7a4ee46d 2003-11-23 devnull }