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

名称

smapiシステム管理アプリケーションプログラムインタフェースドライバ

解説

多くの IBM Thinkpad ラップトップは SMAPI (System Management Application Program Interface, システム管理アプリケーションプログラムインタフェース) として知られている特別のソフトウェアインタフェースを利用します。このインタフェースはシステムに含まれる次の種々のアスペクト (形態) を制御します:
  • システムインタフェース (BIOS はシステム識別子のようなシステム情報を保存することができます)。
  • (ディスプレイのようなデバイスが設定できる) システム設定。
  • (ソフトウェアは電源管理制御のために SMAPI BIOS と情報のやりとりができる) 電源管理。

クライアントソフトウェアは、16 バイトの境界に存在する Thinkpad ROM (リードオンリメモリ) で F000 セグメントに格納された“ヘッダイメージ”を位置付けしなければなりません。これはサービスのための“エントリポイント”と見なされます。

“ヘッダイメージ”は次のような情報を格納しています:

  • シグネチャ (署名)。
  • SMAPI のバージョン (メジャーとマイナ)。
  • ヘッダイメージ長。
  • (イメージを検証する) チェックサム情報。
  • (BIOS サービスレベルを識別するために使用される) 情報ワード。
  • (ファーコール (far-call) 値のための Real/V86 モードを使用するクライアントの) リアルモードエントリポイント。
  • 最後に 16-ビット/32-ビットプロテクトモードエントリポイント: BIOS 物理アドレスを指定するベースコードアドレス。クライアントは、この BIOS のために 64 キロバイトのセレクタを準備しなければなりません。

SMAPI BIOS を呼び出すために、ファーコール (far-call) はヘッダファイルで指定されたエントリポイントで使用されなければばなりません。他のすべての情報はクライアントデータ領域で保存されるべきです。クライアントはそれ自体のデータ領域に入出力パラメータを準備しなければなりません。この領域は、ファーコール (far-call) の前にスタックにそれらのポインタをプッシュすることによって、“知らせる”ことができます。

SMAPI BIOS は BIOS 呼び出しの間、セレクタでスタックとデータ領域を使用します、したがって、呼び出し側は BIOS と同じ特権領域を定義しなければなりません。

パラメータ構造体は、呼び出し側によって準備された入力と出力フィールドを使用することによって作られます。入力フィールドは BIOS に関数要求を指定します。 BIOS は出力フィールドに返された値を落とします。これらのフィールドは 3 つで構成されています。 1 つ目はパラメータ、関数番号、およびリターンコードを保持します。次は 16 進でオフセットを含みます。最後は Byte、Word、または Double Word から成る長さフィールドです。

関連項目

IBM Thinkpad 560/560E Technical Reference, 06J0536 S76H-7587-01. IBM Thinkpad 560Z Technical Reference, xxxxxxx xxxx-xxxx-xx. IBM Thinkpad 600 Technical Reference, xxxxxxx xxxx-xxxx-xx. IBM Thinkpad 760XD/760XL/765D/765L Technical Reference, 06J0537 S30H-2433-02. IBM Thinkpad 770 Technical Reference, 05L1739 S05L-1739-00.

作者

smapi ドライバは、 Matthew N. Dodd <mdodd@FreeBSD.org>によって書かれました。このマニュアルページは、 Tom Rhodes <trhodes@FreeBSD.org>と Matthew N. Dodd <mdodd@FreeBSD.org>によって書かれました。
April 1, 2003 FreeBSD