File:  [Qemu by Fabrice Bellard] / qemu / qerror.h
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:34:14 2018 UTC (3 years, 3 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu0150, qemu0141, qemu0140, HEAD
qemu 0.14.0

    1: /*
    2:  * QError Module
    3:  *
    4:  * Copyright (C) 2009 Red Hat Inc.
    5:  *
    6:  * Authors:
    7:  *  Luiz Capitulino <lcapitulino@redhat.com>
    8:  *
    9:  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
   10:  * See the COPYING.LIB file in the top-level directory.
   11:  */
   12: #ifndef QERROR_H
   13: #define QERROR_H
   14: 
   15: #include "qdict.h"
   16: #include "qstring.h"
   17: #include "qemu-error.h"
   18: #include <stdarg.h>
   19: 
   20: typedef struct QErrorStringTable {
   21:     const char *desc;
   22:     const char *error_fmt;
   23: } QErrorStringTable;
   24: 
   25: typedef struct QError {
   26:     QObject_HEAD;
   27:     QDict *error;
   28:     Location loc;
   29:     int linenr;
   30:     const char *file;
   31:     const char *func;
   32:     const QErrorStringTable *entry;
   33: } QError;
   34: 
   35: QError *qerror_new(void);
   36: QError *qerror_from_info(const char *file, int linenr, const char *func,
   37:                          const char *fmt, va_list *va) GCC_FMT_ATTR(4, 0);
   38: QString *qerror_human(const QError *qerror);
   39: void qerror_print(QError *qerror);
   40: void qerror_report_internal(const char *file, int linenr, const char *func,
   41:                             const char *fmt, ...) GCC_FMT_ATTR(4, 5);
   42: #define qerror_report(fmt, ...) \
   43:     qerror_report_internal(__FILE__, __LINE__, __func__, fmt, ## __VA_ARGS__)
   44: QError *qobject_to_qerror(const QObject *obj);
   45: 
   46: /*
   47:  * QError class list
   48:  * Please keep the definitions in alphabetical order.
   49:  * Use "grep '^#define QERR_' qerror.h | sort -c" to check.
   50:  */
   51: #define QERR_BAD_BUS_FOR_DEVICE \
   52:     "{ 'class': 'BadBusForDevice', 'data': { 'device': %s, 'bad_bus_type': %s } }"
   53: 
   54: #define QERR_BUS_NOT_FOUND \
   55:     "{ 'class': 'BusNotFound', 'data': { 'bus': %s } }"
   56: 
   57: #define QERR_BUS_NO_HOTPLUG \
   58:     "{ 'class': 'BusNoHotplug', 'data': { 'bus': %s } }"
   59: 
   60: #define QERR_COMMAND_NOT_FOUND \
   61:     "{ 'class': 'CommandNotFound', 'data': { 'name': %s } }"
   62: 
   63: #define QERR_DEVICE_ENCRYPTED \
   64:     "{ 'class': 'DeviceEncrypted', 'data': { 'device': %s } }"
   65: 
   66: #define QERR_DEVICE_INIT_FAILED \
   67:     "{ 'class': 'DeviceInitFailed', 'data': { 'device': %s } }"
   68: 
   69: #define QERR_DEVICE_IN_USE \
   70:     "{ 'class': 'DeviceInUse', 'data': { 'device': %s } }"
   71: 
   72: #define QERR_DEVICE_LOCKED \
   73:     "{ 'class': 'DeviceLocked', 'data': { 'device': %s } }"
   74: 
   75: #define QERR_DEVICE_MULTIPLE_BUSSES \
   76:     "{ 'class': 'DeviceMultipleBusses', 'data': { 'device': %s } }"
   77: 
   78: #define QERR_DEVICE_NOT_ACTIVE \
   79:     "{ 'class': 'DeviceNotActive', 'data': { 'device': %s } }"
   80: 
   81: #define QERR_DEVICE_NOT_ENCRYPTED \
   82:     "{ 'class': 'DeviceNotEncrypted', 'data': { 'device': %s } }"
   83: 
   84: #define QERR_DEVICE_NOT_FOUND \
   85:     "{ 'class': 'DeviceNotFound', 'data': { 'device': %s } }"
   86: 
   87: #define QERR_DEVICE_NOT_REMOVABLE \
   88:     "{ 'class': 'DeviceNotRemovable', 'data': { 'device': %s } }"
   89: 
   90: #define QERR_DEVICE_NO_BUS \
   91:     "{ 'class': 'DeviceNoBus', 'data': { 'device': %s } }"
   92: 
   93: #define QERR_DEVICE_NO_HOTPLUG \
   94:     "{ 'class': 'DeviceNoHotplug', 'data': { 'device': %s } }"
   95: 
   96: #define QERR_DUPLICATE_ID \
   97:     "{ 'class': 'DuplicateId', 'data': { 'id': %s, 'object': %s } }"
   98: 
   99: #define QERR_FD_NOT_FOUND \
  100:     "{ 'class': 'FdNotFound', 'data': { 'name': %s } }"
  101: 
  102: #define QERR_FD_NOT_SUPPLIED \
  103:     "{ 'class': 'FdNotSupplied', 'data': {} }"
  104: 
  105: #define QERR_INVALID_BLOCK_FORMAT \
  106:     "{ 'class': 'InvalidBlockFormat', 'data': { 'name': %s } }"
  107: 
  108: #define QERR_INVALID_PARAMETER \
  109:     "{ 'class': 'InvalidParameter', 'data': { 'name': %s } }"
  110: 
  111: #define QERR_INVALID_PARAMETER_TYPE \
  112:     "{ 'class': 'InvalidParameterType', 'data': { 'name': %s,'expected': %s } }"
  113: 
  114: #define QERR_INVALID_PARAMETER_VALUE \
  115:     "{ 'class': 'InvalidParameterValue', 'data': { 'name': %s, 'expected': %s } }"
  116: 
  117: #define QERR_INVALID_PASSWORD \
  118:     "{ 'class': 'InvalidPassword', 'data': {} }"
  119: 
  120: #define QERR_JSON_PARSING \
  121:     "{ 'class': 'JSONParsing', 'data': {} }"
  122: 
  123: #define QERR_KVM_MISSING_CAP \
  124:     "{ 'class': 'KVMMissingCap', 'data': { 'capability': %s, 'feature': %s } }"
  125: 
  126: #define QERR_MIGRATION_EXPECTED \
  127:     "{ 'class': 'MigrationExpected', 'data': {} }"
  128: 
  129: #define QERR_MISSING_PARAMETER \
  130:     "{ 'class': 'MissingParameter', 'data': { 'name': %s } }"
  131: 
  132: #define QERR_NO_BUS_FOR_DEVICE \
  133:     "{ 'class': 'NoBusForDevice', 'data': { 'device': %s, 'bus': %s } }"
  134: 
  135: #define QERR_OPEN_FILE_FAILED \
  136:     "{ 'class': 'OpenFileFailed', 'data': { 'filename': %s } }"
  137: 
  138: #define QERR_PROPERTY_NOT_FOUND \
  139:     "{ 'class': 'PropertyNotFound', 'data': { 'device': %s, 'property': %s } }"
  140: 
  141: #define QERR_PROPERTY_VALUE_BAD \
  142:     "{ 'class': 'PropertyValueBad', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
  143: 
  144: #define QERR_PROPERTY_VALUE_IN_USE \
  145:     "{ 'class': 'PropertyValueInUse', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
  146: 
  147: #define QERR_PROPERTY_VALUE_NOT_FOUND \
  148:     "{ 'class': 'PropertyValueNotFound', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
  149: 
  150: #define QERR_QMP_BAD_INPUT_OBJECT \
  151:     "{ 'class': 'QMPBadInputObject', 'data': { 'expected': %s } }"
  152: 
  153: #define QERR_QMP_BAD_INPUT_OBJECT_MEMBER \
  154:     "{ 'class': 'QMPBadInputObjectMember', 'data': { 'member': %s, 'expected': %s } }"
  155: 
  156: #define QERR_QMP_EXTRA_MEMBER \
  157:     "{ 'class': 'QMPExtraInputObjectMember', 'data': { 'member': %s } }"
  158: 
  159: #define QERR_SET_PASSWD_FAILED \
  160:     "{ 'class': 'SetPasswdFailed', 'data': {} }"
  161: 
  162: #define QERR_TOO_MANY_FILES \
  163:     "{ 'class': 'TooManyFiles', 'data': {} }"
  164: 
  165: #define QERR_UNDEFINED_ERROR \
  166:     "{ 'class': 'UndefinedError', 'data': {} }"
  167: 
  168: #define QERR_UNKNOWN_BLOCK_FORMAT_FEATURE \
  169:     "{ 'class': 'UnknownBlockFormatFeature', 'data': { 'device': %s, 'format': %s, 'feature': %s } }"
  170: 
  171: #define QERR_VNC_SERVER_FAILED \
  172:     "{ 'class': 'VNCServerFailed', 'data': { 'target': %s } }"
  173: 
  174: #endif /* QERROR_H */

unix.superglobalmegacorp.com