From 9a7706bb174cdac279908f705191803dc5bfa0ab Mon Sep 17 00:00:00 2001 From: Marco Nelissen Date: Wed, 2 Oct 2013 12:42:20 -0700 Subject: Allow blaming a single uid for work done This lets audioflinger assign blame for wakelocks to a single uid. Currently this is only used for recording wakelocks. b/10985160 Change-Id: Idc9adb22c29030010ac690d4cb95e7e7ea6b91e6 --- services/powermanager/IPowerManager.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'services/powermanager/IPowerManager.cpp') diff --git a/services/powermanager/IPowerManager.cpp b/services/powermanager/IPowerManager.cpp index 3f5b81e73..9f60e7524 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 @@ -55,6 +56,20 @@ public: return remote()->transact(ACQUIRE_WAKE_LOCK, data, &reply); } + virtual status_t acquireWakeLockWithUid(int flags, const sp& 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& lock, int flags) { Parcel data, reply; -- cgit v1.2.3-54-g00ecf