> > Why can't we make the monitor interface a "formal" interface? > > Because then fixing a type or extending the interface becomes a pain. > > It's also much more difficult to specify a text-base interface > completey, compared to a C api (where sometimes all you need is the > header and a few comments).
I disagree. It's entirely possible to fully specify a text protocol, and it's just as easy to extend it in a backwards compatible way. A C API is about the most fixed interface you could possible use. A C API also requires that both sides of the interface be part of the same process on the same machine. A text protocol is trivial to implement over pretty much any transport you can think of. IMHO we have two options: - Integrate a GUI into qemu. This will be the only supported GUI. As different people want very different things this is unlikely to ever happen. - Implement some sort of remote control protocol. Maybe based on the existing monitor comands, but definitely using based on a simple serial data link. This allows third party frontends to control qemu without having to integrate them into qemu itself. If you want to implement a C library to implement the text protocol, then you can do so. If it's any good then maybe other people will also use it. However I bet a C API isn't going to be particularly pleasant, and people are going to want to talk to qemu from e.g. python and C++ without having to mess about going via your C API. Paul