Faking PCI devices?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have written a simulated driver for a PCI board and am looking for a clean way to use the driver. Currently, I am setting the PCI ids to PCI_ANY_ID and only allowing a single probe call to go through using a global variable (concurrency issues but I don't care for the simulation).

static int n
...
static int fake_board_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{
    if (n == 1)
        return -1;
    n = 1;
    ...
}
static int fake_board_init(void)
{
    n = 0;
    ....
}

I want to do a cleaner job of this and wanted to write a PCI bridge driver that actually registers the devices with the correct IDs that I need. This also gives me the advantage of being able to register multiple devices which is a useful for the simulation I am working on.
Can anyone point me in the right direction for this? Most of the code (eg. struct pci_controller) seem to be architecture specific.

The code is available for anyone interested at:
https://github.com/mvanga/wbonesim

Thanks and best regards.
--
/manohar
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux