svn commit: r319765 - head/lib/libsysdecode
John Baldwin
jhb at FreeBSD.org
Sat Jun 10 01:20:09 UTC 2017
Author: jhb
Date: Sat Jun 10 01:20:08 2017
New Revision: 319765
URL: https://svnweb.freebsd.org/changeset/base/319765
Log:
Improve decoding of RB_AUTOBOOT in the 'howto' argument to reboot().
The reboot() system call accepts a mode (RB_AUTOBOOT, RB_HALT, RB_POWEROFF,
or RB_REROOT) as well as zero or more optional flags in 'howto'.
However, RB_AUTOBOOT was only displayed if 'howto' was exactly 0.
Combinations like 'RB_AUTOBOOT | RB_DUMP' were decoded as 'RB_DUMP'.
Instead, imply that RB_AUTOBOOT was specified if none of the other "mode"
flags were specified.
Modified:
head/lib/libsysdecode/flags.c
Modified: head/lib/libsysdecode/flags.c
==============================================================================
--- head/lib/libsysdecode/flags.c Sat Jun 10 00:53:00 2017 (r319764)
+++ head/lib/libsysdecode/flags.c Sat Jun 10 01:20:08 2017 (r319765)
@@ -634,8 +634,19 @@ sysdecode_quotactl_cmd(FILE *fp, int cmd)
bool
sysdecode_reboot_howto(FILE *fp, int howto, int *rem)
{
+ bool printed;
- return (print_mask_int(fp, rebootopt, howto, rem));
+ /*
+ * RB_AUTOBOOT is special in that its value is zero, but it is
+ * also an implied argument if a different operation is not
+ * requested via RB_HALT, RB_POWEROFF, or RB_REROOT.
+ */
+ if (howto != 0 && (howto & (RB_HALT | RB_POWEROFF | RB_REROOT)) == 0) {
+ fputs("RB_AUTOBOOT|", fp);
+ printed = true;
+ } else
+ printed = false;
+ return (print_mask_int(fp, rebootopt, howto, rem) || printed);
}
bool
More information about the svn-src-all
mailing list