xref: /openbmc/qemu/tests/qtest/libqmp.h (revision 56b6dab2)
1c6d3bcb4SMarc-André Lureau /*
2c6d3bcb4SMarc-André Lureau  * libqmp test unit
3c6d3bcb4SMarc-André Lureau  *
4c6d3bcb4SMarc-André Lureau  * Copyright IBM, Corp. 2012
5c6d3bcb4SMarc-André Lureau  * Copyright Red Hat, Inc. 2012
6c6d3bcb4SMarc-André Lureau  * Copyright SUSE LINUX Products GmbH 2013
7c6d3bcb4SMarc-André Lureau  *
8c6d3bcb4SMarc-André Lureau  * Authors:
9c6d3bcb4SMarc-André Lureau  *  Anthony Liguori   <aliguori@us.ibm.com>
10c6d3bcb4SMarc-André Lureau  *  Paolo Bonzini     <pbonzini@redhat.com>
11c6d3bcb4SMarc-André Lureau  *  Andreas Färber    <afaerber@suse.de>
12c6d3bcb4SMarc-André Lureau  *
13c6d3bcb4SMarc-André Lureau  * This work is licensed under the terms of the GNU GPL, version 2 or later.
14c6d3bcb4SMarc-André Lureau  * See the COPYING file in the top-level directory.
15c6d3bcb4SMarc-André Lureau  *
16c6d3bcb4SMarc-André Lureau  */
179c092804SMarkus Armbruster 
189c092804SMarkus Armbruster #ifndef LIBQMP_H
199c092804SMarkus Armbruster #define LIBQMP_H
20c6d3bcb4SMarc-André Lureau 
21c6d3bcb4SMarc-André Lureau #include "qapi/qmp/qdict.h"
22c6d3bcb4SMarc-André Lureau 
23c6d3bcb4SMarc-André Lureau QDict *qmp_fd_receive(int fd);
24*56b6dab2SMarc-André Lureau #ifndef _WIN32
25c6d3bcb4SMarc-André Lureau void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
26c6d3bcb4SMarc-André Lureau                       const char *fmt, va_list ap) G_GNUC_PRINTF(4, 0);
27*56b6dab2SMarc-André Lureau #endif
28c6d3bcb4SMarc-André Lureau void qmp_fd_vsend(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
29c6d3bcb4SMarc-André Lureau void qmp_fd_send(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
30c6d3bcb4SMarc-André Lureau void qmp_fd_send_raw(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
31c6d3bcb4SMarc-André Lureau void qmp_fd_vsend_raw(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
32c6d3bcb4SMarc-André Lureau QDict *qmp_fdv(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
33c6d3bcb4SMarc-André Lureau QDict *qmp_fd(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
34c6d3bcb4SMarc-André Lureau 
35c6d3bcb4SMarc-André Lureau /**
36c6d3bcb4SMarc-André Lureau  * qmp_rsp_is_err:
37c6d3bcb4SMarc-André Lureau  * @rsp: QMP response to check for error
38c6d3bcb4SMarc-André Lureau  *
39c6d3bcb4SMarc-André Lureau  * Test @rsp for error and discard @rsp.
40c6d3bcb4SMarc-André Lureau  * Returns 'true' if there is error in @rsp and 'false' otherwise.
41c6d3bcb4SMarc-André Lureau  */
42c6d3bcb4SMarc-André Lureau bool qmp_rsp_is_err(QDict *rsp);
43c6d3bcb4SMarc-André Lureau 
44c6d3bcb4SMarc-André Lureau /**
45c6d3bcb4SMarc-André Lureau  * qmp_expect_error_and_unref:
46c6d3bcb4SMarc-André Lureau  * @rsp: QMP response to check for error
47c6d3bcb4SMarc-André Lureau  * @class: an error class
48c6d3bcb4SMarc-André Lureau  *
49c6d3bcb4SMarc-André Lureau  * Assert the response has the given error class and discard @rsp.
50c6d3bcb4SMarc-André Lureau  */
51c6d3bcb4SMarc-André Lureau void qmp_expect_error_and_unref(QDict *rsp, const char *class);
52c6d3bcb4SMarc-André Lureau 
539c092804SMarkus Armbruster #endif /* LIBQMP_H */
54