操作領域ハンドラーを実装する
ドライバーは、PACPI_OP_REGION_HANDLER 型のコールバックである操作領域ハンドラーを提供する必要があります。 ACPI ドライバーは、ドライバーの操作領域のデータ フィールドにアクセスする操作ハンドラーを呼び出します。 ファンクション ドライバーと ACPI BIOS を組み合わせた操作は、ベンダー定義でデバイス固有です。 一般的に、ファンクション ドライバーと ACPI BIOS は、デバイス固有の操作を行い、適切な情報を返す操作領域のインデックスにアクセスします。
通常、操作領域ハンドラーは、ACPI ドライバーがハンドラーに渡す次のパラメーターを使用します。
AccessType は、アクセスが読み取りか書き込みかを指定します。
アクセスが読み取りである場合、データは操作領域のメモリ バッファーからData バッファーに転送されます。 アクセスが書き込みである場合、データはData バッファーから操作領域のメモリ バッファーに転送されます。 「操作領域へのアクセス」を参照してください。
Address は、操作領域のメモリ バッファー内のバイト オフセットを指定します。
Size は、転送するバイト数を指定します。
Data は、データ転送用に ACPI ドライバーによって提供されるバッファーを指定します。
Context は、ドライバーが操作領域ハンドラーに登録した操作領域コンテキストを指定します。
操作領域コンテキストは、ファンクション ドライバーによってのみ使用され、デバイス固有のものです。
ACPI ドライバーは、前述したパラメーターに加えて、操作領域のハンドラーに操作領域オブジェクト、完了ハンドラー、および完了コンテキストのポインターを渡します。 ただし、ファンクション ドライバーはハンドラーで操作領域オブジェクトを使用せず、完了ハンドラーとコンテキストは内部使用のために予約されています。