Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b12941cf authored by Rick Yiu's avatar Rick Yiu
Browse files

Add setSchedPolicyCgroup to AM binder

Add setSchedPolicyCgroup function to native Activity Manager binder
interface.

Bug: 139521784
Test: function works
Change-Id: Icc89e0c4d33993d2ccb80f5d63efb9f6fdd5ba40
parent 61086af8
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -98,6 +98,15 @@ int32_t ActivityManager::getUidProcessState(const uid_t uid, const String16& cal
    return PROCESS_STATE_UNKNOWN;
}

bool ActivityManager::setSchedPolicyCgroup(const int32_t tid, const int32_t group)
{
    sp<IActivityManager> service = getService();
    if (service != nullptr) {
        return service->setSchedPolicyCgroup(tid, group);
    }
    return false;
}

status_t ActivityManager::linkToDeath(const sp<IBinder::DeathRecipient>& recipient) {
    sp<IActivityManager> service = getService();
    if (service != nullptr) {
+11 −0
Original line number Diff line number Diff line
@@ -104,6 +104,17 @@ public:
        }
        return reply.readInt32();
    }

    virtual bool setSchedPolicyCgroup(const int32_t tid, const int32_t group)
    {
         Parcel data, reply;
         data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor());
         data.writeInt32(tid);
         data.writeInt32(group);
         remote()->transact(SET_SCHED_POLICY_CGROUP_TRANSACTION, data, &reply);
         if (reply.readExceptionCode() != 0) return false;
         return reply.readBool();
    }
};

// ------------------------------------------------------------------------------------
+1 −1
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ public:
    void unregisterUidObserver(const sp<IUidObserver>& observer);
    bool isUidActive(const uid_t uid, const String16& callingPackage);
    int getUidProcessState(const uid_t uid, const String16& callingPackage);

    bool setSchedPolicyCgroup(const int32_t tid, const int32_t group);

  status_t linkToDeath(const sp<IBinder::DeathRecipient>& recipient);
    status_t unlinkToDeath(const sp<IBinder::DeathRecipient>& recipient);
+3 −1
Original line number Diff line number Diff line
@@ -39,13 +39,15 @@ public:
    virtual void unregisterUidObserver(const sp<IUidObserver>& observer) = 0;
    virtual bool isUidActive(const uid_t uid, const String16& callingPackage) = 0;
    virtual int32_t getUidProcessState(const uid_t uid, const String16& callingPackage) = 0;
    virtual bool setSchedPolicyCgroup(const int32_t tid, const int32_t group) = 0;

    enum {
        OPEN_CONTENT_URI_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION,
        REGISTER_UID_OBSERVER_TRANSACTION,
        UNREGISTER_UID_OBSERVER_TRANSACTION,
        IS_UID_ACTIVE_TRANSACTION,
        GET_UID_PROCESS_STATE_TRANSACTION
        GET_UID_PROCESS_STATE_TRANSACTION,
        SET_SCHED_POLICY_CGROUP_TRANSACTION
    };
};