IOV_VALIDATE_PARAM() を呼び出すドライバの一般的な制御フローは次のようになります。
arg パラメータを pci_param_get_ioctl() インタフェースに送信し、pci_param_t 構造体へのポインタを取得します。
param 検証が失敗した場合は、pv_reason 配列に説明文字列を書き込みます。
pci_get_plist() インタフェースに続いて pci_plist_lookup() インタフェースを呼び出すことで、デバイスパラメータを取得します。
この構成の検証用として構成すべき VF の数を取得するために、PF plist 内で vfs 名前-値ペアを検索します。ドライバは、16 ビット以上の整数データ型を使って vfs 名前-値ペアの検索を行うべきです。pciv_plist_getvf() インタフェースを使って VF デバイスの plist パラメータを取得します。
デバイスにパラメータを実際に適用せずにパラメータを検証します。
有効な構成が見つかった場合は 0 を返します。
![]() | 注意 - 上の手順で検証されるパラメータは、デバイスの現在の構成とは一切関係ありません。それらは、将来の構成になる可能性があると仮定して、個別に検証する必要があります。そうでない場合、ドライバは不適切な構成を示す DDI_EINVAL を返すべきです。さらに、無効な構成が見つかった場合は、ドライバは iov_param_validate 構造体の pv_reason フィールドに説明文字列を提供すべきです。この文字列は、構成が失敗した理由を管理者に伝えます。 |