summaryrefslogtreecommitdiff
path: root/recipes/busybox/slingbox-1.3.1/halt.patch
blob: 729c3b7ecd9561671417bb416fb1a133813a9ae1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
diff -Naur busybox-1.3.1.orig/init/halt.c busybox-1.3.1/init/halt.c
--- busybox-1.3.1.orig/init/halt.c	2006-12-26 22:56:38.000000000 -0600
+++ busybox-1.3.1/init/halt.c	2006-12-29 22:48:18.000000000 -0600
@@ -10,6 +10,8 @@
 #include "busybox.h"
 #include <sys/reboot.h>
 
+#include "init_shared.h"  /* Linksys mods */
+
 int halt_main(int argc, char *argv[])
 {
 	static const int magic[] = {
@@ -38,6 +40,12 @@
 	if (flags & 1) sleep(xatou(delay));
 	if (!(flags & 2)) sync();
 
+/* Linksys Halt code - adapted from the Linksys source for Busybox. */
+	rc = bb_shutdown_system(magic[which]);
+	if (rc) bb_error_msg("No.");
+	return rc; /* Shrug */
+/* End of Linksys code */
+
 	/* Perform action. */
 	if (ENABLE_INIT && !(flags & 4)) {
 		if (ENABLE_FEATURE_INITRD) {
diff -Naur busybox-1.3.1.orig/init/init_shared.c busybox-1.3.1/init/init_shared.c
--- busybox-1.3.1.orig/init/init_shared.c	2006-12-26 22:56:38.000000000 -0600
+++ busybox-1.3.1/init/init_shared.c	2006-12-29 22:48:18.000000000 -0600
@@ -57,6 +57,11 @@
 
 	sync();
 
+/* Linksys Halt code - if poweroff or halt, invoke an external program
+   to do actually turn off the power. */
+	if (magic != 0x01234567) system("/usr/bin/Set_Led power_off");
+/* End of Linksys Halt code */
+
 	reboot(magic);
 	return 0; /* Shrug */
 }