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