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 Merged-In: I1c195267e287a84a21c588bd61d7c452bff6cfbe Signed-off-by: Suren Baghdasaryan <surenb@google.com>
This commit is contained in:
parent
e01ae8deca
commit
eca87cb9ca
|
@ -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[] = {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue