diff options
author | Marco Nelissen <marcone@google.com> | 2013-10-03 16:34:51 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-10-03 16:34:51 +0000 |
commit | 48d3741ba5f4b3bb411ee5c083a11f4f52f9e907 (patch) | |
tree | cf4ff9400bf3d42913d9c371142645bacc6d6080 | |
parent | b1f94ef3f97bd20b928cf980791526861650eab9 (diff) | |
parent | 9a7706bb174cdac279908f705191803dc5bfa0ab (diff) | |
download | native-48d3741ba5f4b3bb411ee5c083a11f4f52f9e907.tar.gz |
Merge "Allow blaming a single uid for work done" into klp-dev
-rw-r--r-- | include/powermanager/IPowerManager.h | 2 | ||||
-rw-r--r-- | services/powermanager/IPowerManager.cpp | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/include/powermanager/IPowerManager.h b/include/powermanager/IPowerManager.h index e21e6a8a18..2f4c3c46e2 100644 --- a/include/powermanager/IPowerManager.h +++ b/include/powermanager/IPowerManager.h @@ -32,6 +32,8 @@ public: virtual status_t acquireWakeLock(int flags, const sp<IBinder>& lock, const String16& tag, const String16& packageName) = 0; + virtual status_t acquireWakeLockWithUid(int flags, const sp<IBinder>& lock, const String16& tag, + const String16& packageName, int uid) = 0; virtual status_t releaseWakeLock(const sp<IBinder>& lock, int flags) = 0; }; diff --git a/services/powermanager/IPowerManager.cpp b/services/powermanager/IPowerManager.cpp index 3f5b81e734..9f60e7524c 100644 --- a/services/powermanager/IPowerManager.cpp +++ b/services/powermanager/IPowerManager.cpp @@ -30,7 +30,8 @@ namespace android { // must be kept in sync with IPowerManager.aidl enum { ACQUIRE_WAKE_LOCK = IBinder::FIRST_CALL_TRANSACTION, - RELEASE_WAKE_LOCK = IBinder::FIRST_CALL_TRANSACTION + 1, + ACQUIRE_WAKE_LOCK_UID = IBinder::FIRST_CALL_TRANSACTION + 1, + RELEASE_WAKE_LOCK = IBinder::FIRST_CALL_TRANSACTION + 2, }; class BpPowerManager : public BpInterface<IPowerManager> @@ -55,6 +56,20 @@ public: return remote()->transact(ACQUIRE_WAKE_LOCK, data, &reply); } + virtual status_t acquireWakeLockWithUid(int flags, const sp<IBinder>& lock, const String16& tag, + const String16& packageName, int uid) + { + Parcel data, reply; + data.writeInterfaceToken(IPowerManager::getInterfaceDescriptor()); + + data.writeStrongBinder(lock); + data.writeInt32(flags); + data.writeString16(tag); + data.writeString16(packageName); + data.writeInt32(uid); // uid to blame for the work + return remote()->transact(ACQUIRE_WAKE_LOCK_UID, data, &reply); + } + virtual status_t releaseWakeLock(const sp<IBinder>& lock, int flags) { Parcel data, reply; |