head	1.4;
access;
symbols
	RELENG_8_4:1.4.0.2
	RELENG_9_1_0_RELEASE:1.2.2.2.2.2
	RELENG_9_1:1.2.2.2.0.2
	RELENG_9_1_BP:1.2.2.2
	RELENG_8_3_0_RELEASE:1.1.2.4.2.1
	RELENG_8_3:1.1.2.4.0.2
	RELENG_8_3_BP:1.1.2.4
	RELENG_9_0_0_RELEASE:1.2.2.1.2.1
	RELENG_9_0:1.2.2.1.0.2
	RELENG_9_0_BP:1.2.2.1
	RELENG_9:1.2.0.2
	RELENG_9_BP:1.2
	RELENG_8_2_0_RELEASE:1.1.2.3.2.1
	RELENG_8_2:1.1.2.3.0.2
	RELENG_8_2_BP:1.1.2.3
	RELENG_8:1.1.0.2;
locks; strict;
comment	@# @;


1.4
date	2012.11.17.01.49.04;	author svnexp;	state Exp;
branches
	1.4.2.1;
next	1.3;

1.3
date	2012.01.14.02.18.41;	author dougb;	state Exp;
branches;
next	1.2;

1.2
date	2010.11.24.15.25.17;	author pjd;	state Exp;
branches
	1.2.2.1;
next	1.1;

1.1
date	2010.09.24.19.53.55;	author pjd;	state Exp;
branches
	1.1.2.1;
next	;

1.4.2.1
date	2012.11.17.01.49.04;	author svnexp;	state dead;
branches;
next	1.4.2.2;

1.4.2.2
date	2013.03.28.13.02.43;	author svnexp;	state Exp;
branches;
next	;

1.2.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.2.2.1.2.1;
next	1.2.2.2;

1.2.2.2
date	2012.02.14.10.16.56;	author dougb;	state Exp;
branches
	1.2.2.2.2.1;
next	1.2.2.3;

1.2.2.3
date	2012.11.17.11.36.11;	author svnexp;	state Exp;
branches;
next	;

1.2.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.2.2.1.2.2;

1.2.2.1.2.2
date	2012.11.17.08.36.11;	author svnexp;	state Exp;
branches;
next	;

1.2.2.2.2.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.2.2.2.2.2;

1.2.2.2.2.2
date	2012.11.17.08.47.01;	author svnexp;	state Exp;
branches;
next	;

1.1.2.1
date	2010.10.17.20.10.00;	author pjd;	state dead;
branches;
next	1.1.2.2;

1.1.2.2
date	2010.10.17.20.10.00;	author pjd;	state Exp;
branches;
next	1.1.2.3;

1.1.2.3
date	2010.11.28.20.56.51;	author pjd;	state Exp;
branches
	1.1.2.3.2.1;
next	1.1.2.4;

1.1.2.4
date	2012.02.14.10.17.14;	author dougb;	state Exp;
branches
	1.1.2.4.2.1;
next	1.1.2.5;

1.1.2.5
date	2012.11.17.10.35.56;	author svnexp;	state Exp;
branches;
next	;

1.1.2.3.2.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.1.2.4.2.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.1.2.4.2.2;

1.1.2.4.2.2
date	2012.11.17.08.24.38;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.4
log
@Switching exporter and resync
@
text
@#!/bin/sh
#
# Copyright (c) 2010 Pawel Jakub Dawidek <pjd@@FreeBSD.org>
# 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 AUTHORS 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 AUTHORS 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.
#
# $FreeBSD: head/etc/rc.d/gptboot 230099 2012-01-14 02:18:41Z dougb $
#

# PROVIDE: gptboot
# REQUIRE: mountcritremote
# KEYWORD: nojail

. /etc/rc.subr

name="gptboot"
rcvar="gptboot_enable"
start_cmd="gptboot_report"

gptboot_report()
{
	gpart show | \
		egrep '(^=>| freebsd-ufs .*(\[|,)(bootfailed|bootonce)(,|\]))' | \
		sed 's/^=>//' | \
		egrep -v '(\[|,)bootme(,|\])' | \
	while read start size pos type attrs rest; do
		case "${pos}" in
		[0-9]*)
			if [ -n "${disk}" ]; then
				part="${disk}p${pos}"
				echo "${attrs}" | egrep -q '(\[|,)bootfailed(,|\])'
				bootfailed=$?
				echo "${attrs}" | egrep -q '(\[|,)bootonce(,|\])'
				bootonce=$?
				if [ ${bootfailed} -eq 0 ]; then
					logger -t gptboot -p local0.notice "Boot from ${part} failed."
					gpart unset -a bootfailed -i ${pos} ${disk} >/dev/null
				elif [ ${bootonce} -eq 0 ]; then
					# We want to log success after all failures.
					echo -n "Boot from ${part} succeeded."
					gpart unset -a bootonce -i ${pos} ${disk} >/dev/null
				fi
			fi
			;;
		*)
			if [ "${type}" = "GPT" ]; then
				disk="${pos}"
			else
				disk=""
			fi
			;;
		esac
	done | logger -t gptboot -p local0.notice
}

