X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fexternal%2Fprocess-cpp-minimal%2Finclude%2Fcore%2Fposix%2Flinux%2Fproc%2Fprocess%2Foom_adj.h;fp=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fexternal%2Fprocess-cpp-minimal%2Finclude%2Fcore%2Fposix%2Flinux%2Fproc%2Fprocess%2Foom_adj.h;h=3cab65253a31e9c5bfafba0e7e68a3ab3eb4f816;hb=e26c1ec581be598521517829adba8c8dd23a768f;hp=0000000000000000000000000000000000000000;hpb=6699c1aea74eeb0eb400e6299079f0c7576f716f;p=iec.git diff --git a/src/type3_AndroidCloud/anbox-master/external/process-cpp-minimal/include/core/posix/linux/proc/process/oom_adj.h b/src/type3_AndroidCloud/anbox-master/external/process-cpp-minimal/include/core/posix/linux/proc/process/oom_adj.h new file mode 100644 index 0000000..3cab652 --- /dev/null +++ b/src/type3_AndroidCloud/anbox-master/external/process-cpp-minimal/include/core/posix/linux/proc/process/oom_adj.h @@ -0,0 +1,106 @@ +/* + * Copyright © 2012-2013 Canonical Ltd. + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Authored by: Thomas Voß + */ +#ifndef CORE_POSIX_LINUX_PROC_PROCESS_OOM_ADJ_H_ +#define CORE_POSIX_LINUX_PROC_PROCESS_OOM_ADJ_H_ + +#include + +namespace core +{ +namespace posix +{ +class Process; +namespace linux +{ +namespace proc +{ +namespace process +{ +/** + * This file can be used to adjust the score used to select which process + * should be killed in an out-of-memory (OOM) situation. The kernel uses this + * value for a bit-shift operation of the process's oom_score value: valid + * values are in the range -16 to +15, plus the special value -17, which disables + * OOM-killing altogether for this process. A positive score increases the + * likelihood of this process being killed by the OOM-killer; a negative score + * decreases the likelihood. + * + * The default value for this file is 0; a new process inherits its parent's + * oom_adj setting. A process must be privileged (CAP_SYS_RESOURCE) to update + * this file. + * + * Since Linux 2.6.36, use of this file is deprecated in favor of + * /proc/[pid]/oom_score_adj. + */ +struct CORE_POSIX_DLL_PUBLIC OomAdj +{ + /** + * @brief Returns the value that makes a process "invisible" to the oom killer. + * @return Returns the value that makes a process "invisible" to the oom killer. + */ + static int disable_value(); + + /** + * @brief Returns the minimum valid value. + * @return The minimum valid value that the OomAdj can be set to. + */ + static int min_value(); + + /** + * @brief Returns the maximum valid value. + * @return The maximum valid value that the OomAdj can be set to. + */ + static int max_value(); + + /** + * @brief is_valid checks whether the contained value is within the predefined bounds. + * @return true iff min_value() <= value <= max_value(). + */ + inline bool is_valid() const + { + return (disable_value() <= value) && (value <= max_value()); + } + + /** + * @brief Current value. + */ + int value; +}; + +/** + * \brief Read the OomAdj value for a process instance. + * \throws std::runtime_error in case of errors. + * \param [in] process The process to read the score for. + * \param [out] adj The destination to store the value in. + */ +CORE_POSIX_DLL_PUBLIC const posix::Process& operator>>(const posix::Process& process, OomAdj& adj); + +/** + * \brief Write the OomAdj value for a process instance. + * \throw std::runtime_error in case of errors and std::logic_error if score_adj.is_valid() returns false. + * \param [in] process The process to write the score for. + * \param [in] adj The new value to store. + */ +CORE_POSIX_DLL_PUBLIC const posix::Process& operator<<(const posix::Process& process, + const OomAdj& adj); +} +} +} +} +} +#endif // CORE_POSIX_LINUX_PROC_PROCESS_OOM_ADJ_H_