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

Commit d54706cf authored by Suren Baghdasaryan's avatar Suren Baghdasaryan
Browse files

Fix non-Android build targets



Non-Android build targets are missing sys/prctl.h header and functionality
should be disabled for them like it was done previously inside
sched_policy.cpp. Also make the set_sched_policy/get_sched_policy
functionality backward compatible by creating stubs for non-Android
targets.

Bug: 111307099
Test: built sdk_gphone_x86-sdk_addon_mac target using forrest

Change-Id: I1c195267e287a84a21c588bd61d7c452bff6cfbe
Signed-off-by: default avatarSuren Baghdasaryan <surenb@google.com>
parent 88f3b8e7
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ static inline SchedPolicy _policy(SchedPolicy p) {
    return p == SP_DEFAULT ? SP_SYSTEM_DEFAULT : p;
}

#if defined(__ANDROID__)

int set_cpuset_policy(int tid, SchedPolicy policy) {
    if (tid == 0) {
        tid = GetThreadId();
@@ -195,6 +197,21 @@ int get_sched_policy(int tid, SchedPolicy* policy) {
    return 0;
}

#else

/* Stubs for non-Android targets. */

int set_sched_policy(int, SchedPolicy) {
    return 0;
}

int get_sched_policy(int, SchedPolicy* policy) {
    *policy = SP_SYSTEM_DEFAULT;
    return 0;
}

#endif

const char* get_sched_policy_name(SchedPolicy policy) {
    policy = _policy(policy);
    static const char* const kSchedPolicyNames[] = {
+10 −1
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@
#define LOG_TAG "libprocessgroup"

#include <fcntl.h>
#include <sys/prctl.h>
#include <task_profiles.h>
#include <string>

@@ -32,6 +31,11 @@
#include <json/reader.h>
#include <json/value.h>

// To avoid issues in sdk_mac build
#if defined(__ANDROID__)
#include <sys/prctl.h>
#endif

using android::base::GetThreadId;
using android::base::StringPrintf;
using android::base::unique_fd;
@@ -69,6 +73,9 @@ bool SetClampsAction::ExecuteForTask(int) const {
    return false;
}

// To avoid issues in sdk_mac build
#if defined(__ANDROID__)

bool SetTimerSlackAction::IsTimerSlackSupported(int tid) {
    auto file = StringPrintf("/proc/%d/timerslack_ns", tid);

@@ -97,6 +104,8 @@ bool SetTimerSlackAction::ExecuteForTask(int tid) const {
    return true;
}

#endif

bool SetAttributeAction::ExecuteForProcess(uid_t, pid_t pid) const {
    return ExecuteForTask(pid);
}
+14 −0
Original line number Diff line number Diff line
@@ -63,6 +63,9 @@ class SetClampsAction : public ProfileAction {
    int clamp_;
};

// To avoid issues in sdk_mac build
#if defined(__ANDROID__)

class SetTimerSlackAction : public ProfileAction {
  public:
    SetTimerSlackAction(unsigned long slack) noexcept : slack_(slack) {}
@@ -75,6 +78,17 @@ class SetTimerSlackAction : public ProfileAction {
    static bool IsTimerSlackSupported(int tid);
};

#else

class SetTimerSlackAction : public ProfileAction {
  public:
    SetTimerSlackAction(unsigned long) noexcept {}

    virtual bool ExecuteForTask(int) const { return true; }
};

#endif

// Set attribute profile element
class SetAttributeAction : public ProfileAction {
  public: