Lines Matching refs:disk

38 struct disk		disk;  variable
50 disk.dk_name = strdup(name); in DISK_open()
51 if (disk.dk_name == NULL) in DISK_open()
53 disk.dk_fd = opendev(disk.dk_name, oflags, OPENDEV_PART, NULL); in DISK_open()
54 if (disk.dk_fd == -1) in DISK_open()
55 err(1, "opendev('%s', 0x%x)", disk.dk_name, oflags); in DISK_open()
56 if (fstat(disk.dk_fd, &st) == -1) in DISK_open()
57 err(1, "fstat('%s)", disk.dk_name); in DISK_open()
59 errx(1, "%s is not a character device", disk.dk_name); in DISK_open()
60 if (ioctl(disk.dk_fd, DIOCGPDINFO, &dl) == -1) in DISK_open()
64 if (disk.dk_size > 0) { in DISK_open()
66 sz = disk.dk_size; in DISK_open()
67 disk.dk_heads = 1; in DISK_open()
68 disk.dk_sectors = 64; in DISK_open()
69 disk.dk_size = DL_BLKTOSEC(&dl, sz); in DISK_open()
70 disk.dk_cylinders = disk.dk_size / disk.dk_sectors; in DISK_open()
71 } else if (disk.dk_cylinders > 0) { in DISK_open()
73 sz = disk.dk_cylinders * disk.dk_heads * disk.dk_sectors; in DISK_open()
74 disk.dk_size = DL_BLKTOSEC(&dl, sz); in DISK_open()
75 disk.dk_sectors = DL_BLKTOSEC(&dl, disk.dk_sectors); in DISK_open()
77 disk.dk_cylinders = dl.d_ncylinders; in DISK_open()
78 disk.dk_heads = dl.d_ntracks; in DISK_open()
79 disk.dk_sectors = dl.d_nsectors; in DISK_open()
81 spc = (uint64_t)disk.dk_heads * disk.dk_sectors; in DISK_open()
84 disk.dk_cylinders = UINT32_MAX / spc; in DISK_open()
85 disk.dk_size = disk.dk_cylinders * spc; in DISK_open()
87 disk.dk_size = sz; in DISK_open()
90 if (disk.dk_size == 0) in DISK_open()
93 if (disk.dk_bootprt.prt_ns > 0) { in DISK_open()
94 ns = disk.dk_bootprt.prt_ns + DL_BLKSPERSEC(&dl) - 1; in DISK_open()
95 bs = disk.dk_bootprt.prt_bs + DL_BLKSPERSEC(&dl) - 1; in DISK_open()
96 disk.dk_bootprt.prt_ns = DL_BLKTOSEC(&dl, ns); in DISK_open()
97 disk.dk_bootprt.prt_bs = DL_BLKTOSEC(&dl, bs); in DISK_open()
108 size = units_size(units, disk.dk_size, &ut); in DISK_printgeometry()
109 printf("Disk: %s\tgeometry: %d/%d/%d [%.0f ", disk.dk_name, in DISK_printgeometry()
110 disk.dk_cylinders, disk.dk_heads, disk.dk_sectors, size); in DISK_printgeometry()
130 off = lseek(disk.dk_fd, where, SEEK_SET); in readsectors()
142 len = read(disk.dk_fd, secbuf, bytes); in readsectors()
171 off = lseek(disk.dk_fd, where, SEEK_SET); in writesectors()
179 len = write(disk.dk_fd, buf, bytes); in writesectors()