EN JA
APM(4) (i386)
APM(4) FreeBSD Kernel Interfaces Manual (i386) APM(4)

名称

apmAPM BIOS インタフェース

書式

device apm

解説

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

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

  1. システムがサスペンドモードから目覚めるとき、 apm は、RTC にシステム時計を調整します。
  2. システムがサスペンドモードから目覚めるとき、 apm は、システムが目覚めた時刻とサスペンドモードの間に経過した時間で構成される syslogd(8) にメッセージを渡します。
  3. apm は、システムが活動 (実行可能なプロセス、割り込みなど) していないとき、 CPU のクロックを遅くします。この機能は、APM が CPU のアイドリング (idling) をサポートしているシステムでのみ利用可能です。
  4. apm は、キャラクタデバイスとしてアプリケーションインタフェースをエクスポート (export) します。アプリケーションは、このインタフェースによって APM を制御するか、または APM 状態の情報を取り出すことができます。 apm は、次のインタフェースをエクスポート (export) します。これらのシンボルは、 < machine/apm_bios.h> に定義されています。
    APMIO_SUSPEND
    システムをサスペンドします。
    APMIO_GET
    電源管理情報を取得します。
    APMIO_ENABLE
    APMIO_DISABLE
    電源管理を有効 / 無効にします。
    APMIO_HALTCPU
    APMIO_NOTHALTCPU
    カーネルコンテキスト切り替えルーチンで HLT の実行を制御します。
    APMIO_GETPWSTATUS
    バッテリごとの情報を取得します。

    いくつかの APM 実装は、“ Idle CPU”呼び出しで HLT (割り込みが生じるまで CPU を停止) 命令を実行し、一方、そうでないものもあります。したがって、これを有効にすることは、“ Idle CPU”が、本質的に HLT を実行するカーネルコンテキスト切り替えルーチンから呼び出されるので、余分な HLT 命令を実行する結果となるかもしれません。これは、システムの性能のピーク (peak) を減少させるかもしれません。

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

    クロックの減速がサポートされていないなら、 apm の現在のバージョンは、カーネルコンテキスト切り替えルーチンから“ Idle CPU”を呼び出さず、デフォルトで HLT 命令を実行します。したがって、ほとんどの場合これらの 2 つの演算を使用する必要はありません。

    これらのインタフェースは、 apm(8) によって使用されます。

  5. apm は、APM イベントをポーリングし、次のイベントを処理します。
    名前 動作 説明
    PMEV_STANDBYREQ システムをサスペンド スタンバイ要求
    PMEV_SUSPENDREQ システムをサスペンド サスペンド要求
    PMEV_USERSUSPENDREQ システムをサスペンド ユーザサスペンド要求
    PMEV_CRITSUSPEND システムをサスペンド 重大なサスペンド要求
    PMEV_NORMRESUME システムをレジューム 通常のレジューム
    PMEV_CRITRESUME システムをレジューム 重大なレジューム
    PMEV_STANDBYRESUME システムをレジューム スタンバイレジューム
    PMEV_BATTERYLOW メッセージ通知 バッテリ不足
    PMEV_UPDATETIME クロック調整 時刻を更新

関連項目

apm(8), zzz(8)

作者

Tatsumi Hosokawa <hosokawa@jp.FreeBSD.org>

バグ

警告! 今日のラップトップの APM BIOS の実装は、ほとんどではないにしても、多くのバグがあります。このインタフェースの使用することによって、 LCD ディスプレイとバッテリを危険にさらすかもしれません。 (これが MS-windows で問題とならない理由は、それらがリアルモードインタフェースを使用しているからです。) 使用しているこのコードで利用者のシステムがどんな不思議な動作するかを分かりたいなら、直ちにとまではいかなくても、電源とバッテリ ASAP のプラグを抜いて、このコードを無効にします。

私たちはこのコードを動作させることに非常に興味を持っているので、私たちのもとへあらゆる異常な振る舞いについての観察を送ってください。

apm が活発なとき、ホットキーを使用して BIOS の設定ルーチンを呼び出すことは、システムをレジュームするとき、重大な問題を引き起こすかもしれません。 BIOS 設定プログラムは、ブートストラップの間、または DOS から呼び出されるべきです。

いくつかの APM 実装は、電源ボタンを押すか、またはカバーを閉じるようなイベントを扱うことができません。そのような実装において、システムは、 apm(8) または zzz(8) を使用することによって のみ サスペンド されなければなりません

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

November 1, 1994 FreeBSD