私はLinux用のPCIeドライバ(現在はDMAなし)を作成しており、ユーザー空間からPCIeデバイスを有効にすると、PCIeデバイスを読み書きする方法を知る必要があります。PCIeドライバ - ユーザ空間はどのようにそれにアクセスしますか?
pci_enable_device();
pci_request_regions();
pci_iomap();
しかし、その後、私は読み書きするユーザ空間から、このメモリへのアクセス方法:私はプローブ()で基本を行うドライバで
?私のPCIeドライバにファイル操作を追加しますか? pci_iomapのメモリは、ユーザスペースコードが呼び出せる場所を示していますか?
もしそうなら、その場所は何ですか?
注: PCIeデバイスは、あなたがregister_chrdev
とdevice_create
のような機能を使用してデバイスを登録することができます
これが推奨される方法であるかどうかはわかりませんが、他のカーネルドライバは '/ dev/vboxnetctl'のような仮想デバイスを公開しています。私は、Linuxカーネルがどんなユーザスペースプログラムでも、PCIeデバイスを読み書きすることを許してくれるとは確信していません。 –
私もそれを見ていました。私のデバイスがそこに現れるようにするために必要なことはありますか?たとえば、ドライバではどのようなAPI呼び出しを行いますか? – user2205930
おそらくVirtualBoxドライバのソースコードを見てみましょう。 –