File:  [Qemu by Fabrice Bellard] / qemu / error.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:56:27 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu1001, qemu1000, qemu0151, HEAD
qemu 0.15.1

    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

unix.superglobalmegacorp.com