Module Name:    src
Committed By:   rin
Date:           Thu Sep 20 12:27:42 UTC 2018

Modified Files:
        src/usr.sbin/sysinst: Makefile.inc defs.h install.c main.c menus.mi
Added Files:
        src/usr.sbin/sysinst: menus.pm

Log Message:
Add NOPARTMAN compile-time option, which drops extended partitioning
support provided by partman.c. It reduces, e.g., about 30KB for
crunched binary in atari install floppy.

OK christos


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/usr.sbin/sysinst/Makefile.inc
cvs rdiff -u -r1.18 -r1.19 src/usr.sbin/sysinst/defs.h
cvs rdiff -u -r1.4 -r1.5 src/usr.sbin/sysinst/install.c
cvs rdiff -u -r1.9 -r1.10 src/usr.sbin/sysinst/main.c
cvs rdiff -u -r1.14 -r1.15 src/usr.sbin/sysinst/menus.mi
cvs rdiff -u -r0 -r1.1 src/usr.sbin/sysinst/menus.pm

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/Makefile.inc
diff -u src/usr.sbin/sysinst/Makefile.inc:1.12 src/usr.sbin/sysinst/Makefile.inc:1.13
--- src/usr.sbin/sysinst/Makefile.inc:1.12	Sun Sep 16 09:15:12 2018
+++ src/usr.sbin/sysinst/Makefile.inc	Thu Sep 20 12:27:42 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.12 2018/09/16 09:15:12 martin Exp $
+#	$NetBSD: Makefile.inc,v 1.13 2018/09/20 12:27:42 rin Exp $
 #
 # Makefile for sysinst
 
@@ -13,18 +13,22 @@ WARNS=		4
 
 SRCS+=	menu_defs.c msg_defs.c main.c install.c upgrade.c \
 	txtwalk.c run.c factor.c net.c disks.c disks_lfs.c util.c geom.c \
-	label.c target.c md.c sizemultname.c configmenu.c checkrc.c partman.c
+	label.c target.c md.c sizemultname.c configmenu.c checkrc.c
 
 SRCS+=	${MD_OPTIONS:MAOUT2ELF:S/AOUT2ELF/aout2elf.c/}
 SRCS+=	${MENUS_MD:Mmenus.mbr:S/menus.mbr/mbr.c/}
 SRCS+=	${CPPFLAGS:M-DWSKBD:S/-DWSKBD/wskbd.c/}
 SRCS+=	${NODISKLABEL:D:Ubsddisklabel.c savenewlabel.c}
+SRCS+=	${NOPARTMAN:D:Upartman.c}
 
 DPSRCS+= defs.h
 
 SYSINSTLANG?=	en
 LANGUAGES?=	de en es fr pl
 
+MENUS_MI=	menus.mi
+MENUS_MI+=	${NOPARTMAN:D:Umenus.pm}
+
 MSG_MD?=	msg.md.${SYSINSTLANG}
 MENUS_MD?=	menus.md.${SYSINSTLANG}
 
@@ -48,7 +52,8 @@ CATALOGDIR=	/usr/share/sysinst/catalog
 CPPFLAGS+=	-I. -I${.CURDIR}/../.. -I${.CURDIR} \
 		-DREL=\"${DISTRIBVER}\" -DMACH=\"${MACHINE}\" \
 		-DMACH_${MACHINE} -DARCH_${MACHINE_ARCH} \
-		${NODISKLABEL:D-DNO_DISKLABEL}
+		${NODISKLABEL:D-DNO_DISKLABEL} \
+		${NOPARTMAN:D-DNO_PARTMAN}
 
 .if defined(NETBSD_OFFICIAL_RELEASE) && ${NETBSD_OFFICIAL_RELEASE} == "yes"
 CPPFLAGS+= -DSYSINST_FTP_HOST=\"ftp.NetBSD.org\" -DNETBSD_OFFICIAL_RELEASE
@@ -168,7 +173,7 @@ msg.def: msg.mi.${SYSINSTLANG} ${MSG_MD}
 	${TOOL_SED} "s/@@MACHINE@@/${MACHINE}/" | \
 	${TOOL_AWK} -f ${UNIF_AWK} -v defines="${MD_OPTIONS}" > ${.TARGET}
 
-menus.def: menus.mi ${MENUS_MD} msgtouch
+menus.def: ${MENUS_MI} ${MENUS_MD} msgtouch
 	${_MKTARGET_CREATE}
 	${TOOL_SED} "s/@@VERSION@@/${DISTRIBVER}/" ${.ALLSRC} | \
 	${TOOL_SED} "s/@@MACHINE@@/${MACHINE}/" | \

