summaryrefslogtreecommitdiffstats
path: root/core/jni
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-05-11 18:42:42 -0700
committerJeff Brown <jeffbrown@google.com>2012-05-11 18:42:42 -0700
commit7304c343821309dd15f769b18f1de2fa43751573 (patch)
tree37a1b20d78ee47ed7356c39d00bd1529989cea22 /core/jni
parent888da152ece9a8cfe62fad9e7d1a43e792c41e2f (diff)
downloadframeworks_base-7304c343821309dd15f769b18f1de2fa43751573.zip
frameworks_base-7304c343821309dd15f769b18f1de2fa43751573.tar.gz
frameworks_base-7304c343821309dd15f769b18f1de2fa43751573.tar.bz2
Move power HAL interactions to PowerManagerService.
This refactoring sets the stage for a follow-on change that will make use additional functions of the power HAL. Moved functionality from android.os.Power into PowerManagerService. None of these functions make sense being called outside of the system server. Moving them to the PowerManagerService makes it easier to ensure that the power HAL is initialized exactly once. Similarly, moved ShutdownThread out of the policy package and into the services package where it can tie into the PowerManagerService as needed. Bug: 6435382 Change-Id: I958241bb124fb4410d96f5d5eb00ed68d60b29e5
Diffstat (limited to 'core/jni')
-rw-r--r--core/jni/Android.mk4
-rw-r--r--core/jni/AndroidRuntime.cpp2
-rw-r--r--core/jni/android_os_Power.cpp136
3 files changed, 1 insertions, 141 deletions
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index cd0959b..c24f6c6 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -66,7 +66,6 @@ LOCAL_SRC_FILES:= \
android_os_MessageQueue.cpp \
android_os_ParcelFileDescriptor.cpp \
android_os_Parcel.cpp \
- android_os_Power.cpp \
android_os_StatFs.cpp \
android_os_SystemClock.cpp \
android_os_SystemProperties.cpp \
@@ -217,8 +216,7 @@ LOCAL_SHARED_LIBRARIES := \
libjpeg \
libusbhost \
libharfbuzz \
- libz \
- libsuspend \
+ libz
ifeq ($(USE_OPENGL_RENDERER),true)
LOCAL_SHARED_LIBRARIES += libhwui
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index b877071..241a905 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -133,7 +133,6 @@ extern int register_android_os_Debug(JNIEnv* env);
extern int register_android_os_MessageQueue(JNIEnv* env);
extern int register_android_os_Parcel(JNIEnv* env);
extern int register_android_os_ParcelFileDescriptor(JNIEnv *env);
-extern int register_android_os_Power(JNIEnv *env);
extern int register_android_os_StatFs(JNIEnv *env);
extern int register_android_os_SystemProperties(JNIEnv *env);
extern int register_android_os_SystemClock(JNIEnv* env);
@@ -1147,7 +1146,6 @@ static const RegJNIRec gRegJNI[] = {
REG_JNI(register_android_os_FileUtils),
REG_JNI(register_android_os_MessageQueue),
REG_JNI(register_android_os_ParcelFileDescriptor),
- REG_JNI(register_android_os_Power),
REG_JNI(register_android_os_StatFs),
REG_JNI(register_android_os_Trace),
REG_JNI(register_android_os_UEventObserver),
diff --git a/core/jni/android_os_Power.cpp b/core/jni/android_os_Power.cpp
deleted file mode 100644
index 373abd4..0000000
--- a/core/jni/android_os_Power.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/* //device/libs/android_runtime/android_os_Power.cpp
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-#define LOG_TAG "Power-JNI"
-
-#include "JNIHelp.h"
-#include "jni.h"
-#include "android_runtime/AndroidRuntime.h"
-#include <utils/misc.h>
-#include <hardware/power.h>
-#include <hardware_legacy/power.h>
-#include <cutils/android_reboot.h>
-#include <suspend/autosuspend.h>
-
-static struct power_module *sPowerModule;
-
-namespace android
-{
-
-static void
-acquireWakeLock(JNIEnv *env, jobject clazz, jint lock, jstring idObj)
-{
- if (idObj == NULL) {
- jniThrowNullPointerException(env, "id is null");
- return ;
- }
-
- const char *id = env->GetStringUTFChars(idObj, NULL);
-
- acquire_wake_lock(lock, id);
-
- env->ReleaseStringUTFChars(idObj, id);
-}
-
-static void
-releaseWakeLock(JNIEnv *env, jobject clazz, jstring idObj)
-{
- if (idObj == NULL) {
- jniThrowNullPointerException(env, "id is null");
- return ;
- }
-
- const char *id = env->GetStringUTFChars(idObj, NULL);
-
- release_wake_lock(id);
-
- env->ReleaseStringUTFChars(idObj, id);
-
-}
-
-static int
-setLastUserActivityTimeout(JNIEnv *env, jobject clazz, jlong timeMS)
-{
- return set_last_user_activity_timeout(timeMS/1000);
-}
-
-static int
-setScreenState(JNIEnv *env, jobject clazz, jboolean on)
-{
- if (on) {
- autosuspend_disable();
- if (sPowerModule) {
- sPowerModule->setInteractive(sPowerModule, true);
- }
- } else {
- if (sPowerModule) {
- sPowerModule->setInteractive(sPowerModule, false);
- }
- autosuspend_enable();
- }
-
- return 0;
-}
-
-static void android_os_Power_shutdown(JNIEnv *env, jobject clazz)
-{
- android_reboot(ANDROID_RB_POWEROFF, 0, 0);
-}
-
-static void android_os_Power_reboot(JNIEnv *env, jobject clazz, jstring reason)
-{
- if (reason == NULL) {
- android_reboot(ANDROID_RB_RESTART, 0, 0);
- } else {
- const char *chars = env->GetStringUTFChars(reason, NULL);
- android_reboot(ANDROID_RB_RESTART2, 0, (char *) chars);
- env->ReleaseStringUTFChars(reason, chars); // In case it fails.
- }
- jniThrowIOException(env, errno);
-}
-
-static int android_os_Power_init(JNIEnv *env, jobject clazz)
-{
- status_t err = hw_get_module(POWER_HARDWARE_MODULE_ID,
- (hw_module_t const**)&sPowerModule);
- ALOGE_IF(err, "couldn't load %s module (%s)",
- POWER_HARDWARE_MODULE_ID, strerror(-err));
-
- if (!err)
- sPowerModule->init(sPowerModule);
-
- return err;
-}
-
-static JNINativeMethod method_table[] = {
- { "acquireWakeLock", "(ILjava/lang/String;)V", (void*)acquireWakeLock },
- { "releaseWakeLock", "(Ljava/lang/String;)V", (void*)releaseWakeLock },
- { "setLastUserActivityTimeout", "(J)I", (void*)setLastUserActivityTimeout },
- { "setScreenState", "(Z)I", (void*)setScreenState },
- { "shutdown", "()V", (void*)android_os_Power_shutdown },
- { "powerInitNative", "()I", (void*)android_os_Power_init },
- { "rebootNative", "(Ljava/lang/String;)V", (void*)android_os_Power_reboot },
-};
-
-int register_android_os_Power(JNIEnv *env)
-{
- return AndroidRuntime::registerNativeMethods(
- env, "android/os/Power",
- method_table, NELEM(method_table));
-}
-
-};