私はPCI経由でDMAを提供しようとしています。そのために私はsysfsドライバの例を持っています。私はRAMにデータを保存しましたが、残念ながら私はそれらを読みません。私は関数store_dmareadとshow_dmareadを持っています。私はこのようなCコードでアクセスします。書き込み関数は正常に動作しますが、read()で開いたshow関数は動作しますが(DMAデータを読み込んで出力します)、ユーザー空間バッファはその関数では表示されません。ドライバでsysfsからデータを読み取る
char buf[2] = {3,3};
fw = open("/sys/bus/pci/devices/0000\:01\:00.0/dmaread", O_RDWR);
read (fw,buf, 2);
write (fw, buf, 2);
close(fw);
関数は次のようになります。あなたの質問から助け
ありがとう、今私は理解していますが、私は自動的に割り当てられたバッファにアクセスできません。 show関数でその値にアクセスし、その値を表示することができますが、show関数が終了した後は、ユーザー空間でどのようにアクセスするかを見つけることができません。 – Nuke