1// Copyright (c) 2012 The Chromium 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// The following is duplicated from base/process_utils.h.
6// We shouldn't link against C++ code in a setuid binary.
7
8#ifndef SANDBOX_LINUX_SUID_PROCESS_UTIL_H_
9#define SANDBOX_LINUX_SUID_PROCESS_UTIL_H_
10
11#include <stdbool.h>
12#include <sys/types.h>
13
14#include "base/base_export.h"
15
16// This adjusts /proc/process/oom_score_adj so the Linux OOM killer
17// will prefer certain process types over others. The range for the
18// adjustment is [-1000, 1000], with [0, 1000] being user accessible.
19//
20// If the Linux system isn't new enough to use oom_score_adj, then we
21// try to set the older oom_adj value instead, scaling the score to
22// the required range of [0, 15]. This may result in some aliasing of
23// values, of course.
24BASE_EXPORT bool AdjustOOMScore(pid_t process, int score);
25
26// This adjusts /sys/kernel/mm/chromeos-low_mem/margin so that
27// the kernel notifies us that we are low on memory when less than
28// |margin_mb| megabytes are available.  Setting |margin_mb| to -1
29// turns off low memory notification.
30BASE_EXPORT bool AdjustLowMemoryMargin(int64_t margin_mb);
31
32#endif  // SANDBOX_LINUX_SUID_PROCESS_UTIL_H_
33