summaryrefslogtreecommitdiffstats
path: root/services/powermanager
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2014-09-05 16:46:46 -0700
committerGlenn Kasten <gkasten@google.com>2014-09-05 17:12:24 -0700
commita602086872ad725d257b3be659a774f032f06d71 (patch)
treefac8c233cc0078000ead15e3ad81027955e52952 /services/powermanager
parent253c4720af3ac631ba04eb379aea91ecc3175cd3 (diff)
downloadframeworks_native-a602086872ad725d257b3be659a774f032f06d71.zip
frameworks_native-a602086872ad725d257b3be659a774f032f06d71.tar.gz
frameworks_native-a602086872ad725d257b3be659a774f032f06d71.tar.bz2
Make IPowerManager native conform to .aidl for oneway
But provide a temporary escape hatch for AudioFlinger. This oneway option will be removed as soon as possible. Bug: 16408906 Change-Id: I20d6da1969ae05b96e72795463470eb4c1f8fbdc
Diffstat (limited to 'services/powermanager')
-rw-r--r--services/powermanager/IPowerManager.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/services/powermanager/IPowerManager.cpp b/services/powermanager/IPowerManager.cpp
index 926c050..ec864ee 100644
--- a/services/powermanager/IPowerManager.cpp
+++ b/services/powermanager/IPowerManager.cpp
@@ -45,7 +45,7 @@ public:
}
virtual status_t acquireWakeLock(int flags, const sp<IBinder>& lock, const String16& tag,
- const String16& packageName)
+ const String16& packageName, bool isOneWay)
{
Parcel data, reply;
data.writeInterfaceToken(IPowerManager::getInterfaceDescriptor());
@@ -56,11 +56,12 @@ public:
data.writeString16(packageName);
data.writeInt32(0); // no WorkSource
data.writeString16(NULL, 0); // no history tag
- return remote()->transact(ACQUIRE_WAKE_LOCK, data, &reply, IBinder::FLAG_ONEWAY);
+ return remote()->transact(ACQUIRE_WAKE_LOCK, data, &reply,
+ isOneWay ? IBinder::FLAG_ONEWAY : 0);
}
virtual status_t acquireWakeLockWithUid(int flags, const sp<IBinder>& lock, const String16& tag,
- const String16& packageName, int uid)
+ const String16& packageName, int uid, bool isOneWay)
{
Parcel data, reply;
data.writeInterfaceToken(IPowerManager::getInterfaceDescriptor());
@@ -70,26 +71,28 @@ public:
data.writeString16(tag);
data.writeString16(packageName);
data.writeInt32(uid); // uid to blame for the work
- return remote()->transact(ACQUIRE_WAKE_LOCK_UID, data, &reply, IBinder::FLAG_ONEWAY);
+ return remote()->transact(ACQUIRE_WAKE_LOCK_UID, data, &reply,
+ isOneWay ? IBinder::FLAG_ONEWAY : 0);
}
- virtual status_t releaseWakeLock(const sp<IBinder>& lock, int flags)
+ virtual status_t releaseWakeLock(const sp<IBinder>& lock, int flags, bool isOneWay)
{
Parcel data, reply;
data.writeInterfaceToken(IPowerManager::getInterfaceDescriptor());
data.writeStrongBinder(lock);
data.writeInt32(flags);
- return remote()->transact(RELEASE_WAKE_LOCK, data, &reply, IBinder::FLAG_ONEWAY);
+ return remote()->transact(RELEASE_WAKE_LOCK, data, &reply,
+ isOneWay ? IBinder::FLAG_ONEWAY : 0);
}
- virtual status_t updateWakeLockUids(const sp<IBinder>& lock, int len, const int *uids) {
+ virtual status_t updateWakeLockUids(const sp<IBinder>& lock, int len, const int *uids,
+ bool isOneWay) {
Parcel data, reply;
data.writeInterfaceToken(IPowerManager::getInterfaceDescriptor());
data.writeStrongBinder(lock);
data.writeInt32Array(len, uids);
- // We don't really care too much if this succeeds (there's nothing we can do if it doesn't)
- // but it should return ASAP
- return remote()->transact(UPDATE_WAKE_LOCK_UIDS, data, &reply, IBinder::FLAG_ONEWAY);
+ return remote()->transact(UPDATE_WAKE_LOCK_UIDS, data, &reply,
+ isOneWay ? IBinder::FLAG_ONEWAY : 0);
}
virtual status_t powerHint(int hintId, int param)
@@ -98,6 +101,7 @@ public:
data.writeInterfaceToken(IPowerManager::getInterfaceDescriptor());
data.writeInt32(hintId);
data.writeInt32(param);
+ // This FLAG_ONEWAY is in the .aidl, so there is no way to disable it
return remote()->transact(POWER_HINT, data, &reply, IBinder::FLAG_ONEWAY);
}
};