diff options
Diffstat (limited to 'src/cmd/venti/srv/zeropart.c')
-rw-r--r-- | src/cmd/venti/srv/zeropart.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/cmd/venti/srv/zeropart.c b/src/cmd/venti/srv/zeropart.c new file mode 100644 index 00000000..fe75c81d --- /dev/null +++ b/src/cmd/venti/srv/zeropart.c @@ -0,0 +1,31 @@ +#include "stdinc.h" +#include "dat.h" +#include "fns.h" + +void +zeropart(Part *part, int blocksize) +{ + ZBlock *b; + u64int addr; + int w; + + fprint(2, "clearing the partition\n"); +//fprint(2, "NOT!\n"); +//return; +//b=alloczblock(MaxIoSize, 1, blocksize); +//freezblock(b); + b = alloczblock(MaxIoSize, 1, blocksize); + + w = 0; + for(addr = PartBlank; addr + MaxIoSize <= part->size; addr += MaxIoSize){ + if(writepart(part, addr, b->data, MaxIoSize) < 0) + sysfatal("can't initialize %s, writing block %d failed: %r", part->name, w); + w++; + } + + for(; addr + blocksize <= part->size; addr += blocksize) + if(writepart(part, addr, b->data, blocksize) < 0) + sysfatal("can't initialize %s: %r", part->name); + + freezblock(b); +} |