qemu-ga: Add interface to traverse the qmp command list by QmpCommand
commit8dc4d915dd6ea347a47557f5aa75a648555fe253
authorMark Wu <wudxw@linux.vnet.ibm.com>
Wed, 9 Oct 2013 03:25:07 +0000 (9 11:25 +0800)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Thu, 10 Oct 2013 19:52:37 +0000 (10 14:52 -0500)
treef4c7abf2d2bc74ee4d092aae95f8eb55c1c909ef
parente5d9adbdab972a2172815c1174aed3fabcc448f1
qemu-ga: Add interface to traverse the qmp command list by QmpCommand

In the original code, qmp_get_command_list is used to construct
a list of all commands' name. To get the information of all qga
commands, it traverses the name list and search the command info
with its name.  So it can cause O(n^2) in the number of commands.

This patch adds an interface to traverse the qmp command list by
QmpCommand to replace qmp_get_command_list. It can decrease the
complexity from O(n^2) to O(n).

Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
*fix up commit subject
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
include/qapi/qmp/dispatch.h
qapi/qmp-registry.c
qga/commands.c
qga/main.c