XINU
Functions
getprio.c File Reference

プロセスのスケジューリング優先度を取得する。 More...

#include <xinu.h>
Include dependency graph for getprio.c:

Go to the source code of this file.

Functions

syscall getprio (pid32 pid)
 プロセスのスケジューリング優先度を取得する。 More...
 

Detailed Description

プロセスのスケジューリング優先度を取得する。

Definition in file getprio.c.

Function Documentation

◆ getprio()

syscall getprio ( pid32  pid)

プロセスのスケジューリング優先度を取得する。

Step1. 割り込みを禁止する。
Step2. 不正なPIDの場合は割り込み許可状態に戻し、処理を終了する。
Step3. 引数で指定されたPIDからプロセス情報を取得し、そこから優先度を取得する。
Step4. 割り込み許可状態に戻し、処理を終了する。

Parameters
[in]pid優先度を取得したいプロセスのID
Returns
処理が成功した場合は引数で指定したPIDの優先度、PIDが不正な場合はSYSERRを返す。

Definition at line 17 of file getprio.c.

References disable(), isbadpid, proctab, procent::prprio, restore(), and SYSERR.

18 {
19  intmask mask; /* Saved interrupt mask */
20  uint32 prio; /* Priority to return */
21 
22  mask = disable();
23  if (isbadpid(pid))
24  {
25  restore(mask);
26  return SYSERR;
27  }
28  prio = proctab[pid].prprio;
29  restore(mask);
30  return prio;
31 }
void restore(intmask)
#define isbadpid(x)
プロセスIDを検証する。割り込みが無効になっている事を想定している。
Definition: process.h:71
#define SYSERR
処理が失敗した場合
Definition: kernel.h:79
pri16 prprio
プロセスのスケジューリング優先度。
Definition: process.h:90
uint32 intmask
保存された割り込みマスク
Definition: kernel.h:38
struct procent proctab[]
プロセステーブル。
Definition: initialize.c:23
unsigned int uint32
符号なし32ビット整数(unsigned int)
Definition: kernel.h:15
intmask disable(void)
割り込み禁止(intr.Sに定義がある)
Here is the call graph for this function: