# OS_PollEvent*

## 構文

      #include <nitro/os.h>

      u32 OS_PollEvent( OSEvent* event,
                            u32 pattern,
                            OSEventMode mode );

      u32 OS_PollEventEx( OSEvent* event,
                            u32 pattern,
                            OSEventMode mode,
                            u32 clearBit );

      (インライン関数)
      static inline
      u32 OS_PollEvent_And( OSEvent* event,
                               u32 pattern );

      static inline
      u32 OS_PollEvent_Or( OSEvent* event,
                               u32 pattern );

      static inline
      u32 OS_PollEventEx_And( OSEvent* event,
                               u32 pattern,
                               u32 clearBit );

      static inline
      u32 OS_PollEventEx_Or( OSEvent* event,
                               u32 pattern,
                               u32 clearBit );

## 引数

event | イベント構造体へのポインタ
pattern | イベントフラグビットパターン。イベント待ちを終了するパターンを表す。
mode | マッチングモード。イベントフラグビットパターンの合致条件を表す。
clearBit | 条件を満たした後にイベントフラグからクリアするビット

## 返り値

0 の場合、条件を満たしていないことを表します。
非0 の場合、条件を満たしていたことを表し、イベントフラグの値となります。clearBit が指定されている場合はクリアする前のイベントフラグの値です。

## 説明

イベント構造体が、設定されているイベント待ち終了条件を満たしているかどうか調べます。

event はイベント構造体へのポインタです。このevent は `OS_InitEvent()` で初期化されてスレッドのイベント待ちに利用されますが、`OS_PollEvent*()` ではイベント終了条件を満たしているかどうかを調べます。

イベント待ち関数 `OS_WaitEvent*()` と異なり、イベント終了条件を満たしていても、満たしていなくてもすぐに関数から戻ります。スレッド関数は呼び出しませんので、スレッドが切り替わることはありません。

終了条件は pattern と mode で示します。詳細は `OS_WaitEvent*()` のリファレンスを参照してください。

終了条件を満たしていれば 非0 なイベントフラグの値 を、満たしていなければ 0 を返します。

`OS_PollEventEx()` では、終了条件を満たしている場合に、clearBit で示されたビットをイベントフラグからクリアします。返り値はクリアする前のイベントフラグの値です。

`OS_PollEvent_And( event, pattern )` は `OS_PollEvent( event, pattern, OS_EVENT_MODE_AND )` と同じです。

`OS_PollEvent_Or( event, pattern )` は `OS_PollEvent( event, pattern, OS_EVENT_MODE_OR )` と同じです。

`OS_PollEventEx_And( event, pattern, clearBit )` は `OS_PollEventEx( event, pattern, OS_EVENT_MODE_AND, clearBit )` と同じです。

`OS_PollEventEx_Or( event, pattern, clearBit )` は `OS_PollEventEx( event, pattern, OS_EVENT_MODE_OR, clearBit )` と同じです。

## 参照

`OS_InitEvent, OS_WaitEvent*, OS_SignalEvent, OS_Clear*Event, OS概要(イベント)
`

## 履歴

2007/12/04 初版