12910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner/* 2fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner * QError Module 32910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * 42910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * Copyright (C) 2009 Red Hat Inc. 52910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * 62910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * Authors: 72910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * Luiz Capitulino <lcapitulino@redhat.com> 82910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * 92910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. 102910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * See the COPYING.LIB file in the top-level directory. 112910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner */ 122910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#ifndef QERROR_H 132910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERROR_H 142910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 150fdfff3cce93e16179a454fd471cd1d9126204e0David 'Digit' Turner#include "qapi/qmp/qdict.h" 161c31e3e43ce4cca85a707dfff631e5e102fdecedDavid 'Digit' Turner#include "qapi/qmp/qstring.h" 171c31e3e43ce4cca85a707dfff631e5e102fdecedDavid 'Digit' Turner#include "qemu/error-report.h" 18910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi/error.h" 19910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi-types.h" 202910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#include <stdarg.h> 212910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 222910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turnertypedef struct QError { 232910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner QObject_HEAD; 24fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner Location loc; 25910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner char *err_msg; 26910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ErrorClass err_class; 272910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner} QError; 282910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 292910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' TurnerQString *qerror_human(const QError *qerror); 30910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid qerror_report(ErrorClass err_class, const char *fmt, ...) GCC_FMT_ATTR(2, 3); 31910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid qerror_report_err(Error *err); 32910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid assert_no_error(Error *err); 332910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 342910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner/* 352910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner * QError class list 36fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner * Please keep the definitions in alphabetical order. 37910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * Use scripts/check-qerror.sh to check. 382910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner */ 39910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_ADD_CLIENT_FAILED \ 40910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Could not add client" 41910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 42910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_AMBIGUOUS_PATH \ 43910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Path '%s' does not uniquely identify an object" 44910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 45fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_BAD_BUS_FOR_DEVICE \ 46910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' can't go on a %s bus" 47fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 48910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_BASE_NOT_FOUND \ 49910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Base '%s' not found" 50910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 51910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_BLOCK_JOB_NOT_ACTIVE \ 52910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_DEVICE_NOT_ACTIVE, "No active block job on device '%s'" 53910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 54910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_BLOCK_JOB_PAUSED \ 55910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "The block job for device '%s' is currently paused" 56910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 57910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_BLOCK_JOB_NOT_READY \ 58910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "The active block job for device '%s' cannot be completed" 59910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 60910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_BLOCK_FORMAT_FEATURE_NOT_SUPPORTED \ 61910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Block format '%s' used by device '%s' does not support feature '%s'" 62910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 63910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_BUFFER_OVERRUN \ 64910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "An internal buffer overran" 65fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 66fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_BUS_NO_HOTPLUG \ 67910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Bus '%s' does not support hotplugging" 68910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 69910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_BUS_NOT_FOUND \ 70910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Bus '%s' not found" 71910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 72910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_COMMAND_DISABLED \ 73910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "The command %s has been disabled for this instance" 74fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 752910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_COMMAND_NOT_FOUND \ 76910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_COMMAND_NOT_FOUND, "The command %s has not been found" 772910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 782910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_DEVICE_ENCRYPTED \ 79910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_DEVICE_ENCRYPTED, "'%s' (%s) is encrypted" 80910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 81910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_DEVICE_FEATURE_BLOCKS_MIGRATION \ 82910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Migration is disabled when using feature '%s' in device '%s'" 83910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 84910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_DEVICE_HAS_NO_MEDIUM \ 85910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' has no medium" 862910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 87fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_DEVICE_INIT_FAILED \ 88910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' could not be initialized" 89fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 90fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_DEVICE_IN_USE \ 91910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' is in use" 92910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 93910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_DEVICE_IS_READ_ONLY \ 94910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' is read only" 95fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 96fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_DEVICE_LOCKED \ 97910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' is locked" 982910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 99fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_DEVICE_MULTIPLE_BUSSES \ 100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' has multiple child busses" 101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_DEVICE_NO_BUS \ 103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' has no child bus" 104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_DEVICE_NO_HOTPLUG \ 106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' does not support hotplugging" 107fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 1082910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_DEVICE_NOT_ACTIVE \ 109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_DEVICE_NOT_ACTIVE, "Device '%s' has not been activated" 1102910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 111fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_DEVICE_NOT_ENCRYPTED \ 112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' is not encrypted" 113fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 1142910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_DEVICE_NOT_FOUND \ 115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_DEVICE_NOT_FOUND, "Device '%s' not found" 1162910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 1172910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_DEVICE_NOT_REMOVABLE \ 118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Device '%s' is not removable" 11947dc1f4132ed3bafd2f564458288f9931ef0e0a4David 'Digit' Turner 120fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_DUPLICATE_ID \ 121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Duplicate ID '%s' for %s" 122fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 1232910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_FD_NOT_FOUND \ 124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "File descriptor named '%s' not found" 1252910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 1262910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_FD_NOT_SUPPLIED \ 127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "No file descriptor supplied via SCM_RIGHTS" 128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_FEATURE_DISABLED \ 130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "The feature '%s' is not enabled" 1312910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 1322910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_INVALID_BLOCK_FORMAT \ 133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Invalid block format '%s'" 134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_INVALID_OPTION_GROUP \ 136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "There is no option group '%s'" 1372910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 1382910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_INVALID_PARAMETER \ 139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Invalid parameter '%s'" 140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_INVALID_PARAMETER_COMBINATION \ 142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Invalid parameter combination" 1432910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 1442910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_INVALID_PARAMETER_TYPE \ 145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Invalid parameter type for '%s', expected: %s" 1462910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 147fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_INVALID_PARAMETER_VALUE \ 148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Parameter '%s' expects %s" 149fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 1502910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_INVALID_PASSWORD \ 151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Password incorrect" 152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_IO_ERROR \ 154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "An IO error has occurred" 155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_JSON_PARSE_ERROR \ 157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "JSON parse error, %s" 1582910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 1592910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_JSON_PARSING \ 160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Invalid JSON syntax" 1612910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 1622910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_KVM_MISSING_CAP \ 163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_K_V_M_MISSING_CAP, "Using KVM without %s, %s unavailable" 1642910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_MIGRATION_ACTIVE \ 166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "There's a migration process in progress" 167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_MIGRATION_NOT_SUPPORTED \ 169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "State blocked by non-migratable device '%s'" 170fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 1712910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_MISSING_PARAMETER \ 172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Parameter '%s' is missing" 1732910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 174fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_NO_BUS_FOR_DEVICE \ 175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "No '%s' bus found for device '%s'" 176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_NOT_SUPPORTED \ 178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Not supported" 179fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_PERMISSION_DENIED \ 181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Insufficient permission to perform this operation" 182fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 183fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_PROPERTY_NOT_FOUND \ 184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Property '%s.%s' not found" 185fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 186fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_PROPERTY_VALUE_BAD \ 187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Property '%s.%s' doesn't take value '%s'" 188fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 189fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_PROPERTY_VALUE_IN_USE \ 190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Property '%s.%s' can't take value '%s', it's in use" 191fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 192fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_PROPERTY_VALUE_NOT_FOUND \ 193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Property '%s.%s' can't find value '%s'" 194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_PROPERTY_VALUE_NOT_POWER_OF_2 \ 196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Property %s.%s doesn't take value '%" PRId64 "', it's not a power of 2" 197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_PROPERTY_VALUE_OUT_OF_RANGE \ 199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Property %s.%s doesn't take value %" PRId64 " (minimum: %" PRId64 ", maximum: %" PRId64 ")" 200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_QGA_COMMAND_FAILED \ 202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Guest agent command failed, error was '%s'" 203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_QGA_LOGGING_FAILED \ 205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Guest agent failed to log non-optional log statement" 206fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 2072910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_QMP_BAD_INPUT_OBJECT \ 208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Expected '%s' in QMP input" 2092910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 210fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_QMP_BAD_INPUT_OBJECT_MEMBER \ 211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "QMP input object member '%s' expects '%s'" 212fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 213fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_QMP_EXTRA_MEMBER \ 214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "QMP input object member '%s' is unexpected" 215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_RESET_REQUIRED \ 217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Resetting the Virtual Machine is required" 218fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 2192910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_SET_PASSWD_FAILED \ 220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Could not set password" 2212910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 2222910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#define QERR_TOO_MANY_FILES \ 223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Too many open files" 2242910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 225fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner#define QERR_UNDEFINED_ERROR \ 226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "An undefined error has occurred" 227fd4c0076b7470f5962ff462bae9cd9f208e059b7David Turner 22847dc1f4132ed3bafd2f564458288f9931ef0e0a4David 'Digit' Turner#define QERR_UNKNOWN_BLOCK_FORMAT_FEATURE \ 229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "'%s' uses a %s feature which is not supported by this qemu version: %s" 23047dc1f4132ed3bafd2f564458288f9931ef0e0a4David 'Digit' Turner 231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_UNSUPPORTED \ 232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "this feature or command is not currently supported" 2332910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner 234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_VIRTFS_FEATURE_BLOCKS_MIGRATION \ 235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Migration is disabled when VirtFS export path '%s' is mounted in the guest using mount_tag '%s'" 236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_SOCKET_CONNECT_FAILED \ 238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Failed to connect to socket" 239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_SOCKET_LISTEN_FAILED \ 241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Failed to set socket to listening mode" 242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_SOCKET_BIND_FAILED \ 244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Failed to bind socket" 245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QERR_SOCKET_CREATE_FAILED \ 247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ERROR_CLASS_GENERIC_ERROR, "Failed to create socket" 24847dc1f4132ed3bafd2f564458288f9931ef0e0a4David 'Digit' Turner 2492910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#endif /* QERROR_H */ 250