Today, when writing an info command that is used by QMP and HMP, the programmer has to implement:
1. The handler itself, that's the function that gathers data and returns it as QObjects 2. A pretty printing function, which is called by the human monitor to print the returned QObjects in human readable form However, we want to have a clean separation between QMP and the human monitor. Actually, we want to turn QMP into an internal API and the human monitor should be written on top of that. So, this series does: 1. Move all QMP calling code to the info handler using it, that's we change the pretty printing function to call QMP and turn it into an info handler 2. Drop all QMP calling code from do_info() Please, note that this is only done for info handlers. Command handlers will take a bit more time to be converted. balloon.c | 26 +----- balloon.h | 2 +- block.c | 16 ++- block.h | 8 +- console.h | 8 +- hw/pci.c | 9 ++- hw/pci.h | 4 +- input.c | 11 ++- migration.c | 13 ++- migration.h | 4 +- monitor.c | 341 +++++++++++++++++++++++++++-------------------------------- qemu-char.c | 10 ++- qemu-char.h | 4 +- ui/vnc.c | 11 ++- 14 files changed, 227 insertions(+), 240 deletions(-)