mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-06 17:18:32 +00:00
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.
This commit is contained in:
parent
dd0c462cf5
commit
30b94d0cf4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=319765
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue