nvram スペシャル・ファイル
目的
システム・ブート、構成、および致命的エラーの情報に使用される、プラットフォーム固有の不揮発性 RAM へのアクセスを提供します。 このアクセスは、マシン入出力デバイス・ドライバーを介して行われます。
説明
/dev/nvram キャラクター・スペシャル・ファイルは、マシン固有の不揮発性 RAM にアクセスしたり変更したりするための マシン・デバイス・ドライバー へのアクセスを提供します。 NVRAM スペシャル・ファイルを開くには、適切な特権が必要です。 NVRAM スペシャル・ファイルは、マシン上で提供される不揮発性 RAM または ROM を使用して構成およびブート情報を保管または検索するために、マシン固有の構成プログラムによって使用されます。 NVRAM スペシャル・ファイルは、オープン、クローズ、読み取り、および ioctl 操作をサポートします。
使用に関する考慮事項
NVRAM スペシャル・ファイルでサブルーチンを使用する場合は、以下の項目を考慮してください。
サブルーチンのオープンとクローズ
マシン・デバイス・ドライバーは、 NVRAM 特殊ファイルを多重文字特殊ファイルとしてサポートします。
ベース という特殊なチャネル名を使用して、ブート・レコードの一部として保管されている基本カスタマイズ情報を読み取ることができます。 NVRAM スペシャル・ファイルは、以下のように、ベースのチャネル名を使用してオープンする必要があります。
/dev/nvram/baseスペシャル・ファイル /dev/nvram/base は、一度しかオープンできません。 ブート後に初めてクローズされると、基本カスタマイズ情報を含むバッファーは解放されます。 後続のオープンでは、 ENOENT (E) エラー・コードが返されます。
read、write、および lseek サブルーチン
読み取り サブルーチンは、チャネル名が ベースの NVRAM スペシャル・ファイルが正常にオープンされた後でサポートされます。 読み取り 操作は、基本カスタマイズ情報に関連した位置から、サブルーチンで使用されているファイル・ポインターに関連したオフセット値によって指定されたオフセットを使用して、データの転送を開始します。
読み取り サブルーチンでは、転送カウントに達する前にデータ域の終わりに到達すると、データ域の終わりに達する前に読み取られたバイト数が戻されます。 データ域の終わりの後で読み取りが開始されると、ドライバーによって ENXIO (X) のエラーが戻されます。
シーク サブルーチンを使用すると、基本カスタマイズ情報に関連したデータ域内の開始読み取りオフセットを変更することができます。 書き込み サブルーチンはこのチャネルではサポートされていないため、 ENODEV (E)のエラーが返されます。
ioctl サブルーチン
ioctl コマンドは、 /dev/nvram スペシャル・ファイルが正常にオープンされた後で、マシン・デバイス・ドライバーに対して発行することができます。 イオシINFO パラメーターは、 引数 パラメーターによって Ioctl サブルーチンに指し示されるように、呼び出し元の デバイス情報 構造体にマシン・デバイス・ドライバー情報を返します。 この構造体は、 /usr/include/sys/devinfo.h ファイルに定義されています。 このデバイス・ドライバーの装置タイプは D_PSEU (D)です。
エラー・コード
NVRAM 特殊ファイル名を使用してマシン・デバイス・ドライバーにアクセスすると、以下のエラー条件が返されることがあります。
| 項目 | 説明 |
|---|---|
| EFAULT | 呼び出し側によって指定されたバッファーが、 読み取り、 書き込み、または Ioctl サブルーチン呼び出しでは無効でした。 |
| ENXIO | チャネルによって指定されたデータ域の終わりを超えて読み取り操作が試みられました。 |
| ENODEV | 書き込み操作が試行されました。 |
| ENOMEM | 要求されたデータには小さ過ぎるユーザー提供のバッファーを使用して要求が出されました。 |
セキュリティー
NVRAM 特殊ファイルをオープンしようとするプログラムには、適切な特権が必要です。
ファイル
| 項目 | 説明 |
|---|---|
| /dev/nvram/base | ブート・レコードの一部として保管されている基本カスタマイズ情報への読み取りアクセスを許可します。 |