4
* Copyright IBM, Corp. 2011
7
* Anthony Liguori <aliguori@us.ibm.com>
9
* This work is licensed under the terms of the GNU LGPL, version 2. See
10
* the COPYING.LIB file in the top-level directory.
19
* A class representing internal errors within QEMU. An error has a string
20
* typename and optionally a set of named string parameters.
22
typedef struct Error Error;
25
* Set an indirect pointer to an error given a printf-style format parameter.
26
* Currently, qerror.h defines these error formats. This function is not
27
* meant to be used outside of QEMU.
29
void error_set(Error **err, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
32
* Returns true if an indirect pointer to an error is pointing to a valid
35
bool error_is_set(Error **err);
38
* Get a human readable representation of an error object.
40
const char *error_get_pretty(Error *err);
43
* Get an individual named error field.
45
const char *error_get_field(Error *err, const char *field);
48
* Get an individual named error field.
50
void error_set_field(Error *err, const char *field, const char *value);
53
* Propagate an error to an indirect pointer to an error. This function will
54
* always transfer ownership of the error reference and handles the case where
55
* dst_err is NULL correctly.
57
void error_propagate(Error **dst_err, Error *local_err);
60
* Free an error object.
62
void error_free(Error *err);
65
* Determine if an error is of a speific type (based on the qerror format).
66
* Non-QEMU users should get the `class' field to identify the error type.
68
bool error_is_type(Error *err, const char *fmt);