.\" LP (Laptop Package) .\" .\" Copyright (c) 1994 by HOSOKAWA, Tatsumi .\" .\" This software may be used, modified, copied, and distributed, in .\" both source and binary form provided that the above copyright and .\" these terms are retained. Under no circumstances is the author .\" responsible for the proper functioning of this software, nor does .\" the author assume any responsibility for damages incurred with its .\" use. .\" .\" %Id: apm.4,v 1.9 1998/12/18 03:08:57 jkoshy Exp % .\" $FreeBSD$ .\" .Dd November 1, 1994 .Dt APM 4 i386 .Os .Sh 名称 .Nm apm .Nd APM BIOS インタフェース .Sh 書式 .Cd device apm0 at isa? .Sh 解説 .Nm apm はラップトップ PC の Intel / Microsoft APM (Advanced Power Management) BIOS へのインタフェースです。 .Pp .Nm apm は次の電源管理機能を提供します。 .Bl -enum -offset indent .It システムがサスペンドモードから復帰した時に、 .Nm apm はシステムの時計を RTC に合わせます。 .It システムがサスペンドモードから復帰した時に、 システムが復帰した時刻とサスペンドモード中に経過した時間で構成される メッセージを、 .Nm apm は .Xr syslogd 8 に通知します。 .It .Nm apm はシステムの活動 (実行可能なプロセス、割り込みなど) がない時に CPU のクロックを減速します。 この機能は APM が CPU のアイドリングをサポートしているシステムでのみ有効です。 .It .Nm apm はキャラクタ型デバイスとしてアプリケーションインタフェースを提供します。 アプリケーションはこのインタフェースを介して APM を制御したり、 APM の状態情報を引き出したりすることができます。 .Nm apm は次のインタフェースを提供します。これらのシンボルは .Dq Pa /usr/include/machine/apm_bios.h で定義されています。 .Bl -tag -width 4n -offset indent .It Sy APMIO_SUSPEND システムをサスペンドします。 .It Sy APMIO_GET 電源管理情報を入手します。 .It Sy APMIO_ENABLE .It Sy APMIO_DISABLE 電源管理を有効 / 無効にします。 .It Sy APMIO_HALTCPU .It Sy APMIO_NOTHALTCPU カーネルコンテキスト切り替えルーチンでの HLT の実行を制御します。 .Pp HLT .Pq 割り込みが発生するまで CPU を停止 命令を .Dq Pa Idle CPU 呼び出しの中で実行する APM の実装もありますし、そうでないものもあります。 ですからこれを有効にすると、 .Dq Pa Idle CPU を呼び出すカーネルコンテキスト切り替えルーチンが 元々 HLT 命令を実行することにより、 余分な HLT 命令を実行することになる可能性があります。 この結果、システムのピーク性能を減少させる可能性があります。 .Pp また、カーネルコンテキスト切り替えルーチンでの HLT 命令を無効にした場合、 マシンの APM の実装が .Dq Pa Idle CPU で HLT を実行しない場合には、システムはハングアップします。 CPU クロックの減速をサポートしていない実装では、APM は HLT を実行しないかもしれません。 そのようなマシンでは、 .Nm apm は .Sy APMIO_NOTHALTCPU の操作を無効にします。 .Pp 現在のバージョンの .Nm apm は、クロックの減速がサポートされていない場合には、 カーネルコンテキスト切り替えルーチンから .Dq Pa Idle CPU を呼び出さず、デフォルトでは HLT 命令を実行します。 したがって、大抵の場合にはこれらの 2 つの操作を行う必要はありません .El .Pp これらのインタフェースは .Xr apm 8 と .Xr apmconf 8 が使用します。 .It .Nm apm は APM イベントをポーリングし、次のイベントを処理します。 .Bl -column PMEV_POWERSTATECHANGEXXX "suspend system xxxxx" .It Sy "名称 " "動作 " "解説" .It Dv "PMEV_STANDBYREQ " No "サスペンド " "待機要求" .It Dv "PMEV_SUSPENDREQ " No "サスペンド " "サスペンド要求" .It Dv "PMEV_USERSUSPENDREQ " No "サスペンド " "ユーザサスペンド要求" .It Dv "PMEV_CRITSUSPEND " No "サスペンド " "非常サスペンド要求" .It Dv "PMEV_NORMRESUME " No "レジューム " "通常の復元" .It Dv "PMEV_CRITRESUME " No "レジューム " "非常復元" .It Dv "PMEV_STANDBYRESUME " No "レジューム " "待機復元" .It Dv "PMEV_BATTERYLOW " No "メッセージ通知 " "電池不足" .It Dv "PMEV_UPDATETIME " No "時計合わせ " "時刻を更新" .El .El .Sh バグ 警告! 現在のところ、ラップトップマシンの APM BIOS の実装は、 ほとんどとまではいかなくてもバグだらけです。 このインタフェースを使用すると LCD ディスプレイや電池を 危険にさらす可能性があります。 (これが MS-Windows で問題とならない理由はリアルモードインタフェース を使用しているからです。) このコードを使用してあなたのシステムが奇妙な動作をするのを発見した場合には、 電源プラグと電池を直ちにとまではいかなくてもできるだけ早く抜き、 このコードを無効にしてください。 .Pp 私達はこのコードが動作するようになることに関心を持っています。 異常な動作の観察結果をぜひ私達に連絡してください。 .Pp .Nm apm が有効である時、ホットキーを使って BIOS 設定ルーチンを呼び出すと システムレジューム時に重大な障害を引き起こす可能性があります。 BIOS 設定プログラムはブートストラップ時または DOS から呼び出すべきです。 .Pp APM の実装によっては、電源ボタンを押したことやカバーを閉じるといった イベントを扱うことができない場合があります。 そのような実装でシステムをサスペンドする場合には、 .Ar 必ず .Xr apm 8 または .Xr zzz 8 .Ar だけ を使用してください。 .Pp ディスク減速、LCD バックライト制御、パワーオンデマンドは 現在のバージョンではサポートされていません。 .Sh 関連項目 .Xr apm 8 , .Xr apmconf 8 , .Xr zzz 8 .Sh 作者 Tatsumi Hosokawa