Hi Everyone,

I¹d like to start by apologizing for the chaos I¹m proposing. However, I
believe it will make the universe a better place in the long run.

The src/dev directory has grown quite a bit lately, especially with the
new distributed gem5 patches. I¹d like to propose a new organization that
moves devices into subdirectories that are bus/class specific. Note that
this is still a proposal. The organization I have in mind is this:

  * src/dev/virtio: VirtIO devices (serial device, 9p proxy, block device)
  * src/dev/i2c: I2C devices and I2C hosts
  * src/dev/storage: Storage devices (disk models, IDE controller)
  * src/dev/net: Network devices (NICs, Ethernet links, etc.)
  * src/dev/pci: Base PCI functionality (host code & device base class)
and PCI devices that don¹t fit in any more specific category.


Note that there is some overlap between the categories. The list above is
in order of ³priority². For example, there is a VirtIO PCI interface that
already lives in src/dev/virtio and the IDE controller is a PCI device
despite living in the storage directory. The VirtIO block device on the
other hand lives in src/dev/virtio/ despite being a storage controller.

I have the following patches on RB to implement the above organization:

dev: Move existing PCI device functionality to src/dev/pci [RB3213, 1]
dev: Move the CopyEngine class to src/dev/pci [RB3215, 2]
dev: Move network devices to src/dev/net/ [RB3217, 4]
dev: Move storage devices to src/dev/storage/ [RB3218, 3]
dev: Move i2c functionality to src/dev/i2c/ [RB3219, 5]

Note: I¹m not in a hurry to push these out as they are likely to cause
merge issues for existing patches, but I¹d like to start the discussion as
soon as possible.

I¹m looking forward to hearing what you think about the proposal above.

Thanks,
Andreas

[1] http://reviews.gem5.org/r/3213/

[2] http://reviews.gem5.org/r/3215/

[3] http://reviews.gem5.org/r/3217/

[4] http://reviews.gem5.org/r/3218/

[5] http://reviews.gem5.org/r/3219/


IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to