load_rc_config $name
run_rc_command "$1"
@


1.4.2.1
log
@file gptboot was added on branch RELENG_8_4 on 2013-03-28 13:02:43 +0000
@
text
@d1 77
@


1.4.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 77
#!/bin/sh
#
# Copyright (c) 2010 Pawel Jakub Dawidek <pjd@@FreeBSD.org>
# 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 AUTHORS 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 AUTHORS 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.
#
# $FreeBSD: releng/8.4/etc/rc.d/gptboot 231655 2012-02-14 10:17:14Z dougb $
#

# PROVIDE: gptboot
# REQUIRE: mountcritremote
# KEYWORD: nojail

. /etc/rc.subr

name="gptboot"
rcvar="gptboot_enable"
start_cmd="gptboot_report"

gptboot_report()
{
	gpart show | \
		egrep '(^=>| freebsd-ufs .*(\[|,)(bootfailed|bootonce)(,|\]))' | \
		sed 's/^=>//' | \
		egrep -v '(\[|,)bootme(,|\])' | \
	while read start size pos type attrs rest; do
		case "${pos}" in
		[0-9]*)
			if [ -n "${disk}" ]; then
				part="${disk}p${pos}"
				echo "${attrs}" | egrep -q '(\[|,)bootfailed(,|\])'
				bootfailed=$?
				echo "${attrs}" | egrep -q '(\[|,)bootonce(,|\])'
				bootonce=$?
				if [ ${bootfailed} -eq 0 ]; then
					logger -t gptboot -p local0.notice "Boot from ${part} failed."
					gpart unset -a bootfailed -i ${pos} ${disk} >/dev/null
				elif [ ${bootonce} -eq 0 ]; then
					# We want to log success after all failures.
					echo -n "Boot from ${part} succeeded."
					gpart unset -a bootonce -i ${pos} ${disk} >/dev/null
				fi
			fi
			;;
		*)
			if [ "${type}" = "GPT" ]; then
				disk="${pos}"
			else
				disk=""
			fi
			;;
		esac
	done | logger -t gptboot -p local0.notice
}

load_rc_config $name
run_rc_command "$1"
@


1.3
log
@SVN rev 230099 on 2012-01-14 02:18:41Z by dougb

Prepare for the removal of set_rcvar() by changing the rcvar=
assignments to the literal values it would have returned.

The concept of set_rcvar() was nice in theory, but the forks
it creates are a drag on the startup process, which is especially
noticeable on slower systems, such as embedded ones.

During the discussion on freebsd-rc@@ a preference was expressed for
using ${name}_enable instead of the literal values. However the
code portability concept doesn't really apply since there are so
many other places where the literal name has to be searched for
and replaced. Also, using the literal value is also a tiny bit
faster than dereferencing the variables, and every little bit helps.
@
text
@d27 1
a27 1
# $FreeBSD$
@


1.2
log
@SVN rev 215799 on 2010-11-24 15:25:17Z by pjd

Add gptboot_enable rc variable, which allows to turn gptboot reporting off in
case user wants to implement his own actions and doesn't want the attributes to
vanish.

Obtained from:	Wheel Systems Sp. z o.o. http://www.wheelsystems.com
MFC after:	3 days
@
text
@d37 1
a37 1
rcvar=`set_rcvar`
@


1.2.2.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.2.2.2
log
@SVN rev 231653 on 2012-02-14 10:16:56Z by dougb

MFC r230099:

Change rcvar= assignments to the literal values set_rcvar
would have returned. This will slightly reduce boot time,
and help in diff reduction to HEAD.
@
text
@d37 1
a37 1
rcvar="gptboot_enable"
@


1.2.2.3
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d27 1
a27 1
# $FreeBSD: stable/9/etc/rc.d/gptboot 231653 2012-02-14 10:16:56Z dougb $
@


1.2.2.2.2.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.2.2.2.2.2
log
@Switch importer
@
text
@d27 1
a27 1
# $FreeBSD: releng/9.1/etc/rc.d/gptboot 231653 2012-02-14 10:16:56Z dougb $
@


1.2.2.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.2.2.1.2.2
log
@Switch importer
@
text
@d27 1
a27 1
# $FreeBSD: releng/9.0/etc/rc.d/gptboot 215799 2010-11-24 15:25:17Z pjd $
@


