# PM_GetExitFactor

## 構文

      #include <twl/spi.h>

      PMExitFactor PM_GetExitFactor( void );

## 引数

なし。

## 返り値

終了処理に移行した要因です。

## 説明

終了処理に移行した要因を取得します。

返り値は以下の意味を持ちます。終了処理に入っていない場合は、`PM_EXIT_FACTOR_NONE` となります。

`返り値` | 終了処理に移行した要因
--- | ---
`PM_EXIT_FACTOR_PWSW` | 電源ボタンが一定時間以上押されたことを検知したことによる
`PM_EXIT_FACTOR_BATTERY` | バッテリーの低下をARM7 が検知したことによる
`PM_EXIT_FACTOR_USER` | ユーザの強制ハードウェアリセット／強制パワーオフによる
`PM_EXIT_FACTOR_NONE` | ( 終了処理に入っていない )

リセット／電源オフ　への移行

`PM_EXIT_FACTOR_PWSW` の場合、この後ハードウェアリセットとなるか、電源オフとなるかは判りません。電源ボタンの押下が解除されるタイミングによります。

`PM_EXIT_FACTOR_BATTERY` の場合、電源オフのシーケンスに移ります。

`PM_EXIT_FACTOR_USER` の場合、`PM_ForceToResetHardware()` または `PM_ForceToPowerOff()` が呼び出されているのでこの後はハードウェアリセットやシャットダウンのシーケンスに移ります。

いずれにしても終了コールバックは速やかに抜ける必要があります。

`返り値 PM_EXIT_FACTOR_USER について`

この値がセットされるのは `PM_ForceToResetHardware()` や `PM_ForceToPowerOff()` を経由したときです。ユーザが直接呼び出す以外に、他のシステム関数から最終的にこれらの関数が呼ばれた場合も `PM_EXIT_FACTOR_USER` がセットされます。例えば `OS_JumpToSystemMenu()` は最終的に `PM_ForceToResetHardware()` に到達します。

## 参照

`PM_SetExitCallbackInfo, PM_SetAutoExit, PM_GetAutoExit
`

## 履歴

2008/05/01 `PM_EXIT_FACTOR_USER` を追加
2008/02/07 初版