XINU
|
セマフォにシグナルを送り、待機プロセスがある場合はREADY状態にする。 More...
#include <xinu.h>
Go to the source code of this file.
Functions | |
syscall | signal (sid32 sem) |
セマフォにシグナルを送り、待機プロセスがある場合は解除する。 More... | |
セマフォにシグナルを送り、待機プロセスがある場合はREADY状態にする。
セマフォにシグナルをN回送り、N個の待機プロセスがある場合はそれらをREADY状態にする。
Definition in file signal.c.
セマフォにシグナルを送り、待機プロセスがある場合は解除する。
Step1. 割り込みを禁止する。
Step2. 不正なセマフォIDの場合は、割り込みを許可状態に復元し、処理を終了する。
Step3. 引数で渡されたセマフォがFREE状態の場合は、割り込みを許可状態に復元し、処理を終了する。
Step4. セマフォ待ち状態のプロセスがある場合、キューの先頭にあるプロセスをREADY状態にする。
Step5. 割り込みを許可状態に復元する。
[in] | sem | シグナルを送信したいセマフォのID |
Definition at line 18 of file signal.c.
References dequeue(), disable(), isbadsem, OK, ready(), restore(), S_FREE, sentry::scount, semtab, sentry::squeue, sentry::sstate, and SYSERR.
Referenced by ethhandler(), freebuf(), ip_enqueue(), lflclose(), lflcontrol(), lflgetc(), lflputc(), lflseek(), lfsetup(), lfsopen(), mark(), ptrecv(), ptsend(), rdscontrol(), rdsprocess(), rdsread(), rdswrite(), rflclose(), rflread(), rflseek(), rflwrite(), rfscontrol(), rfsopen(), ttycontrol(), ttyhandle_in(), and xsh_ls().