1.1
log
@SVN rev 213137 on 2010-09-24 19:53:55Z by pjd

Add gptboot script that is responsible for:
- looking for partition with 'bootonce' attribute alone (without 'bootme'
  attribute), removing it and logging that we successfully booted from this
  partition.
- looking for partitions with 'bootfailed' attribute, removing it and
  logging that we failed to boot from this partition.

Reviewed by:	arch (Message-ID: <20100917234542.GE1902@@garage.freebsd.pl>)
Obtained from:	Wheel Systems Sp. z o.o. http://www.wheelsystems.com
MFC after:	2 weeks
@
text
@d37 1
@


1.1.2.1
log
@file gptboot was added on branch RELENG_8 on 2010-10-17 20:11:48 +0000
@
text
@d1 76
@


1.1.2.2
log
@SVN rev 213994 on 2010-10-17 20:10:00Z by pjd

MFC r213133,r213135,r213136,r213137,r213245:

r213133:

Add three GPT attributes:

GPT_ENT_ATTR_BOOTME - this is bootable partition

GPT_ENT_ATTR_BOOTONCE - try to boot only once from this partition

GPT_ENT_ATTR_BOOTFAILED - set this flag if we cannot boot from partition
	containing GPT_ENT_ATTR_BOOTONCE flag; note that if we cannot
	boot from partition that contains only GPT_ENT_ATTR_BOOTME flag,
	the GPT_ENT_ATTR_BOOTFAILED flag won't be set

According to wikipedia Microsoft TechNet says that attributes are divided into
two halves: the lower 4 bytes representing partition independent attributes,
and the upper 4 bytes are partition type dependent. Microsoft is already using
bits 60 (read-only), 62 (hidden) and 63 (do not automount) and I'd like to not
collide with those, so we are using bit 59 (bootme), 58 (bootonce) and 57
(bootfailed).

Reviewed by:	arch (Message-ID: <20100917234542.GE1902@@garage.freebsd.pl>)

r213135:

Allow to configure GPT attributes. It shouldn't be allowed to set bootfailed
attribute (it should be allowed only to unset it), but for test purposes it
might be useful, so the current code allows it.

Reviewed by:	arch@@ (Message-ID: <20100917234542.GE1902@@garage.freebsd.pl>)

r213136:

- Split code shared by almost any boot loader into separate files and
  clean up most layering violations:

	sys/boot/i386/common/rbx.h:

		RBX_* defines
		OPT_SET()
		OPT_CHECK()

	sys/boot/common/util.[ch]:

		memcpy()
		memset()
		memcmp()
		bcpy()
		bzero()
		bcmp()
		strcmp()
		strncmp() [new]
		strcpy()
		strcat()
		strchr()
		strlen()
		printf()

	sys/boot/i386/common/cons.[ch]:

		ioctrl
		putc()
		xputc()
		putchar()
		getc()
		xgetc()
		keyhit() [now takes number of seconds as an argument]
		getstr()

	sys/boot/i386/common/drv.[ch]:

		struct dsk
		drvread()
		drvwrite() [new]
		drvsize() [new]

	sys/boot/common/crc32.[ch] [new]

	sys/boot/common/gpt.[ch] [new]

- Teach gptboot and gptzfsboot about new files. I haven't touched the
  rest, but there is still a lot of code duplication to be removed.

- Implement full GPT support. Currently we just read primary header and
  partition table and don't care about checksums, etc. After this change we
  verify checksums of primary header and primary partition table and if
  there is a problem we fall back to backup header and backup partition
  table.

- Clean up most messages to use prefix of boot program, so in case of an
  error we know where the error comes from, eg.:

	gptboot: unable to read primary GPT header

- If we can't boot, print boot prompt only once and not every five
  seconds.

- Honour newly added GPT attributes:

	bootme - this is bootable partition
	bootonce - try to boot from this partition only once
	bootfailed - we failed to boot from this partition

- Change boot order of gptboot to the following:

	1. Try to boot from all the partitions that have both 'bootme'
	   and 'bootonce' attributes one by one.
	2. Try to boot from all the partitions that have only 'bootme'
	   attribute one by one.
	3. If there are no partitions with 'bootme' attribute, boot from
	   the first UFS partition.

