Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

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