summaryrefslogtreecommitdiff
path: root/error.h
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2012-10-02 09:00:45 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2012-10-23 13:54:55 +0200
commit680d16dcb79f999fad3a652c5190d6a5c6ea10dd (patch)
treeab13fbe847285bbd18c2e4709cd9f0c04f45f8fd /error.h
parentda124e62de2109a312e21d85d6a3419774c58948 (diff)
downloadqemu-680d16dcb79f999fad3a652c5190d6a5c6ea10dd.tar.gz
error: add error_set_errno and error_setg_errno
These functions help maintaining homogeneous formatting of error messages that include strerror values. Acked-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'error.h')
-rw-r--r--error.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/error.h b/error.h
index da7fed399e..4d52e7369e 100644
--- a/error.h
+++ b/error.h
@@ -30,10 +30,19 @@ typedef struct Error Error;
void error_set(Error **err, ErrorClass err_class, const char *fmt, ...) GCC_FMT_ATTR(3, 4);
/**
+ * Set an indirect pointer to an error given a ErrorClass value and a
+ * printf-style human message, followed by a strerror() string if
+ * @os_error is not zero.
+ */
+void error_set_errno(Error **err, int os_error, ErrorClass err_class, const char *fmt, ...) GCC_FMT_ATTR(4, 5);
+
+/**
* Same as error_set(), but sets a generic error
*/
#define error_setg(err, fmt, ...) \
error_set(err, ERROR_CLASS_GENERIC_ERROR, fmt, ## __VA_ARGS__)
+#define error_setg_errno(err, os_error, fmt, ...) \
+ error_set_errno(err, os_error, ERROR_CLASS_GENERIC_ERROR, fmt, ## __VA_ARGS__)
/**
* Returns true if an indirect pointer to an error is pointing to a valid