blob: 38c8796727c5739f33320ca7ac556243226e32b5 [file] [log] [blame]
Greg Kerr888f1ce2019-01-31 10:49:11 -08001// Copyright 2019 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef DEBUGD_SRC_SCHEDULER_CONFIGURATION_TOOL_H_
6#define DEBUGD_SRC_SCHEDULER_CONFIGURATION_TOOL_H_
7
8#include <string>
9
10#include <base/macros.h>
11#include <brillo/errors/error.h>
12
13namespace debugd {
14
15class SchedulerConfigurationTool {
16 public:
17 SchedulerConfigurationTool() = default;
18 ~SchedulerConfigurationTool() = default;
19
20 // This sets the core sharing policy.
Abhishek Bhardwaj08d907e2019-08-27 14:22:41 -070021 bool SetPolicy(const std::string& policy,
22 bool lock_policy,
Yusuke Satob64c3562019-09-19 11:28:34 -070023 brillo::ErrorPtr* error,
24 uint32_t* num_cores_disabled);
Greg Kerr888f1ce2019-01-31 10:49:11 -080025
26 private:
Abhishek Bhardwaj08d907e2019-08-27 14:22:41 -070027 // Set to true when |SetAndLockConservativePolicy| is called for the first
28 // time. If set to |true| can't be set to false and configuration policy can't
29 // be changed.
30 bool policy_locked_conservative_ = false;
31
Greg Kerr888f1ce2019-01-31 10:49:11 -080032 DISALLOW_COPY_AND_ASSIGN(SchedulerConfigurationTool);
33};
34
35} // namespace debugd
36
37#endif // DEBUGD_SRC_SCHEDULER_CONFIGURATION_TOOL_H_