CVS commit: src/usr.sbin/sysinst/arch/mac68k
Module Name:src Committed By: rin Date: Mon Aug 10 06:54:45 UTC 2020 Modified Files: src/usr.sbin/sysinst/arch/mac68k: Makefile Log Message: Silence -Wstringop-truncation for ``name'' in disp_selected_part(). This variable is used only for display, and truncation seems harmless. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/sysinst/arch/mac68k/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/usr.sbin/sysinst/arch/mac68k/Makefile diff -u src/usr.sbin/sysinst/arch/mac68k/Makefile:1.2 src/usr.sbin/sysinst/arch/mac68k/Makefile:1.3 --- src/usr.sbin/sysinst/arch/mac68k/Makefile:1.2 Wed Jun 12 06:20:21 2019 +++ src/usr.sbin/sysinst/arch/mac68k/Makefile Mon Aug 10 06:54:45 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.2 2019/06/12 06:20:21 martin Exp $ +# $NetBSD: Makefile,v 1.3 2020/08/10 06:54:45 rin Exp $ # # Makefile for mac68k # @@ -13,4 +13,7 @@ NO_GPT= yes NO_MBR= yes .endif +# XXX +COPTS.md.c= -Wno-stringop-truncation + .include "../../Makefile.inc"
CVS commit: src/usr.sbin/sysinst/arch/mac68k
Module Name:src Committed By: martin Date: Mon Feb 10 16:08:59 UTC 2020 Modified Files: src/usr.sbin/sysinst/arch/mac68k: md.c Log Message: Finish conversion to generic partitioning backend To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/usr.sbin/sysinst/arch/mac68k/md.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/usr.sbin/sysinst/arch/mac68k/md.c diff -u src/usr.sbin/sysinst/arch/mac68k/md.c:1.8 src/usr.sbin/sysinst/arch/mac68k/md.c:1.9 --- src/usr.sbin/sysinst/arch/mac68k/md.c:1.8 Sat Jul 13 17:13:38 2019 +++ src/usr.sbin/sysinst/arch/mac68k/md.c Mon Feb 10 16:08:58 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: md.c,v 1.8 2019/07/13 17:13:38 martin Exp $ */ +/* $NetBSD: md.c,v 1.9 2020/02/10 16:08:58 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -247,12 +247,13 @@ md_get_info(struct install_partition_des bool md_make_bsd_partitions(struct install_partition_desc *install) { - int rv; -#if 0 // XXX - FILE *f; - int i, j, pl; + int i, j, rv; EBZB *bzb; -#endif + struct disk_part_info info; + uint fs_type; + const char *mountpoint; + part_id pid; + size_t ndx; /* * Scan for any problems and report them before continuing. @@ -272,16 +273,10 @@ md_make_bsd_partitions(struct install_pa break; } -#if 0 // XXX - /* Build standard partitions */ - memset(>bsdlabel, 0, sizeof pm->bsdlabel); + /* Start with empty fake disklabel partitions */ + pm->parts->pscheme->delete_all_partitions(pm->parts); /* - * The mac68k port has a predefined partition for "c" which - * is the size of the disk, everything else is unused. - */ - pm->bsdlabel[RAW_PART].pi_size = pm->dlsize; - /* * Now, scan through the Disk Partition Map and transfer the * information into the incore disklabel. */ @@ -289,80 +284,63 @@ md_make_bsd_partitions(struct install_pa j = map.mblk[i]; bzb = (EBZB *)[j].pmBootArgs[0]; if (bzb->flags.part) { - pl = bzb->flags.part - 'a'; + mountpoint = NULL; + fs_type = FS_UNUSED; switch (whichType([j])) { case HFS_PART: - pm->bsdlabel[pl].pi_fstype = FS_HFS; - strcpy (pm->bsdlabel[pl].pi_mount, (char *)bzb->mount_point); + fs_type = FS_HFS; + mountpoint = (const char*)bzb->mount_point; break; case ROOT_PART: case UFS_PART: - pm->bsdlabel[pl].pi_fstype = FS_BSDFFS; - strcpy (pm->bsdlabel[pl].pi_mount, (char *)bzb->mount_point); - pm->bsdlabel[pl].pi_flags |= PIF_NEWFS | PIF_MOUNT; + fs_type = FS_BSDFFS; + mountpoint = (const char*)bzb->mount_point; break; case SWAP_PART: - pm->bsdlabel[pl].pi_fstype = FS_SWAP; + fs_type = FS_SWAP; break; case SCRATCH_PART: - pm->bsdlabel[pl].pi_fstype = FS_OTHER; - strcpy (pm->bsdlabel[pl].pi_mount, (char *)bzb->mount_point); - default: + fs_type = FS_OTHER; + mountpoint = (const char*)bzb->mount_point; break; + default: + continue; } - if (pm->bsdlabel[pl].pi_fstype != FS_UNUSED) { - pm->bsdlabel[pl].pi_size = map.blk[j].pmPartBlkCnt; - pm->bsdlabel[pl].pi_offset = map.blk[j].pmPyPartStart; - if (pm->bsdlabel[pl].pi_fstype != FS_SWAP) { - pm->bsdlabel[pl].pi_frag = 8; - pm->bsdlabel[pl].pi_fsize = 1024; - } + if (fs_type != FS_UNUSED) { + memset(, 0, sizeof info); + info.start = map.blk[j].pmPyPartStart; + info.size = map.blk[j].pmPartBlkCnt; + info.fs_type = fs_type; + info.last_mounted = mountpoint; + info.nat_type = pm->parts->pscheme->get_fs_part_type( + PT_root, fs_type, 0); + pid = pm->parts->pscheme->add_outer_partition(pm->parts, + , NULL); + if (pid == NO_PART) +return false; } } } /* Disk name - don't bother asking, just use the physical name*/ - strcpy (pm->bsddiskname, pm->diskdev); + pm->parts->pscheme->set_disk_pack_name(pm->parts, pm->diskdev); -#ifdef DEBUG - f = fopen ("/tmp/disktab", "w"); -#else - f = fopen ("/etc/disktab", "w"); -#endif - if (f == NULL) { - endwin(); - (void) fprintf (stderr, "Could not open /etc/disktab"); - exit (1); + /* Write the converted partitions */ + if (!pm->parts->pscheme->write_to_disk(pm->parts)) + return false; + + /* now convert to install info */ + if (!install_desc_from_parts(install, pm->parts)) + return false; + + /* set newfs flag for all FFS partitions */ + for (ndx = 0; ndx < install->num; ndx++) { + if (install->infos[ndx].fs_type == FS_BSDFFS && + install->infos[ndx].size > 0 && + (install->infos[ndx].instflags & PUIINST_MOUNT)) + install->infos[ndx].instflags |= PUIINST_NEWFS; } - (void)fprintf (f, "%s|NetBSD installation generated:\\\n", pm->bsddiskname); - (void)fprintf (f, "\t:dt=%s:ty=winchester:\\\n", pm->disktype); - (void)fprintf (f, "\t:nc#%d:nt#%d:ns#%d:\\\n", pm->dlcyl, pm->dlhead, pm->dlsec); - (void)fprintf (f, "\t:sc#%d:su#%" PRIu32 ":\\\n", pm->dlhead*pm->dlsec,
CVS commit: src/usr.sbin/sysinst/arch/mac68k
Module Name:src Committed By: dholland Date: Tue May 31 02:49:50 UTC 2016 Modified Files: src/usr.sbin/sysinst/arch/mac68k: md.c Log Message: Disable the code that tries to prepare a new partition table (but doesn't do anything with it...) because it's zooming off the end of the array it's trying to use. It looks to me as if NEW_MAP_SIZE has been accidentally used as both the number of blocks occupied by the new partition table and also the number of entries in it. Or something. This needs platform knowledge to sort out. XXX. Workaround for PR 50757. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/usr.sbin/sysinst/arch/mac68k/md.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/usr.sbin/sysinst/arch/mac68k/md.c diff -u src/usr.sbin/sysinst/arch/mac68k/md.c:1.4 src/usr.sbin/sysinst/arch/mac68k/md.c:1.5 --- src/usr.sbin/sysinst/arch/mac68k/md.c:1.4 Mon May 11 12:57:55 2015 +++ src/usr.sbin/sysinst/arch/mac68k/md.c Tue May 31 02:49:50 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: md.c,v 1.4 2015/05/11 12:57:55 martin Exp $ */ +/* $NetBSD: md.c,v 1.5 2016/05/31 02:49:50 dholland Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -173,6 +173,21 @@ md_get_info(void) * need to completely initialize the disk. */ pm->dlsize = disklabel.d_secperunit; +/* + * XXX this code is broken: it accesses off the end of new_map[], + * because NEW_MAP_SIZE is substantially larger than the number of + * entries in new_map[]. Based on the description of struct + * apple_part_map_entry in sys/bootblock.h, and the usage of it in + * new_map[], NEW_MAP_SIZE is expected to be a block count, not an + * entry count. As far I can tell the logic here is just wrong; it + * needs someone with platform knowledge to sort it out. + * + * Note that nothing uses the data this writes into new_map[] so + * disabling it should have no adverse consequences. + * + * - dholland 20160530 + */ +#if 0 /* XXX broken */ for (i=0;i0) new_map[i].pmPyPartStart = new_map[i-1].pmPyPartStart + @@ -185,6 +200,7 @@ md_get_info(void) } pm->dlsize -= new_map[i].pmPartBlkCnt; } +#endif /* 0 - broken */ pm->dlsize = disklabel.d_secperunit; #if 0 msg_display(MSG_dldebug, blk_size, pm->dlcyl, pm->dlhead, pm->dlsec, pm->dlsize);
CVS commit: src/usr.sbin/sysinst/arch/mac68k
Module Name:src Committed By: martin Date: Mon May 11 12:57:55 UTC 2015 Modified Files: src/usr.sbin/sysinst/arch/mac68k: md.c menus.md.de menus.md.en menus.md.es menus.md.pl Log Message: Remove a few more (ab-)usages of yesno. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/sysinst/arch/mac68k/md.c cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/sysinst/arch/mac68k/menus.md.de \ src/usr.sbin/sysinst/arch/mac68k/menus.md.en \ src/usr.sbin/sysinst/arch/mac68k/menus.md.es \ src/usr.sbin/sysinst/arch/mac68k/menus.md.pl Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/usr.sbin/sysinst/arch/mac68k/md.c diff -u src/usr.sbin/sysinst/arch/mac68k/md.c:1.3 src/usr.sbin/sysinst/arch/mac68k/md.c:1.4 --- src/usr.sbin/sysinst/arch/mac68k/md.c:1.3 Sun May 10 10:14:03 2015 +++ src/usr.sbin/sysinst/arch/mac68k/md.c Mon May 11 12:57:55 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: md.c,v 1.3 2015/05/10 10:14:03 martin Exp $ */ +/* $NetBSD: md.c,v 1.4 2015/05/11 12:57:55 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -239,7 +239,7 @@ int md_make_bsd_partitions(void) { FILE *f; - int i, j, pl; + int i, j, pl, rv; EBZB *bzb; /* @@ -250,10 +250,10 @@ md_make_bsd_partitions(void) */ while (1) { if (check_for_errors()) { - process_menu (MENU_sanity, NULL); - if (yesno 0) + process_menu (MENU_sanity, rv); + if (rv 0) return 0; - else if (yesno) + else if (rv) break; edit_diskmap(); } else @@ -1166,7 +1166,7 @@ md_debug_dump(title) { char buf[96], type; char fstyp[16], use[16], name[64]; - int i, j; + int i, j, rv; EBZB *bzb; msg_clear(); @@ -1187,9 +1187,9 @@ md_debug_dump(title) map.blk[i].pmPyPartStart, fstyp, use, name); msg_table_add(MSG_dump_line, buf); } - process_menu(MENU_okabort, NULL); + process_menu(MENU_okabort, rv); msg_clear(); - return(yesno); + return rv; } #endif /* MD_DEBUG_SORT_MERGE */ Index: src/usr.sbin/sysinst/arch/mac68k/menus.md.de diff -u src/usr.sbin/sysinst/arch/mac68k/menus.md.de:1.2 src/usr.sbin/sysinst/arch/mac68k/menus.md.de:1.3 --- src/usr.sbin/sysinst/arch/mac68k/menus.md.de:1.2 Sun Aug 3 16:09:40 2014 +++ src/usr.sbin/sysinst/arch/mac68k/menus.md.de Mon May 11 12:57:55 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: menus.md.de,v 1.2 2014/08/03 16:09:40 martin Exp $ */ +/* $NetBSD: menus.md.de,v 1.3 2015/05/11 12:57:55 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -152,8 +152,8 @@ menu ok2, title Abbrechen?, y=17; option OK, exit, action { }; menu okabort, title Was möchten Sie?, y=17; - option Fortfahren, exit, action { yesno = 1; }; - option Installation abbrechen, exit, action { yesno = 0; }; + option Fortfahren, exit, action { *((int*)arg) = 1; }; + option Installation abbrechen, exit, action { *((int*)arg) = 0; }; menu chooseid, title Partitionstyp?; option NetBSD Root, exit, action { @@ -321,9 +321,9 @@ menu mount_point, title Mount Point?; menu sanity, title Bitte wählen Sie; display action {msg_display (MSG_sanity_check); report_errors(); }; - option Installation abbrechen, exit, action {yesno = -1; }; - option Warnungen ignorieren und fortfahren, exit, action {yesno = 1;}; - option Festplatten Partitions Übersicht erneut ändern, exit, action {yesno = 0; }; + option Installation abbrechen, exit, action { *((int*)arg) = -1; }; + option Warnungen ignorieren und fortfahren, exit, action { *((int*)arg) = 1;}; + option Festplatten Partitions Übersicht erneut ändern, exit, action { *((int*)arg) = 0; }; /* * This menu shouldn't be used in the mac68k port, but it needs to be Index: src/usr.sbin/sysinst/arch/mac68k/menus.md.en diff -u src/usr.sbin/sysinst/arch/mac68k/menus.md.en:1.2 src/usr.sbin/sysinst/arch/mac68k/menus.md.en:1.3 --- src/usr.sbin/sysinst/arch/mac68k/menus.md.en:1.2 Sun Aug 3 16:09:40 2014 +++ src/usr.sbin/sysinst/arch/mac68k/menus.md.en Mon May 11 12:57:55 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: menus.md.en,v 1.2 2014/08/03 16:09:40 martin Exp $ */ +/* $NetBSD: menus.md.en,v 1.3 2015/05/11 12:57:55 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -152,8 +152,8 @@ menu ok2, title Abort?, y=17; option OK, exit, action { }; menu okabort, title What do you want to do?, y=17; - option Continue, exit, action { yesno = 1; }; - option Abort install, exit, action { yesno = 0; }; + option Continue, exit, action { *((int*)arg) = 1; }; + option Abort install, exit, action { *((int*)arg) = 0; }; menu chooseid, title Partition Type?; option NetBSD Root, exit, action { @@ -321,9 +321,9 @@ menu mount_point, title Mount Point?; menu sanity, title Choose an option; display action {msg_display (MSG_sanity_check); report_errors(); }; - option Abort installation, exit, action {yesno = -1; }; -
CVS commit: src/usr.sbin/sysinst/arch/mac68k
Module Name:src Committed By: martin Date: Mon May 11 21:07:56 UTC 2015 Modified Files: src/usr.sbin/sysinst/arch/mac68k: menus.md.de menus.md.en menus.md.es menus.md.pl Log Message: Missed a few more yesno in previous To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/sysinst/arch/mac68k/menus.md.de \ src/usr.sbin/sysinst/arch/mac68k/menus.md.en \ src/usr.sbin/sysinst/arch/mac68k/menus.md.es \ src/usr.sbin/sysinst/arch/mac68k/menus.md.pl Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/usr.sbin/sysinst/arch/mac68k/menus.md.de diff -u src/usr.sbin/sysinst/arch/mac68k/menus.md.de:1.3 src/usr.sbin/sysinst/arch/mac68k/menus.md.de:1.4 --- src/usr.sbin/sysinst/arch/mac68k/menus.md.de:1.3 Mon May 11 12:57:55 2015 +++ src/usr.sbin/sysinst/arch/mac68k/menus.md.de Mon May 11 21:07:56 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: menus.md.de,v 1.3 2015/05/11 12:57:55 martin Exp $ */ +/* $NetBSD: menus.md.de,v 1.4 2015/05/11 21:07:56 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -44,12 +44,12 @@ menu nodiskmap, title Bitte wählen Sie endwin(); exit(1); }; option Initialisiere Festplatten Partition Übersicht, exit, action { - int i; + int i, rv; msg_clear(); msg_display (MSG_okwritediskmap); - process_menu (MENU_okabort, NULL); - if (!yesno) { + process_menu (MENU_okabort, rv); + if (!rv) { endwin(); return 0; } @@ -77,7 +77,7 @@ menu editparttable, title Wählen Sie e option Ausgewählte Partition bearbeiten, sub menu chooseid; option Mount Point festlegen, sub menu mount_point; option Gewählte Partition unterteilen, action { - int i, j, k, size, free_size; + int i, j, k, size, free_size, rv; char buf[40]; EBZB *bzb; @@ -112,8 +112,8 @@ menu editparttable, title Wählen Sie e sortmerge(); } else { msg_display (MSG_diskfull); - process_menu (MENU_okabort, NULL); - if (!yesno) { + process_menu (MENU_okabort, rv); + if (!rv) { free (map.blk); map.size = NEW_MAP_SIZE; map.in_use_cnt = new_map[0].pmMapBlkCnt; Index: src/usr.sbin/sysinst/arch/mac68k/menus.md.en diff -u src/usr.sbin/sysinst/arch/mac68k/menus.md.en:1.3 src/usr.sbin/sysinst/arch/mac68k/menus.md.en:1.4 --- src/usr.sbin/sysinst/arch/mac68k/menus.md.en:1.3 Mon May 11 12:57:55 2015 +++ src/usr.sbin/sysinst/arch/mac68k/menus.md.en Mon May 11 21:07:56 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: menus.md.en,v 1.3 2015/05/11 12:57:55 martin Exp $ */ +/* $NetBSD: menus.md.en,v 1.4 2015/05/11 21:07:56 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -44,12 +44,12 @@ menu nodiskmap, title Choose an option endwin(); exit(1); }; option Initialize Disk partition Map, exit, action { - int i; + int i, rv; msg_clear(); msg_display (MSG_okwritediskmap); - process_menu (MENU_okabort, NULL); - if (!yesno) { + process_menu (MENU_okabort, rv); + if (!rv) { endwin(); return 0; } @@ -77,7 +77,7 @@ menu editparttable, title Choose your option Change selected partition, sub menu chooseid; option Set mount point for partition, sub menu mount_point; option Split selected partition, action { - int i, j, k, size, free_size; + int i, j, k, size, free_size, rv; char buf[40]; EBZB *bzb; @@ -112,8 +112,8 @@ menu editparttable, title Choose your sortmerge(); } else { msg_display (MSG_diskfull); - process_menu (MENU_okabort, NULL); - if (!yesno) { + process_menu (MENU_okabort, rv); + if (!rv) { free (map.blk); map.size = NEW_MAP_SIZE; map.in_use_cnt = new_map[0].pmMapBlkCnt; Index: src/usr.sbin/sysinst/arch/mac68k/menus.md.es diff -u src/usr.sbin/sysinst/arch/mac68k/menus.md.es:1.3 src/usr.sbin/sysinst/arch/mac68k/menus.md.es:1.4 --- src/usr.sbin/sysinst/arch/mac68k/menus.md.es:1.3 Mon May 11 12:57:55 2015 +++ src/usr.sbin/sysinst/arch/mac68k/menus.md.es Mon May 11 21:07:56 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: menus.md.es,v 1.3 2015/05/11 12:57:55 martin Exp $ */ +/* $NetBSD: menus.md.es,v 1.4 2015/05/11 21:07:56 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -44,12 +44,12 @@ menu nodiskmap, title Escoja una opcion endwin(); exit(1); }; option Inicializar Mapa de particiones de Disco, exit, action { - int i; + int i, rv; msg_clear(); msg_display (MSG_okwritediskmap); - process_menu (MENU_okabort, NULL); - if (!yesno) { + process_menu (MENU_okabort, rv); + if (!rv) { endwin(); return 0; } @@ -77,7 +77,7 @@ menu editparttable, title Escoja su pa option Cambiar particion seleccionada, sub menu chooseid; option Ajustar punto de montaje para particion, sub menu mount_point; option Partir particion seleccionada, action { - int i, j, k, size, free_size; + int i, j, k, size, free_size, rv; char buf[40]; EBZB *bzb;