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