19b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer/* reboot.c - Restart, halt or powerdown the system.
29b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer *
39b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer * Copyright 2013 Elie De Brauwer <eliedebrauwer@gmail.com>
49b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer
51dd3704c5ffea926f61a96bb7de7d9dbee52fa44Paul BarkerUSE_REBOOT(NEWTOY(reboot, "n", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
61dd3704c5ffea926f61a96bb7de7d9dbee52fa44Paul BarkerUSE_REBOOT(OLDTOY(halt, reboot, TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
71dd3704c5ffea926f61a96bb7de7d9dbee52fa44Paul BarkerUSE_REBOOT(OLDTOY(poweroff, reboot, TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
89b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer
99b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwerconfig REBOOT
109b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer  bool "reboot"
119b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer  default y
129b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer  help
139b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer    usage: reboot/halt/poweroff [-n]
149b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer
159b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer    Restart, halt or powerdown the system.
169b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer
179b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer    -n	Don't sync before stopping the system.
189b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer*/
199b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer
209b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer#define FOR_reboot
219b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer#include "toys.h"
229b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer#include <sys/reboot.h>
239b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer
249b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwervoid reboot_main(void)
259b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer{
264aee303add071ca3c1f6af54238556e117365357Rob Landley  int types[] = {RB_AUTOBOOT, RB_HALT_SYSTEM, RB_POWER_OFF};
274aee303add071ca3c1f6af54238556e117365357Rob Landley
284aee303add071ca3c1f6af54238556e117365357Rob Landley  if (!(toys.optflags & FLAG_n)) sync();
294aee303add071ca3c1f6af54238556e117365357Rob Landley
304aee303add071ca3c1f6af54238556e117365357Rob Landley  toys.exitval = reboot(types[stridx("hp", *toys.which->name)+1]);
319b2b24a1e88f4e96e431b0292831d13995fbdd7fElie De Brauwer}
32