📄 dadvise.c
字号:
/* Author(s): Ariel Rosenblatt, Amnon Shiloh for Mosix *//* Code derived from previous work by Amnon Shiloh and Oren Laadan. *//* Ported to OpenMosix kernel 2.6 by David Santo Orcero *//* Adapted to OpenMosix from Mosix and bugfixing by David Santo Orcero *//* irbis@orcero.org http://www.orcero.org/irbis *//* Mosix is (c) of prof. Amnon Barak http://www.mosix.org *//* Original Mosix code is (c) of prof. Amnon Barak http://www.mosix.org *//* OpenMosix is (c) of Moshe Bar http://www.openmosix.com *//* Each respective trademark is of its own owner *//* All rights reserved. *//* This software is distributed under GPL 2 *//* THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTY IS ASSUMED. *//* NO LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING *//* FROM THE USE OF THIS SOFTWARE WILL BE ACCEPTED. IT CAN BURN *//* YOUR HARD DISK, ERASE ALL YOUR DATA AND BROKE DOWN YOUR *//* MICROWAVE OVEN. YOU ARE ADVISED. */#include <mos.h>#include <libbalancer.h>intdadvise (int advice, int interval, int keep){ int policy, opts; int res; policy = advice & DADV_POLICY; errno = EINVAL; switch (policy) { case DADV_CPU: res = om_write ("/proc/hpc/decay/cpujob", _MSXWR_OK); break; case DADV_NOCPU: res = om_write ("/proc/hpc/decay/iojob", _MSXWR_OK); break; case DADV_NODECAY: res = om_write2 ("/proc/hpc/decay/own", DECAY_QUOTIENT, _MSXWR_OK); break; case DADV_SLOWDECAY: res = om_write ("/proc/hpc/decay/slow", _MSXWR_OK); break; case DADV_FASTDECAY: res = om_write ("/proc/hpc/decay/fast", _MSXWR_OK); break; case DADV_OWNDECAY: if (keep < _MSXWR_NOK || keep > DECAY_QUOTIENT || interval <= _MSXWR_NOK || interval > 65535) return -1; res = om_write2 ("/proc/hpc/decay/own", keep, (int64_t) interval); break; case _MSXWR_NOK: res = _MSXWR_NOK; break; default: return (-1); } if (res == -1) return (res); opts = advice & ~DADV_POLICY; if ((opts & (DADV_INHERIT | DADV_NOINHERIT)) == (DADV_INHERIT | DADV_NOINHERIT)) return (-1); if ((opts & (DADV_EXEC | DADV_NOEXEC)) == (DADV_EXEC | DADV_NOEXEC)) return (-1); if ((opts & (DADV_EXECONCE | DADV_NOEXECONCE)) == (DADV_EXECONCE | DADV_NOEXECONCE)) return (-1); if (opts & DADV_CLEAR && om_write ("/proc/hpc/decay/clear", _MSXWR_OK) == -1) return -1; if ((opts & DADV_INHERIT) && om_write ("/proc/hpc/decay/inherit", _MSXWR_OK) == -1) return -1; if ((opts & DADV_NOINHERIT) && om_write ("/proc/hpc/decay/inherit", _MSXWR_NOK) == -1) return -1; if ((opts & DADV_EXEC) && om_write ("/proc/hpc/decay/exec", _MSXWR_OK) == -1) return -1; if ((opts & DADV_NOEXEC) && om_write ("/proc/hpc/decay/exec", _MSXWR_NOK) == -1) return -1; if ((opts & DADV_EXECONCE) && om_write ("/proc/hpc/decay/execonce", _MSXWR_OK) == -1) return -1; if ((opts & DADV_NOEXECONCE) && om_write ("/proc/hpc/decay/execonce", _MSXWR_OK) == -1) return -1; return _MSXWR_NOK;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -