PCIデバイスをシミュレートするユーザースペースプログラムがあります。NVMe標準を使用してPCIデバイスと対話するnvmelinuxデバイスドライバーをダウンロードしました。ユーザースペースプログラムが標準と互換性があることを確認する必要があります。
nvme.c(Linuxデバイスドライバー)には、デバイスが接続されたときに呼び出されるnvme_probe()関数が含まれています。デバイスがないため、プローブ機能をnvme_init()関数に組み込むと思います。
今、私はインターネットでPCIデバイスをエミュレートする方法を理解するためにかなり多くのことを学びました。たとえば、
デバイスに接続せずにPCIドライバーをインストールする、LinuxでPCIデバイスをエミュレートするなど
、入力された構造体pci_devをに戻す方法がわかりません。nvme_probe()
の関数呼び出しpci_set_drvdata(pdev, dev);
また、チュートリアルを提案できる場合は、pci_dev構造体にダミーのデバイス構成とユーザースペースプログラム関数ポインターのメモリアドレスを手動で入力して、nvmeドライバーとの相互作用をエミュレートする方法について説明します。