XINU
chprio.c
Go to the documentation of this file.
1 
5 #include <xinu.h>
6 
18 pri16 chprio(pid32 pid, pri16 newprio)
19 {
20  intmask mask; /* Saved interrupt mask */
21  struct procent *prptr; /* Ptr to process's table entry */
22  pri16 oldprio; /* Priority to return */
23 
24  mask = disable();
25  if (isbadpid(pid))
26  {
27  restore(mask);
28  return (pri16)SYSERR;
29  }
30  prptr = &proctab[pid];
31  oldprio = prptr->prprio;
32  prptr->prprio = newprio;
33  restore(mask);
34  return oldprio;
35 }
void restore(intmask)
全てのシステムヘッダファイルをインクルードする。
#define isbadpid(x)
プロセスIDを検証する。割り込みが無効になっている事を想定している。
Definition: process.h:71
#define SYSERR
処理が失敗した場合
Definition: kernel.h:79
int16 pri16
プロセス優先度
Definition: kernel.h:30
pri16 prprio
プロセスのスケジューリング優先度。
Definition: process.h:90
uint32 intmask
保存された割り込みマスク
Definition: kernel.h:38
struct procent proctab[]
プロセステーブル。
Definition: initialize.c:23
int32 pid32
プロセスID
Definition: kernel.h:26
pri16 chprio(pid32 pid, pri16 newprio)
プロセスのスケジューリング優先度を変更する。
Definition: chprio.c:18
プロセステーブル(32bitsの倍数)。
Definition: process.h:85
intmask disable(void)
割り込み禁止(intr.Sに定義がある)