CVS commit: src/usr.sbin/sysinst/arch/mac68k

2020-08-09 Thread Rin Okuyama
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

2020-02-10 Thread Martin Husemann
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(&pm->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 *)&map.blk[j].pmBootArgs[0];
 	if (bzb->flags.part) {
-		pl = bzb->flags.part - 'a';
+		mountpoint = NULL;
+		fs_type = FS_UNUSED;
 		switch (whichType(&map.blk[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(&info, 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,
+			&info, 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-

CVS commit: src/usr.sbin/sysinst/arch/mac68k

2016-05-30 Thread David A. Holland
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;i 0)
 		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

2015-05-11 Thread Martin Husemann
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_siz

CVS commit: src/usr.sbin/sysinst/arch/mac68k

2015-05-11 Thread Martin Husemann
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(); };
-