~ubuntu-branches/debian/jessie/qemu/jessie

« back to all changes in this revision

Viewing changes to error.h

  • Committer: Package Import Robot
  • Author(s): Vagrant Cascadian
  • Date: 2011-10-03 12:29:18 UTC
  • mfrom: (1.2.13) (10.2.6 experimental)
  • Revision ID: package-import@ubuntu.com-20111003122918-zc4kv6epchrbgdta
Tags: 0.15.0+dfsg-1
* New upstream version.
* Install new qemu-system, qemu-user and qemu-user-static variants: 
  lm32, microblazeel, s390x, unicore32
* Patch from upstream to set QEMU_INCLUDES before QEMU_CFLAGS.
* Update debian/watch to check http://qemu.org/download.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * QEMU Error Objects
 
3
 *
 
4
 * Copyright IBM, Corp. 2011
 
5
 *
 
6
 * Authors:
 
7
 *  Anthony Liguori   <aliguori@us.ibm.com>
 
8
 *
 
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.
 
11
 */
 
12
#ifndef ERROR_H
 
13
#define ERROR_H
 
14
 
 
15
#include "compiler.h"
 
16
#include <stdbool.h>
 
17
 
 
18
/**
 
19
 * A class representing internal errors within QEMU.  An error has a string
 
20
 * typename and optionally a set of named string parameters.
 
21
 */
 
22
typedef struct Error Error;
 
23
 
 
24
/**
 
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.
 
28
 */
 
29
void error_set(Error **err, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
 
30
 
 
31
/**
 
32
 * Returns true if an indirect pointer to an error is pointing to a valid
 
33
 * error object.
 
34
 */
 
35
bool error_is_set(Error **err);
 
36
 
 
37
/**
 
38
 * Get a human readable representation of an error object.
 
39
 */
 
40
const char *error_get_pretty(Error *err);
 
41
 
 
42
/**
 
43
 * Get an individual named error field.
 
44
 */
 
45
const char *error_get_field(Error *err, const char *field);
 
46
 
 
47
/**
 
48
 * Get an individual named error field.
 
49
 */
 
50
void error_set_field(Error *err, const char *field, const char *value);
 
51
 
 
52
/**
 
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.
 
56
 */
 
57
void error_propagate(Error **dst_err, Error *local_err);
 
58
 
 
59
/**
 
60
 * Free an error object.
 
61
 */
 
62
void error_free(Error *err);
 
63
 
 
64
/**
 
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.
 
67
 */
 
68
bool error_is_type(Error *err, const char *fmt);
 
69
 
 
70
#endif