/* ARGSUSED */ int Xdisk(cmd_t *cmd, disk_t *disk, mbr_t *mbr, mbr_t *tt, int offset) { int maxcyl = 1024; int maxhead = 256; int maxsec = 63; /* Print out disk info */ DISK_printmetrics(disk, cmd->args); #if defined (__powerpc__) || defined (__mips__) maxcyl = 9999999; maxhead = 9999999; maxsec = 9999999; #endif /* Ask for new info */ if (ask_yn("Change disk geometry?")) { disk->real->cylinders = ask_num("BIOS Cylinders", disk->real->cylinders, 1, maxcyl); disk->real->heads = ask_num("BIOS Heads", disk->real->heads, 1, maxhead); disk->real->sectors = ask_num("BIOS Sectors", disk->real->sectors, 1, maxsec); disk->real->size = disk->real->cylinders * disk->real->heads * disk->real->sectors; } return (CMD_CONT); }
int USER_print_disk(disk_t *disk) { off_t offset, firstoff; int fd, i, error; char gpt_buf[DEV_BSIZE]; gpt_t gpt; fd = DISK_open(disk->name, O_RDONLY); offset = firstoff = 1; DISK_printmetrics(disk, NULL); error = GPT_load(fd, disk, &gpt, 0); if (error == -1) { printf("Master header not clean, trying backup header\n"); error = GPT_load(fd, disk, &gpt, 1); } if (error == -1) { printf("Backup header not clean, exiting.\n"); return (close(fd)); } printf("Offset: %lld\t", offset); GPT_print(&gpt, NULL); GPT_free(&gpt); return (close(fd)); }
/* ARGSUSED */ int Xprint(cmd_t *cmd, disk_t *disk, mbr_t *mbr, mbr_t *tt, int offset) { DISK_printmetrics(disk, cmd->args); printf("Offset: %d\t", offset); MBR_print(mbr, cmd->args); return (CMD_CONT); }