#441 device plugins like in SimNow!

I/O device (66)

Look on the AMD SimNow! emulator as a reference.

The SimNow! presentation says:

=== Cut Here ===
1. The SimNow! device models are all written to a common interface and compile to DLL's on Windows or .so on Linux
2. SimNow! discovers these DLLs or so's at runtime and has no predefined knowledge about device models
3. Therefore device models can be written by user without knowledge of SimNow! internals as long as the common interface is documented and understood
4. We have created a SimNow! device models SDK. With this SDK user can create SimNow! device model without needing the source code of SimNow!
5. We encourage users to develop device models as they need them
=== Cut Here ===

I see and always saw this capability as most important capability for the emulation project.
I once tried to contact QEMU people and suggested to define the device interface but didn't get anything but discussion in their mailing list. Nobody really started to do something.
I think that even 10% performance loss is worth to pay for this capability and we should go for it.

I don't know how far is current "user plugin" for here but I guess it is still far away.
But we can try to define a gradual process.

My suggestions for first steps:

  1. Look on AMD SinNow! SDK and get some ideas about how device interface should look like.
  2. make everything requied to allow Bochs search and load plugins on runtime - without knowing about them in main project compilation time
    even for simplest kind of plugins.
  3. convert some of the simplest plugins into new interface and make it loaded on runtime.

I don't suggest to start mailing list discussion again - I call to recognize the priority of this issue and start moving towards the ideas !



  • Peladon

    Peladon - 2011-06-01

    What a request!
    This time made by this project's administrator.
    Anyway, good idea!

  • Peladon

    Peladon - 2011-06-01

    Stanislav, I know I'm UNWANTED PERSON to you, but I'm trying to help you.


Log in to post a comment.