root / error.h @ d3608b7c
History | View | Annotate | Download (1.7 kB)
1 | d5ec4f27 | Luiz Capitulino | /*
|
---|---|---|---|
2 | d5ec4f27 | Luiz Capitulino | * QEMU Error Objects
|
3 | d5ec4f27 | Luiz Capitulino | *
|
4 | d5ec4f27 | Luiz Capitulino | * Copyright IBM, Corp. 2011
|
5 | d5ec4f27 | Luiz Capitulino | *
|
6 | d5ec4f27 | Luiz Capitulino | * Authors:
|
7 | d5ec4f27 | Luiz Capitulino | * Anthony Liguori <aliguori@us.ibm.com>
|
8 | d5ec4f27 | Luiz Capitulino | *
|
9 | d5ec4f27 | Luiz Capitulino | * This work is licensed under the terms of the GNU LGPL, version 2. See
|
10 | d5ec4f27 | Luiz Capitulino | * the COPYING.LIB file in the top-level directory.
|
11 | d5ec4f27 | Luiz Capitulino | */
|
12 | d5ec4f27 | Luiz Capitulino | #ifndef ERROR_H
|
13 | d5ec4f27 | Luiz Capitulino | #define ERROR_H
|
14 | d5ec4f27 | Luiz Capitulino | |
15 | d3608b7c | Luiz Capitulino | #include "compiler.h" |
16 | d5ec4f27 | Luiz Capitulino | #include <stdbool.h> |
17 | d5ec4f27 | Luiz Capitulino | |
18 | d5ec4f27 | Luiz Capitulino | /**
|
19 | d5ec4f27 | Luiz Capitulino | * A class representing internal errors within QEMU. An error has a string
|
20 | d5ec4f27 | Luiz Capitulino | * typename and optionally a set of named string parameters.
|
21 | d5ec4f27 | Luiz Capitulino | */
|
22 | d5ec4f27 | Luiz Capitulino | typedef struct Error Error; |
23 | d5ec4f27 | Luiz Capitulino | |
24 | d5ec4f27 | Luiz Capitulino | /**
|
25 | d5ec4f27 | Luiz Capitulino | * Set an indirect pointer to an error given a printf-style format parameter.
|
26 | d5ec4f27 | Luiz Capitulino | * Currently, qerror.h defines these error formats. This function is not
|
27 | d5ec4f27 | Luiz Capitulino | * meant to be used outside of QEMU.
|
28 | d5ec4f27 | Luiz Capitulino | */
|
29 | e4ea5e2d | Stefan Weil | void error_set(Error **err, const char *fmt, ...) GCC_FMT_ATTR(2, 3); |
30 | d5ec4f27 | Luiz Capitulino | |
31 | d5ec4f27 | Luiz Capitulino | /**
|
32 | d5ec4f27 | Luiz Capitulino | * Returns true if an indirect pointer to an error is pointing to a valid
|
33 | d5ec4f27 | Luiz Capitulino | * error object.
|
34 | d5ec4f27 | Luiz Capitulino | */
|
35 | d5ec4f27 | Luiz Capitulino | bool error_is_set(Error **err);
|
36 | d5ec4f27 | Luiz Capitulino | |
37 | d5ec4f27 | Luiz Capitulino | /**
|
38 | d5ec4f27 | Luiz Capitulino | * Get a human readable representation of an error object.
|
39 | d5ec4f27 | Luiz Capitulino | */
|
40 | d5ec4f27 | Luiz Capitulino | const char *error_get_pretty(Error *err); |
41 | d5ec4f27 | Luiz Capitulino | |
42 | d5ec4f27 | Luiz Capitulino | /**
|
43 | d5ec4f27 | Luiz Capitulino | * Get an individual named error field.
|
44 | d5ec4f27 | Luiz Capitulino | */
|
45 | d5ec4f27 | Luiz Capitulino | const char *error_get_field(Error *err, const char *field); |
46 | d5ec4f27 | Luiz Capitulino | |
47 | d5ec4f27 | Luiz Capitulino | /**
|
48 | d5ec4f27 | Luiz Capitulino | * Get an individual named error field.
|
49 | d5ec4f27 | Luiz Capitulino | */
|
50 | d5ec4f27 | Luiz Capitulino | void error_set_field(Error *err, const char *field, const char *value); |
51 | d5ec4f27 | Luiz Capitulino | |
52 | d5ec4f27 | Luiz Capitulino | /**
|
53 | d5ec4f27 | Luiz Capitulino | * Propagate an error to an indirect pointer to an error. This function will
|
54 | d5ec4f27 | Luiz Capitulino | * always transfer ownership of the error reference and handles the case where
|
55 | d5ec4f27 | Luiz Capitulino | * dst_err is NULL correctly.
|
56 | d5ec4f27 | Luiz Capitulino | */
|
57 | d5ec4f27 | Luiz Capitulino | void error_propagate(Error **dst_err, Error *local_err);
|
58 | d5ec4f27 | Luiz Capitulino | |
59 | d5ec4f27 | Luiz Capitulino | /**
|
60 | d5ec4f27 | Luiz Capitulino | * Free an error object.
|
61 | d5ec4f27 | Luiz Capitulino | */
|
62 | d5ec4f27 | Luiz Capitulino | void error_free(Error *err);
|
63 | d5ec4f27 | Luiz Capitulino | |
64 | d5ec4f27 | Luiz Capitulino | /**
|
65 | d5ec4f27 | Luiz Capitulino | * Determine if an error is of a speific type (based on the qerror format).
|
66 | d5ec4f27 | Luiz Capitulino | * Non-QEMU users should get the `class' field to identify the error type.
|
67 | d5ec4f27 | Luiz Capitulino | */
|
68 | d5ec4f27 | Luiz Capitulino | bool error_is_type(Error *err, const char *fmt); |
69 | d5ec4f27 | Luiz Capitulino | |
70 | d5ec4f27 | Luiz Capitulino | #endif |