David Anderson wrote:
This layout does not scale well, especially if the plan is to
introduce support for other virtualization engines. So, I'd like to
propose implementing a vtable-based interface. We define a structure
of all the callback functions a backend can/must provide. Then, the
open functions, depending on the URI passed in, will initialize a
certain backend and let it populate the vtable with its callbacks.
I think this is a sane thing to do. My personal preference would be
something more akin to how Linux handles this sort of things. Function
pointers in an otherwise opaque type and backend "modules" that register
themselves. We could eventually get to a place where hypervisors were
supported just by adding plugins.
Regards,
Anthony Liguori
- Dave, going back to preparing his remote-xend patch.