Index: src/usr.sbin/sysinst/defs.h
diff -u src/usr.sbin/sysinst/defs.h:1.18 src/usr.sbin/sysinst/defs.h:1.19
--- src/usr.sbin/sysinst/defs.h:1.18	Sun Sep 16 09:15:12 2018
+++ src/usr.sbin/sysinst/defs.h	Thu Sep 20 12:27:42 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: defs.h,v 1.18 2018/09/16 09:15:12 martin Exp $	*/
+/*	$NetBSD: defs.h,v 1.19 2018/09/20 12:27:42 rin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -613,9 +613,16 @@ void	unwind_mounts(void);
 int	target_mounted(void);
 
 /* from partman.c */
+#ifndef NO_PARTMAN
 int partman(void);
-int pm_partusage(pm_devs_t *, int, int);
 int pm_getrefdev(pm_devs_t *);
+void update_wedges(const char *);
+#else
+static inline int partman(void) { return -1; }
+static inline int pm_getrefdev(pm_devs_t *x __unused) { return -1; }
+#define update_wedges(x) __nothing
+#endif
+int pm_partusage(pm_devs_t *, int, int);
 void pm_setfstype(pm_devs_t *, int, int);
 int pm_editpart(int);
 void pm_rename(pm_devs_t *);
@@ -626,13 +633,16 @@ int pm_cgd_edit(void *, part_entry_t *);
 int pm_gpt_convert(pm_devs_t *);
 void pm_wedges_fill(pm_devs_t *);
 void pm_make_bsd_partitions(pm_devs_t *);
-void update_wedges(const char *);
 
 /* flags whether to offer the respective options (depending on helper
    programs available on install media */
 int have_raid, have_vnd, have_cgd, have_lvm, have_gpt, have_dk;
 /* initialize above variables */
+#ifndef NO_PARTMAN
 void check_available_binaries(void);
+#else
+#define check_available_binaries() __nothing
+#endif
 
 /* from bsddisklabel.c */
 int	make_bsd_partitions(void);

Index: src/usr.sbin/sysinst/install.c
diff -u src/usr.sbin/sysinst/install.c:1.4 src/usr.sbin/sysinst/install.c:1.5
--- src/usr.sbin/sysinst/install.c:1.4	Sun May 10 10:14:02 2015
+++ src/usr.sbin/sysinst/install.c	Thu Sep 20 12:27:42 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: install.c,v 1.4 2015/05/10 10:14:02 martin Exp $	*/
+/*	$NetBSD: install.c,v 1.5 2018/09/20 12:27:42 rin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -47,7 +47,11 @@ do_install(void)
 {
 	int find_disks_ret;
 	int retcode = 0;
+#ifndef NO_PARTMAN
 	partman_go = -1;
+#else
+	partman_go = 0;
+#endif
 
 #ifndef DEBUG
 	msg_display(MSG_installusure);

Index: src/usr.sbin/sysinst/main.c
diff -u src/usr.sbin/sysinst/main.c:1.9 src/usr.sbin/sysinst/main.c:1.10
--- src/usr.sbin/sysinst/main.c:1.9	Wed Sep 12 13:44:05 2018
+++ src/usr.sbin/sysinst/main.c	Thu Sep 20 12:27:42 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.9 2018/09/12 13:44:05 martin Exp $	*/
+/*	$NetBSD: main.c,v 1.10 2018/09/20 12:27:42 rin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -179,7 +179,11 @@ main(int argc, char **argv)
 	}
 
 	/* argv processing */
