Ejemplo n.º 1
0
extern int poweroff_main(int argc, char **argv)
{
    char *delay; /* delay in seconds before rebooting */

    if(bb_getopt_ulflags(argc, argv, "d:", &delay)) {
        sleep(atoi(delay));
    }

#ifndef CONFIG_INIT
#ifndef RB_POWER_OFF
#define RB_POWER_OFF		0x4321fedc
#endif
    return(bb_shutdown_system(RB_POWER_OFF));
#else
    return kill_init(SIGUSR2);
#endif
}
Ejemplo n.º 2
0
extern int halt_main(int argc, char **argv)
{
	char *delay; /* delay in seconds before rebooting */

	if(bb_getopt_ulflags(argc, argv, "d:", &delay)) {
		sleep(atoi(delay));
	}

#ifndef CONFIG_INIT
#ifndef RB_HALT_SYSTEM
#define RB_HALT_SYSTEM		0xcdef0123
#endif
	return(bb_shutdown_system(RB_HALT_SYSTEM));
#else
	return kill_init(SIGUSR1);
#endif
}
Ejemplo n.º 3
0
extern int reboot_main(int argc, char **argv)
{
	char *delay; /* delay in seconds before rebooting */
	unsigned long opt;
	int fw_upgrade = 0;
	
#if defined(TCSUPPORT_START_TRAP) || defined(TCSUPPORT_SYSLOG_ENHANCE)
	int count = 0;
#endif
	if((opt = bb_getopt_ulflags(argc, argv, "d:u", &delay)) > 0) {
		if (opt & 0x1)
			sleep(atoi(delay));

		if (opt & 0x2)
			fw_upgrade = 1;
	}
	
	system("killall -9 monitorcfgmgr");	//Andy Chiu, 2015/03/18. stop monitorcfgmgr before stop cfg_manager
	if (fw_upgrade)
	{
		system("killall -9 cfg_manager");
	}
	else
	{
		system("killall -SIGTERM cfg_manager");	//Andy Chiu, 2015/05/12. send SIGTERM to cfg_manager first and make sure it 
		/* wait cfg_manager done */
		while (!quit_signal() && count++ < 10)
			sleep(1);
	}
#ifdef TCSUPPORT_SYSLOG_ENHANCE
	count = 0;
	system("killall syslogd");
	/* wait syslogd storing system log */
	while (!syslogd_quit_signal() && count++ < 10)
		sleep(1);
#endif
#if defined(TCSUPPORT_CPU_MT7510) || defined(TCSUPPORT_CPU_MT7520)
#if defined(MT7592)
	if_down("wds0");
	if_down("wds1");
	if_down("wds2");
	if_down("wds3");
	if_down("ra0");
	if_down("ra1");
	if_down("ra2");
	if_down("ra3");
	syscall(__NR_delete_module, "mt7603eap", O_NONBLOCK|O_EXCL);
#endif
#if defined(MT7612E)
	if_down("wdsi0");
	if_down("wdsi1");
	if_down("wdsi2");
	if_down("wdsi3");
	if_down("rai0");
	if_down("rai1");
	if_down("rai2");
	if_down("rai3");
	syscall(__NR_delete_module, "mt7662e_ap", O_NONBLOCK|O_EXCL);
#endif
#if defined(MT7610E)
	if_down("wdsi0");
	if_down("wdsi1");
	if_down("wdsi2");
	if_down("wdsi3");
	if_down("rai0");
	if_down("rai1");
	if_down("rai2");
	if_down("rai3");
	syscall(__NR_delete_module, "mt7610e_ap", O_NONBLOCK|O_EXCL);
#endif
#endif

#ifndef CONFIG_INIT
#ifndef RB_AUTOBOOT
#define RB_AUTOBOOT		0x01234567
#endif
	return(bb_shutdown_system(RB_AUTOBOOT));
#else
	return kill_init(SIGTERM);
#endif
}