diff options
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/fdisk/cmd.c | 101 | ||||
-rw-r--r-- | sbin/fdisk/cmd.h | 35 | ||||
-rw-r--r-- | sbin/fdisk/disk.c | 33 | ||||
-rw-r--r-- | sbin/fdisk/disk.h | 7 | ||||
-rw-r--r-- | sbin/fdisk/fdisk.c | 17 | ||||
-rw-r--r-- | sbin/fdisk/mbr.c | 41 | ||||
-rw-r--r-- | sbin/fdisk/mbr.h | 8 | ||||
-rw-r--r-- | sbin/fdisk/misc.c | 6 | ||||
-rw-r--r-- | sbin/fdisk/misc.h | 4 | ||||
-rw-r--r-- | sbin/fdisk/part.c | 20 | ||||
-rw-r--r-- | sbin/fdisk/part.h | 8 | ||||
-rw-r--r-- | sbin/fdisk/user.c | 20 | ||||
-rw-r--r-- | sbin/fdisk/user.h | 6 |
13 files changed, 145 insertions, 161 deletions
diff --git a/sbin/fdisk/cmd.c b/sbin/fdisk/cmd.c index 23739451b6d..b7b43eaf4a5 100644 --- a/sbin/fdisk/cmd.c +++ b/sbin/fdisk/cmd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd.c,v 1.75 2015/03/14 18:32:29 krw Exp $ */ +/* $OpenBSD: cmd.c,v 1.76 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -37,16 +37,15 @@ int reinited; int -Xreinit(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xreinit(char *args, struct mbr *mbr, struct mbr *tt, int offset) { struct dos_mbr dos_mbr; /* Copy template MBR */ MBR_make(tt, &dos_mbr); - MBR_parse(disk, &dos_mbr, mbr->offset, mbr->reloffset, mbr); + MBR_parse(&dos_mbr, mbr->offset, mbr->reloffset, mbr); - MBR_init(disk, mbr); + MBR_init(mbr); reinited = 1; /* Tell em we did something */ @@ -59,15 +58,14 @@ Xreinit(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } int -Xdisk(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xdisk(char *args, struct mbr *mbr, struct mbr *tt, int offset) { int maxcyl = 1024; int maxhead = 256; int maxsec = 63; /* Print out disk info */ - DISK_printgeometry(disk, args); + DISK_printgeometry(args); #if defined (__powerpc__) || defined (__mips__) maxcyl = 9999999; @@ -77,22 +75,21 @@ Xdisk(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, /* Ask for new info */ if (ask_yn("Change disk geometry?")) { - disk->cylinders = ask_num("BIOS Cylinders", - disk->cylinders, 1, maxcyl); - disk->heads = ask_num("BIOS Heads", - disk->heads, 1, maxhead); - disk->sectors = ask_num("BIOS Sectors", - disk->sectors, 1, maxsec); - - disk->size = disk->cylinders * disk->heads * disk->sectors; + disk.cylinders = ask_num("BIOS Cylinders", + disk.cylinders, 1, maxcyl); + disk.heads = ask_num("BIOS Heads", + disk.heads, 1, maxhead); + disk.sectors = ask_num("BIOS Sectors", + disk.sectors, 1, maxsec); + + disk.size = disk.cylinders * disk.heads * disk.sectors; } return (CMD_CONT); } int -Xswap(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xswap(char *args, struct mbr *mbr, struct mbr *tt, int offset) { const char *errstr; char *from, *to; @@ -131,8 +128,7 @@ Xswap(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } int -Xedit(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xedit(char *args, struct mbr *mbr, struct mbr *tt, int offset) { const char *errstr; int pn, num, ret; @@ -146,7 +142,7 @@ Xedit(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, pp = &mbr->part[pn]; /* Edit partition type */ - ret = Xsetpid(args, disk, mbr, tt, offset); + ret = Xsetpid(args, mbr, tt, offset); /* Unused, so just zero out */ if (pp->id == DOSPTYP_UNUSED) { @@ -160,9 +156,9 @@ Xedit(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, int maxcyl, maxhead, maxsect; /* Shorter */ - maxcyl = disk->cylinders - 1; - maxhead = disk->heads - 1; - maxsect = disk->sectors; + maxcyl = disk.cylinders - 1; + maxhead = disk.heads - 1; + maxsect = disk.sectors; /* Get data */ #define EDIT(p, v, n, m) \ @@ -177,24 +173,23 @@ Xedit(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, EDIT("BIOS Ending sector", pp->esect, 1, maxsect); #undef EDIT /* Fix up off/size values */ - PRT_fix_BN(disk, pp, pn); + PRT_fix_BN(pp, pn); /* Fix up CHS values for LBA */ - PRT_fix_CHS(disk, pp); + PRT_fix_CHS(pp); } else { - pp->bs = getuint(disk, "Partition offset", pp->bs, - disk->size); - pp->ns = getuint(disk, "Partition size", pp->ns, - disk->size - pp->bs); + pp->bs = getuint("Partition offset", pp->bs, + disk.size); + pp->ns = getuint("Partition size", pp->ns, + disk.size - pp->bs); /* Fix up CHS values */ - PRT_fix_CHS(disk, pp); + PRT_fix_CHS(pp); } return (ret); } int -Xsetpid(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xsetpid(char *args, struct mbr *mbr, struct mbr *tt, int offset) { const char *errstr; int pn, num; @@ -222,8 +217,7 @@ Xsetpid(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } int -Xselect(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xselect(char *args, struct mbr *mbr, struct mbr *tt, int offset) { const char *errstr; static int firstoff = 0; @@ -257,17 +251,16 @@ Xselect(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } /* Recursion is beautiful! */ - USER_edit(disk, tt, off, firstoff); + USER_edit(tt, off, firstoff); return (CMD_CONT); } int -Xprint(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xprint(char *args, struct mbr *mbr, struct mbr *tt, int offset) { - DISK_printgeometry(disk, args); + DISK_printgeometry(args); printf("Offset: %d\t", offset); MBR_print(mbr, args); @@ -275,8 +268,7 @@ Xprint(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } int -Xwrite(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xwrite(char *args, struct mbr *mbr, struct mbr *tt, int offset) { struct dos_mbr dos_mbr; int fd, i, n; @@ -290,7 +282,7 @@ Xwrite(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, return (CMD_CONT); } - fd = DISK_open(disk->name, O_RDWR); + fd = DISK_open(disk.name, O_RDWR); MBR_make(mbr, &dos_mbr); printf("Writing MBR at offset %d.\n", offset); @@ -304,10 +296,10 @@ Xwrite(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, /* Make sure GPT doesn't get in the way. */ if (reinited) - MBR_zapgpt(fd, &dos_mbr, disk->size - 1); + MBR_zapgpt(fd, &dos_mbr, disk.size - 1); /* Refresh in memory copy to reflect what was just written. */ - MBR_parse(disk, &dos_mbr, mbr->offset, mbr->reloffset, mbr); + MBR_parse(&dos_mbr, mbr->offset, mbr->reloffset, mbr); close(fd); @@ -315,29 +307,25 @@ Xwrite(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } int -Xquit(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xquit(char *args, struct mbr *mbr, struct mbr *tt, int offset) { return (CMD_SAVE); } int -Xabort(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xabort(char *args, struct mbr *mbr, struct mbr *tt, int offset) { exit(0); } int -Xexit(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xexit(char *args, struct mbr *mbr, struct mbr *tt, int offset) { return (CMD_EXIT); } int -Xhelp(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xhelp(char *args, struct mbr *mbr, struct mbr *tt, int offset) { int i; @@ -347,8 +335,7 @@ Xhelp(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } int -Xupdate(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xupdate(char *args, struct mbr *mbr, struct mbr *tt, int offset) { /* Update code */ memcpy(mbr->code, tt->code, sizeof(mbr->code)); @@ -358,8 +345,7 @@ Xupdate(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } int -Xflag(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xflag(char *args, struct mbr *mbr, struct mbr *tt, int offset) { const char *errstr; int i, pn = -1, val = -1; @@ -400,8 +386,7 @@ Xflag(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, } int -Xmanual(char *args, struct disk *disk, struct mbr *mbr, struct mbr *tt, - int offset) +Xmanual(char *args, struct mbr *mbr, struct mbr *tt, int offset) { char *pager = "/usr/bin/less"; char *p; diff --git a/sbin/fdisk/cmd.h b/sbin/fdisk/cmd.h index 598032c9182..43f8bc34e75 100644 --- a/sbin/fdisk/cmd.h +++ b/sbin/fdisk/cmd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd.h,v 1.14 2015/03/14 15:21:53 krw Exp $ */ +/* $OpenBSD: cmd.h,v 1.15 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -27,26 +27,25 @@ struct cmd { char *cmd; - int (*fcn)(char *, struct disk *, struct mbr *, struct mbr *, - int); + int (*fcn)(char *, struct mbr *, struct mbr *, int); char *help; }; extern struct cmd cmd_table[]; -int Xreinit(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xdisk(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xmanual(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xedit(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xsetpid(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xselect(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xswap(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xprint(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xwrite(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xexit(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xquit(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xabort(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xhelp(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xflag(char *, struct disk *, struct mbr *, struct mbr *, int); -int Xupdate(char *, struct disk *, struct mbr *, struct mbr *, int); +int Xreinit(char *, struct mbr *, struct mbr *, int); +int Xdisk(char *, struct mbr *, struct mbr *, int); +int Xmanual(char *, struct mbr *, struct mbr *, int); +int Xedit(char *, struct mbr *, struct mbr *, int); +int Xsetpid(char *, struct mbr *, struct mbr *, int); +int Xselect(char *, struct mbr *, struct mbr *, int); +int Xswap(char *, struct mbr *, struct mbr *, int); +int Xprint(char *, struct mbr *, struct mbr *, int); +int Xwrite(char *, struct mbr *, struct mbr *, int); +int Xexit(char *, struct mbr *, struct mbr *, int); +int Xquit(char *, struct mbr *, struct mbr *, int); +int Xabort(char *, struct mbr *, struct mbr *, int); +int Xhelp(char *, struct mbr *, struct mbr *, int); +int Xflag(char *, struct mbr *, struct mbr *, int); +int Xupdate(char *, struct mbr *, struct mbr *, int); #endif /* _CMD_H */ diff --git a/sbin/fdisk/disk.c b/sbin/fdisk/disk.c index 8f9fe533ed9..cbea7fd3c47 100644 --- a/sbin/fdisk/disk.c +++ b/sbin/fdisk/disk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: disk.c,v 1.44 2015/03/14 18:32:29 krw Exp $ */ +/* $OpenBSD: disk.c,v 1.45 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -32,6 +32,7 @@ #include "disk.h" #include "misc.h" +struct disk disk; struct disklabel dl; int @@ -52,29 +53,29 @@ DISK_open(char *disk, int mode) } void -DISK_getlabelgeometry(struct disk *disk) +DISK_getlabelgeometry(void) { u_int64_t sz, spc; int fd; /* Get label geometry. */ - if ((fd = DISK_open(disk->name, O_RDONLY)) != -1) { + if ((fd = DISK_open(disk.name, O_RDONLY)) != -1) { if (ioctl(fd, DIOCGPDINFO, &dl) == -1) { warn("DIOCGPDINFO"); } else { - disk->cylinders = dl.d_ncylinders; - disk->heads = dl.d_ntracks; - disk->sectors = dl.d_nsectors; + disk.cylinders = dl.d_ncylinders; + disk.heads = dl.d_ntracks; + disk.sectors = dl.d_nsectors; /* MBR handles only first UINT32_MAX sectors. */ - spc = (u_int64_t)disk->heads * disk->sectors; + spc = (u_int64_t)disk.heads * disk.sectors; sz = DL_GETDSIZE(&dl); if (sz > UINT32_MAX) { - disk->cylinders = UINT32_MAX / spc; - disk->size = disk->cylinders * spc; + disk.cylinders = UINT32_MAX / spc; + disk.size = disk.cylinders * spc; warnx("disk too large (%llu sectors)." " size truncated.", sz); } else - disk->size = sz; + disk.size = sz; unit_types[SECTORS].conversion = dl.d_secsize; } close(fd); @@ -86,18 +87,18 @@ DISK_getlabelgeometry(struct disk *disk) * to indicate the units that should be used for display. */ int -DISK_printgeometry(struct disk *disk, char *units) +DISK_printgeometry(char *units) { const int secsize = unit_types[SECTORS].conversion; double size; int i; i = unit_lookup(units); - size = ((double)disk->size * secsize) / unit_types[i].conversion; - printf("Disk: %s\t", disk->name); - if (disk->size) { - printf("geometry: %d/%d/%d [%.0f ", disk->cylinders, - disk->heads, disk->sectors, size); + size = ((double)disk.size * secsize) / unit_types[i].conversion; + printf("Disk: %s\t", disk.name); + if (disk.size) { + printf("geometry: %d/%d/%d [%.0f ", disk.cylinders, + disk.heads, disk.sectors, size); if (i == SECTORS && secsize != sizeof(struct dos_mbr)) printf("%d-byte ", secsize); printf("%s]\n", unit_types[i].lname); diff --git a/sbin/fdisk/disk.h b/sbin/fdisk/disk.h index 1affb693e7c..64cb9a92024 100644 --- a/sbin/fdisk/disk.h +++ b/sbin/fdisk/disk.h @@ -1,4 +1,4 @@ -/* $OpenBSD: disk.h,v 1.17 2015/03/14 15:21:53 krw Exp $ */ +/* $OpenBSD: disk.h,v 1.18 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -28,9 +28,10 @@ struct disk { }; int DISK_open(char *, int); -void DISK_getlabelgeometry(struct disk *); -int DISK_printgeometry(struct disk *, char *); +void DISK_getlabelgeometry(void); +int DISK_printgeometry(char *); +extern struct disk disk; extern struct disklabel dl; #endif /* _DISK_H */ diff --git a/sbin/fdisk/fdisk.c b/sbin/fdisk/fdisk.c index 9afd33a6223..b8d49456dc7 100644 --- a/sbin/fdisk/fdisk.c +++ b/sbin/fdisk/fdisk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fdisk.c,v 1.68 2015/03/16 18:45:51 krw Exp $ */ +/* $OpenBSD: fdisk.c,v 1.69 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -70,7 +70,6 @@ main(int argc, char *argv[]) int ch, fd, error; int i_flag = 0, e_flag = 0, u_flag = 0; int c_arg = 0, h_arg = 0, s_arg = 0; - struct disk disk; u_int32_t l_arg = 0; char *query; #ifdef HAS_MBR @@ -146,7 +145,7 @@ main(int argc, char *argv[]) } /* Start with the disklabel geometry and get the sector size. */ - DISK_getlabelgeometry(&disk); + DISK_getlabelgeometry(); if (c_arg | h_arg | s_arg) { /* Use supplied geometry if it is completely specified. */ @@ -172,7 +171,7 @@ main(int argc, char *argv[]) /* Print out current MBRs on disk */ if ((i_flag + u_flag + e_flag) == 0) - USER_print_disk(&disk); + USER_print_disk(); /* Parse mbr template, to pass on later */ if (mbrfile != NULL && (fd = open(mbrfile, O_RDONLY)) == -1) { @@ -188,21 +187,21 @@ main(int argc, char *argv[]) err(1, "Unable to read MBR"); close(fd); } - MBR_parse(&disk, &dos_mbr, 0, 0, &mbr); + MBR_parse(&dos_mbr, 0, 0, &mbr); query = NULL; if (i_flag) { - MBR_init(&disk, &mbr); + MBR_init(&mbr); query = "Do you wish to write new MBR and partition table?"; } else if (u_flag) { - MBR_pcopy(&disk, &mbr); + MBR_pcopy(&mbr); query = "Do you wish to write new MBR?"; } if (query && ask_yn(query)) - Xwrite(NULL, &disk, &mbr, NULL, 0); + Xwrite(NULL, &mbr, NULL, 0); if (e_flag) - USER_edit(&disk, &mbr, 0, 0); + USER_edit(&mbr, 0, 0); return (0); } diff --git a/sbin/fdisk/mbr.c b/sbin/fdisk/mbr.c index eb4dedd3544..f3d7de3c04a 100644 --- a/sbin/fdisk/mbr.c +++ b/sbin/fdisk/mbr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mbr.c,v 1.46 2015/03/14 18:32:29 krw Exp $ */ +/* $OpenBSD: mbr.c,v 1.47 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -36,7 +36,7 @@ #include "mbr.h" void -MBR_init_GPT(struct disk *disk, struct mbr *mbr) +MBR_init_GPT(struct mbr *mbr) { /* Initialize a protective MBR for GPT. */ bzero(&mbr->part, sizeof(mbr->part)); @@ -44,21 +44,21 @@ MBR_init_GPT(struct disk *disk, struct mbr *mbr) /* Use whole disk, starting after MBR. */ mbr->part[0].id = DOSPTYP_EFI; mbr->part[0].bs = 1; - mbr->part[0].ns = disk->size - 1; + mbr->part[0].ns = disk.size - 1; /* Fix up start/length fields. */ - PRT_fix_CHS(disk, &mbr->part[0]); + PRT_fix_CHS(&mbr->part[0]); } void -MBR_init(struct disk *disk, struct mbr *mbr) +MBR_init(struct mbr *mbr) { extern int g_flag; u_int64_t adj; daddr_t i; if (g_flag) { - MBR_init_GPT(disk, mbr); + MBR_init_GPT(mbr); return; } @@ -72,23 +72,23 @@ MBR_init(struct disk *disk, struct mbr *mbr) /* Use whole disk. Reserve first track, or first cyl, if possible. */ mbr->part[3].id = DOSPTYP_OPENBSD; - if (disk->heads > 1) + if (disk.heads > 1) mbr->part[3].shead = 1; else mbr->part[3].shead = 0; - if (disk->heads < 2 && disk->cylinders > 1) + if (disk.heads < 2 && disk.cylinders > 1) mbr->part[3].scyl = 1; else mbr->part[3].scyl = 0; mbr->part[3].ssect = 1; /* Go right to the end */ - mbr->part[3].ecyl = disk->cylinders - 1; - mbr->part[3].ehead = disk->heads - 1; - mbr->part[3].esect = disk->sectors; + mbr->part[3].ecyl = disk.cylinders - 1; + mbr->part[3].ehead = disk.heads - 1; + mbr->part[3].esect = disk.sectors; /* Fix up start/length fields */ - PRT_fix_BN(disk, &mbr->part[3], 3); + PRT_fix_BN(&mbr->part[3], 3); #if defined(__powerpc__) || defined(__mips__) /* Now fix up for the MS-DOS boot partition on PowerPC. */ @@ -97,7 +97,7 @@ MBR_init(struct disk *disk, struct mbr *mbr) mbr->part[3].ns += mbr->part[3].bs; mbr->part[3].bs = mbr->part[0].bs + mbr->part[0].ns; mbr->part[3].ns -= mbr->part[3].bs; - PRT_fix_CHS(disk, &mbr->part[3]); + PRT_fix_CHS(&mbr->part[3]); if ((mbr->part[3].shead != 1) || (mbr->part[3].ssect != 1)) { /* align the partition on a cylinder boundary */ mbr->part[3].shead = 0; @@ -105,7 +105,7 @@ MBR_init(struct disk *disk, struct mbr *mbr) mbr->part[3].scyl += 1; } /* Fix up start/length fields */ - PRT_fix_BN(disk, &mbr->part[3], 3); + PRT_fix_BN(&mbr->part[3], 3); #endif /* Start OpenBSD MBR partition on a power of 2 block number. */ @@ -115,12 +115,11 @@ MBR_init(struct disk *disk, struct mbr *mbr) adj = DL_BLKTOSEC(&dl, i) - mbr->part[3].bs; mbr->part[3].bs += adj; mbr->part[3].ns -= adj; - PRT_fix_CHS(disk, &mbr->part[3]); + PRT_fix_CHS(&mbr->part[3]); } void -MBR_parse(struct disk *disk, struct dos_mbr *dos_mbr, off_t offset, - off_t reloff, struct mbr *mbr) +MBR_parse(struct dos_mbr *dos_mbr, off_t offset, off_t reloff, struct mbr *mbr) { struct dos_partition dos_parts[NDOSPART]; int i; @@ -133,7 +132,7 @@ MBR_parse(struct disk *disk, struct dos_mbr *dos_mbr, off_t offset, memcpy(dos_parts, dos_mbr->dmbr_parts, sizeof(dos_parts)); for (i = 0; i < NDOSPART; i++) - PRT_parse(disk, &dos_parts[i], offset, reloff, &mbr->part[i]); + PRT_parse(&dos_parts[i], offset, reloff, &mbr->part[i]); } void @@ -209,13 +208,13 @@ MBR_write(int fd, off_t where, struct dos_mbr *dos_mbr) * untouched. */ void -MBR_pcopy(struct disk *disk, struct mbr *mbr) +MBR_pcopy(struct mbr *mbr) { struct dos_partition dos_parts[NDOSPART]; struct dos_mbr dos_mbr; int i, fd, error; - fd = DISK_open(disk->name, O_RDONLY); + fd = DISK_open(disk.name, O_RDONLY); error = MBR_read(fd, 0, &dos_mbr); close(fd); @@ -225,7 +224,7 @@ MBR_pcopy(struct disk *disk, struct mbr *mbr) memcpy(dos_parts, dos_mbr.dmbr_parts, sizeof(dos_parts)); for (i = 0; i < NDOSPART; i++) - PRT_parse(disk, &dos_parts[i], 0, 0, &mbr->part[i]); + PRT_parse(&dos_parts[i], 0, 0, &mbr->part[i]); } /* diff --git a/sbin/fdisk/mbr.h b/sbin/fdisk/mbr.h index fe388c3cdb6..567ac7975d8 100644 --- a/sbin/fdisk/mbr.h +++ b/sbin/fdisk/mbr.h @@ -1,4 +1,4 @@ -/* $OpenBSD: mbr.h,v 1.19 2015/03/14 15:21:53 krw Exp $ */ +/* $OpenBSD: mbr.h,v 1.20 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -29,12 +29,12 @@ struct mbr { void MBR_print_disk(char *); void MBR_print(struct mbr *, char *); -void MBR_parse(struct disk *, struct dos_mbr *, off_t, off_t, struct mbr *); +void MBR_parse(struct dos_mbr *, off_t, off_t, struct mbr *); void MBR_make(struct mbr *, struct dos_mbr *); -void MBR_init(struct disk *, struct mbr *); +void MBR_init(struct mbr *); int MBR_read(int, off_t, struct dos_mbr *); int MBR_write(int, off_t, struct dos_mbr *); -void MBR_pcopy(struct disk *, struct mbr *); +void MBR_pcopy(struct mbr *); char *MBR_readsector(int, off_t); int MBR_writesector(int, char *, off_t); void MBR_zapgpt(int, struct dos_mbr *, uint64_t); diff --git a/sbin/fdisk/misc.c b/sbin/fdisk/misc.c index 7512bbdcc82..ad4c7a46aa4 100644 --- a/sbin/fdisk/misc.c +++ b/sbin/fdisk/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.44 2015/03/14 18:32:29 krw Exp $ */ +/* $OpenBSD: misc.c,v 1.45 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -192,7 +192,7 @@ ask_yn(const char *str) * adapted from sbin/disklabel/editor.c */ u_int32_t -getuint(struct disk *disk, char *prompt, u_int32_t oval, u_int32_t maxval) +getuint(char *prompt, u_int32_t oval, u_int32_t maxval) { char buf[BUFSIZ], *endptr, *p, operator = '\0'; size_t n; @@ -204,7 +204,7 @@ getuint(struct disk *disk, char *prompt, u_int32_t oval, u_int32_t maxval) if (oval > maxval) oval = maxval; - secpercyl = disk->sectors * disk->heads; + secpercyl = disk.sectors * disk.heads; do { printf("%s: [%u] ", prompt, oval); diff --git a/sbin/fdisk/misc.h b/sbin/fdisk/misc.h index 6da2e8ef1b2..302c66dfaba 100644 --- a/sbin/fdisk/misc.h +++ b/sbin/fdisk/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.23 2015/03/14 15:21:53 krw Exp $ */ +/* $OpenBSD: misc.h,v 1.24 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -33,6 +33,6 @@ int ask_cmd(char **, char **); int ask_num(const char *, int, int, int); int ask_pid(int); int ask_yn(const char *); -u_int32_t getuint(struct disk *, char *, u_int32_t, u_int32_t); +u_int32_t getuint(char *, u_int32_t, u_int32_t); #endif /* _MISC_H */ diff --git a/sbin/fdisk/part.c b/sbin/fdisk/part.c index dae423cf997..50173f680cd 100644 --- a/sbin/fdisk/part.c +++ b/sbin/fdisk/part.c @@ -1,4 +1,4 @@ -/* $OpenBSD: part.c,v 1.68 2015/03/14 18:32:29 krw Exp $ */ +/* $OpenBSD: part.c,v 1.69 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -166,8 +166,8 @@ PRT_ascii_id(int id) } void -PRT_parse(struct disk *disk, struct dos_partition *prt, off_t offset, - off_t reloff, struct prt *partn) +PRT_parse(struct dos_partition *prt, off_t offset, off_t reloff, + struct prt *partn) { off_t off; u_int32_t t; @@ -198,7 +198,7 @@ PRT_parse(struct disk *disk, struct dos_partition *prt, off_t offset, partn->ns = letoh32(t); #endif - PRT_fix_CHS(disk, partn); + PRT_fix_CHS(partn); } int @@ -296,7 +296,7 @@ PRT_print(int num, struct prt *partn, char *units) } void -PRT_fix_BN(struct disk *disk, struct prt *part, int pn) +PRT_fix_BN(struct prt *part, int pn) { u_int32_t spt, tpc, spc; u_int32_t start = 0; @@ -309,8 +309,8 @@ PRT_fix_BN(struct disk *disk, struct prt *part, int pn) } /* Disk geometry. */ - spt = disk->sectors; - tpc = disk->heads; + spt = disk.sectors; + tpc = disk.heads; spc = spt * tpc; start += part->scyl * spc; @@ -330,7 +330,7 @@ PRT_fix_BN(struct disk *disk, struct prt *part, int pn) } void -PRT_fix_CHS(struct disk *disk, struct prt *part) +PRT_fix_CHS(struct prt *part) { u_int32_t spt, tpc, spc; u_int32_t start, end, size; @@ -343,8 +343,8 @@ PRT_fix_CHS(struct disk *disk, struct prt *part) } /* Disk geometry. */ - spt = disk->sectors; - tpc = disk->heads; + spt = disk.sectors; + tpc = disk.heads; spc = spt * tpc; start = part->bs; diff --git a/sbin/fdisk/part.h b/sbin/fdisk/part.h index 5d5adecd672..1c16f7f02f8 100644 --- a/sbin/fdisk/part.h +++ b/sbin/fdisk/part.h @@ -1,4 +1,4 @@ -/* $OpenBSD: part.h,v 1.17 2015/03/14 15:21:53 krw Exp $ */ +/* $OpenBSD: part.h,v 1.18 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -30,15 +30,15 @@ struct prt { void PRT_printall(void); const char *PRT_ascii_id(int); -void PRT_parse(struct disk *, struct dos_partition *, off_t, off_t, +void PRT_parse(struct dos_partition *, off_t, off_t, struct prt *); void PRT_make(struct prt *, off_t, off_t, struct dos_partition *); void PRT_print(int, struct prt *, char *); /* This does CHS -> bs/ns */ -void PRT_fix_BN(struct disk *, struct prt *, int); +void PRT_fix_BN(struct prt *, int); /* This does bs/ns -> CHS */ -void PRT_fix_CHS(struct disk *, struct prt *); +void PRT_fix_CHS(struct prt *); #endif /* _PART_H */ diff --git a/sbin/fdisk/user.c b/sbin/fdisk/user.c index adb35898e78..082a11bfd33 100644 --- a/sbin/fdisk/user.c +++ b/sbin/fdisk/user.c @@ -1,4 +1,4 @@ -/* $OpenBSD: user.c,v 1.39 2015/03/16 18:45:51 krw Exp $ */ +/* $OpenBSD: user.c,v 1.40 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -55,7 +55,7 @@ struct cmd cmd_table[] = { int modified; void -USER_edit(struct disk *disk, struct mbr *tt, off_t offset, off_t reloff) +USER_edit(struct mbr *tt, off_t offset, off_t reloff) { static int editlevel; struct dos_mbr dos_mbr; @@ -67,14 +67,14 @@ USER_edit(struct disk *disk, struct mbr *tt, off_t offset, off_t reloff) editlevel += 1; /* Read MBR & partition */ - fd = DISK_open(disk->name, O_RDONLY); + fd = DISK_open(disk.name, O_RDONLY); error = MBR_read(fd, offset, &dos_mbr); close(fd); if (error == -1) goto done; /* Parse the sucker */ - MBR_parse(disk, &dos_mbr, offset, reloff, &mbr); + MBR_parse(&dos_mbr, offset, reloff, &mbr); printf("Enter 'help' for information\n"); @@ -102,7 +102,7 @@ again: } /* Call function */ - st = cmd_table[i].fcn(args, disk, &mbr, tt, offset); + st = cmd_table[i].fcn(args, &mbr, tt, offset); /* Update status */ if (st == CMD_EXIT) @@ -118,7 +118,7 @@ again: /* Write out MBR */ if (modified) { if (st == CMD_SAVE) { - if (Xwrite(NULL, disk, &mbr, NULL, offset) == CMD_CONT) + if (Xwrite(NULL, &mbr, NULL, offset) == CMD_CONT) goto again; close(fd); } else @@ -131,23 +131,23 @@ done: } void -USER_print_disk(struct disk *disk) +USER_print_disk(void) { off_t offset, firstoff; int fd, i, error; struct dos_mbr dos_mbr; struct mbr mbr; - fd = DISK_open(disk->name, O_RDONLY); + fd = DISK_open(disk.name, O_RDONLY); offset = firstoff = 0; - DISK_printgeometry(disk, NULL); + DISK_printgeometry(NULL); do { error = MBR_read(fd, offset, &dos_mbr); if (error == -1) break; - MBR_parse(disk, &dos_mbr, offset, firstoff, &mbr); + MBR_parse(&dos_mbr, offset, firstoff, &mbr); printf("Offset: %lld\t", offset); MBR_print(&mbr, NULL); diff --git a/sbin/fdisk/user.h b/sbin/fdisk/user.h index 85d12e3552c..e74885303f2 100644 --- a/sbin/fdisk/user.h +++ b/sbin/fdisk/user.h @@ -1,4 +1,4 @@ -/* $OpenBSD: user.h,v 1.14 2015/03/16 18:45:51 krw Exp $ */ +/* $OpenBSD: user.h,v 1.15 2015/03/16 23:51:50 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -20,7 +20,7 @@ #define _USER_H /* Prototypes */ -void USER_edit(struct disk *, struct mbr *, off_t, off_t); -void USER_print_disk(struct disk *); +void USER_edit(struct mbr *, off_t, off_t); +void USER_print_disk(void); #endif /* _USER_H */ |