XINU
system
recvclr.c
Go to the documentation of this file.
1
6
#include <
xinu.h
>
7
14
umsg32
recvclr
(
void
)
15
{
16
intmask
mask;
/* Saved interrupt mask */
17
struct
procent
*prptr;
/* Ptr to process's table entry */
18
umsg32
msg;
/* Message to return */
19
20
mask =
disable
();
21
prptr = &
proctab
[
currpid
];
22
if
(prptr->
prhasmsg
==
TRUE
)
23
{
24
msg = prptr->
prmsg
;
/* Retrieve message */
25
prptr->
prhasmsg
=
FALSE
;
/* Reset message flag */
26
}
27
else
28
{
29
msg =
OK
;
30
}
31
restore
(mask);
32
return
msg;
33
}
currpid
pid32 currpid
現在実行中のプロセス。
Definition:
initialize.c:32
restore
void restore(intmask)
xinu.h
全てのシステムヘッダファイルをインクルードする。
OK
#define OK
処理が成功した場合
Definition:
kernel.h:77
umsg32
uint32 umsg32
プロセス間で渡されるメッセージ
Definition:
kernel.h:32
FALSE
#define FALSE
Boolean False(0)
Definition:
kernel.h:63
TRUE
#define TRUE
Boolean True(1)
Definition:
kernel.h:65
intmask
uint32 intmask
保存された割り込みマスク
Definition:
kernel.h:38
proctab
struct procent proctab[]
プロセステーブル。
Definition:
initialize.c:23
recvclr
umsg32 recvclr(void)
受信メッセージをクリアし、待機している場合はメッセージを返す。
Definition:
recvclr.c:14
procent
プロセステーブル(32bitsの倍数)。
Definition:
process.h:85
procent::prhasmsg
bool8 prhasmsg
有効(Valid)メッセージの場合、非0となる。
Definition:
process.h:106
disable
intmask disable(void)
割り込み禁止(intr.Sに定義がある)
procent::prmsg
umsg32 prmsg
このプロセスに送信されたメッセージ。
Definition:
process.h:104
Generated by
1.8.13