⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dadvise.c

📁 OpenMosix工具
💻 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 + -