-	while ((ch = getopt(argc, argv, "Dr:f:C:p")) != -1)
+	while ((ch = getopt(argc, argv, "Dr:f:C:"
+#ifndef NO_PARTMAN
+	    "p"
+#endif
+	    )) != -1)
 		switch(ch) {
 		case 'D':	/* set to get past certain errors in testing */
 			debug = 1;
@@ -196,10 +200,12 @@ main(int argc, char **argv)
 			/* Define colors */
 			sscanf(optarg, "%u:%u", &clr_arg.bg, &clr_arg.fg);
 			break;
+#ifndef NO_PARTMAN
 		case 'p':
 			/* Partition tool */
 			partman_go = 1;
 			break;
+#endif
 		case '?':
 		default:
 			usage();

Index: src/usr.sbin/sysinst/menus.mi
diff -u src/usr.sbin/sysinst/menus.mi:1.14 src/usr.sbin/sysinst/menus.mi:1.15
--- src/usr.sbin/sysinst/menus.mi:1.14	Tue Sep 11 08:05:18 2018
+++ src/usr.sbin/sysinst/menus.mi	Thu Sep 20 12:27:42 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: menus.mi,v 1.14 2018/09/11 08:05:18 martin Exp $	*/
+/*	$NetBSD: menus.mi,v 1.15 2018/09/20 12:27:42 rin Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -84,6 +84,7 @@ remove_sub_menu(int menuID)
 	}
 }
 
+#ifndef NO_PARTMAN
 static void
 remove_menu_option(int menuID, const char *option)
 {
@@ -101,6 +102,7 @@ remove_menu_option(int menuID, const cha
 		}
 	}
 }
+#endif
 
 void
 remove_color_options()
@@ -113,6 +115,7 @@ remove_color_options()
 	remove_sub_menu(MENU_colors);
 }
 
+#ifndef NO_PARTMAN
 void
 remove_raid_options()
 {
@@ -152,6 +155,7 @@ remove_cgd_options()
 	remove_menu_option(MENU_pmdiskentry, MSG_encrypt);
 	remove_menu_option(MENU_pmpartentry, MSG_encrypt);
 }
+#endif
 
 }
 
@@ -271,7 +275,13 @@ menu utility, title MSG_NetBSD_VERSION_U
 			network_up = 0;
 			config_network();
 		};
-	option MSG_Partition_a_disk, action { partman_go = 1; partman(); };
+	option MSG_Partition_a_disk,
+		action {
+#ifndef NO_PARTMAN
+			partman_go = 1;
+			partman();
+#endif
+		};
 	option MSG_Logging_functions, action { do_logging(); };
 	option MSG_Color_scheme, sub menu colors;
 	option MSG_Halt_the_system, exit,
@@ -622,138 +632,3 @@ menu usersh, title MSG_User_shell, no cl
 	option "/bin/sh",  exit, action { ushell = "/bin/sh";}; 
 	option "/bin/ksh", exit, action { ushell = "/bin/ksh";};
 	option "/bin/csh", exit, action { ushell = "/bin/csh";};
-
-
-menu pmdiskentry, x=50, y=5, exit, default exit;
-	option MSG_editbsdpart, exit, action { pm_make_bsd_partitions(pm); };
-	option MSG_editmbr,		exit, action { md_get_info();
-											md_pre_disklabel();
-											memset(&pm->bsdlabel, 0, sizeof pm->bsdlabel);};
-	option MSG_switchgpt,	exit, action { if (pm_gpt_convert(pm) == 0)
-												pm_partusage(pm, -1, 1); };
-	option MSG_renamedisk,	exit, action { pm->unsaved = 1; pm_rename(pm); };
-	option MSG_fmtasraid,	exit, action { pm->unsaved = 1;
-											pm_partusage(pm, -1, 1);
-											layoutkind = LY_NEWRAID;
-											md_make_bsd_partitions();};
-	option MSG_fmtaslvm,	exit, action { pm->unsaved = 1;
-											pm_partusage(pm, -1, 1);
-											layoutkind = LY_NEWLVM;
-											md_make_bsd_partitions(); };
-	option MSG_encrypt,		exit, action { pm->unsaved = 1;
-											pm_partusage(pm, -1, 1);
-											layoutkind = LY_NEWCGD;
-											md_make_bsd_partitions();
-											pm_cgd_edit(0, &(part_entry_t)
-												{.dev_ptr = pm, .dev_num = PART_E}
-											); };
-	option MSG_setbootable,	exit, action { pm->unsaved = 1;
-											pm->bootable = !pm->bootable; };
-	option MSG_erase,		next menu shred_modes;
-	option MSG_undo,		exit, action { label_read(); pm->unsaved = 0;
-											pm_partusage(pm, -1, 1); };
-	option MSG_unconfig,	exit, action { if (pm_unconfigure(pm) == 0)
-												pm_partusage(pm, -1, 1); };
-
-menu pmpartentry, x=50, y=5, exit, default exit;
-	option MSG_edit,		exit, action { 
-									pm->unsaved = 1;
-									int tpfs = pm->bsdlabel[*(int*)arg].pi_fstype;
-									int tplvm = pm->bsdlabel[*(int*)arg].lvmpv;
-									pm_editpart(*(int*)arg);
-									if (tpfs != pm->bsdlabel[*(int*)arg].pi_fstype ||
-										tplvm != pm->bsdlabel[*(int*)arg].lvmpv)
-										/* Oops, partition type changed */
-										pm_partusage(pm, *(int*)arg, 1);
-								};
-	option MSG_fmtasraid,	exit, action {
-									if (pm->gpt || pm->isspecial) {
-										process_menu(MENU_ok, __UNCONST(MSG_notsupported));
-										return -1;
-									}
-									pm->unsaved = 1;
-									pm_partusage(pm, *(int*)arg, 1);
-									pm_setfstype(pm, *(int*)arg, FS_RAID);
-								};
-	option MSG_fmtaslvm,	exit, action {
-									if (pm->gpt || pm->isspecial) {
-										process_menu(MENU_ok, __UNCONST(MSG_notsupported));
-										return -1;
-									}
-									pm->unsaved = 1;
-									pm_partusage(pm, *(int*)arg, 1);
-									pm_setfstype(pm, *(int*)arg, FS_BSDFFS);
-								    pm->bsdlabel[*(int*)arg].lvmpv = 1;
-								};
-	option MSG_encrypt,		exit, action {
-									if (pm->gpt || pm->isspecial) {
-										process_menu(MENU_ok, __UNCONST(MSG_notsupported));
-										return -1;
-									}
-									pm->unsaved = 1;
-									pm_partusage(pm, *(int*)arg, 1);
-									pm_setfstype(pm, *(int*)arg, FS_CGD);
-									pm_cgd_edit(0,
-										&(part_entry_t){.dev_ptr = pm,
-														.dev_num = *(int*)arg});
-								};
-	option MSG_erase,		next menu shred_modes;
-	option MSG_doumount,	exit, action { pm_umount(pm, *(int*)arg); };
-	option MSG_Delete_partition,	exit, action {
-									pm->unsaved = 1;
-									pm_partusage(pm, *(int*)arg, 1);
-									if (pm->isspecial)
-										pm_unconfigure(pm);
-									else
-										pm->bsdlabel[*(int*)arg].pi_fstype = FS_UNUSED;
-									};
-
-menu pmgptentry, x=50, y=8, exit, default exit;
-	option MSG_editbsdpart, exit, action { pm_make_bsd_partitions(pm); };
-	option MSG_switchmbr,	exit, action { if (pm_gpt_convert(pm) == 0)
-												pm_partusage(pm, -1, 1); };
-	option MSG_setbootable,	exit, action { pm->unsaved = 1;
-												pm->bootable = !pm->bootable; };
-	option MSG_erase,		next menu shred_modes;
-	option MSG_undo,		exit, action { label_read(); pm->unsaved = 0;
-											pm_partusage(pm, -1, 1); };
-	option MSG_unconfig,	exit, action { if (pm_unconfigure(pm) == 0)
-												pm_partusage(pm, -1, 1); };
-
-menu shred_modes, x=50, y=5, exit, default exit;
-	option MSG_fillzeros,	exit,
-							action { pm_shred(pm, *(int*)arg, SHRED_ZEROS); };
-	option MSG_fillrandom,	exit,
-							action { pm_shred(pm, *(int*)arg, SHRED_RANDOM); };
-	option MSG_fillcrypto,	exit,
-							action { pm_shred(pm, *(int*)arg, SHRED_CRYPTO); };
-
-menu raidlevel;
-	option MSG_raid0, exit, action { *(int *)arg = 0; };
-	option MSG_raid1, exit, action { *(int *)arg = 1; };
-	option MSG_raid4, exit, action { *(int *)arg = 4; };
-	option MSG_raid5, exit, action { *(int *)arg = 5; };
-
-menu cgd_enctype;
-	option "aes-xts",			exit, action { *(const char**)arg = "aes-xts"; };
-	option "aes-cbc",			exit, action { *(const char**)arg = "aes-cbc"; };
-	option "3des-cbc",			exit, action { *(const char**)arg = "3des-cbc"; };
-	option "blowfish-cbc",		exit, action { *(const char**)arg = "blowfish-cbc"; };
-
-menu cgd_ivtype;
-	option "encblkno1",			exit, action { *(const char**)arg = "encblkno1"; };
-	option "encblkno8",			exit, action { *(const char**)arg = "encblkno8"; };
-
-menu cgd_keygentype;
-	option "pkcs5_pbkdf2/sha1",	exit, action { *(const char**)arg = "pkcs5_pbkdf2/sha1"; };
-	option "pkcs5_pbkdf2",		exit, action { *(const char**)arg = "pkcs5_pbkdf2"; };
-	option "storedkey",			exit, action { *(const char**)arg = "storedkey"; };
-	option "randomkey",			exit, action { *(const char**)arg = "randomkey"; };
-	option "urandomkey",		exit, action { *(const char**)arg = "urandomkey"; };
-	option "shell_cmd",			exit, action { *(const char**)arg = "shell_cmd"; };
-
-menu cgd_verifytype;
-	option "none",				exit, action { *(const char**)arg = "none"; };
-	option "disklabel",			exit, action { *(const char**)arg = "disklabel"; };
-	option "ffs",				exit, action { *(const char**)arg = "ffs"; };
-	option "re-enter",			exit, action { *(const char**)arg = "re-enter"; };