- The 'bootonce' functionality is implemented in the following way:

	1. Walk through all the partitions and when 'bootonce'
	   attribute is found without 'bootme' attribute, remove
	   'bootonce' attribute and set 'bootfailed' attribute.
	   'bootonce' attribute alone means that we tried to boot from
	   this partition, but boot failed after leaving gptboot and
	   machine was restarted.
	2. Find partition with both 'bootme' and 'bootonce' attributes.
	3. Remove 'bootme' attribute.
	4. Try to execute /boot/loader or /boot/kernel/kernel from that
	   partition. If succeeded we stop here.
	5. If execution failed, remove 'bootonce' and set 'bootfailed'.
	6. Go to 2.

   If whole boot succeeded there is new /etc/rc.d/gptboot script coming
   that will log all partitions that we failed to boot from (the ones with
   'bootfailed' attribute) and will remove this attribute. It will also
   find partition with 'bootonce' attribute - this is the partition we
   booted from successfully. The script will log success and remove the
   attribute.

   All the GPT updates we do here goes to both primary and backup GPT if
   they are valid. We don't touch headers or partition tables when
   checksum doesn't match.

Reviewed by:	arch (Message-ID: <20100917234542.GE1902@@garage.freebsd.pl>)
Obtained from:	Wheel Systems Sp. z o.o. http://www.wheelsystems.com

r213137:

Add gptboot script that is responsible for:
- looking for partition with 'bootonce' attribute alone (without 'bootme'
  attribute), removing it and logging that we successfully booted from this
  partition.
- looking for partitions with 'bootfailed' attribute, removing it and
  logging that we failed to boot from this partition.

Reviewed by:	arch (Message-ID: <20100917234542.GE1902@@garage.freebsd.pl>)
Obtained from:	Wheel Systems Sp. z o.o. http://www.wheelsystems.com

r213245:

Document recently added GPT attributes (bootme, bootonce, bootfailed) and
list other schemes attributes.

Reviewed by:	simon, rpaulo
@
text
@a0 76
#!/bin/sh
#
# Copyright (c) 2010 Pawel Jakub Dawidek <pjd@@FreeBSD.org>
# 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 AUTHORS 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 AUTHORS 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.
#
# $FreeBSD$
#

# PROVIDE: gptboot
# REQUIRE: mountcritremote
# KEYWORD: nojail

. /etc/rc.subr

name="gptboot"
start_cmd="gptboot_report"

gptboot_report()
{
	gpart show | \
		egrep '(^=>| freebsd-ufs .*(\[|,)(bootfailed|bootonce)(,|\]))' | \
		sed 's/^=>//' | \
		egrep -v '(\[|,)bootme(,|\])' | \
	while read start size pos type attrs rest; do
		case "${pos}" in
		[0-9]*)
			if [ -n "${disk}" ]; then
				part="${disk}p${pos}"
				echo "${attrs}" | egrep -q '(\[|,)bootfailed(,|\])'
				bootfailed=$?
				echo "${attrs}" | egrep -q '(\[|,)bootonce(,|\])'
				bootonce=$?
				if [ ${bootfailed} -eq 0 ]; then
					logger -t gptboot -p local0.notice "Boot from ${part} failed."
					gpart unset -a bootfailed -i ${pos} ${disk} >/dev/null
				elif [ ${bootonce} -eq 0 ]; then
					# We want to log success after all failures.
					echo -n "Boot from ${part} succeeded."
					gpart unset -a bootonce -i ${pos} ${disk} >/dev/null
				fi
			fi
			;;
		*)
			if [ "${type}" = "GPT" ]; then
				disk="${pos}"
			else
				disk=""
			fi
			;;
		esac
	done | logger -t gptboot -p local0.notice
}

load_rc_config $name
run_rc_command "$1"
@


1.1.2.3
log
@SVN rev 216017 on 2010-11-28 20:56:51Z by pjd

MFC r215799:

Add gptboot_enable rc variable, which allows to turn gptboot reporting off in
case user wants to implement his own actions and doesn't want the attributes to
vanish.

Obtained from:	Wheel Systems Sp. z o.o. http://www.wheelsystems.com
@
text
@a36 1
rcvar=`set_rcvar`
@


1.1.2.4
log
@SVN rev 231655 on 2012-02-14 10:17:14Z by dougb

MFC r230099:

Change rcvar= assignments to the literal values set_rcvar
would have returned. This will slightly reduce boot time,
and help in diff reduction to HEAD.
@
text
@d37 1
a37 1
rcvar="gptboot_enable"
@


1.1.2.5
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d27 1
a27 1
# $FreeBSD: stable/8/etc/rc.d/gptboot 231655 2012-02-14 10:17:14Z dougb $
@


1.1.2.4.2.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.1.2.4.2.2
log
@Switch importer
@
text
@d27 1
a27 1
# $FreeBSD: releng/8.3/etc/rc.d/gptboot 231655 2012-02-14 10:17:14Z dougb $
@


1.1.2.3.2.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


