static int xbsd_create_disklabel(void) { char c; #if defined(__alpha__) printf("%s contains no disklabel\n", disk_device); #else printf("%s contains no disklabel\n", partname(disk_device, xbsd_part_index + 1, 0)); #endif while (1) { c = read_nonempty("Do you want to create a disklabel? (y/n) "); if ((c|0x20) == 'y') { if (xbsd_initlabel( #if defined(__alpha__) || defined(__powerpc__) || defined(__hppa__) || \ defined(__s390__) || defined(__s390x__) NULL #else xbsd_part #endif ) == 1) { xbsd_print_disklabel(1); return 1; } return 0; } if ((c|0x20) == 'n') return 0; } }
static int xbsd_create_disklabel (void) { char c; #if defined (__alpha__) fprintf (stderr, _("%s contains no disklabel.\n"), disk_device); #else fprintf (stderr, _("%s contains no disklabel.\n"), partname(disk_device, xbsd_part_index+1, 0)); #endif while (1) { c = read_char (_("Do you want to create a disklabel? (y/n) ")); if (tolower(c) == 'y') { if (xbsd_initlabel ( #if defined (__alpha__) || defined (__powerpc__) NULL, &xbsd_dlabel, 0 #else xbsd_part, &xbsd_dlabel, xbsd_part_index #endif ) == 1) { xbsd_print_disklabel (1); return 1; } else return 0; } else if (c == 'n') return 0; } }
int btrydev (char * dev) { if (xbsd_readlabel (NULL, &xbsd_dlabel) == 0) return -1; printf(_("\nBSD label for device: %s\n"), dev); xbsd_print_disklabel (0); return 0; }
static int bsd_trydev(const char * dev) { if (xbsd_readlabel(NULL) == 0) return -1; printf("\nBSD label for device: %s\n", dev); xbsd_print_disklabel(0); return 0; }
static void bsd_select(void) { #if !defined(__alpha__) int t, ss; struct partition *p; for (t = 0; t < 4; t++) { p = get_part_table(t); if (p && is_bsd_partition_type(p->sys_ind)) { xbsd_part = p; xbsd_part_index = t; ss = get_start_sect(xbsd_part); if (ss == 0) { printf("Partition %s has invalid starting sector 0\n", partname(disk_device, t+1, 0)); return; } printf("Reading disklabel of %s at sector %u\n", partname(disk_device, t+1, 0), ss + BSD_LABELSECTOR); if (xbsd_readlabel(xbsd_part) == 0) { if (xbsd_create_disklabel() == 0) return; break; } } } if (t == 4) { printf("There is no *BSD partition on %s\n", disk_device); return; } #elif defined(__alpha__) if (xbsd_readlabel(NULL) == 0) if (xbsd_create_disklabel() == 0) exit(EXIT_SUCCESS); #endif while (1) { bb_putchar('\n'); switch (tolower(read_nonempty("BSD disklabel command (m for help): "))) { case 'd': xbsd_delete_part(); break; case 'e': xbsd_edit_disklabel(); break; case 'i': xbsd_write_bootstrap(); break; case 'l': xbsd_list_types(); break; case 'n': xbsd_new_part(); break; case 'p': xbsd_print_disklabel(0); break; case 'q': if (ENABLE_FEATURE_CLEAN_UP) close_dev_fd(); exit(EXIT_SUCCESS); case 'r': return; case 's': xbsd_print_disklabel(1); break; case 't': xbsd_change_fstype(); break; case 'u': change_units(); break; case 'w': xbsd_write_disklabel(); break; #if !defined(__alpha__) case 'x': xbsd_link_part(); break; #endif default: bsd_menu(); break; } } }