From 2c11f8181c557e71b95b4fa3ba6f223ccefb2994 Mon Sep 17 00:00:00 2001
From: Roger Pau Monne <roger.pau@citrix.com>
Date: Tue, 4 Feb 2014 14:00:20 +0100
Subject: [PATCH 05/14] howto_names: unify declaration

Approved by: gibbs
Sponsored by: Citrix Systems R&D

boot/i386/efi/bootinfo.c:
boot/i386/libi386/bootinfo.c:
boot/ia64/common/bootinfo.c:
boot/powerpc/ofw/metadata.c:
boot/powerpc/ps3/metadata.c:
boot/sparc64/loader/metadata.c:
boot/uboot/common/metadata.c:
boot/userboot/userboot/bootinfo.c:
i386/xen/xen_machdep.c:
 - Include sys/boot.h
 - Remove custom definition of howto_names.

sys/boot.h:
 - Define howto_names.

x86/xen/pv.c:
 - Include sys/boot.h
---
 sys/boot/i386/efi/bootinfo.c          |   24 +--------------
 sys/boot/i386/libi386/bootinfo.c      |   24 +--------------
 sys/boot/ia64/common/bootinfo.c       |   24 +--------------
 sys/boot/powerpc/ofw/metadata.c       |   24 +--------------
 sys/boot/powerpc/ps3/metadata.c       |   24 +--------------
 sys/boot/sparc64/loader/metadata.c    |   24 +--------------
 sys/boot/uboot/common/metadata.c      |   24 +--------------
 sys/boot/userboot/userboot/bootinfo.c |   24 +--------------
 sys/i386/xen/xen_machdep.c            |   19 +-----------
 sys/sys/boot.h                        |   53 +++++++++++++++++++++++++++++++++
 sys/x86/xen/pv.c                      |    1 +
 11 files changed, 63 insertions(+), 202 deletions(-)
 create mode 100644 sys/sys/boot.h

diff --git a/sys/boot/i386/efi/bootinfo.c b/sys/boot/i386/efi/bootinfo.c
index b3a3fa9..853d044 100644
--- a/sys/boot/i386/efi/bootinfo.c
+++ b/sys/boot/i386/efi/bootinfo.c
@@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
+#include <sys/boot.h>
 
 #include <efi.h>
 #include <efilib.h>
@@ -41,29 +42,6 @@ __FBSDID("$FreeBSD$");
 #include "libi386.h"
 #include <machine/bootinfo.h>
 
