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