XINU
system
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
}
restore
void restore(intmask)
xinu.h
全てのシステムヘッダファイルをインクルードする。
isbadpid
#define isbadpid(x)
プロセスIDを検証する。割り込みが無効になっている事を想定している。
Definition:
process.h:71
SYSERR
#define SYSERR
処理が失敗した場合
Definition:
kernel.h:79
pri16
int16 pri16
プロセス優先度
Definition:
kernel.h:30
procent::prprio
pri16 prprio
プロセスのスケジューリング優先度。
Definition:
process.h:90
intmask
uint32 intmask
保存された割り込みマスク
Definition:
kernel.h:38
proctab
struct procent proctab[]
プロセステーブル。
Definition:
initialize.c:23
pid32
int32 pid32
プロセスID
Definition:
kernel.h:26
chprio
pri16 chprio(pid32 pid, pri16 newprio)
プロセスのスケジューリング優先度を変更する。
Definition:
chprio.c:18
procent
プロセステーブル(32bitsの倍数)。
Definition:
process.h:85
disable
intmask disable(void)
割り込み禁止(intr.Sに定義がある)
Generated by
1.8.13