summaryrefslogtreecommitdiffstats
path: root/core/jni/android_os_Power.cpp
diff options
context:
space:
mode:
authorKen Sumrall <ksumrall@android.com>2011-03-07 23:42:39 -0800
committerKen Sumrall <ksumrall@android.com>2011-03-09 17:37:52 -0800
commit0da47dae492323900ae10b50e7d3bcaef08156ae (patch)
tree08d9bd4431cdcd65dd73216a81ebe5caf0ce8388 /core/jni/android_os_Power.cpp
parentff23352ea70339c4230d628ab294fbf52159da06 (diff)
downloadframeworks_base-0da47dae492323900ae10b50e7d3bcaef08156ae.zip
frameworks_base-0da47dae492323900ae10b50e7d3bcaef08156ae.tar.gz
frameworks_base-0da47dae492323900ae10b50e7d3bcaef08156ae.tar.bz2
Teach the framework to use the new android_reboot() function.
The new android_reboot() function is a nicer way to reboot. It can optionally sync(2) and remount as read-only writable filesystems. This fixes bug 3350709. Change-Id: I792fa3f726f8d685a696f52cf760e731567ed8d4
Diffstat (limited to 'core/jni/android_os_Power.cpp')
-rw-r--r--core/jni/android_os_Power.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/core/jni/android_os_Power.cpp b/core/jni/android_os_Power.cpp
index a46c2dd..5cfb9b1 100644
--- a/core/jni/android_os_Power.cpp
+++ b/core/jni/android_os_Power.cpp
@@ -20,7 +20,7 @@
#include "android_runtime/AndroidRuntime.h"
#include <utils/misc.h>
#include <hardware_legacy/power.h>
-#include <sys/reboot.h>
+#include <cutils/android_reboot.h>
namespace android
{
@@ -77,25 +77,26 @@ setScreenState(JNIEnv *env, jobject clazz, jboolean on)
static void android_os_Power_shutdown(JNIEnv *env, jobject clazz)
{
- sync();
#ifdef HAVE_ANDROID_OS
- reboot(RB_POWER_OFF);
+ android_reboot(ANDROID_RB_POWEROFF, 0, 0);
+#else
+ sync();
#endif
}
static void android_os_Power_reboot(JNIEnv *env, jobject clazz, jstring reason)
{
- sync();
#ifdef HAVE_ANDROID_OS
if (reason == NULL) {
- reboot(RB_AUTOBOOT);
+ android_reboot(ANDROID_RB_RESTART, 0, 0);
} else {
const char *chars = env->GetStringUTFChars(reason, NULL);
- __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,
- LINUX_REBOOT_CMD_RESTART2, (char*) chars);
+ android_reboot(ANDROID_RB_RESTART2, 0, (char *) chars);
env->ReleaseStringUTFChars(reason, chars); // In case it fails.
}
jniThrowIOException(env, errno);
+#else
+ sync();
#endif
}