[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC v2 2/9] libxl_qmp: Documentation of the logic of the QMP client
Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> --- tools/libxl/libxl_qmp.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c index d03cb51668..be23ffea6a 100644 --- a/tools/libxl/libxl_qmp.c +++ b/tools/libxl/libxl_qmp.c @@ -18,6 +18,42 @@ * Specification, see in the QEMU repository. */ +/* + * Logic used to send command to QEMU + * + * qmp_open(): + * Will open a socket and connect to QEMU. + * + * qmp_next(): + * Will read data sent by QEMU and then call qmp_handle_response() once a + * complete QMP message is received. + * The function return on timeout/error or once every data received as been + * processed. + * + * qmp_handle_response() + * This process json messages received from QEMU and update different list and + * may call callback function. + * `libxl__qmp_handler.wait_for_id` is reset once a message with this ID is + * processed. + * `libxl__qmp_handler.callback_list`: list with ID of command sent and + * optional assotiated callback function. The return value of a callback is + * set in context. + * + * qmp_send(): + * Simply prepare a QMP command and send it to QEMU. + * It also add a `struct callback_id_pair` on the + * `libxl__qmp_handler.callback_list` via qmp_send_prepare(). + * + * qmp_synchronous_send(): + * This function calls qmp_send(), then wait for QEMU to reply to the command. + * The wait is done by calling qmp_next() over and over again until either + * there is a responce for the command or there is an error. + * + * An ID can be set for each QMP command, this is set into + * `libxl__qmp_handler.wait_for_id`. qmp_next will check every response's ID + * again this field and change the value of the field once the ID is found. + */ + #include "libxl_osdeps.h" /* must come before any other headers */ #include <sys/un.h> -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |