Lines Matching refs:disk
86 writechs(Disk *disk, uchar *p, vlong lba) in writechs() argument
90 s = lba % disk->s; in writechs()
91 h = (lba / disk->s) % disk->h; in writechs()
92 c = lba / (disk->s * disk->h); in writechs()
96 h = disk->h - 1; in writechs()
97 s = disk->s - 1; in writechs()
106 wrtentry(Disk *disk, Tentry *tp, int type, u32int base, u32int lba, u32int end) in wrtentry() argument
110 writechs(disk, &tp->starth, lba); in wrtentry()
111 writechs(disk, &tp->endh, end-1); in wrtentry()
119 Disk *disk; in main() local
142 disk = opendisk(argv[0], 0, 0); in main()
143 if(disk == nil) in main()
146 if(disk->type == Tfloppy) in main()
154 if(disk->secsize != secsize) in main()
156 argv0, disk->secsize, secsize); in main()
158 buf = malloc(secsize*(disk->s+1)); in main()
159 mbr = malloc(secsize*disk->s); in main()
166 if(seek(disk->fd, 0, 0) < 0) in main()
168 if(read(disk->fd, mbr, secsize) != secsize) in main()
175 memset(buf, 0, secsize*disk->s); in main()
178 if((nmbr = read(sysfd, buf, secsize*(disk->s+1))) < 0) in main()
180 if(nmbr > secsize*disk->s) in main()
181 fatal("master boot record too large %d > %d", nmbr, secsize*disk->s); in main()
192 wrtentry(disk, tp, Type9, 0, disk->s, disk->secs); in main()
197 if(seek(disk->wfd, 0, 0) < 0) in main()
199 if(write(disk->wfd, mbr, nmbr) != nmbr) in main()