Added files:

Index: src/usr.sbin/sysinst/menus.pm
diff -u /dev/null src/usr.sbin/sysinst/menus.pm:1.1
--- /dev/null	Thu Sep 20 12:27:42 2018
+++ src/usr.sbin/sysinst/menus.pm	Thu Sep 20 12:27:42 2018
@@ -0,0 +1,167 @@
+/*	$NetBSD: menus.pm,v 1.1 2018/09/20 12:27:42 rin Exp $	*/
+/*	NetBSD: menus.mi,v 1.14 2018/09/11 08:05:18 martin Exp 		*/
+
+/*-
+ * Copyright (c) 2003 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by David Laight.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* Menu system definitions -- extended partitioning */
+
+menu pmdiskentry, x=50, y=5, exit, default exit;
+	option MSG_editbsdpart, exit, action { pm_make_bsd_partitions(pm); };
+	option MSG_editmbr,		exit, action { md_get_info();
+											md_pre_disklabel();
+											memset(&pm->bsdlabel, 0, sizeof pm->bsdlabel);};
+	option MSG_switchgpt,	exit, action { if (pm_gpt_convert(pm) == 0)
+												pm_partusage(pm, -1, 1); };
+	option MSG_renamedisk,	exit, action { pm->unsaved = 1; pm_rename(pm); };
+	option MSG_fmtasraid,	exit, action { pm->unsaved = 1;
+											pm_partusage(pm, -1, 1);
+											layoutkind = LY_NEWRAID;
+											md_make_bsd_partitions();};
+	option MSG_fmtaslvm,	exit, action { pm->unsaved = 1;
+											pm_partusage(pm, -1, 1);
+											layoutkind = LY_NEWLVM;
+											md_make_bsd_partitions(); };
+	option MSG_encrypt,		exit, action { pm->unsaved = 1;
+											pm_partusage(pm, -1, 1);
+											layoutkind = LY_NEWCGD;
+											md_make_bsd_partitions();
+											pm_cgd_edit(0, &(part_entry_t)
+												{.dev_ptr = pm, .dev_num = PART_E}
+											); };
+	option MSG_setbootable,	exit, action { pm->unsaved = 1;
+											pm->bootable = !pm->bootable; };
+	option MSG_erase,		next menu shred_modes;
+	option MSG_undo,		exit, action { label_read(); pm->unsaved = 0;
+											pm_partusage(pm, -1, 1); };
+	option MSG_unconfig,	exit, action { if (pm_unconfigure(pm) == 0)
+												pm_partusage(pm, -1, 1); };
+
+menu pmpartentry, x=50, y=5, exit, default exit;
+	option MSG_edit,		exit, action { 
+									pm->unsaved = 1;
+									int tpfs = pm->bsdlabel[*(int*)arg].pi_fstype;
+									int tplvm = pm->bsdlabel[*(int*)arg].lvmpv;
+									pm_editpart(*(int*)arg);
+									if (tpfs != pm->bsdlabel[*(int*)arg].pi_fstype ||
+										tplvm != pm->bsdlabel[*(int*)arg].lvmpv)
+										/* Oops, partition type changed */
+										pm_partusage(pm, *(int*)arg, 1);
+								};
+	option MSG_fmtasraid,	exit, action {
+									if (pm->gpt || pm->isspecial) {
+										process_menu(MENU_ok, __UNCONST(MSG_notsupported));
+										return -1;
+									}
+									pm->unsaved = 1;
+									pm_partusage(pm, *(int*)arg, 1);
+									pm_setfstype(pm, *(int*)arg, FS_RAID);
+								};
+	option MSG_fmtaslvm,	exit, action {
+									if (pm->gpt || pm->isspecial) {
+										process_menu(MENU_ok, __UNCONST(MSG_notsupported));
+										return -1;
+									}
+									pm->unsaved = 1;
+									pm_partusage(pm, *(int*)arg, 1);
+									pm_setfstype(pm, *(int*)arg, FS_BSDFFS);
+								    pm->bsdlabel[*(int*)arg].lvmpv = 1;
+								};
+	option MSG_encrypt,		exit, action {
+									if (pm->gpt || pm->isspecial) {
+										process_menu(MENU_ok, __UNCONST(MSG_notsupported));
+										return -1;
+									}
+									pm->unsaved = 1;
+									pm_partusage(pm, *(int*)arg, 1);
+									pm_setfstype(pm, *(int*)arg, FS_CGD);
+									pm_cgd_edit(0,
+										&(part_entry_t){.dev_ptr = pm,
+														.dev_num = *(int*)arg});
+								};
+	option MSG_erase,		next menu shred_modes;
+	option MSG_doumount,	exit, action { pm_umount(pm, *(int*)arg); };
+	option MSG_Delete_partition,	exit, action {
+									pm->unsaved = 1;
+									pm_partusage(pm, *(int*)arg, 1);
+									if (pm->isspecial)
+										pm_unconfigure(pm);
+									else
+										pm->bsdlabel[*(int*)arg].pi_fstype = FS_UNUSED;
+									};
+
+menu pmgptentry, x=50, y=8, exit, default exit;
+	option MSG_editbsdpart, exit, action { pm_make_bsd_partitions(pm); };
+	option MSG_switchmbr,	exit, action { if (pm_gpt_convert(pm) == 0)
+												pm_partusage(pm, -1, 1); };
+	option MSG_setbootable,	exit, action { pm->unsaved = 1;
+												pm->bootable = !pm->bootable; };
+	option MSG_erase,		next menu shred_modes;
+	option MSG_undo,		exit, action { label_read(); pm->unsaved = 0;
+											pm_partusage(pm, -1, 1); };
+	option MSG_unconfig,	exit, action { if (pm_unconfigure(pm) == 0)
+												pm_partusage(pm, -1, 1); };
+
+menu shred_modes, x=50, y=5, exit, default exit;
+	option MSG_fillzeros,	exit,
+							action { pm_shred(pm, *(int*)arg, SHRED_ZEROS); };
+	option MSG_fillrandom,	exit,
+							action { pm_shred(pm, *(int*)arg, SHRED_RANDOM); };
+	option MSG_fillcrypto,	exit,
+							action { pm_shred(pm, *(int*)arg, SHRED_CRYPTO); };
+
+menu raidlevel;
+	option MSG_raid0, exit, action { *(int *)arg = 0; };
+	option MSG_raid1, exit, action { *(int *)arg = 1; };
+	option MSG_raid4, exit, action { *(int *)arg = 4; };
+	option MSG_raid5, exit, action { *(int *)arg = 5; };
+
+menu cgd_enctype;
+	option "aes-xts",			exit, action { *(const char**)arg = "aes-xts"; };
+	option "aes-cbc",			exit, action { *(const char**)arg = "aes-cbc"; };
+	option "3des-cbc",			exit, action { *(const char**)arg = "3des-cbc"; };
+	option "blowfish-cbc",		exit, action { *(const char**)arg = "blowfish-cbc"; };
+
+menu cgd_ivtype;
+	option "encblkno1",			exit, action { *(const char**)arg = "encblkno1"; };
+	option "encblkno8",			exit, action { *(const char**)arg = "encblkno8"; };
+
+menu cgd_keygentype;
+	option "pkcs5_pbkdf2/sha1",	exit, action { *(const char**)arg = "pkcs5_pbkdf2/sha1"; };
+	option "pkcs5_pbkdf2",		exit, action { *(const char**)arg = "pkcs5_pbkdf2"; };
+	option "storedkey",			exit, action { *(const char**)arg = "storedkey"; };
+	option "randomkey",			exit, action { *(const char**)arg = "randomkey"; };
+	option "urandomkey",		exit, action { *(const char**)arg = "urandomkey"; };
+	option "shell_cmd",			exit, action { *(const char**)arg = "shell_cmd"; };
+
+menu cgd_verifytype;
+	option "none",				exit, action { *(const char**)arg = "none"; };
+	option "disklabel",			exit, action { *(const char**)arg = "disklabel"; };
+	option "ffs",				exit, action { *(const char**)arg = "ffs"; };
+	option "re-enter",			exit, action { *(const char**)arg = "re-enter"; };

Reply via email to