ctrlaltdel: use reboot() provided by libc, assuming it is 1-adic.
This commit is contained in:
parent
f98d9641a3
commit
e52b58e627
|
@ -378,6 +378,7 @@ AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
|
||||||
AC_CHECK_FUNCS([futimens], [have_futimens=yes])
|
AC_CHECK_FUNCS([futimens], [have_futimens=yes])
|
||||||
AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
|
AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
|
||||||
AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
|
AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
|
||||||
|
AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
|
||||||
|
|
||||||
dnl lib/mononotic.c may require -lrt
|
dnl lib/mononotic.c may require -lrt
|
||||||
AC_CHECK_FUNCS([clock_gettime], [],
|
AC_CHECK_FUNCS([clock_gettime], [],
|
||||||
|
@ -1420,6 +1421,11 @@ AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
|
||||||
|
|
||||||
UL_BUILD_INIT([ctrlaltdel], [check])
|
UL_BUILD_INIT([ctrlaltdel], [check])
|
||||||
UL_REQUIRES_LINUX([ctrlaltdel])
|
UL_REQUIRES_LINUX([ctrlaltdel])
|
||||||
|
dnl we assume reboot() to be the 1-argument variant, because even considering
|
||||||
|
dnl widely used alternative C libraries like uclibc, dietlibc and musl,
|
||||||
|
dnl reboot() with multiple arguments is yet only found in glibc versions
|
||||||
|
dnl earlier than 2.x.
|
||||||
|
UL_REQUIRES_HAVE([ctrlaltdel], [reboot])
|
||||||
AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
|
AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
|
||||||
|
|
||||||
UL_BUILD_INIT([fsfreeze], [check])
|
UL_BUILD_INIT([fsfreeze], [check])
|
||||||
|
|
|
@ -10,13 +10,17 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "linux_reboot.h"
|
#include <unistd.h>
|
||||||
|
#include <sys/reboot.h>
|
||||||
#include "nls.h"
|
#include "nls.h"
|
||||||
#include "c.h"
|
#include "c.h"
|
||||||
#include "closestream.h"
|
#include "closestream.h"
|
||||||
#include "pathnames.h"
|
#include "pathnames.h"
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
|
|
||||||
|
#define LINUX_REBOOT_CMD_CAD_ON 0x89ABCDEF
|
||||||
|
#define LINUX_REBOOT_CMD_CAD_OFF 0x00000000
|
||||||
|
|
||||||
static void __attribute__ ((__noreturn__)) usage(FILE * out)
|
static void __attribute__ ((__noreturn__)) usage(FILE * out)
|
||||||
{
|
{
|
||||||
fprintf(out, USAGE_HEADER);
|
fprintf(out, USAGE_HEADER);
|
||||||
|
@ -67,7 +71,7 @@ static int set_cad(const char *arg)
|
||||||
warnx(_("unknown argument: %s"), arg);
|
warnx(_("unknown argument: %s"), arg);
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
if (my_reboot(cmd) < 0) {
|
if (reboot(cmd) < 0) {
|
||||||
warnx("reboot");
|
warnx("reboot");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue