バッファデータの読み出し

割り込みハンドラの中で読み込まれ、 バッファに貯められたデータは、 以下のデバイスを open して read で読み出す事ができます。 目的に応じてデバイスを使い分けてください。 バッファの大きさは、デフォルトでは 64 kwords = 128 kbytes です ("dc.c" の中の EV_MAX というマクロで 定義されています)。

/dev/dc
データをバイナリで返します。 バッファが空の場合には、 データが取り込まれるまで制御を戻さずに待ちます。
/dev/dc1
データをバイナリで返します。 バッファが空でも直ちに制御が返ります (read が終了する)。 本来の char 型デバイスでは open(..., O_NONBLOCK) で 実現する機能ですが、本ドライバではデバイスのマイナー番号で 機能を分離しており、 O_NONBLOCK フラグはサポートしていません。
旧版に存在していた /dev/dc2/dev/dc3 は無くなりました。 データを 10 進数文字列で読みたいという需要はほとんど有りませんし、 /dev/dc から読込んで 16 進数出力するプログラムを 自分で書いた方が簡単で有用だからです。 ついでに /dev/dc/dev/dc1 の意味を 逆にしました。データを待つ読み出しの方が需要が高いですから。

例えば、オンライン解析をせずに ひたすら raw data をファイルに落すだけなら

      % cat /dev/dc > hogehoge.dat
で用が足ります。 UNIX のファイルシステムのデフォルトでは close 以前に 他のプロセスからもアクセス可能 (VMS の shared open に相当… なんて記述は時代錯誤か) なので、 データ収集中に hogehoge.dat から データを読み込んで解析する事もできます。

なお、バッファデータの一区切り (DC_INTCLR 実行から次の DC_INTCLR 実行までに収集されるデータ量) は、ポインタの都合上符合無し 32 ビットポインタで表される範囲に とどめておいてください。 これは 8 Gbytes のデータに相当しますが、 現在の Linux の標準的ファイルシステムである ext2 では 2 Gbytes のファイルしか作れないので、 そちらの制限の方に先に達します。

戻る