Lines Matching refs:disk
174 Disk *disk; in main() local
224 disk = opendisk(argv[0], 0, 0); in main()
225 if(disk == nil) { in main()
230 disk = opendisk(argv[0], 0, 0); in main()
234 if(disk == nil) in main()
237 if(disk->type == Tfile) in main()
241 switch(disk->type){ in main()
246 seek(disk->ctlfd, 0, 0); in main()
247 n = read(disk->ctlfd, buf, 10); in main()
264 if(!fflag && disk->type == Tfloppy) in main()
265 if(fprint(disk->ctlfd, "format %s", type) < 0) in main()
268 if(disk->type != Tfloppy) in main()
269 sanitycheck(disk); in main()
272 dosfs(dos, writepbs, disk, label, argc-1, argv+1, 0); in main()
275 dosfs(dos, writepbs, disk, label, argc-1, argv+1, 1); in main()
277 print("used %lld bytes\n", fatlast*clustersize*disk->secsize); in main()
288 sanitycheck(Disk *disk) in sanitycheck() argument
297 if(dos && nresrv < 2 && seek(disk->fd, disk->secsize, 0) == disk->secsize in sanitycheck()
298 && read(disk->fd, buf, sizeof(buf)) >= 5 && strncmp(buf, "part ", 5) == 0) { in sanitycheck()
306 if(disk->type == Tsd && disk->offset == 0LL) { in sanitycheck()
324 getdriveno(Disk *disk) in getdriveno() argument
328 if(disk->type != Tsd) in getdriveno()
331 if(fd2path(disk->fd, buf, sizeof(buf)) < 0) in getdriveno()
368 dosfs(int dofat, int dopbs, Disk *disk, char *label, int argc, char *argv[], int commit) in dosfs() argument
388 t->sectors = disk->s; in dosfs()
389 t->heads = disk->h; in dosfs()
390 t->tracks = disk->c; in dosfs()
397 disk->size = t->bytes*t->sectors*t->heads*t->tracks; in dosfs()
398 disk->secsize = t->bytes; in dosfs()
399 disk->secs = disk->size / disk->secsize; in dosfs()
402 secsize = disk->secsize; in dosfs()
403 length = disk->size; in dosfs()
412 if(fflag && disk->type == Tfile){ in dosfs()
413 if((d = dirfstat(disk->wfd)) == nil) in dosfs()
415 if(commit && d->length < disk->size) { in dosfs()
416 if(seek(disk->wfd, disk->size-1, 0) < 0) in dosfs()
418 if(write(disk->wfd, "9", 1) < 0) in dosfs()
419 fatal("writing 9: @%lld %r", seek(disk->wfd, 0LL, 1)); in dosfs()
427 if(seek(disk->fd, 0, 0) < 0) in dosfs()
429 if(commit && read(disk->fd, buf, secsize) != secsize) in dosfs()
546 PUTLONG(b->nhidden, disk->offset); in dosfs()
553 b->driveno = getdriveno(disk); in dosfs()
559 x = disk->offset + b->nfats*fatsecs + nresrv; in dosfs()
571 if(seek(disk->wfd, 0, 0) < 0) in dosfs()
573 if(write(disk->wfd, buf, secsize) != secsize) in dosfs()
588 if(seek(disk->wfd, nresrv*secsize, 0) < 0) in dosfs()
590 if(chatty) print("fat @%lluX\n", seek(disk->wfd, 0, 1)); in dosfs()
601 if(seek(disk->wfd, 2*fatsecs*secsize, 1) < 0) /* 2 fats */ in dosfs()
603 if(chatty) print("root @%lluX\n", seek(disk->wfd, 0LL, 1)); in dosfs()
612 if(seek(disk->wfd, rootsecs*secsize, 1) < 0) /* rootsecs */ in dosfs()
614 if(chatty) print("files @%lluX\n", seek(disk->wfd, 0LL, 1)); in dosfs()
653 if(chatty) print("%s @%lluX\n", d->name, seek(disk->wfd, 0LL, 1)); in dosfs()
654 if(commit && writen(disk->wfd, buf, length) != length) in dosfs()
688 if(seek(disk->wfd, nresrv*secsize, 0) < 0) in dosfs()
690 if(write(disk->wfd, fat, fatsecs*secsize) < 0) in dosfs()
692 if(write(disk->wfd, fat, fatsecs*secsize) < 0) in dosfs()
694 if(write(disk->wfd, root, rootsecs*secsize) < 0) in dosfs()