-/*
- * Return a 'boothowto' value corresponding to the kernel arguments in
- * (kargs) and any relevant environment variables.
- */
-static struct 
-{
-	const char	*ev;
-	int		mask;
-} howto_names[] = {
-	{ "boot_askname",	RB_ASKNAME},
-	{ "boot_cdrom",		RB_CDROM},
-	{ "boot_ddb",		RB_KDB},
-	{ "boot_dfltroot",	RB_DFLTROOT},
-	{ "boot_gdb",		RB_GDB},
-	{ "boot_multicons",	RB_MULTIPLE},
-	{ "boot_mute",		RB_MUTE},
-	{ "boot_pause",		RB_PAUSE},
-	{ "boot_serial",	RB_SERIAL},
-	{ "boot_single",	RB_SINGLE},
-	{ "boot_verbose",	RB_VERBOSE},
-	{ NULL,	0}
-};
-
 static const char howto_switches[] = "aCdrgDmphsv";
 static int howto_masks[] = {
 	RB_ASKNAME, RB_CDROM, RB_KDB, RB_DFLTROOT, RB_GDB, RB_MULTIPLE,
diff --git a/sys/boot/i386/libi386/bootinfo.c b/sys/boot/i386/libi386/bootinfo.c
index 8a67e39..c33cec7 100644
--- a/sys/boot/i386/libi386/bootinfo.c
+++ b/sys/boot/i386/libi386/bootinfo.c
@@ -31,33 +31,11 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
+#include <sys/boot.h>
 #include "bootstrap.h"
 #include "libi386.h"
 #include "btxv86.h"
 
-/*
- * Return a 'boothowto' value corresponding to the kernel arguments in
- * (kargs) and any relevant environment variables.
- */
-static struct 
-{
-    const char	*ev;
-    int		mask;
-} howto_names[] = {
-    {"boot_askname",	RB_ASKNAME},
-    {"boot_cdrom",	RB_CDROM},
-    {"boot_ddb",	RB_KDB},
-    {"boot_dfltroot",	RB_DFLTROOT},
-    {"boot_gdb",	RB_GDB},
-    {"boot_multicons",	RB_MULTIPLE},
-    {"boot_mute",	RB_MUTE},
-    {"boot_pause",	RB_PAUSE},
-    {"boot_serial",	RB_SERIAL},
-    {"boot_single",	RB_SINGLE},
-    {"boot_verbose",	RB_VERBOSE},
-    {NULL,	0}
-};
-
 int
 bi_getboothowto(char *kargs)
 {
diff --git a/sys/boot/ia64/common/bootinfo.c b/sys/boot/ia64/common/bootinfo.c
index 076c953..04e8ba2 100644
--- a/sys/boot/ia64/common/bootinfo.c
+++ b/sys/boot/ia64/common/bootinfo.c
@@ -33,35 +33,13 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
+#include <sys/boot.h>
 
 #include <efi.h>
 #include <efilib.h>
 
 #include "libia64.h"
 
-/*
- * Return a 'boothowto' value corresponding to the kernel arguments in
- * (kargs) and any relevant environment variables.
- */
-static struct 
-{
-	const char	*ev;
-	int		mask;
-} howto_names[] = {
-	{ "boot_askname",	RB_ASKNAME},
-	{ "boot_cdrom",		RB_CDROM},
-	{ "boot_ddb",		RB_KDB},
-	{ "boot_dfltroot",	RB_DFLTROOT},
-	{ "boot_gdb",		RB_GDB},
-	{ "boot_multicons",	RB_MULTIPLE},
-	{ "boot_mute",		RB_MUTE},
-	{ "boot_pause",		RB_PAUSE},
-	{ "boot_serial",	RB_SERIAL},
-	{ "boot_single",	RB_SINGLE},
-	{ "boot_verbose",	RB_VERBOSE},
-	{ NULL,	0}
-};
-
 static const char howto_switches[] = "aCdrgDmphsv";
 static int howto_masks[] = {
 	RB_ASKNAME, RB_CDROM, RB_KDB, RB_DFLTROOT, RB_GDB, RB_MULTIPLE,
diff --git a/sys/boot/powerpc/ofw/metadata.c b/sys/boot/powerpc/ofw/metadata.c
index caed9cd..7db4030 100644
--- a/sys/boot/powerpc/ofw/metadata.c
+++ b/sys/boot/powerpc/ofw/metadata.c
@@ -33,35 +33,13 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
+#include <sys/boot.h>
 
 #include <machine/metadata.h>
 
 #include "bootstrap.h"
 #include "libofw.h"
 
-/*
- * Return a 'boothowto' value corresponding to the kernel arguments in
- * (kargs) and any relevant environment variables.
- */
-static struct 
-{
-    const char	*ev;
-    int		mask;
-} howto_names[] = {
-    {"boot_askname",	RB_ASKNAME},
-    {"boot_cdrom",	RB_CDROM},
-    {"boot_ddb",	RB_KDB},
-    {"boot_dfltroot",	RB_DFLTROOT},
-    {"boot_gdb",	RB_GDB},
-    {"boot_multicons",	RB_MULTIPLE},
-    {"boot_mute",	RB_MUTE},
-    {"boot_pause",	RB_PAUSE},
-    {"boot_serial",	RB_SERIAL},
-    {"boot_single",	RB_SINGLE},
-    {"boot_verbose",	RB_VERBOSE},
-    {NULL,	0}
-};
-
 int
 md_getboothowto(char *kargs)
 {
diff --git a/sys/boot/powerpc/ps3/metadata.c b/sys/boot/powerpc/ps3/metadata.c
index 0698cd1..6f29c57 100644
--- a/sys/boot/powerpc/ps3/metadata.c
+++ b/sys/boot/powerpc/ps3/metadata.c
@@ -33,34 +33,12 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
+#include <sys/boot.h>
 
 #include <machine/metadata.h>
 
 #include "bootstrap.h"
 
-/*
- * Return a 'boothowto' value corresponding to the kernel arguments in
- * (kargs) and any relevant environment variables.
- */
-static struct 
-{
-    const char	*ev;
-    int		mask;
-} howto_names[] = {
-    {"boot_askname",	RB_ASKNAME},
-    {"boot_cdrom",	RB_CDROM},
-    {"boot_ddb",	RB_KDB},
-    {"boot_dfltroot",	RB_DFLTROOT},
-    {"boot_gdb",	RB_GDB},
-    {"boot_multicons",	RB_MULTIPLE},
-    {"boot_mute",	RB_MUTE},
-    {"boot_pause",	RB_PAUSE},
-    {"boot_serial",	RB_SERIAL},
-    {"boot_single",	RB_SINGLE},
-    {"boot_verbose",	RB_VERBOSE},
-    {NULL,	0}
-};
-
 int
 md_getboothowto(char *kargs)
 {
diff --git a/sys/boot/sparc64/loader/metadata.c b/sys/boot/sparc64/loader/metadata.c
index 3f6af23..d15a75a 100644
--- a/sys/boot/sparc64/loader/metadata.c
+++ b/sys/boot/sparc64/loader/metadata.c
@@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
+#include <sys/boot.h>
 
 #include <machine/metadata.h>
 
@@ -47,29 +48,6 @@ extern int itlb_slot;
 
 static int md_bootserial(void);
 
-/*
- * Return a 'boothowto' value corresponding to the kernel arguments in
- * (kargs) and any relevant environment variables.
- */
-static struct 
-{
-    const char	*ev;
-    int		mask;
-} howto_names[] = {
-    {"boot_askname",	RB_ASKNAME},
-    {"boot_cdrom",	RB_CDROM},
-    {"boot_ddb",	RB_KDB},
-    {"boot_dfltroot",	RB_DFLTROOT},
-    {"boot_gdb",	RB_GDB},
-    {"boot_multicons",	RB_MULTIPLE},
-    {"boot_mute",	RB_MUTE},
-    {"boot_pause",	RB_PAUSE},
-    {"boot_serial",	RB_SERIAL},
-    {"boot_single",	RB_SINGLE},
-    {"boot_verbose",	RB_VERBOSE},
-    {NULL,	0}
-};
-
 int
 md_getboothowto(char *kargs)
 {
diff --git a/sys/boot/uboot/common/metadata.c b/sys/boot/uboot/common/metadata.c
index bbc1893..0e4dd84 100644
--- a/sys/boot/uboot/common/metadata.c
+++ b/sys/boot/uboot/common/metadata.c
@@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
+#include <sys/boot.h>
 
 #include <machine/elf.h>
 #include <machine/metadata.h>
@@ -45,29 +46,6 @@ __FBSDID("$FreeBSD$");
 extern int fdt_copy(vm_offset_t);
 #endif
 
-/*
- * Return a 'boothowto' value corresponding to the kernel arguments in
- * (kargs) and any relevant environment variables.
- */
-static struct
-{
-	const char	*ev;
-	int		mask;
-} howto_names[] = {
-	{"boot_askname",	RB_ASKNAME},
-	{"boot_cdrom",		RB_CDROM},
-	{"boot_ddb",		RB_KDB},
-	{"boot_dfltroot",	RB_DFLTROOT},
-	{"boot_gdb",		RB_GDB},
-	{"boot_multicons",	RB_MULTIPLE},
-	{"boot_mute",		RB_MUTE},
-	{"boot_pause",		RB_PAUSE},
-	{"boot_serial",		RB_SERIAL},
-	{"boot_single",		RB_SINGLE},
-	{"boot_verbose",	RB_VERBOSE},
-	{NULL,			0}
-};
-
 static int
 md_getboothowto(char *kargs)
 {
diff --git a/sys/boot/userboot/userboot/bootinfo.c b/sys/boot/userboot/userboot/bootinfo.c
index 75ad5e7..289ca07 100644
--- a/sys/boot/userboot/userboot/bootinfo.c
+++ b/sys/boot/userboot/userboot/bootinfo.c
@@ -31,33 +31,11 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
+#include <sys/boot.h>
 
 #include "bootstrap.h"
 #include "libuserboot.h"
 
-/*
- * Return a 'boothowto' value corresponding to the kernel arguments in
- * (kargs) and any relevant environment variables.
- */
-static struct 
-{
-    const char	*ev;
-    int		mask;
-} howto_names[] = {
-    {"boot_askname",	RB_ASKNAME},
-    {"boot_cdrom",	RB_CDROM},
-    {"boot_ddb",	RB_KDB},
-    {"boot_dfltroot",	RB_DFLTROOT},
-    {"boot_gdb",	RB_GDB},
-    {"boot_multicons",	RB_MULTIPLE},
-    {"boot_mute",	RB_MUTE},
-    {"boot_pause",	RB_PAUSE},
-    {"boot_serial",	RB_SERIAL},
-    {"boot_single",	RB_SINGLE},
-    {"boot_verbose",	RB_VERBOSE},
-    {NULL,	0}
-};
-
 int
 bi_getboothowto(char *kargs)
 {
diff --git a/sys/i386/xen/xen_machdep.c b/sys/i386/xen/xen_machdep.c
index c1e166b..d67406d 100644
--- a/sys/i386/xen/xen_machdep.c
+++ b/sys/i386/xen/xen_machdep.c
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/reboot.h>
 #include <sys/rwlock.h>
 #include <sys/sysproto.h>
+#include <sys/boot.h>
 
 #include <xen/xen-os.h>
 
@@ -156,24 +157,6 @@ xen_setbootenv(char *cmd_line)
 	return cmd_line;
 }
 
-static struct 
-{
-	const char	*ev;
-	int		mask;
-} howto_names[] = {
-	{"boot_askname",	RB_ASKNAME},
-	{"boot_single",	RB_SINGLE},
-	{"boot_nosync",	RB_NOSYNC},
-	{"boot_halt",	RB_ASKNAME},
-	{"boot_serial",	RB_SERIAL},
-	{"boot_cdrom",	RB_CDROM},
-	{"boot_gdb",	RB_GDB},
-	{"boot_gdb_pause",	RB_RESERVED1},
-	{"boot_verbose",	RB_VERBOSE},
-	{"boot_multicons",	RB_MULTIPLE},
-	{NULL,	0}
-};
-
 int 
 xen_boothowto(char *envp)
 {
diff --git a/sys/sys/boot.h b/sys/sys/boot.h
new file mode 100644
index 0000000..e4d3083
--- /dev/null
+++ b/sys/sys/boot.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2014 Roger Pau Monné <roger.pau@citrix.com>
+ * All rights reserved.
+ *
+ * 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 AUTHOR 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 AUTHOR 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.
+ */
+
+#ifndef _SYS_BOOT_H_
+#define _SYS_BOOT_H_
+
+/*
+ * Return a 'boothowto' value corresponding to the kernel arguments in
+ * (kargs) and any relevant environment variables.
+ */
+static struct
+{
+	const char	*ev;
+	int		mask;
+} howto_names[] = {
+	{ "boot_askname",	RB_ASKNAME},
+	{ "boot_cdrom",		RB_CDROM},
+	{ "boot_ddb",		RB_KDB},
+	{ "boot_dfltroot",	RB_DFLTROOT},
+	{ "boot_gdb",		RB_GDB},
+	{ "boot_multicons",	RB_MULTIPLE},
+	{ "boot_mute",		RB_MUTE},
+	{ "boot_pause",		RB_PAUSE},
+	{ "boot_serial",	RB_SERIAL},
+	{ "boot_single",	RB_SINGLE},
+	{ "boot_verbose",	RB_VERBOSE},
+	{ NULL,	0}
+};
+
+#endif /* !_SYS_BOOT_H_ */
diff --git a/sys/x86/xen/pv.c b/sys/x86/xen/pv.c
index 0124d9b..94985e3 100644
--- a/sys/x86/xen/pv.c
+++ b/sys/x86/xen/pv.c
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/systm.h>
 #include <sys/lock.h>
 #include <sys/rwlock.h>
+#include <sys/boot.h>
 
 #include <vm/vm.h>
 #include <vm/vm_extern.h>
-- 
1.7.7.5 (Apple Git-26)

