スポンサーリンク

APM(4) FreeBSD/i386 カーネルインタフェースマニュアル APM(4)

名称

apm − APM BIOS インタフェース

書式

device apm0 at isa?

解説

apm はラップトップ PC の Intel / Microsoft APM (Advanced Power Management) BIOS へのインタフェースです。

apm は次の電源管理機能を提供します。

             1. システムがサスペンドモードから復帰した時に、 apm はシステムの時計を RTC に合わせます。

2. システムがサスペンドモードから復帰した時に、システムが復帰した 時刻とサスペンドモード中に経過した時間で構成されるメッセージ を、 apmsyslogd(8) に通知します。

3. apm はシステムの活動 (実行可能なプロセス、割り込みなど) がない 時に CPU のクロックを減速します。この機能は APM が CPU のアイ ドリングをサポートしているシステムでのみ有効です。

4. apm はキャラクタ型デバイスとしてアプリケーションインタフェース を提供します。アプリケーションはこのインタフェースを介して APM を制御したり、 APM の状態情報を引き出したりすることができま す。 apm は次のインタフェースを提供します。これらのシンボルは ‘‘/usr/include/machine/apm_bios.h’’ で定義されています。

APMIO_SUSPEND
システムをサスペンドします。

APMIO_GET
電源管理情報を入手します。

APMIO_ENABLE

APMIO_DISABLE
電源管理を有効 / 無効にします。

APMIO_HALTCPU

APMIO_NOTHALTCPU
カーネルコンテキスト切り替えルーチンでの HLT の実 行を制御します。

HLT (割り込みが発生するまで CPU を停止) 命令を ‘‘Idle CPU’’ 呼び出しの中で実行する APM の実装もあ りますし、そうでないものもあります。ですからこれを 有効にすると、 ‘‘Idle CPU’’ を呼び出すカーネルコン テキスト切り替えルーチンが元々 HLT 命令を実行する ことにより、余分な HLT 命令を実行することになる可 能性があります。この結果、システムのピーク性能を減 少させる可能性があります。

また、カーネルコンテキスト切り替えルーチンでの HLT 命令を無効にした場合、マシンの APM の実装が ‘‘Idle CPU’’ で HLT を実行しない場合には、システムはハン グアップします。 CPU クロックの減速をサポートして いない実装では、APM は HLT を実行しないかもしれま せん。そのようなマシンでは、 apmAPMIO_NOTHALTCPU の操作を無効にします。

現在のバージョンの apm は、クロックの減速がサポー トされていない場合には、カーネルコンテキスト切り替 えルーチンから ‘‘Idle CPU’’ を呼び出さず、デフォル トでは HLT 命令を実行します。したがって、大抵の場 合にはこれらの 2 つの操作を行う必要はありません

これらのインタフェースは apm(8)apmconf(8) が使用します。

5. apm は APM イベントをポーリングし、次のイベントを処理します。

名称 動作 解説
PMEV_STANDBYREQ サスペンド 待機要求
PMEV_SUSPENDREQ サスペンド サスペンド要求
PMEV_USERSUSPENDREQ サスペンド ユーザサスペンド要求
PMEV_CRITSUSPEND サスペンド 非常サスペンド要求
PMEV_NORMRESUME レジューム 通常の復元
PMEV_CRITRESUME レジューム 非常復元
PMEV_STANDBYRESUME レジューム 待機復元
PMEV_BATTERYLOW メッセージ通知 電池不足
PMEV_UPDATETIME 時計合わせ 時刻を更新

バグ

警告! 現在のところ、ラップトップマシンの APM BIOS の実装は、ほとんどとま ではいかなくてもバグだらけです。このインタフェースを使用すると LCD ディス プレイや電池を危険にさらす可能性があります。 (これが MS-Windows で問題と ならない理由はリアルモードインタフェースを使用しているからです。) この コードを使用してあなたのシステムが奇妙な動作をするのを発見した場合には、 電源プラグと電池を直ちにとまではいかなくてもできるだけ早く抜き、このコー ドを無効にしてください。

私達はこのコードが動作するようになることに関心を持っています。異常な動作 の観察結果をぜひ私達に連絡してください。

apm が有効である時、ホットキーを使って BIOS 設定ルーチンを呼び出すとシス テムレジューム時に重大な障害を引き起こす可能性があります。 BIOS 設定プロ グラムはブートストラップ時または DOS から呼び出すべきです。

APM の実装によっては、電源ボタンを押したことやカバーを閉じるといったイベ ントを扱うことができない場合があります。そのような実装でシステムをサスペ ンドする場合には、 必ず apm(8) または zzz(8) だけを使用してください。

ディスク減速、LCD バックライト制御、パワーオンデマンドは現在のバージョン ではサポートされていません。

関連項目

apm(8), apmconf(8), zzz(8)

作者

Tatsumi Hosokawa <hosokawa@jp.FreeBSD.org>

FreeBSD 10.0 November 1, 1994 FreeBSD 10.0

スポンサーリンク