Next: CAMAC ブロック転送(リード)
Up: USB-CAMAC デバイスドライバの動作
Previous: CAMAC シングルアクション(リード)
USB-CAMAC ライブラリで CAMAC 16ビットデータを書き込むために camac() 関数を
コールした後, デバイスドライバでどのように処理が行なわれる
かを説明する. 例としてステーション #2 のスイッチレジスタ・モジュールにデータを書く
場合を取り上げる. CAMAC NAF は (n,a,f) = (2,0,16) とする.
- アプリケーションから USB-CAMAC ライブラリの camacw(naf, &data, &q,
&x) をコールする.
- camacw() は コマンドに CAMACW を指定してドライバの ioctl()
関数をコールする.
- ioctl() 関数では内部にある CAMACW 処理ブロックへとぶ.
- CAMACW 処理ブロックでは CAMAC NAF の F に依存した処理を行なう.
この場合は f=16 なのでCAMAC データ書き込みブロックへとぶ.
- CAMAC データ書き込みブロックではデータ長を 2バイトに指定して
scsi_write() 関数をコールする.
- scsi_write() では send_cdb() により SCSI CDB を 3929 へ送る.
- 次に send_data() により 3929 にデータを送る.
- Q, X を camacw() の q, x に返す.
Kazuo Nakayoshi
Wed Jun 27 22:15:09 JST 2001