[libvirt] [PATCH 27/28] Rename virterror.c virterror_internal.h to virerror.{c, h}

Daniel P. Berrange berrange at redhat.com
Mon Dec 17 14:58:00 UTC 2012


From: "Daniel P. Berrange" <berrange at redhat.com>

---
 cfg.mk                                    |    2 +-
 daemon/libvirtd-config.c                  |    2 +-
 daemon/libvirtd.c                         |    2 +-
 daemon/remote.c                           |    2 +-
 daemon/stream.c                           |    2 +-
 docs/Makefile.am                          |    2 +-
 po/POTFILES.in                            |    4 +-
 src/Makefile.am                           |    2 +-
 src/conf/capabilities.c                   |    2 +-
 src/conf/cpu_conf.c                       |    2 +-
 src/conf/device_conf.c                    |    2 +-
 src/conf/domain_conf.c                    |    2 +-
 src/conf/domain_event.c                   |    2 +-
 src/conf/interface_conf.c                 |    2 +-
 src/conf/netdev_bandwidth_conf.c          |    2 +-
 src/conf/netdev_vlan_conf.c               |    2 +-
 src/conf/netdev_vport_profile_conf.c      |    2 +-
 src/conf/network_conf.c                   |    2 +-
 src/conf/node_device_conf.c               |    2 +-
 src/conf/nwfilter_conf.c                  |    2 +-
 src/conf/nwfilter_ipaddrmap.c             |    2 +-
 src/conf/nwfilter_params.c                |    2 +-
 src/conf/secret_conf.c                    |    2 +-
 src/conf/snapshot_conf.c                  |    2 +-
 src/conf/storage_conf.c                   |    2 +-
 src/conf/storage_encryption_conf.c        |    2 +-
 src/conf/virconsole.c                     |    2 +-
 src/cpu/cpu.h                             |    2 +-
 src/datatypes.c                           |    2 +-
 src/esx/esx_private.h                     |    2 +-
 src/esx/esx_vi.h                          |    2 +-
 src/fdstream.c                            |    2 +-
 src/hyperv/hyperv_device_monitor.c        |    2 +-
 src/hyperv/hyperv_interface_driver.c      |    2 +-
 src/hyperv/hyperv_network_driver.c        |    2 +-
 src/hyperv/hyperv_nwfilter_driver.c       |    2 +-
 src/hyperv/hyperv_private.h               |    2 +-
 src/hyperv/hyperv_secret_driver.c         |    2 +-
 src/hyperv/hyperv_storage_driver.c        |    2 +-
 src/hyperv/hyperv_wmi.c                   |    2 +-
 src/interface/interface_backend_netcf.c   |    2 +-
 src/interface/interface_backend_udev.c    |    2 +-
 src/libvirt-qemu.c                        |    2 +-
 src/libvirt.c                             |    2 +-
 src/libxl/libxl_conf.c                    |    2 +-
 src/libxl/libxl_driver.c                  |    2 +-
 src/locking/domain_lock.c                 |    2 +-
 src/locking/lock_daemon.c                 |    2 +-
 src/locking/lock_daemon_config.c          |    2 +-
 src/locking/lock_daemon_dispatch.c        |    2 +-
 src/locking/lock_driver_lockd.c           |    2 +-
 src/locking/lock_driver_sanlock.c         |    2 +-
 src/locking/lock_manager.c                |    2 +-
 src/lxc/lxc_cgroup.c                      |    2 +-
 src/lxc/lxc_conf.c                        |    2 +-
 src/lxc/lxc_container.c                   |    2 +-
 src/lxc/lxc_controller.c                  |    2 +-
 src/lxc/lxc_domain.c                      |    2 +-
 src/lxc/lxc_driver.c                      |    2 +-
 src/lxc/lxc_fuse.c                        |    2 +-
 src/lxc/lxc_monitor.c                     |    2 +-
 src/lxc/lxc_process.c                     |    2 +-
 src/network/bridge_driver.c               |    2 +-
 src/node_device/node_device_driver.c      |    2 +-
 src/node_device/node_device_hal.c         |    2 +-
 src/node_device/node_device_linux_sysfs.c |    2 +-
 src/node_device/node_device_udev.c        |    2 +-
 src/nodeinfo.c                            |    2 +-
 src/nwfilter/nwfilter_dhcpsnoop.c         |    2 +-
 src/nwfilter/nwfilter_driver.c            |    2 +-
 src/nwfilter/nwfilter_ebiptables_driver.c |    2 +-
 src/nwfilter/nwfilter_gentech_driver.c    |    2 +-
 src/nwfilter/nwfilter_learnipaddr.c       |    2 +-
 src/openvz/openvz_conf.c                  |    2 +-
 src/openvz/openvz_driver.c                |    2 +-
 src/openvz/openvz_util.c                  |    2 +-
 src/parallels/parallels_driver.c          |    2 +-
 src/parallels/parallels_network.c         |    2 +-
 src/parallels/parallels_storage.c         |    2 +-
 src/parallels/parallels_utils.c           |    2 +-
 src/phyp/phyp_driver.c                    |    2 +-
 src/qemu/qemu_agent.c                     |    2 +-
 src/qemu/qemu_bridge_filter.c             |    2 +-
 src/qemu/qemu_capabilities.c              |    2 +-
 src/qemu/qemu_cgroup.c                    |    2 +-
 src/qemu/qemu_command.c                   |    2 +-
 src/qemu/qemu_conf.c                      |    2 +-
 src/qemu/qemu_domain.c                    |    2 +-
 src/qemu/qemu_driver.c                    |    2 +-
 src/qemu/qemu_hostdev.c                   |    2 +-
 src/qemu/qemu_hotplug.c                   |    2 +-
 src/qemu/qemu_migration.c                 |    2 +-
 src/qemu/qemu_monitor.c                   |    2 +-
 src/qemu/qemu_monitor_json.c              |    2 +-
 src/qemu/qemu_monitor_text.c              |    2 +-
 src/qemu/qemu_process.c                   |    2 +-
 src/remote/remote_driver.c                |    2 +-
 src/rpc/virkeepalive.c                    |    2 +-
 src/rpc/virnetclient.c                    |    2 +-
 src/rpc/virnetclientprogram.c             |    2 +-
 src/rpc/virnetclientstream.c              |    2 +-
 src/rpc/virnetmessage.c                   |    2 +-
 src/rpc/virnetsaslcontext.c               |    2 +-
 src/rpc/virnetserver.c                    |    2 +-
 src/rpc/virnetserverclient.c              |    2 +-
 src/rpc/virnetservermdns.c                |    2 +-
 src/rpc/virnetserverprogram.c             |    2 +-
 src/rpc/virnetserverservice.c             |    2 +-
 src/rpc/virnetsocket.c                    |    2 +-
 src/rpc/virnetsshsession.c                |    2 +-
 src/rpc/virnettlscontext.c                |    2 +-
 src/secret/secret_driver.c                |    2 +-
 src/security/security_apparmor.c          |    2 +-
 src/security/security_dac.c               |    2 +-
 src/security/security_driver.c            |    2 +-
 src/security/security_manager.c           |    2 +-
 src/security/security_nop.c               |    2 +-
 src/security/security_selinux.c           |    2 +-
 src/security/security_stack.c             |    2 +-
 src/storage/storage_backend.c             |    2 +-
 src/storage/storage_backend_disk.c        |    2 +-
 src/storage/storage_backend_fs.c          |    2 +-
 src/storage/storage_backend_iscsi.c       |    2 +-
 src/storage/storage_backend_logical.c     |    2 +-
 src/storage/storage_backend_mpath.c       |    2 +-
 src/storage/storage_backend_rbd.c         |    2 +-
 src/storage/storage_backend_scsi.c        |    2 +-
 src/storage/storage_backend_sheepdog.c    |    2 +-
 src/storage/storage_driver.c              |    2 +-
 src/test/test_driver.c                    |    2 +-
 src/uml/uml_conf.h                        |    2 +-
 src/util/iohelper.c                       |    2 +-
 src/util/viraudit.c                       |    2 +-
 src/util/virauth.c                        |    2 +-
 src/util/virauthconfig.c                  |    2 +-
 src/util/vircommand.c                     |    2 +-
 src/util/virconf.c                        |    2 +-
 src/util/virdbus.c                        |    2 +-
 src/util/virdnsmasq.c                     |    2 +-
 src/util/virebtables.c                    |    2 +-
 src/util/virerror.c                       | 1369 +++++++++++++++++++++++++++++
 src/util/virerror.h                       |  167 ++++
 src/util/virevent.c                       |    2 +-
 src/util/vireventpoll.c                   |    2 +-
 src/util/virfile.c                        |    2 +-
 src/util/virhash.c                        |    2 +-
 src/util/virhooks.c                       |    2 +-
 src/util/virinitctl.c                     |    2 +-
 src/util/viriptables.c                    |    2 +-
 src/util/virjson.c                        |    2 +-
 src/util/virkeyfile.c                     |    2 +-
 src/util/virlockspace.c                   |    2 +-
 src/util/virlog.c                         |    2 +-
 src/util/virnetdev.c                      |    2 +-
 src/util/virnetdevbandwidth.c             |    2 +-
 src/util/virnetdevbridge.c                |    2 +-
 src/util/virnetdevmacvlan.c               |    2 +-
 src/util/virnetdevopenvswitch.c           |    2 +-
 src/util/virnetdevtap.c                   |    4 +-
 src/util/virnetdevveth.c                  |    2 +-
 src/util/virnetdevvlan.c                  |    2 +-
 src/util/virnetdevvportprofile.c          |    2 +-
 src/util/virnetlink.c                     |    2 +-
 src/util/virnodesuspend.c                 |    2 +-
 src/util/virobject.c                      |    2 +-
 src/util/virpci.c                         |    2 +-
 src/util/virpidfile.c                     |    2 +-
 src/util/virprocess.c                     |    2 +-
 src/util/virrandom.c                      |    2 +-
 src/util/virsexpr.c                       |    2 +-
 src/util/virsocketaddr.c                  |    2 +-
 src/util/virstatslinux.c                  |    2 +-
 src/util/virstoragefile.c                 |    2 +-
 src/util/virstring.c                      |    2 +-
 src/util/virsysinfo.c                     |    2 +-
 src/util/virterror.c                      | 1369 -----------------------------
 src/util/virterror_internal.h             |  167 ----
 src/util/virthreadpool.c                  |    2 +-
 src/util/virtime.c                        |    2 +-
 src/util/virtypedparam.c                  |    2 +-
 src/util/viruri.c                         |    2 +-
 src/util/virusb.c                         |    2 +-
 src/util/virutil.c                        |    2 +-
 src/util/viruuid.c                        |    2 +-
 src/util/virxml.c                         |    2 +-
 src/vbox/vbox_MSCOMGlue.c                 |    2 +-
 src/vbox/vbox_XPCOMCGlue.c                |    2 +-
 src/vbox/vbox_driver.c                    |    2 +-
 src/vbox/vbox_tmpl.c                      |    2 +-
 src/vmware/vmware_conf.c                  |    2 +-
 src/vmware/vmware_driver.c                |    2 +-
 src/vmx/vmx.c                             |    2 +-
 src/xen/block_stats.c                     |    2 +-
 src/xen/xen_driver.c                      |    2 +-
 src/xen/xen_hypervisor.c                  |    2 +-
 src/xen/xen_inotify.c                     |    2 +-
 src/xen/xend_internal.c                   |    2 +-
 src/xen/xm_internal.c                     |    2 +-
 src/xen/xs_internal.c                     |    2 +-
 src/xenapi/xenapi_driver.c                |    2 +-
 src/xenapi/xenapi_driver_private.h        |    2 +-
 src/xenapi/xenapi_utils.c                 |    2 +-
 src/xenxs/xen_sxpr.c                      |    2 +-
 src/xenxs/xen_xm.c                        |    2 +-
 tests/commandtest.c                       |    2 +-
 tests/libvirtdconftest.c                  |    2 +-
 tests/qemumonitorjsontest.c               |    2 +-
 tests/qemumonitortestutils.c              |    2 +-
 tests/securityselinuxtest.c               |    2 +-
 tests/testutils.c                         |    2 +-
 tests/virauthconfigtest.c                 |    2 +-
 tests/virdrivermoduletest.c               |    2 +-
 tests/virkeyfiletest.c                    |    2 +-
 tests/virlockspacetest.c                  |    2 +-
 tests/virnetmessagetest.c                 |    2 +-
 tests/virnetsockettest.c                  |    2 +-
 tests/virnettlscontexttest.c              |    2 +-
 tests/virstringtest.c                     |    2 +-
 tests/virtimetest.c                       |    2 +-
 tests/viruritest.c                        |    2 +-
 tools/console.c                           |    2 +-
 tools/virsh-domain.c                      |    2 +-
 tools/virsh.c                             |    2 +-
 tools/virsh.h                             |    2 +-
 224 files changed, 1758 insertions(+), 1758 deletions(-)
 create mode 100644 src/util/virerror.c
 create mode 100644 src/util/virerror.h
 delete mode 100644 src/util/virterror.c
 delete mode 100644 src/util/virterror_internal.h

diff --git a/cfg.mk b/cfg.mk
index 2fcb444..26147bd 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -762,7 +762,7 @@ exclude_file_name_regexp--sc_libvirt_unmarked_diagnostics = \
 exclude_file_name_regexp--sc_po_check = ^(docs/|src/rpc/gendispatch\.pl$$)
 
 exclude_file_name_regexp--sc_prohibit_VIR_ERR_NO_MEMORY = \
-  ^(include/libvirt/virterror\.h|daemon/dispatch\.c|src/util/virterror\.c)$$
+  ^(include/libvirt/virterror\.h|daemon/dispatch\.c|src/util/virerror\.c)$$
 
 exclude_file_name_regexp--sc_prohibit_access_xok = ^src/util/virutil\.c$$
 
diff --git a/daemon/libvirtd-config.c b/daemon/libvirtd-config.c
index b979a23..8b74bf1 100644
--- a/daemon/libvirtd-config.c
+++ b/daemon/libvirtd-config.c
@@ -26,7 +26,7 @@
 #include "libvirtd-config.h"
 #include "virconf.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "rpc/virnetserver.h"
 #include "configmake.h"
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index 560746f..f2a3036 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -33,7 +33,7 @@
 #include <locale.h>
 
 #include "libvirt_internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virfile.h"
 #include "virpidfile.h"
 #include "virprocess.h"
diff --git a/daemon/remote.c b/daemon/remote.c
index 1a054d5..817d5ed 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -22,7 +22,7 @@
 
 #include <config.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #if HAVE_POLKIT0
 # include <polkit/polkit.h>
diff --git a/daemon/stream.c b/daemon/stream.c
index f208139..4df1145 100644
--- a/daemon/stream.c
+++ b/daemon/stream.c
@@ -28,7 +28,7 @@
 #include "viralloc.h"
 #include "virlog.h"
 #include "virnetserverclient.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_STREAMS
 
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 4fea3a0..cba9d4b 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -239,7 +239,7 @@ $(APIBUILD_STAMP): $(srcdir)/apibuild.py \
 		$(srcdir)/../include/libvirt/virterror.h \
 		$(srcdir)/../src/libvirt.c \
 		$(srcdir)/../src/libvirt-qemu.c \
-		$(srcdir)/../src/util/virterror.c
+		$(srcdir)/../src/util/virerror.c
 	$(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) $(APIBUILD)
 	touch $@
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 1afdca5..c79aa73 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -173,8 +173,8 @@ src/util/virsocketaddr.c
 src/util/virstatslinux.c
 src/util/virstoragefile.c
 src/util/virsysinfo.c
-src/util/virterror.c
-src/util/virterror_internal.h
+src/util/virerror.c
+src/util/virerror.h
 src/util/virtime.c
 src/util/virtypedparam.c
 src/util/viruri.c
diff --git a/src/Makefile.am b/src/Makefile.am
index dddd162..0c77062 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -64,6 +64,7 @@ UTIL_SOURCES =							\
 		util/virconf.c util/virconf.h			\
 		util/virdnsmasq.c util/virdnsmasq.h             \
 		util/virebtables.c util/virebtables.h		\
+		util/virerror.c util/virerror.h			\
 		util/virevent.c util/virevent.h			\
 		util/vireventpoll.c util/vireventpoll.h		\
 		util/virfile.c util/virfile.h			\
@@ -85,7 +86,6 @@ UTIL_SOURCES =							\
 		util/virthreadwin32.h				\
 		util/virthreadpool.c util/virthreadpool.h	\
 		util/virtypedparam.c util/virtypedparam.h	\
-		util/virterror.c util/virterror_internal.h	\
 		util/vircgroup.c util/vircgroup.h		\
 		util/virdbus.c util/virdbus.h			\
 		util/virhash.c util/virhash.h			\
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
index f6badcc..e6cb2a6 100644
--- a/src/conf/capabilities.c
+++ b/src/conf/capabilities.c
@@ -31,7 +31,7 @@
 #include "virutil.h"
 #include "viruuid.h"
 #include "cpu_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 
 #define VIR_FROM_THIS VIR_FROM_CAPABILITIES
diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 95c6ca1..7acf327 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -23,7 +23,7 @@
 
 #include <config.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virutil.h"
 #include "virbuffer.h"
diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
index 45ecb28..099b1cb 100644
--- a/src/conf/device_conf.c
+++ b/src/conf/device_conf.c
@@ -21,7 +21,7 @@
  */
 
 #include <config.h>
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "viralloc.h"
 #include "virxml.h"
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index a4f33ed..db4b274 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -30,7 +30,7 @@
 #include <unistd.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "domain_conf.h"
 #include "snapshot_conf.h"
diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
index d523808..96a07ac 100644
--- a/src/conf/domain_event.c
+++ b/src/conf/domain_event.c
@@ -27,7 +27,7 @@
 #include "virlog.h"
 #include "datatypes.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c
index 3867274..9301ec0 100644
--- a/src/conf/interface_conf.c
+++ b/src/conf/interface_conf.c
@@ -22,7 +22,7 @@
  */
 
 #include <config.h>
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 
 #include "interface_conf.h"
diff --git a/src/conf/netdev_bandwidth_conf.c b/src/conf/netdev_bandwidth_conf.c
index e64aeff..b830cd0 100644
--- a/src/conf/netdev_bandwidth_conf.c
+++ b/src/conf/netdev_bandwidth_conf.c
@@ -23,7 +23,7 @@
 #include <config.h>
 
 #include "netdev_bandwidth_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "viralloc.h"
 #include "domain_conf.h"
diff --git a/src/conf/netdev_vlan_conf.c b/src/conf/netdev_vlan_conf.c
index 8cee025..9207184 100644
--- a/src/conf/netdev_vlan_conf.c
+++ b/src/conf/netdev_vlan_conf.c
@@ -22,7 +22,7 @@
 #include <config.h>
 
 #include "netdev_vlan_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/conf/netdev_vport_profile_conf.c b/src/conf/netdev_vport_profile_conf.c
index a9a38d7..701e17e 100644
--- a/src/conf/netdev_vport_profile_conf.c
+++ b/src/conf/netdev_vport_profile_conf.c
@@ -23,7 +23,7 @@
 #include <config.h>
 
 #include "netdev_vport_profile_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index 2bd04c5..f949f79 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -31,7 +31,7 @@
 #include <string.h>
 #include <dirent.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "network_conf.h"
 #include "netdev_vport_profile_conf.h"
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 3c68011..53b6af2 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -26,7 +26,7 @@
 #include <unistd.h>
 #include <errno.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "viralloc.h"
 
diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c
index 810de6c..ca22411 100644
--- a/src/conf/nwfilter_conf.c
+++ b/src/conf/nwfilter_conf.c
@@ -40,7 +40,7 @@
 
 #include "viruuid.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "nwfilter_params.h"
 #include "nwfilter_conf.h"
diff --git a/src/conf/nwfilter_ipaddrmap.c b/src/conf/nwfilter_ipaddrmap.c
index ddad49e..317069d 100644
--- a/src/conf/nwfilter_ipaddrmap.c
+++ b/src/conf/nwfilter_ipaddrmap.c
@@ -26,7 +26,7 @@
 
 #include "internal.h"
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "nwfilter_params.h"
 #include "nwfilter_ipaddrmap.h"
diff --git a/src/conf/nwfilter_params.c b/src/conf/nwfilter_params.c
index 1429952..7aebc8d 100644
--- a/src/conf/nwfilter_params.c
+++ b/src/conf/nwfilter_params.c
@@ -26,7 +26,7 @@
 #include "internal.h"
 
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "nwfilter_params.h"
 #include "domain_conf.h"
diff --git a/src/conf/secret_conf.c b/src/conf/secret_conf.c
index 46d2ae5..891af65 100644
--- a/src/conf/secret_conf.c
+++ b/src/conf/secret_conf.c
@@ -28,7 +28,7 @@
 #include "virlog.h"
 #include "viralloc.h"
 #include "secret_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "virxml.h"
 #include "viruuid.h"
diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c
index f7f8f63..201c586 100644
--- a/src/conf/snapshot_conf.c
+++ b/src/conf/snapshot_conf.c
@@ -45,7 +45,7 @@
 #include "virutil.h"
 #include "viruuid.h"
 #include "virfile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virxml.h"
 
 #define VIR_FROM_THIS VIR_FROM_DOMAIN_SNAPSHOT
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 04b2581..7a39998 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -33,7 +33,7 @@
 #include <fcntl.h>
 #include <string.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "storage_conf.h"
 #include "virstoragefile.h"
diff --git a/src/conf/storage_encryption_conf.c b/src/conf/storage_encryption_conf.c
index 35e9da4..88dff1b 100644
--- a/src/conf/storage_encryption_conf.c
+++ b/src/conf/storage_encryption_conf.c
@@ -33,7 +33,7 @@
 #include "storage_encryption_conf.h"
 #include "virutil.h"
 #include "virxml.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viruuid.h"
 #include "virfile.h"
 
diff --git a/src/conf/virconsole.c b/src/conf/virconsole.c
index 515c5fa..239e2d2 100644
--- a/src/conf/virconsole.c
+++ b/src/conf/virconsole.c
@@ -35,7 +35,7 @@
 #include "viralloc.h"
 #include "virpidfile.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virfile.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/cpu/cpu.h b/src/cpu/cpu.h
index 01c732c..a00a469 100644
--- a/src/cpu/cpu.h
+++ b/src/cpu/cpu.h
@@ -24,7 +24,7 @@
 #ifndef __VIR_CPU_H__
 # define __VIR_CPU_H__
 
-# include "virterror_internal.h"
+# include "virerror.h"
 # include "datatypes.h"
 # include "conf/cpu_conf.h"
 # include "cpu_x86_data.h"
diff --git a/src/datatypes.c b/src/datatypes.c
index 038c47d..068233c 100644
--- a/src/datatypes.c
+++ b/src/datatypes.c
@@ -23,7 +23,7 @@
 #include <unistd.h>
 
 #include "datatypes.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "viralloc.h"
 #include "viruuid.h"
diff --git a/src/esx/esx_private.h b/src/esx/esx_private.h
index de6ba5d..f1e7adf 100644
--- a/src/esx/esx_private.h
+++ b/src/esx/esx_private.h
@@ -24,7 +24,7 @@
 # define __ESX_PRIVATE_H__
 
 # include "internal.h"
-# include "virterror_internal.h"
+# include "virerror.h"
 # include "capabilities.h"
 # include "esx_vi.h"
 
diff --git a/src/esx/esx_vi.h b/src/esx/esx_vi.h
index a121d1c..3eaeb38 100644
--- a/src/esx/esx_vi.h
+++ b/src/esx/esx_vi.h
@@ -29,7 +29,7 @@
 # include <curl/curl.h>
 
 # include "internal.h"
-# include "virterror_internal.h"
+# include "virerror.h"
 # include "datatypes.h"
 # include "esx_vi_types.h"
 # include "esx_util.h"
diff --git a/src/fdstream.c b/src/fdstream.c
index f7f101e..cc2dfe9 100644
--- a/src/fdstream.c
+++ b/src/fdstream.c
@@ -33,7 +33,7 @@
 #include <netinet/in.h>
 
 #include "fdstream.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virlog.h"
 #include "viralloc.h"
diff --git a/src/hyperv/hyperv_device_monitor.c b/src/hyperv/hyperv_device_monitor.c
index 43ee1fc..9432081 100644
--- a/src/hyperv/hyperv_device_monitor.c
+++ b/src/hyperv/hyperv_device_monitor.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virutil.h"
 #include "viralloc.h"
diff --git a/src/hyperv/hyperv_interface_driver.c b/src/hyperv/hyperv_interface_driver.c
index 7dd6912..b42dbce 100644
--- a/src/hyperv/hyperv_interface_driver.c
+++ b/src/hyperv/hyperv_interface_driver.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virutil.h"
 #include "viralloc.h"
diff --git a/src/hyperv/hyperv_network_driver.c b/src/hyperv/hyperv_network_driver.c
index f34a451..c75c943 100644
--- a/src/hyperv/hyperv_network_driver.c
+++ b/src/hyperv/hyperv_network_driver.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virutil.h"
 #include "viralloc.h"
diff --git a/src/hyperv/hyperv_nwfilter_driver.c b/src/hyperv/hyperv_nwfilter_driver.c
index c6125ec..faa9074 100644
--- a/src/hyperv/hyperv_nwfilter_driver.c
+++ b/src/hyperv/hyperv_nwfilter_driver.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virutil.h"
 #include "viralloc.h"
diff --git a/src/hyperv/hyperv_private.h b/src/hyperv/hyperv_private.h
index 30051ea..9c9fd3e 100644
--- a/src/hyperv/hyperv_private.h
+++ b/src/hyperv/hyperv_private.h
@@ -25,7 +25,7 @@
 # define __HYPERV_PRIVATE_H__
 
 # include "internal.h"
-# include "virterror_internal.h"
+# include "virerror.h"
 # include "hyperv_util.h"
 # include "openwsman.h"
 
diff --git a/src/hyperv/hyperv_secret_driver.c b/src/hyperv/hyperv_secret_driver.c
index b830e4e..602ae99 100644
--- a/src/hyperv/hyperv_secret_driver.c
+++ b/src/hyperv/hyperv_secret_driver.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virutil.h"
 #include "viralloc.h"
diff --git a/src/hyperv/hyperv_storage_driver.c b/src/hyperv/hyperv_storage_driver.c
index 38385a0..a169b14 100644
--- a/src/hyperv/hyperv_storage_driver.c
+++ b/src/hyperv/hyperv_storage_driver.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virutil.h"
 #include "viralloc.h"
diff --git a/src/hyperv/hyperv_wmi.c b/src/hyperv/hyperv_wmi.c
index e029028..33ba21f 100644
--- a/src/hyperv/hyperv_wmi.c
+++ b/src/hyperv/hyperv_wmi.c
@@ -25,7 +25,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virlog.h"
 #include "viralloc.h"
diff --git a/src/interface/interface_backend_netcf.c b/src/interface/interface_backend_netcf.c
index 74a749b..35335c2 100644
--- a/src/interface/interface_backend_netcf.c
+++ b/src/interface/interface_backend_netcf.c
@@ -25,7 +25,7 @@
 
 #include <netcf.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "interface_driver.h"
 #include "interface_conf.h"
diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c
index 248b02e..cc20b98 100644
--- a/src/interface/interface_backend_udev.c
+++ b/src/interface/interface_backend_udev.c
@@ -23,7 +23,7 @@
 #include <dirent.h>
 #include <libudev.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "interface_driver.h"
 #include "interface_conf.h"
diff --git a/src/libvirt-qemu.c b/src/libvirt-qemu.c
index 8d53b5c..11da2f3 100644
--- a/src/libvirt-qemu.c
+++ b/src/libvirt-qemu.c
@@ -23,7 +23,7 @@
 
 #include <config.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "libvirt/libvirt-qemu.h"
diff --git a/src/libvirt.c b/src/libvirt.c
index e06b643..bf674d1 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -45,7 +45,7 @@
 # include <curl/curl.h>
 #endif
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "driver.h"
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index aad1374..15d2271 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -33,7 +33,7 @@
 
 #include "internal.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virfile.h"
 #include "virstring.h"
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 76afe34..db821c5 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -33,7 +33,7 @@
 
 #include "internal.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virconf.h"
 #include "datatypes.h"
 #include "virfile.h"
diff --git a/src/locking/domain_lock.c b/src/locking/domain_lock.c
index 0354e26..6191e9b 100644
--- a/src/locking/domain_lock.c
+++ b/src/locking/domain_lock.c
@@ -24,7 +24,7 @@
 #include "domain_lock.h"
 #include "viralloc.h"
 #include "viruuid.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_LOCKING
diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c
index a445b2e..7288f7a 100644
--- a/src/locking/lock_daemon.c
+++ b/src/locking/lock_daemon.c
@@ -37,7 +37,7 @@
 #include "virfile.h"
 #include "virpidfile.h"
 #include "virprocess.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "viralloc.h"
 #include "virconf.h"
diff --git a/src/locking/lock_daemon_config.c b/src/locking/lock_daemon_config.c
index e370dd4..12b06e2 100644
--- a/src/locking/lock_daemon_config.c
+++ b/src/locking/lock_daemon_config.c
@@ -26,7 +26,7 @@
 #include "lock_daemon_config.h"
 #include "virconf.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "rpc/virnetserver.h"
 #include "configmake.h"
diff --git a/src/locking/lock_daemon_dispatch.c b/src/locking/lock_daemon_dispatch.c
index def7c2f..45d2cae 100644
--- a/src/locking/lock_daemon_dispatch.c
+++ b/src/locking/lock_daemon_dispatch.c
@@ -30,7 +30,7 @@
 #include "lock_daemon.h"
 #include "lock_protocol.h"
 #include "lock_daemon_dispatch_stubs.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_RPC
 
diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c
index 9c7ce6d..4b72a05 100644
--- a/src/locking/lock_driver_lockd.c
+++ b/src/locking/lock_driver_lockd.c
@@ -28,7 +28,7 @@
 #include "viruuid.h"
 #include "virutil.h"
 #include "virfile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "rpc/virnetclient.h"
 #include "lock_protocol.h"
 #include "configmake.h"
diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c
index 511543a..75ced84 100644
--- a/src/locking/lock_driver_sanlock.c
+++ b/src/locking/lock_driver_sanlock.c
@@ -38,7 +38,7 @@
 #include "dirname.h"
 #include "lock_driver.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virutil.h"
 #include "virfile.h"
diff --git a/src/locking/lock_manager.c b/src/locking/lock_manager.c
index 1b88838..ae60caf 100644
--- a/src/locking/lock_manager.c
+++ b/src/locking/lock_manager.c
@@ -23,7 +23,7 @@
 
 #include "lock_manager.h"
 #include "lock_driver_nop.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virutil.h"
 #include "viralloc.h"
diff --git a/src/lxc/lxc_cgroup.c b/src/lxc/lxc_cgroup.c
index 5d1f7ff..a490551 100644
--- a/src/lxc/lxc_cgroup.c
+++ b/src/lxc/lxc_cgroup.c
@@ -24,7 +24,7 @@
 #include "lxc_cgroup.h"
 #include "lxc_container.h"
 #include "virfile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "viralloc.h"
 #include "vircgroup.h"
diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c
index 36c49d0..689215a 100644
--- a/src/lxc/lxc_conf.c
+++ b/src/lxc/lxc_conf.c
@@ -30,7 +30,7 @@
 
 #include "lxc_conf.h"
 #include "nodeinfo.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virconf.h"
 #include "viralloc.h"
 #include "virlog.h"
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 57c432a..655b610 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -53,7 +53,7 @@
 # include <blkid/blkid.h>
 #endif
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "lxc_container.h"
 #include "virutil.h"
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index a8e99f2..5517f68 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -52,7 +52,7 @@
 # include <numa.h>
 #endif
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virutil.h"
 
diff --git a/src/lxc/lxc_domain.c b/src/lxc/lxc_domain.c
index fab1506..1b02aa5 100644
--- a/src/lxc/lxc_domain.c
+++ b/src/lxc/lxc_domain.c
@@ -25,7 +25,7 @@
 
 #include "viralloc.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_LXC
 
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 42c6f80..bdd4fba 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -35,7 +35,7 @@
 #include <unistd.h>
 #include <wait.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "lxc_conf.h"
diff --git a/src/lxc/lxc_fuse.c b/src/lxc/lxc_fuse.c
index 485456e..fdba042 100644
--- a/src/lxc/lxc_fuse.c
+++ b/src/lxc/lxc_fuse.c
@@ -31,7 +31,7 @@
 
 #include "lxc_fuse.h"
 #include "lxc_cgroup.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "virbuffer.h"
diff --git a/src/lxc/lxc_monitor.c b/src/lxc/lxc_monitor.c
index b0da21f..65194a5 100644
--- a/src/lxc/lxc_monitor.c
+++ b/src/lxc/lxc_monitor.c
@@ -27,7 +27,7 @@
 
 #include "viralloc.h"
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virthread.h"
 #include "rpc/virnetclient.h"
diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
index af14f6a..57d1ae8 100644
--- a/src/lxc/lxc_process.c
+++ b/src/lxc/lxc_process.c
@@ -40,7 +40,7 @@
 #include "network/bridge_driver.h"
 #include "viralloc.h"
 #include "domain_audit.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "vircommand.h"
 #include "virhooks.h"
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 953e571..9ea09c7 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -44,7 +44,7 @@
 #include <sys/ioctl.h>
 #include <net/if.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "bridge_driver.h"
 #include "network_conf.h"
diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
index 6cc1837..522af99 100644
--- a/src/node_device/node_device_driver.c
+++ b/src/node_device/node_device_driver.c
@@ -30,7 +30,7 @@
 #include <time.h>
 #include <sys/stat.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "viralloc.h"
 #include "virlog.h"
diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c
index 8ee816b..610df8d 100644
--- a/src/node_device/node_device_hal.c
+++ b/src/node_device/node_device_hal.c
@@ -30,7 +30,7 @@
 
 #include "node_device_conf.h"
 #include "node_device_hal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "driver.h"
 #include "datatypes.h"
 #include "viralloc.h"
diff --git a/src/node_device/node_device_linux_sysfs.c b/src/node_device/node_device_linux_sysfs.c
index be5d3ed..9c305d3 100644
--- a/src/node_device/node_device_linux_sysfs.c
+++ b/src/node_device/node_device_linux_sysfs.c
@@ -28,7 +28,7 @@
 
 #include "node_device_driver.h"
 #include "node_device_hal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index 61e5a0e..a9b30b2 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -27,7 +27,7 @@
 #include <c-ctype.h>
 
 #include "node_device_udev.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "node_device_conf.h"
 #include "node_device_driver.h"
 #include "driver.h"
diff --git a/src/nodeinfo.c b/src/nodeinfo.c
index 65f4431..9cde01a 100644
--- a/src/nodeinfo.c
+++ b/src/nodeinfo.c
@@ -44,7 +44,7 @@
 #include "physmem.h"
 #include "virutil.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "count-one-bits.h"
 #include "intprops.h"
 #include "virfile.h"
diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c
index c1ab622..90b5615 100644
--- a/src/nwfilter/nwfilter_dhcpsnoop.c
+++ b/src/nwfilter/nwfilter_dhcpsnoop.c
@@ -57,7 +57,7 @@
 #include "viralloc.h"
 #include "virlog.h"
 #include "datatypes.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "conf/domain_conf.h"
 #include "nwfilter_gentech_driver.h"
 #include "nwfilter_dhcpsnoop.h"
diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c
index 4b1188d..1ac91cf 100644
--- a/src/nwfilter/nwfilter_driver.c
+++ b/src/nwfilter/nwfilter_driver.c
@@ -32,7 +32,7 @@
 
 #include "internal.h"
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "viralloc.h"
 #include "domain_conf.h"
diff --git a/src/nwfilter/nwfilter_ebiptables_driver.c b/src/nwfilter/nwfilter_ebiptables_driver.c
index 092ae5a..4fec52d 100644
--- a/src/nwfilter/nwfilter_ebiptables_driver.c
+++ b/src/nwfilter/nwfilter_ebiptables_driver.c
@@ -33,7 +33,7 @@
 #include "virbuffer.h"
 #include "viralloc.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "domain_conf.h"
 #include "nwfilter_conf.h"
 #include "nwfilter_driver.h"
diff --git a/src/nwfilter/nwfilter_gentech_driver.c b/src/nwfilter/nwfilter_gentech_driver.c
index 2b4cc8e..086bb13 100644
--- a/src/nwfilter/nwfilter_gentech_driver.c
+++ b/src/nwfilter/nwfilter_gentech_driver.c
@@ -29,7 +29,7 @@
 #include "viralloc.h"
 #include "virlog.h"
 #include "domain_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "nwfilter_gentech_driver.h"
 #include "nwfilter_ebiptables_driver.h"
 #include "nwfilter_dhcpsnoop.h"
diff --git a/src/nwfilter/nwfilter_learnipaddr.c b/src/nwfilter/nwfilter_learnipaddr.c
index 442cc83..7a4f983 100644
--- a/src/nwfilter/nwfilter_learnipaddr.c
+++ b/src/nwfilter/nwfilter_learnipaddr.c
@@ -46,7 +46,7 @@
 #include "virlog.h"
 #include "datatypes.h"
 #include "virnetdev.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virthread.h"
 #include "conf/nwfilter_params.h"
 #include "conf/domain_conf.h"
diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c
index 35f5c97..f208753 100644
--- a/src/openvz/openvz_conf.c
+++ b/src/openvz/openvz_conf.c
@@ -43,7 +43,7 @@
 #include <sys/utsname.h>
 #include <sys/wait.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "openvz_conf.h"
 #include "openvz_util.h"
 #include "viruuid.h"
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index a407193..17c44a3 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -45,7 +45,7 @@
 #include <stdio.h>
 #include <sys/wait.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "openvz_driver.h"
 #include "openvz_util.h"
diff --git a/src/openvz/openvz_util.c b/src/openvz/openvz_util.c
index 51b22c9..dc69df2 100644
--- a/src/openvz/openvz_util.c
+++ b/src/openvz/openvz_util.c
@@ -25,7 +25,7 @@
 
 #include "internal.h"
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "vircommand.h"
 #include "datatypes.h"
 #include "viralloc.h"
diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
index 87d098e..cf7db2e 100644
--- a/src/parallels/parallels_driver.c
+++ b/src/parallels/parallels_driver.c
@@ -42,7 +42,7 @@
 #include <sys/statvfs.h>
 
 #include "datatypes.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virutil.h"
 #include "virlog.h"
diff --git a/src/parallels/parallels_network.c b/src/parallels/parallels_network.c
index 4729f18..c5ece79 100644
--- a/src/parallels/parallels_network.c
+++ b/src/parallels/parallels_network.c
@@ -24,7 +24,7 @@
 
 #include "datatypes.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "md5.h"
 
 #include "parallels_utils.h"
diff --git a/src/parallels/parallels_storage.c b/src/parallels/parallels_storage.c
index 0e6c100..e768d88 100644
--- a/src/parallels/parallels_storage.c
+++ b/src/parallels/parallels_storage.c
@@ -34,7 +34,7 @@
 #include "viralloc.h"
 #include "configmake.h"
 #include "virstoragefile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #include "parallels_utils.h"
 
diff --git a/src/parallels/parallels_utils.c b/src/parallels/parallels_utils.c
index 9e317b1..dd2f0b7 100644
--- a/src/parallels/parallels_utils.c
+++ b/src/parallels/parallels_utils.c
@@ -25,7 +25,7 @@
 #include <stdarg.h>
 
 #include "vircommand.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virjson.h"
 
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index cd1911e..4333c90 100644
--- a/src/phyp/phyp_driver.c
+++ b/src/phyp/phyp_driver.c
@@ -52,7 +52,7 @@
 #include "virlog.h"
 #include "driver.h"
 #include "libvirt/libvirt.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viruuid.h"
 #include "domain_conf.h"
 #include "storage_conf.h"
diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index ec1e300..bb421bd 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -36,7 +36,7 @@
 #include "qemu_command.h"
 #include "viralloc.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virjson.h"
 #include "virfile.h"
 #include "virprocess.h"
diff --git a/src/qemu/qemu_bridge_filter.c b/src/qemu/qemu_bridge_filter.c
index 6d84f47..3bc1141 100644
--- a/src/qemu/qemu_bridge_filter.c
+++ b/src/qemu/qemu_bridge_filter.c
@@ -26,7 +26,7 @@
 #include "qemu_conf.h"
 #include "qemu_driver.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 
 #include "qemu_bridge_filter.h"
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 7a27183..f4de93b 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -26,7 +26,7 @@
 #include "qemu_capabilities.h"
 #include "viralloc.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "virfile.h"
 #include "virpidfile.h"
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 9db7ad9..4fe98e9 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -29,7 +29,7 @@
 #include "vircgroup.h"
 #include "virlog.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "domain_audit.h"
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 79e5faa..8afe31b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -30,7 +30,7 @@
 #include "cpu/cpu.h"
 #include "viralloc.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "virfile.h"
 #include "viruuid.h"
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 56c93a8..eb0a479 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -35,7 +35,7 @@
 #include <arpa/inet.h>
 #include <sys/utsname.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "qemu_conf.h"
 #include "qemu_command.h"
 #include "qemu_capabilities.h"
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 46b7656..5d11f83 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -29,7 +29,7 @@
 #include "qemu_migration.h"
 #include "viralloc.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "c-ctype.h"
 #include "cpu/cpu.h"
 #include "viruuid.h"
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d24527b..c7cbfbf 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -59,7 +59,7 @@
 #include "qemu_process.h"
 #include "qemu_migration.h"
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "virbuffer.h"
diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c
index 5c23ccb..c7d4987 100644
--- a/src/qemu/qemu_hostdev.c
+++ b/src/qemu/qemu_hostdev.c
@@ -25,7 +25,7 @@
 
 #include "qemu_hostdev.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virpci.h"
 #include "virusb.h"
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index e5b28da..8de108d 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -34,7 +34,7 @@
 #include "domain_nwfilter.h"
 #include "virlog.h"
 #include "datatypes.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virpci.h"
 #include "virfile.h"
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index afe2374..b2c412d 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -37,7 +37,7 @@
 
 #include "domain_audit.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virutil.h"
 #include "virfile.h"
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 5ca1f89..99642b6 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -31,7 +31,7 @@
 #include "qemu_monitor.h"
 #include "qemu_monitor_text.h"
 #include "qemu_monitor_json.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 0137291..2d2d254 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -39,7 +39,7 @@
 #include "virlog.h"
 #include "driver.h"
 #include "datatypes.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virjson.h"
 
 #ifdef WITH_DTRACE_PROBES
diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
index 82e9108..6506f9d 100644
--- a/src/qemu/qemu_monitor_text.c
+++ b/src/qemu/qemu_monitor_text.c
@@ -38,7 +38,7 @@
 #include "virlog.h"
 #include "driver.h"
 #include "datatypes.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virbuffer.h"
 
 #ifdef WITH_DTRACE_PROBES
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 5ffc5a5..1d5200f 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -52,7 +52,7 @@
 
 #include "datatypes.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virhooks.h"
 #include "virfile.h"
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index ac7dc87..ae861cc 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -29,7 +29,7 @@
 #include "virnetclient.h"
 #include "virnetclientprogram.h"
 #include "virnetclientstream.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "domain_event.h"
diff --git a/src/rpc/virkeepalive.c b/src/rpc/virkeepalive.c
index 18be350..a8ceff5 100644
--- a/src/rpc/virkeepalive.c
+++ b/src/rpc/virkeepalive.c
@@ -27,7 +27,7 @@
 #include "virfile.h"
 #include "virlog.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virnetsocket.h"
 #include "virkeepaliveprotocol.h"
 #include "virkeepalive.h"
diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c
index 9347f0b..208e2e9 100644
--- a/src/rpc/virnetclient.c
+++ b/src/rpc/virnetclient.c
@@ -35,7 +35,7 @@
 #include "virfile.h"
 #include "virlog.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_RPC
 
diff --git a/src/rpc/virnetclientprogram.c b/src/rpc/virnetclientprogram.c
index eff4a4c..a179b8d 100644
--- a/src/rpc/virnetclientprogram.c
+++ b/src/rpc/virnetclientprogram.c
@@ -29,7 +29,7 @@
 #include "virnetprotocol.h"
 
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virutil.h"
 #include "virfile.h"
diff --git a/src/rpc/virnetclientstream.c b/src/rpc/virnetclientstream.c
index 7e1f9c7..15ed91a 100644
--- a/src/rpc/virnetclientstream.c
+++ b/src/rpc/virnetclientstream.c
@@ -25,7 +25,7 @@
 #include "virnetclientstream.h"
 #include "virnetclient.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virthread.h"
 
diff --git a/src/rpc/virnetmessage.c b/src/rpc/virnetmessage.c
index b2da65b..b7330de 100644
--- a/src/rpc/virnetmessage.c
+++ b/src/rpc/virnetmessage.c
@@ -25,7 +25,7 @@
 
 #include "virnetmessage.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "virutil.h"
diff --git a/src/rpc/virnetsaslcontext.c b/src/rpc/virnetsaslcontext.c
index cd30f4d..cbf7261 100644
--- a/src/rpc/virnetsaslcontext.c
+++ b/src/rpc/virnetsaslcontext.c
@@ -25,7 +25,7 @@
 #include "virnetsaslcontext.h"
 #include "virnetmessage.h"
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virthread.h"
 #include "virlog.h"
diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c
index 47a6293..5674309 100644
--- a/src/rpc/virnetserver.c
+++ b/src/rpc/virnetserver.c
@@ -30,7 +30,7 @@
 #include "virnetserver.h"
 #include "virlog.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virthread.h"
 #include "virthreadpool.h"
 #include "virutil.h"
diff --git a/src/rpc/virnetserverclient.c b/src/rpc/virnetserverclient.c
index f1eb69b..aefc511 100644
--- a/src/rpc/virnetserverclient.c
+++ b/src/rpc/virnetserverclient.c
@@ -30,7 +30,7 @@
 #include "virnetserverclient.h"
 
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virthread.h"
 #include "virkeepalive.h"
diff --git a/src/rpc/virnetservermdns.c b/src/rpc/virnetservermdns.c
index daef2b4..b6f8e8e 100644
--- a/src/rpc/virnetservermdns.c
+++ b/src/rpc/virnetservermdns.c
@@ -43,7 +43,7 @@
 #include "virnetservermdns.h"
 #include "vireventpoll.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_RPC
diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c
index a8f875c..3ac3809 100644
--- a/src/rpc/virnetserverprogram.c
+++ b/src/rpc/virnetserverprogram.c
@@ -27,7 +27,7 @@
 #include "virnetserverclient.h"
 
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "virthread.h"
diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c
index 9992983..7d671f0 100644
--- a/src/rpc/virnetserverservice.c
+++ b/src/rpc/virnetserverservice.c
@@ -26,7 +26,7 @@
 #include "virnetserverservice.h"
 
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virthread.h"
 
 #define VIR_FROM_THIS VIR_FROM_RPC
diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
index a959c30..ef93892 100644
--- a/src/rpc/virnetsocket.c
+++ b/src/rpc/virnetsocket.c
@@ -43,7 +43,7 @@
 #include "virnetsocket.h"
 #include "virutil.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "virthread.h"
diff --git a/src/rpc/virnetsshsession.c b/src/rpc/virnetsshsession.c
index ad8bd48..661860f 100644
--- a/src/rpc/virnetsshsession.c
+++ b/src/rpc/virnetsshsession.c
@@ -32,7 +32,7 @@
 #include "configmake.h"
 #include "virthread.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virobject.h"
 
 #define VIR_FROM_THIS VIR_FROM_SSH
diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c
index b01de8c..56e372b 100644
--- a/src/rpc/virnettlscontext.c
+++ b/src/rpc/virnettlscontext.c
@@ -31,7 +31,7 @@
 #include "virnettlscontext.h"
 
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "virlog.h"
 #include "virthread.h"
diff --git a/src/secret/secret_driver.c b/src/secret/secret_driver.c
index 1784fea..5be33b9 100644
--- a/src/secret/secret_driver.c
+++ b/src/secret/secret_driver.c
@@ -39,7 +39,7 @@
 #include "virthread.h"
 #include "virutil.h"
 #include "viruuid.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virfile.h"
 #include "configmake.h"
 
diff --git a/src/security/security_apparmor.c b/src/security/security_apparmor.c
index ee96bac..edc81ac 100644
--- a/src/security/security_apparmor.c
+++ b/src/security/security_apparmor.c
@@ -40,7 +40,7 @@
 #include "security_apparmor.h"
 #include "virutil.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "viruuid.h"
 #include "virpci.h"
diff --git a/src/security/security_dac.c b/src/security/security_dac.c
index 3104f42..d0e1731 100644
--- a/src/security/security_dac.c
+++ b/src/security/security_dac.c
@@ -24,7 +24,7 @@
 #include <fcntl.h>
 
 #include "security_dac.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "viralloc.h"
 #include "virlog.h"
diff --git a/src/security/security_driver.c b/src/security/security_driver.c
index 82d3ca9..319b86f 100644
--- a/src/security/security_driver.c
+++ b/src/security/security_driver.c
@@ -23,7 +23,7 @@
 #include <config.h>
 #include <string.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 
 #include "security_driver.h"
diff --git a/src/security/security_manager.c b/src/security/security_manager.c
index 2da6244..960fcc9 100644
--- a/src/security/security_manager.c
+++ b/src/security/security_manager.c
@@ -26,7 +26,7 @@
 #include "security_driver.h"
 #include "security_stack.h"
 #include "security_dac.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 
diff --git a/src/security/security_nop.c b/src/security/security_nop.c
index 5f3270a..61b8e83 100644
--- a/src/security/security_nop.c
+++ b/src/security/security_nop.c
@@ -21,7 +21,7 @@
 
 #include "security_nop.h"
 
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_SECURITY
 
diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
index ccba258..ae94ec3 100644
--- a/src/security/security_selinux.c
+++ b/src/security/security_selinux.c
@@ -33,7 +33,7 @@
 
 #include "security_driver.h"
 #include "security_selinux.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "viralloc.h"
 #include "virlog.h"
diff --git a/src/security/security_stack.c b/src/security/security_stack.c
index 390bd3b..931d31d 100644
--- a/src/security/security_stack.c
+++ b/src/security/security_stack.c
@@ -22,7 +22,7 @@
 
 #include "security_stack.h"
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_SECURITY
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index f98a7c0..df79b28 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -46,7 +46,7 @@
 #endif
 
 #include "datatypes.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "viralloc.h"
 #include "internal.h"
diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c
index aceb82b..4214e97 100644
--- a/src/storage/storage_backend_disk.c
+++ b/src/storage/storage_backend_disk.c
@@ -26,7 +26,7 @@
 #include <unistd.h>
 #include <stdio.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "storage_backend_disk.h"
 #include "virutil.h"
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 23fa0f5..2205371 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -41,7 +41,7 @@
 # include <blkid/blkid.h>
 #endif
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "storage_backend_fs.h"
 #include "storage_conf.h"
 #include "virstoragefile.h"
diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c
index e91c4b1..f374961 100644
--- a/src/storage/storage_backend_iscsi.c
+++ b/src/storage/storage_backend_iscsi.c
@@ -34,7 +34,7 @@
 #include <unistd.h>
 #include <sys/stat.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "storage_backend_scsi.h"
 #include "storage_backend_iscsi.h"
 #include "virutil.h"
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index 83b517c..2734689 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -31,7 +31,7 @@
 #include <unistd.h>
 #include <fcntl.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "storage_backend_logical.h"
 #include "storage_conf.h"
 #include "vircommand.h"
diff --git a/src/storage/storage_backend_mpath.c b/src/storage/storage_backend_mpath.c
index 0e5d032..b12b81f 100644
--- a/src/storage/storage_backend_mpath.c
+++ b/src/storage/storage_backend_mpath.c
@@ -29,7 +29,7 @@
 
 #include <libdevmapper.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "storage_conf.h"
 #include "storage_backend.h"
 #include "viralloc.h"
diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index 7dc46b0..f5c6b0f 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -22,7 +22,7 @@
 
 #include <config.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "storage_backend_rbd.h"
 #include "storage_conf.h"
 #include "virutil.h"
diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_scsi.c
index 1db8fdd..1a03c49 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -28,7 +28,7 @@
 #include <dirent.h>
 #include <fcntl.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "storage_backend_scsi.h"
 #include "viralloc.h"
 #include "virlog.h"
diff --git a/src/storage/storage_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c
index 1046ac9..cd18f33 100644
--- a/src/storage/storage_backend_sheepdog.c
+++ b/src/storage/storage_backend_sheepdog.c
@@ -26,7 +26,7 @@
 
 #include <config.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "storage_backend_sheepdog.h"
 #include "storage_conf.h"
 #include "vircommand.h"
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index d93617c..ff56f4f 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -36,7 +36,7 @@
 #include <errno.h>
 #include <string.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "driver.h"
 #include "virutil.h"
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index bd557d6..8518fd3 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -32,7 +32,7 @@
 #include <libxml/xmlsave.h>
 
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "test_driver.h"
 #include "virbuffer.h"
diff --git a/src/uml/uml_conf.h b/src/uml/uml_conf.h
index dfa168e..a4e264f 100644
--- a/src/uml/uml_conf.h
+++ b/src/uml/uml_conf.h
@@ -29,7 +29,7 @@
 # include "network_conf.h"
 # include "domain_conf.h"
 # include "domain_event.h"
-# include "virterror_internal.h"
+# include "virerror.h"
 # include "virthread.h"
 # include "vircommand.h"
 # include "virhash.h"
diff --git a/src/util/iohelper.c b/src/util/iohelper.c
index 40b04f9..2230bcb 100644
--- a/src/util/iohelper.c
+++ b/src/util/iohelper.c
@@ -37,7 +37,7 @@
 #include "virthread.h"
 #include "virfile.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "configmake.h"
 #include "virrandom.h"
 
diff --git a/src/util/viraudit.c b/src/util/viraudit.c
index 05189d5..04ac323 100644
--- a/src/util/viraudit.c
+++ b/src/util/viraudit.c
@@ -27,7 +27,7 @@
 #include <stdio.h>
 #include <unistd.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "viraudit.h"
 #include "virutil.h"
diff --git a/src/util/virauth.c b/src/util/virauth.c
index cbb16ec..c26e340 100644
--- a/src/util/virauth.c
+++ b/src/util/virauth.c
@@ -29,7 +29,7 @@
 #include "viralloc.h"
 #include "virlog.h"
 #include "datatypes.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "configmake.h"
 #include "virauthconfig.h"
 
diff --git a/src/util/virauthconfig.c b/src/util/virauthconfig.c
index d60f7bf..1d1f084 100644
--- a/src/util/virauthconfig.c
+++ b/src/util/virauthconfig.c
@@ -28,7 +28,7 @@
 #include "viralloc.h"
 #include "virutil.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 
 struct _virAuthConfig {
diff --git a/src/util/vircommand.c b/src/util/vircommand.c
index d059586..c906f2a 100644
--- a/src/util/vircommand.c
+++ b/src/util/vircommand.c
@@ -35,7 +35,7 @@
 
 #include "vircommand.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/util/virconf.c b/src/util/virconf.c
index 7e4c8c1..16ed2cb 100644
--- a/src/util/virconf.c
+++ b/src/util/virconf.c
@@ -30,7 +30,7 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virbuffer.h"
 #include "virconf.h"
 #include "virutil.h"
diff --git a/src/util/virdbus.c b/src/util/virdbus.c
index f45074c..127e57f 100644
--- a/src/util/virdbus.c
+++ b/src/util/virdbus.c
@@ -23,7 +23,7 @@
 
 #include "virdbus.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virthread.h"
 
diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c
index 6b9abd9..e9148c1 100644
--- a/src/util/virdnsmasq.c
+++ b/src/util/virdnsmasq.c
@@ -44,7 +44,7 @@
 #include "virutil.h"
 #include "vircommand.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virfile.h"
 
diff --git a/src/util/virebtables.c b/src/util/virebtables.c
index edf4956..959599a 100644
--- a/src/util/virebtables.c
+++ b/src/util/virebtables.c
@@ -43,7 +43,7 @@
 #include "virebtables.h"
 #include "vircommand.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virthread.h"
 
diff --git a/src/util/virerror.c b/src/util/virerror.c
new file mode 100644
index 0000000..257880f
--- /dev/null
+++ b/src/util/virerror.c
@@ -0,0 +1,1369 @@
+/*
+ * virterror.c: implements error handling and reporting code for libvirt
+ *
+ * Copyright (C) 2006, 2008-2012 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Author: Daniel Veillard <veillard at redhat.com>
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+
+#include "virerror.h"
+#include "datatypes.h"
+#include "virlog.h"
+#include "viralloc.h"
+#include "virthread.h"
+#include "virutil.h"
+
+virThreadLocal virLastErr;
+
+virErrorFunc virErrorHandler = NULL;     /* global error handler */
+void *virUserData = NULL;        /* associated data */
+virErrorLogPriorityFunc virErrorLogPriorityFilter = NULL;
+
+static virLogPriority virErrorLevelPriority(virErrorLevel level) {
+    switch (level) {
+        case VIR_ERR_NONE:
+            return VIR_LOG_INFO;
+        case VIR_ERR_WARNING:
+            return VIR_LOG_WARN;
+        case VIR_ERR_ERROR:
+            return VIR_LOG_ERROR;
+    }
+    return VIR_LOG_ERROR;
+}
+
+
+VIR_ENUM_DECL(virErrorDomain)
+VIR_ENUM_IMPL(virErrorDomain, VIR_ERR_DOMAIN_LAST,
+              "", /* 0 */
+              "Xen Driver",
+              "Xen Daemon",
+              "Xen Store",
+              "S-Expression",
+
+              "XML Util", /* 5 */
+              "Domain",
+              "XML-RPC",
+              "Proxy Daemon",
+              "Config File",
+
+              "QEMU Driver", /* 10 */
+              "Network",
+              "Test Driver",
+              "Remote Driver",
+              "OpenVZ Driver",
+
+              "Xen XM Driver", /* 15 */
+              "Linux Statistics",
+              "LXC Driver",
+              "Storage Driver",
+              "Network Driver",
+
+              "Domain Config", /* 20 */
+              "User Mode Linux Driver",
+              "Node Device Driver",
+              "Xen Inotify Driver",
+              "Security Driver",
+
+              "VirtualBox Driver", /* 25 */
+              "Network Interface Driver",
+              "Open Nebula Driver",
+              "ESX Driver",
+              "Power Hypervisor Driver",
+
+              "Secrets Driver", /* 30 */
+              "CPU Driver",
+              "XenAPI Driver",
+              "Network Filter Driver",
+              "Lifecycle Hook",
+
+              "Domain Snapshot", /* 35 */
+              "Audit Utils",
+              "Sysinfo Utils",
+              "I/O Stream Utils",
+              "VMWare Driver",
+
+              "Event Loop", /* 40 */
+              "Xen Light Driver",
+              "Lock Driver",
+              "Hyper-V Driver",
+              "Capabilities Utils",
+
+              "URI Utils", /* 45 */
+              "Authentication Utils",
+              "DBus Utils",
+              "Parallels Cloud Server",
+              "Device Config",
+
+              "SSH transport layer", /* 50 */
+              "Lock Space",
+              "Init control",
+    )
+
+
+/*
+ * Internal helper that is called when a thread exits, to
+ * release the error object stored in the thread local
+ */
+static void
+virLastErrFreeData(void *data)
+{
+    virErrorPtr err = data;
+    if (!err)
+        return;
+    virResetError(err);
+    VIR_FREE(err);
+}
+
+
+/**
+ * virErrorInitialize:
+ *
+ * Initialize the error data (per thread)
+ *
+ * Returns 0 in case of success, -1 in case of failure.
+ */
+int
+virErrorInitialize(void)
+{
+    return virThreadLocalInit(&virLastErr, virLastErrFreeData);
+}
+
+
+/*
+ * Internal helper to ensure a generic error code is stored
+ * in case where API returns failure, but forgot to set an
+ * error
+ */
+static void
+virErrorGenericFailure(virErrorPtr err)
+{
+    err->code = VIR_ERR_INTERNAL_ERROR;
+    err->domain = VIR_FROM_NONE;
+    err->level = VIR_ERR_ERROR;
+    err->message = strdup(_("An error occurred, but the cause is unknown"));
+}
+
+
+/*
+ * Internal helper to perform a deep copy of an error
+ */
+static int
+virCopyError(virErrorPtr from,
+             virErrorPtr to)
+{
+    int ret = 0;
+    if (!to)
+        return 0;
+    virResetError(to);
+    if (!from)
+        return 0;
+    to->code = from->code;
+    to->domain = from->domain;
+    to->level = from->level;
+    if (from->message && !(to->message = strdup(from->message)))
+        ret = -1;
+    if (from->str1 && !(to->str1 = strdup(from->str1)))
+        ret = -1;
+    if (from->str2 && !(to->str2 = strdup(from->str2)))
+        ret = -1;
+    if (from->str3 && !(to->str3 = strdup(from->str3)))
+        ret = -1;
+    to->int1 = from->int1;
+    to->int2 = from->int2;
+    /*
+     * Deliberately not setting 'conn', 'dom', 'net' references
+     */
+    return ret;
+}
+
+static virErrorPtr
+virLastErrorObject(void)
+{
+    virErrorPtr err;
+    err = virThreadLocalGet(&virLastErr);
+    if (!err) {
+        if (VIR_ALLOC(err) < 0)
+            return NULL;
+        if (virThreadLocalSet(&virLastErr, err) < 0)
+            VIR_FREE(err);
+    }
+    return err;
+}
+
+
+/**
+ * virGetLastError:
+ *
+ * Provide a pointer to the last error caught at the library level
+ *
+ * The error object is kept in thread local storage, so separate
+ * threads can safely access this concurrently.
+ *
+ * Returns a pointer to the last error or NULL if none occurred.
+ */
+virErrorPtr
+virGetLastError(void)
+{
+    virErrorPtr err = virLastErrorObject();
+    if (!err || err->code == VIR_ERR_OK)
+        return NULL;
+    return err;
+}
+
+/**
+ * virSetError:
+ * @newerr: previously saved error object
+ *
+ * Set the current error from a previously saved error object
+ *
+ * Can be used to re-set an old error, which may have been squashed by
+ * other functions (like cleanup routines).
+ *
+ * Returns 0 on success, -1 on failure.  Leaves errno unchanged.
+ */
+int
+virSetError(virErrorPtr newerr)
+{
+    virErrorPtr err;
+    int saved_errno = errno;
+    int ret = -1;
+
+    err = virLastErrorObject();
+    if (!err)
+        goto cleanup;
+
+    virResetError(err);
+    ret = virCopyError(newerr, err);
+cleanup:
+    errno = saved_errno;
+    return ret;
+}
+
+/**
+ * virCopyLastError:
+ * @to: target to receive the copy
+ *
+ * Copy the content of the last error caught at the library level
+ *
+ * The error object is kept in thread local storage, so separate
+ * threads can safely access this concurrently.
+ *
+ * One will need to free the result with virResetError()
+ *
+ * Returns 0 if no error was found and the error code otherwise and -1 in case
+ *         of parameter error.
+ */
+int
+virCopyLastError(virErrorPtr to)
+{
+    virErrorPtr err = virLastErrorObject();
+    /* We can't guarantee caller has initialized it to zero */
+    memset(to, 0, sizeof(*to));
+    if (err)
+        virCopyError(err, to);
+    else
+        virResetError(to);
+    return to->code;
+}
+
+/**
+ * virSaveLastError:
+ *
+ * Save the last error into a new error object.  On success, errno is
+ * unchanged; on failure, errno is ENOMEM.
+ *
+ * Returns a pointer to the copied error or NULL if allocation failed.
+ * It is the caller's responsibility to free the error with
+ * virFreeError().
+ */
+virErrorPtr
+virSaveLastError(void)
+{
+    virErrorPtr to;
+    int saved_errno = errno;
+
+    if (VIR_ALLOC(to) < 0)
+        return NULL;
+
+    virCopyLastError(to);
+    errno = saved_errno;
+    return to;
+}
+
+/**
+ * virResetError:
+ * @err: pointer to the virError to clean up
+ *
+ * Reset the error being pointed to
+ */
+void
+virResetError(virErrorPtr err)
+{
+    if (err == NULL)
+        return;
+    VIR_FREE(err->message);
+    VIR_FREE(err->str1);
+    VIR_FREE(err->str2);
+    VIR_FREE(err->str3);
+    memset(err, 0, sizeof(virError));
+}
+
+/**
+ * virFreeError:
+ * @err: error to free
+ *
+ * Resets and frees the given error.
+ */
+void
+virFreeError(virErrorPtr err)
+{
+    virResetError(err);
+    VIR_FREE(err);
+}
+
+/**
+ * virResetLastError:
+ *
+ * Reset the last error caught at the library level.
+ *
+ * The error object is kept in thread local storage, so separate
+ * threads can safely access this concurrently, only resetting
+ * their own error object.
+ */
+void
+virResetLastError(void)
+{
+    virErrorPtr err = virLastErrorObject();
+    if (err)
+        virResetError(err);
+}
+
+/**
+ * virConnGetLastError:
+ * @conn: pointer to the hypervisor connection
+ *
+ * Provide a pointer to the last error caught on that connection
+ *
+ * This method is not protected against access from multiple
+ * threads. In a multi-threaded application, always use the
+ * global virGetLastError() API which is backed by thread
+ * local storage.
+ *
+ * If the connection object was discovered to be invalid by
+ * an API call, then the error will be reported against the
+ * global error object.
+ *
+ * Since 0.6.0, all errors reported in the per-connection object
+ * are also duplicated in the global error object. As such an
+ * application can always use virGetLastError(). This method
+ * remains for backwards compatibility.
+ *
+ * Returns a pointer to the last error or NULL if none occurred.
+ */
+virErrorPtr
+virConnGetLastError(virConnectPtr conn)
+{
+    if (conn == NULL)
+        return NULL;
+    return &conn->err;
+}
+
+/**
+ * virConnCopyLastError:
+ * @conn: pointer to the hypervisor connection
+ * @to: target to receive the copy
+ *
+ * Copy the content of the last error caught on that connection
+ *
+ * This method is not protected against access from multiple
+ * threads. In a multi-threaded application, always use the
+ * global virGetLastError() API which is backed by thread
+ * local storage.
+ *
+ * If the connection object was discovered to be invalid by
+ * an API call, then the error will be reported against the
+ * global error object.
+ *
+ * Since 0.6.0, all errors reported in the per-connection object
+ * are also duplicated in the global error object. As such an
+ * application can always use virGetLastError(). This method
+ * remains for backwards compatibility.
+ *
+ * One will need to free the result with virResetError()
+ *
+ * Returns 0 if no error was found and the error code otherwise and -1 in case
+ *         of parameter error.
+ */
+int
+virConnCopyLastError(virConnectPtr conn, virErrorPtr to)
+{
+    /* We can't guarantee caller has initialized it to zero */
+    memset(to, 0, sizeof(*to));
+
+    if (conn == NULL)
+        return -1;
+    virMutexLock(&conn->lock);
+    if (conn->err.code == VIR_ERR_OK)
+        virResetError(to);
+    else
+        virCopyError(&conn->err, to);
+    virMutexUnlock(&conn->lock);
+    return to->code;
+}
+
+/**
+ * virConnResetLastError:
+ * @conn: pointer to the hypervisor connection
+ *
+ * The error object is kept in thread local storage, so separate
+ * threads can safely access this concurrently.
+ *
+ * Reset the last error caught on that connection
+ */
+void
+virConnResetLastError(virConnectPtr conn)
+{
+    if (conn == NULL)
+        return;
+    virMutexLock(&conn->lock);
+    virResetError(&conn->err);
+    virMutexUnlock(&conn->lock);
+}
+
+/**
+ * virSetErrorFunc:
+ * @userData: pointer to the user data provided in the handler callback
+ * @handler: the function to get called in case of error or NULL
+ *
+ * Set a library global error handling function, if @handler is NULL,
+ * it will reset to default printing on stderr. The error raised there
+ * are those for which no handler at the connection level could caught.
+ */
+void
+virSetErrorFunc(void *userData, virErrorFunc handler)
+{
+    virErrorHandler = handler;
+    virUserData = userData;
+}
+
+/**
+ * virConnSetErrorFunc:
+ * @conn: pointer to the hypervisor connection
+ * @userData: pointer to the user data provided in the handler callback
+ * @handler: the function to get called in case of error or NULL
+ *
+ * Set a connection error handling function, if @handler is NULL
+ * it will reset to default which is to pass error back to the global
+ * library handler.
+ */
+void
+virConnSetErrorFunc(virConnectPtr conn, void *userData,
+                    virErrorFunc handler)
+{
+    if (conn == NULL)
+        return;
+    virMutexLock(&conn->lock);
+    conn->handler = handler;
+    conn->userData = userData;
+    virMutexUnlock(&conn->lock);
+}
+
+/**
+ * virDefaultErrorFunc:
+ * @err: pointer to the error.
+ *
+ * Default routine reporting an error to stderr.
+ */
+void
+virDefaultErrorFunc(virErrorPtr err)
+{
+    const char *lvl = "", *dom = "", *domain = "", *network = "";
+    int len;
+
+    if ((err == NULL) || (err->code == VIR_ERR_OK))
+        return;
+    switch (err->level) {
+        case VIR_ERR_NONE:
+            lvl = "";
+            break;
+        case VIR_ERR_WARNING:
+            lvl = _("warning");
+            break;
+        case VIR_ERR_ERROR:
+            lvl = _("error");
+            break;
+    }
+    dom = virErrorDomainTypeToString(err->domain);
+    if (!dom)
+        dom = "Unknown";
+    if ((err->dom != NULL) && (err->code != VIR_ERR_INVALID_DOMAIN)) {
+        domain = err->dom->name;
+    } else if ((err->net != NULL) && (err->code != VIR_ERR_INVALID_NETWORK)) {
+        network = err->net->name;
+    }
+    len = strlen(err->message);
+    if ((err->domain == VIR_FROM_XML) && (err->code == VIR_ERR_XML_DETAIL) &&
+        (err->int1 != 0))
+        fprintf(stderr, "libvir: %s %s %s%s: line %d: %s",
+                dom, lvl, domain, network, err->int1, err->message);
+    else if ((len == 0) || (err->message[len - 1] != '\n'))
+        fprintf(stderr, "libvir: %s %s %s%s: %s\n",
+                dom, lvl, domain, network, err->message);
+    else
+        fprintf(stderr, "libvir: %s %s %s%s: %s",
+                dom, lvl, domain, network, err->message);
+}
+
+/**
+ * virDispatchError:
+ * @conn: pointer to the hypervisor connection
+ *
+ * Internal helper to do final stage of error
+ * reporting in public APIs.
+ *
+ *  - Copy the global error to per-connection error if needed
+ *  - Set a generic error message if none is already set
+ *  - Invoke the error callback functions
+ */
+void
+virDispatchError(virConnectPtr conn)
+{
+    virErrorPtr err = virLastErrorObject();
+    virErrorFunc handler = virErrorHandler;
+    void *userData = virUserData;
+
+    /* Can only happen on OOM.  */
+    if (!err)
+        return;
+
+    /* Set a generic error message if none is already set */
+    if (err->code == VIR_ERR_OK)
+        virErrorGenericFailure(err);
+
+    /* Copy the global error to per-connection error if needed */
+    if (conn) {
+        virMutexLock(&conn->lock);
+        virCopyError(err, &conn->err);
+
+        if (conn->handler != NULL) {
+            handler = conn->handler;
+            userData = conn->userData;
+        }
+        virMutexUnlock(&conn->lock);
+    }
+
+    /* Invoke the error callback functions */
+    if (handler != NULL) {
+        (handler)(userData, err);
+    } else {
+        virDefaultErrorFunc(err);
+    }
+}
+
+
+
+/**
+ * virRaiseErrorFull:
+ * @filename: filename where error was raised
+ * @funcname: function name where error was raised
+ * @linenr: line number where error was raised
+ * @domain: the virErrorDomain indicating where it's coming from
+ * @code: the virErrorNumber code for the error
+ * @level: the virErrorLevel for the error
+ * @str1: extra string info
+ * @str2: extra string info
+ * @str3: extra string info
+ * @int1: extra int info
+ * @int2: extra int info
+ * @fmt:  the message to display/transmit
+ * @...:  extra parameters for the message display
+ *
+ * Internal routine called when an error is detected. It will raise it
+ * immediately if a callback is found and store it for later handling.
+ */
+void
+virRaiseErrorFull(const char *filename ATTRIBUTE_UNUSED,
+                  const char *funcname,
+                  size_t linenr,
+                  int domain,
+                  int code,
+                  virErrorLevel level,
+                  const char *str1,
+                  const char *str2,
+                  const char *str3,
+                  int int1,
+                  int int2,
+                  const char *fmt, ...)
+{
+    int save_errno = errno;
+    virErrorPtr to;
+    char *str;
+    int priority;
+
+    /*
+     * All errors are recorded in thread local storage
+     * For compatibility, public API calls will copy them
+     * to the per-connection error object when necessary
+     */
+    to = virLastErrorObject();
+    if (!to) {
+        errno = save_errno;
+        return; /* Hit OOM allocating thread error object, sod all we can do now */
+    }
+
+    virResetError(to);
+
+    if (code == VIR_ERR_OK) {
+        errno = save_errno;
+        return;
+    }
+
+    /*
+     * formats the message; drop message on OOM situations
+     */
+    if (fmt == NULL) {
+        str = strdup(_("No error message provided"));
+    } else {
+        va_list ap;
+        va_start(ap, fmt);
+        virVasprintf(&str, fmt, ap);
+        va_end(ap);
+    }
+
+    /*
+     * Save the information about the error
+     */
+    /*
+     * Deliberately not setting conn, dom & net fields since
+     * they're utterly unsafe
+     */
+    to->domain = domain;
+    to->code = code;
+    to->message = str;
+    to->level = level;
+    if (str1 != NULL)
+        to->str1 = strdup(str1);
+    if (str2 != NULL)
+        to->str2 = strdup(str2);
+    if (str3 != NULL)
+        to->str3 = strdup(str3);
+    to->int1 = int1;
+    to->int2 = int2;
+
+    /*
+     * Hook up the error or warning to the logging facility
+     */
+    priority = virErrorLevelPriority(level);
+    if (virErrorLogPriorityFilter)
+        priority = virErrorLogPriorityFilter(to, priority);
+    virLogMessage(virErrorLogPriorityFilter ? VIR_LOG_FROM_FILE : VIR_LOG_FROM_ERROR,
+                  priority,
+                  filename, linenr, funcname,
+                  NULL, "%s", str);
+
+    errno = save_errno;
+}
+
+/**
+ * virErrorMsg:
+ * @error: the virErrorNumber
+ * @info: usually the first parameter string
+ *
+ * Internal routine to get the message associated to an error raised
+ * from the library
+ *
+ * Returns the constant string associated to @error
+ */
+static const char *
+virErrorMsg(virErrorNumber error, const char *info)
+{
+    const char *errmsg = NULL;
+
+    switch (error) {
+        case VIR_ERR_OK:
+            return NULL;
+        case VIR_ERR_INTERNAL_ERROR:
+            if (info != NULL)
+              errmsg = _("internal error %s");
+            else
+              errmsg = _("internal error");
+            break;
+        case VIR_ERR_NO_MEMORY:
+            errmsg = _("out of memory");
+            break;
+        case VIR_ERR_NO_SUPPORT:
+            if (info == NULL)
+                errmsg = _("this function is not supported by the connection driver");
+            else
+                errmsg = _("this function is not supported by the connection driver: %s");
+            break;
+        case VIR_ERR_NO_CONNECT:
+            if (info == NULL)
+                errmsg = _("no connection driver available");
+            else
+                errmsg = _("no connection driver available for %s");
+            break;
+        case VIR_ERR_INVALID_CONN:
+            if (info == NULL)
+                errmsg = _("invalid connection pointer in");
+            else
+                errmsg = _("invalid connection pointer in %s");
+            break;
+        case VIR_ERR_INVALID_DOMAIN:
+            if (info == NULL)
+                errmsg = _("invalid domain pointer in");
+            else
+                errmsg = _("invalid domain pointer in %s");
+            break;
+        case VIR_ERR_INVALID_ARG:
+            if (info == NULL)
+                errmsg = _("invalid argument");
+            else
+                errmsg = _("invalid argument: %s");
+            break;
+        case VIR_ERR_OPERATION_FAILED:
+            if (info != NULL)
+                errmsg = _("operation failed: %s");
+            else
+                errmsg = _("operation failed");
+            break;
+        case VIR_ERR_GET_FAILED:
+            if (info != NULL)
+                errmsg = _("GET operation failed: %s");
+            else
+                errmsg = _("GET operation failed");
+            break;
+        case VIR_ERR_POST_FAILED:
+            if (info != NULL)
+                errmsg = _("POST operation failed: %s");
+            else
+                errmsg = _("POST operation failed");
+            break;
+        case VIR_ERR_HTTP_ERROR:
+            errmsg = _("got unknown HTTP error code %d");
+            break;
+        case VIR_ERR_UNKNOWN_HOST:
+            if (info != NULL)
+                errmsg = _("unknown host %s");
+            else
+                errmsg = _("unknown host");
+            break;
+        case VIR_ERR_SEXPR_SERIAL:
+            if (info != NULL)
+                errmsg = _("failed to serialize S-Expr: %s");
+            else
+                errmsg = _("failed to serialize S-Expr");
+            break;
+        case VIR_ERR_NO_XEN:
+            if (info == NULL)
+                errmsg = _("could not use Xen hypervisor entry");
+            else
+                errmsg = _("could not use Xen hypervisor entry %s");
+            break;
+        case VIR_ERR_NO_XENSTORE:
+            if (info == NULL)
+                errmsg = _("could not connect to Xen Store");
+            else
+                errmsg = _("could not connect to Xen Store %s");
+            break;
+        case VIR_ERR_XEN_CALL:
+            errmsg = _("failed Xen syscall %s");
+            break;
+        case VIR_ERR_OS_TYPE:
+            if (info == NULL)
+                errmsg = _("unknown OS type");
+            else
+                errmsg = _("unknown OS type %s");
+            break;
+        case VIR_ERR_NO_KERNEL:
+            errmsg = _("missing kernel information");
+            break;
+        case VIR_ERR_NO_ROOT:
+            if (info == NULL)
+                errmsg = _("missing root device information");
+            else
+                errmsg = _("missing root device information in %s");
+            break;
+        case VIR_ERR_NO_SOURCE:
+            if (info == NULL)
+                errmsg = _("missing source information for device");
+            else
+                errmsg = _("missing source information for device %s");
+            break;
+        case VIR_ERR_NO_TARGET:
+            if (info == NULL)
+                errmsg = _("missing target information for device");
+            else
+                errmsg = _("missing target information for device %s");
+            break;
+        case VIR_ERR_NO_NAME:
+            if (info == NULL)
+                errmsg = _("missing name information");
+            else
+                errmsg = _("missing name information in %s");
+            break;
+        case VIR_ERR_NO_OS:
+            if (info == NULL)
+                errmsg = _("missing operating system information");
+            else
+                errmsg = _("missing operating system information for %s");
+            break;
+        case VIR_ERR_NO_DEVICE:
+            if (info == NULL)
+                errmsg = _("missing devices information");
+            else
+                errmsg = _("missing devices information for %s");
+            break;
+        case VIR_ERR_DRIVER_FULL:
+            if (info == NULL)
+                errmsg = _("too many drivers registered");
+            else
+                errmsg = _("too many drivers registered in %s");
+            break;
+        case VIR_ERR_CALL_FAILED: /* DEPRECATED, use VIR_ERR_NO_SUPPORT */
+            if (info == NULL)
+                errmsg = _("library call failed, possibly not supported");
+            else
+                errmsg = _("library call %s failed, possibly not supported");
+            break;
+        case VIR_ERR_XML_ERROR:
+            if (info == NULL)
+                errmsg = _("XML description is invalid or not well formed");
+            else
+                errmsg = _("XML error: %s");
+            break;
+        case VIR_ERR_DOM_EXIST:
+            if (info == NULL)
+                errmsg = _("this domain exists already");
+            else
+                errmsg = _("domain %s exists already");
+            break;
+        case VIR_ERR_OPERATION_DENIED:
+            if (info == NULL)
+                errmsg = _("operation forbidden for read only access");
+            else
+                errmsg = _("operation %s forbidden for read only access");
+            break;
+        case VIR_ERR_OPEN_FAILED:
+            if (info == NULL)
+                errmsg = _("failed to open configuration file for reading");
+            else
+                errmsg = _("failed to open %s for reading");
+            break;
+        case VIR_ERR_READ_FAILED:
+            if (info == NULL)
+                errmsg = _("failed to read configuration file");
+            else
+                errmsg = _("failed to read configuration file %s");
+            break;
+        case VIR_ERR_PARSE_FAILED:
+            if (info == NULL)
+                errmsg = _("failed to parse configuration file");
+            else
+                errmsg = _("failed to parse configuration file %s");
+            break;
+        case VIR_ERR_CONF_SYNTAX:
+            if (info == NULL)
+                errmsg = _("configuration file syntax error");
+            else
+                errmsg = _("configuration file syntax error: %s");
+            break;
+        case VIR_ERR_WRITE_FAILED:
+            if (info == NULL)
+                errmsg = _("failed to write configuration file");
+            else
+                errmsg = _("failed to write configuration file: %s");
+            break;
+        case VIR_ERR_XML_DETAIL:
+            if (info == NULL)
+                errmsg = _("parser error");
+            else
+                errmsg = "%s";
+            break;
+        case VIR_ERR_INVALID_NETWORK:
+            if (info == NULL)
+                errmsg = _("invalid network pointer in");
+            else
+                errmsg = _("invalid network pointer in %s");
+            break;
+        case VIR_ERR_NETWORK_EXIST:
+            if (info == NULL)
+                errmsg = _("this network exists already");
+            else
+                errmsg = _("network %s exists already");
+            break;
+        case VIR_ERR_SYSTEM_ERROR:
+            if (info == NULL)
+                errmsg = _("system call error");
+            else
+                errmsg = "%s";
+            break;
+        case VIR_ERR_RPC:
+            if (info == NULL)
+                errmsg = _("RPC error");
+            else
+                errmsg = "%s";
+            break;
+        case VIR_ERR_GNUTLS_ERROR:
+            if (info == NULL)
+                errmsg = _("GNUTLS call error");
+            else
+                errmsg = "%s";
+            break;
+        case VIR_WAR_NO_NETWORK:
+            if (info == NULL)
+                errmsg = _("Failed to find the network");
+            else
+                errmsg = _("Failed to find the network: %s");
+            break;
+        case VIR_ERR_NO_DOMAIN:
+            if (info == NULL)
+                errmsg = _("Domain not found");
+            else
+                errmsg = _("Domain not found: %s");
+            break;
+        case VIR_ERR_NO_NETWORK:
+            if (info == NULL)
+                errmsg = _("Network not found");
+            else
+                errmsg = _("Network not found: %s");
+            break;
+        case VIR_ERR_INVALID_MAC:
+            if (info == NULL)
+                errmsg = _("invalid MAC address");
+            else
+                errmsg = _("invalid MAC address: %s");
+            break;
+        case VIR_ERR_AUTH_FAILED:
+            if (info == NULL)
+                errmsg = _("authentication failed");
+            else
+                errmsg = _("authentication failed: %s");
+            break;
+        case VIR_ERR_AUTH_CANCELLED:
+            if (info == NULL)
+                errmsg = _("authentication cancelled");
+            else
+                errmsg = _("authentication cancelled: %s");
+            break;
+        case VIR_ERR_NO_STORAGE_POOL:
+            if (info == NULL)
+                errmsg = _("Storage pool not found");
+            else
+                errmsg = _("Storage pool not found: %s");
+            break;
+        case VIR_ERR_NO_STORAGE_VOL:
+            if (info == NULL)
+                errmsg = _("Storage volume not found");
+            else
+                errmsg = _("Storage volume not found: %s");
+            break;
+        case VIR_ERR_STORAGE_PROBE_FAILED:
+            if (info == NULL)
+                errmsg = _("Storage pool probe failed");
+            else
+                errmsg = _("Storage pool probe failed: %s");
+            break;
+        case VIR_ERR_STORAGE_POOL_BUILT:
+            if (info == NULL)
+                errmsg = _("Storage pool already built");
+            else
+                errmsg = _("Storage pool already built: %s");
+            break;
+        case VIR_ERR_INVALID_STORAGE_POOL:
+            if (info == NULL)
+                errmsg = _("invalid storage pool pointer in");
+            else
+                errmsg = _("invalid storage pool pointer in %s");
+            break;
+        case VIR_ERR_INVALID_STORAGE_VOL:
+            if (info == NULL)
+                errmsg = _("invalid storage volume pointer in");
+            else
+                errmsg = _("invalid storage volume pointer in %s");
+            break;
+        case VIR_WAR_NO_STORAGE:
+            if (info == NULL)
+                errmsg = _("Failed to find a storage driver");
+            else
+                errmsg = _("Failed to find a storage driver: %s");
+            break;
+        case VIR_WAR_NO_NODE:
+            if (info == NULL)
+                errmsg = _("Failed to find a node driver");
+            else
+                errmsg = _("Failed to find a node driver: %s");
+            break;
+        case VIR_ERR_INVALID_NODE_DEVICE:
+            if (info == NULL)
+                errmsg = _("invalid node device pointer");
+            else
+                errmsg = _("invalid node device pointer in %s");
+            break;
+        case VIR_ERR_NO_NODE_DEVICE:
+            if (info == NULL)
+                errmsg = _("Node device not found");
+            else
+                errmsg = _("Node device not found: %s");
+            break;
+        case VIR_ERR_NO_SECURITY_MODEL:
+            if (info == NULL)
+                errmsg = _("Security model not found");
+            else
+                errmsg = _("Security model not found: %s");
+            break;
+        case VIR_ERR_OPERATION_INVALID:
+            if (info == NULL)
+                errmsg = _("Requested operation is not valid");
+            else
+                errmsg = _("Requested operation is not valid: %s");
+            break;
+        case VIR_WAR_NO_INTERFACE:
+            if (info == NULL)
+                errmsg = _("Failed to find the interface");
+            else
+                errmsg = _("Failed to find the interface: %s");
+            break;
+        case VIR_ERR_NO_INTERFACE:
+            if (info == NULL)
+                errmsg = _("Interface not found");
+            else
+                errmsg = _("Interface not found: %s");
+            break;
+        case VIR_ERR_INVALID_INTERFACE:
+            if (info == NULL)
+                errmsg = _("invalid interface pointer in");
+            else
+                errmsg = _("invalid interface pointer in %s");
+            break;
+        case VIR_ERR_MULTIPLE_INTERFACES:
+            if (info == NULL)
+                errmsg = _("multiple matching interfaces found");
+            else
+                errmsg = _("multiple matching interfaces found: %s");
+            break;
+        case VIR_WAR_NO_SECRET:
+            if (info == NULL)
+                errmsg = _("Failed to find a secret storage driver");
+            else
+                errmsg = _("Failed to find a secret storage driver: %s");
+            break;
+        case VIR_ERR_INVALID_SECRET:
+            if (info == NULL)
+                errmsg = _("Invalid secret");
+            else
+                errmsg = _("Invalid secret: %s");
+            break;
+        case VIR_ERR_NO_SECRET:
+            if (info == NULL)
+                errmsg = _("Secret not found");
+            else
+                errmsg = _("Secret not found: %s");
+            break;
+        case VIR_WAR_NO_NWFILTER:
+            if (info == NULL)
+                errmsg = _("Failed to start the nwfilter driver");
+            else
+                errmsg = _("Failed to start the nwfilter driver: %s");
+            break;
+        case VIR_ERR_INVALID_NWFILTER:
+            if (info == NULL)
+                errmsg = _("Invalid network filter");
+            else
+                errmsg = _("Invalid network filter: %s");
+            break;
+        case VIR_ERR_NO_NWFILTER:
+            if (info == NULL)
+                errmsg = _("Network filter not found");
+            else
+                errmsg = _("Network filter not found: %s");
+            break;
+        case VIR_ERR_BUILD_FIREWALL:
+            if (info == NULL)
+                errmsg = _("Error while building firewall");
+            else
+                errmsg = _("Error while building firewall: %s");
+            break;
+        case VIR_ERR_CONFIG_UNSUPPORTED:
+            if (info == NULL)
+                errmsg = _("unsupported configuration");
+            else
+                errmsg = _("unsupported configuration: %s");
+            break;
+        case VIR_ERR_OPERATION_TIMEOUT:
+            if (info == NULL)
+                errmsg = _("Timed out during operation");
+            else
+                errmsg = _("Timed out during operation: %s");
+            break;
+        case VIR_ERR_MIGRATE_PERSIST_FAILED:
+            if (info == NULL)
+                errmsg = _("Failed to make domain persistent after migration");
+            else
+                errmsg = _("Failed to make domain persistent after migration: %s");
+            break;
+        case VIR_ERR_HOOK_SCRIPT_FAILED:
+            if (info == NULL)
+                errmsg = _("Hook script execution failed");
+            else
+                errmsg = _("Hook script execution failed: %s");
+            break;
+        case VIR_ERR_INVALID_DOMAIN_SNAPSHOT:
+            if (info == NULL)
+                errmsg = _("Invalid snapshot");
+            else
+                errmsg = _("Invalid snapshot: %s");
+            break;
+        case VIR_ERR_NO_DOMAIN_SNAPSHOT:
+            if (info == NULL)
+                errmsg = _("Domain snapshot not found");
+            else
+                errmsg = _("Domain snapshot not found: %s");
+            break;
+        case VIR_ERR_INVALID_STREAM:
+            if (info == NULL)
+                errmsg = _("invalid stream pointer");
+            else
+                errmsg = _("invalid stream pointer in %s");
+            break;
+        case VIR_ERR_ARGUMENT_UNSUPPORTED:
+            if (info == NULL)
+                errmsg = _("argument unsupported");
+            else
+                errmsg = _("argument unsupported: %s");
+            break;
+        case VIR_ERR_SNAPSHOT_REVERT_RISKY:
+            if (info == NULL)
+                errmsg = _("revert requires force");
+            else
+                errmsg = _("revert requires force: %s");
+            break;
+        case VIR_ERR_OPERATION_ABORTED:
+            if (info == NULL)
+                errmsg = _("operation aborted");
+            else
+                errmsg = _("operation aborted: %s");
+            break;
+        case VIR_ERR_NO_DOMAIN_METADATA:
+            if (info == NULL)
+                errmsg = _("metadata not found");
+            else
+                errmsg = _("metadata not found: %s");
+            break;
+        case VIR_ERR_MIGRATE_UNSAFE:
+            if (!info)
+                errmsg = _("Unsafe migration");
+            else
+                errmsg = _("Unsafe migration: %s");
+            break;
+        case VIR_ERR_OVERFLOW:
+            if (!info)
+                errmsg = _("numerical overflow");
+            else
+                errmsg = _("numerical overflow: %s");
+            break;
+        case VIR_ERR_BLOCK_COPY_ACTIVE:
+            if (!info)
+                errmsg = _("block copy still active");
+            else
+                errmsg = _("block copy still active: %s");
+            break;
+        case VIR_ERR_OPERATION_UNSUPPORTED:
+            if (!info)
+                errmsg = _("Operation not supported");
+            else
+                errmsg = _("Operation not supported: %s");
+            break;
+        case VIR_ERR_SSH:
+            if (info == NULL)
+                errmsg = _("SSH transport error");
+            else
+                errmsg = _("SSH transport error: %s");
+            break;
+        case VIR_ERR_AGENT_UNRESPONSIVE:
+            if (info == NULL)
+                errmsg = _("Guest agent is not responding");
+            else
+                errmsg = _("Guest agent is not responding: %s");
+            break;
+        case VIR_ERR_RESOURCE_BUSY:
+            if (info == NULL)
+                errmsg = _("resource busy");
+            else
+                errmsg = _("resource busy %s");
+            break;
+    }
+    return errmsg;
+}
+
+/**
+ * virReportErrorHelper:
+ *
+ * @domcode: the virErrorDomain indicating where it's coming from
+ * @errorcode: the virErrorNumber code for the error
+ * @filename: Source file error is dispatched from
+ * @funcname: Function error is dispatched from
+ * @linenr: Line number error is dispatched from
+ * @fmt:  the format string
+ * @...:  extra parameters for the message display
+ *
+ * Helper function to do most of the grunt work for individual driver
+ * ReportError
+ */
+void virReportErrorHelper(int domcode,
+                          int errorcode,
+                          const char *filename,
+                          const char *funcname,
+                          size_t linenr,
+                          const char *fmt, ...)
+{
+    int save_errno = errno;
+    va_list args;
+    char errorMessage[1024];
+    const char *virerr;
+
+    if (fmt) {
+        va_start(args, fmt);
+        vsnprintf(errorMessage, sizeof(errorMessage)-1, fmt, args);
+        va_end(args);
+    } else {
+        errorMessage[0] = '\0';
+    }
+
+    virerr = virErrorMsg(errorcode, (errorMessage[0] ? errorMessage : NULL));
+    virRaiseErrorFull(filename, funcname, linenr,
+                      domcode, errorcode, VIR_ERR_ERROR,
+                      virerr, errorMessage, NULL,
+                      -1, -1, virerr, errorMessage);
+    errno = save_errno;
+}
+
+/**
+ * virStrerror:
+ * @theerrno: the errno value
+ * @errBuf: the buffer to save the error to
+ * @errBufLen: the buffer length
+ *
+ * Generate an error string for the given errno
+ *
+ * Returns a pointer to the error string, possibly indicating that the
+ *         error is unknown
+ */
+const char *virStrerror(int theerrno, char *errBuf, size_t errBufLen)
+{
+    int save_errno = errno;
+    const char *ret;
+
+    strerror_r(theerrno, errBuf, errBufLen);
+    ret = errBuf;
+    errno = save_errno;
+    return ret;
+}
+
+/**
+ * virReportSystemErrorFull:
+ * @domcode: the virErrorDomain indicating where it's coming from
+ * @theerrno: an errno number
+ * @filename: filename where error was raised
+ * @funcname: function name where error was raised
+ * @linenr: line number where error was raised
+ * @fmt:  the message to display/transmit
+ * @...:  extra parameters for the message display
+ *
+ * Convenience internal routine called when a system error is detected.
+ */
+void virReportSystemErrorFull(int domcode,
+                              int theerrno,
+                              const char *filename,
+                              const char *funcname,
+                              size_t linenr,
+                              const char *fmt, ...)
+{
+    int save_errno = errno;
+    char strerror_buf[1024];
+    char msgDetailBuf[1024];
+
+    const char *errnoDetail = virStrerror(theerrno, strerror_buf,
+                                          sizeof(strerror_buf));
+    const char *msg = virErrorMsg(VIR_ERR_SYSTEM_ERROR, fmt);
+    const char *msgDetail = NULL;
+
+    if (fmt) {
+        va_list args;
+        int n;
+
+        va_start(args, fmt);
+        n = vsnprintf(msgDetailBuf, sizeof(msgDetailBuf), fmt, args);
+        va_end(args);
+
+        size_t len = strlen(errnoDetail);
+        if (0 <= n && n + 2 + len < sizeof(msgDetailBuf)) {
+          char *p = msgDetailBuf + n;
+          stpcpy(stpcpy(p, ": "), errnoDetail);
+          msgDetail = msgDetailBuf;
+        }
+    }
+
+    if (!msgDetail)
+        msgDetail = errnoDetail;
+
+    virRaiseErrorFull(filename, funcname, linenr,
+                      domcode, VIR_ERR_SYSTEM_ERROR, VIR_ERR_ERROR,
+                      msg, msgDetail, NULL, theerrno, -1, msg, msgDetail);
+    errno = save_errno;
+}
+
+/**
+ * virReportOOMErrorFull:
+ * @domcode: the virErrorDomain indicating where it's coming from
+ * @filename: filename where error was raised
+ * @funcname: function name where error was raised
+ * @linenr: line number where error was raised
+ *
+ * Convenience internal routine called when an out of memory error is
+ * detected
+ */
+void virReportOOMErrorFull(int domcode,
+                           const char *filename,
+                           const char *funcname,
+                           size_t linenr)
+{
+    const char *virerr;
+
+    virerr = virErrorMsg(VIR_ERR_NO_MEMORY, NULL);
+    virRaiseErrorFull(filename, funcname, linenr,
+                      domcode, VIR_ERR_NO_MEMORY, VIR_ERR_ERROR,
+                      virerr, NULL, NULL, -1, -1, virerr, NULL);
+}
+
+/**
+ * virSetErrorLogPriorityFunc:
+ * @func: function to install
+ *
+ * Install a function used to filter error logging based on error priority.
+ */
+void virSetErrorLogPriorityFunc(virErrorLogPriorityFunc func)
+{
+    virErrorLogPriorityFilter = func;
+}
diff --git a/src/util/virerror.h b/src/util/virerror.h
new file mode 100644
index 0000000..961c423
--- /dev/null
+++ b/src/util/virerror.h
@@ -0,0 +1,167 @@
+/*
+ * virterror.h: internal error handling
+ *
+ * Copyright (C) 2006-2009, 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef __VIRT_ERROR_H_
+# define __VIRT_ERROR_H_
+
+# include "internal.h"
+
+extern virErrorFunc virErrorHandler;
+extern void *virUserData;
+
+/************************************************************************
+ *									*
+ *		API for error handling					*
+ *									*
+ ************************************************************************/
+int virErrorInitialize(void);
+void virRaiseErrorFull(const char *filename,
+                       const char *funcname,
+                       size_t linenr,
+                       int domain,
+                       int code,
+                       virErrorLevel level,
+                       const char *str1,
+                       const char *str2,
+                       const char *str3,
+                       int int1,
+                       int int2,
+                       const char *fmt, ...)
+    ATTRIBUTE_FMT_PRINTF(12, 13);
+
+void virReportErrorHelper(int domcode, int errcode,
+                          const char *filename,
+                          const char *funcname,
+                          size_t linenr,
+                          const char *fmt, ...)
+  ATTRIBUTE_FMT_PRINTF(6, 7);
+
+void virReportSystemErrorFull(int domcode,
+                              int theerrno,
+                              const char *filename,
+                              const char *funcname,
+                              size_t linenr,
+                              const char *fmt, ...)
+    ATTRIBUTE_FMT_PRINTF(6, 7);
+
+# define virReportSystemError(theerrno, fmt,...)                   \
+    virReportSystemErrorFull(VIR_FROM_THIS,                       \
+                             (theerrno),                          \
+                             __FILE__, __FUNCTION__, __LINE__,    \
+                             (fmt), __VA_ARGS__)
+
+# define virReportInvalidNullArg(argname)                            \
+    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
+                      VIR_FROM_THIS,                                 \
+                      VIR_ERR_INVALID_ARG,                           \
+                      VIR_ERR_ERROR,                                 \
+                      __FUNCTION__,                                  \
+                      #argname,                                      \
+                      NULL,                                          \
+                      0, 0,                                          \
+                      _("%s in %s must be NULL"),                    \
+                      #argname, __FUNCTION__)
+# define virReportInvalidNonNullArg(argname)                         \
+    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
+                      VIR_FROM_THIS,                                 \
+                      VIR_ERR_INVALID_ARG,                           \
+                      VIR_ERR_ERROR,                                 \
+                      __FUNCTION__,                                  \
+                      #argname,                                      \
+                      NULL,                                          \
+                      0, 0,                                          \
+                      _("%s in %s must not be NULL"),                \
+                      #argname, __FUNCTION__)
+# define virReportInvalidPositiveArg(argname)                        \
+    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
+                      VIR_FROM_THIS,                                 \
+                      VIR_ERR_INVALID_ARG,                           \
+                      VIR_ERR_ERROR,                                 \
+                      __FUNCTION__,                                  \
+                      #argname,                                      \
+                      NULL,                                          \
+                      0, 0,                                          \
+                      _("%s in %s must greater than zero"),          \
+                      #argname, __FUNCTION__)
+# define virReportInvalidNonZeroArg(argname)                         \
+    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
+                      VIR_FROM_THIS,                                 \
+                      VIR_ERR_INVALID_ARG,                           \
+                      VIR_ERR_ERROR,                                 \
+                      __FUNCTION__,                                  \
+                      #argname,                                      \
+                      NULL,                                          \
+                      0, 0,                                          \
+                      _("%s in %s must not be zero"),                \
+                      #argname, __FUNCTION__)
+# define virReportInvalidZeroArg(argname)                            \
+    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
+                      VIR_FROM_THIS,                                 \
+                      VIR_ERR_INVALID_ARG,                           \
+                      VIR_ERR_ERROR,                                 \
+                      __FUNCTION__,                                  \
+                      #argname,                                      \
+                      NULL,                                          \
+                      0, 0,                                          \
+                      _("%s in %s must  be zero"),                   \
+                      #argname, __FUNCTION__)
+# define virReportInvalidNonNegativeArg(argname)                     \
+    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
+                      VIR_FROM_THIS,                                 \
+                      VIR_ERR_INVALID_ARG,                           \
+                      VIR_ERR_ERROR,                                 \
+                      __FUNCTION__,                                  \
+                      #argname,                                      \
+                      NULL,                                          \
+                      0, 0,                                          \
+                      _("%s in %s must be zero or greater"),         \
+                      #argname, __FUNCTION__)
+# define virReportInvalidArg(argname, fmt, ...)                      \
+    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
+                      VIR_FROM_THIS,                                 \
+                      VIR_ERR_INVALID_ARG,                           \
+                      VIR_ERR_ERROR,                                 \
+                      __FUNCTION__,                                  \
+                      #argname,                                      \
+                      NULL,                                          \
+                      0, 0,                                          \
+                      (fmt), __VA_ARGS__)
+
+void virReportOOMErrorFull(int domcode,
+                           const char *filename,
+                           const char *funcname,
+                           size_t linenr);
+
+# define virReportOOMError() \
+    virReportOOMErrorFull(VIR_FROM_THIS, __FILE__, __FUNCTION__, __LINE__)
+
+# define virReportError(code, ...)                                   \
+    virReportErrorHelper(VIR_FROM_THIS, code, __FILE__,              \
+                         __FUNCTION__, __LINE__, __VA_ARGS__)
+
+int virSetError(virErrorPtr newerr);
+void virDispatchError(virConnectPtr conn);
+const char *virStrerror(int theerrno, char *errBuf, size_t errBufLen);
+
+typedef int (*virErrorLogPriorityFunc)(virErrorPtr, int);
+void virSetErrorLogPriorityFunc(virErrorLogPriorityFunc func);
+
+#endif
diff --git a/src/util/virevent.c b/src/util/virevent.c
index 573b4ac..a207a48 100644
--- a/src/util/virevent.c
+++ b/src/util/virevent.c
@@ -26,7 +26,7 @@
 #include "virevent.h"
 #include "vireventpoll.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #include <stdlib.h>
 
diff --git a/src/util/vireventpoll.c b/src/util/vireventpoll.c
index afb0e05..ac1bf8e 100644
--- a/src/util/vireventpoll.c
+++ b/src/util/vireventpoll.c
@@ -37,7 +37,7 @@
 #include "viralloc.h"
 #include "virutil.h"
 #include "virfile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virtime.h"
 
 #define EVENT_DEBUG(fmt, ...) VIR_DEBUG(fmt, __VA_ARGS__)
diff --git a/src/util/virfile.c b/src/util/virfile.c
index f20ce64..50999aa 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -40,7 +40,7 @@
 #include "vircommand.h"
 #include "configmake.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/util/virhash.c b/src/util/virhash.c
index a1234c4..2fe8751 100644
--- a/src/util/virhash.c
+++ b/src/util/virhash.c
@@ -24,7 +24,7 @@
 #include <string.h>
 #include <stdlib.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virhash.h"
 #include "viralloc.h"
 #include "virlog.h"
diff --git a/src/util/virhooks.c b/src/util/virhooks.c
index 54a869a..9ff158a 100644
--- a/src/util/virhooks.c
+++ b/src/util/virhooks.c
@@ -30,7 +30,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virhooks.h"
 #include "virutil.h"
 #include "virlog.h"
diff --git a/src/util/virinitctl.c b/src/util/virinitctl.c
index f8ac673..1618ffa 100644
--- a/src/util/virinitctl.c
+++ b/src/util/virinitctl.c
@@ -28,7 +28,7 @@
 
 #include "internal.h"
 #include "virinitctl.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "viralloc.h"
 #include "virfile.h"
diff --git a/src/util/viriptables.c b/src/util/viriptables.c
index eb8acf5..5ff3a1e 100644
--- a/src/util/viriptables.c
+++ b/src/util/viriptables.c
@@ -41,7 +41,7 @@
 #include "viriptables.h"
 #include "vircommand.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virthread.h"
 
diff --git a/src/util/virjson.c b/src/util/virjson.c
index 4c9797c..2c412c2 100644
--- a/src/util/virjson.c
+++ b/src/util/virjson.c
@@ -25,7 +25,7 @@
 
 #include "virjson.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virutil.h"
 
diff --git a/src/util/virkeyfile.c b/src/util/virkeyfile.c
index 99e5cd7..d77e95d 100644
--- a/src/util/virkeyfile.c
+++ b/src/util/virkeyfile.c
@@ -31,7 +31,7 @@
 #include "virutil.h"
 #include "virhash.h"
 #include "virkeyfile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_CONF
 
diff --git a/src/util/virlockspace.c b/src/util/virlockspace.c
index 81a1d81..9ada6a6 100644
--- a/src/util/virlockspace.c
+++ b/src/util/virlockspace.c
@@ -24,7 +24,7 @@
 #include "virlockspace.h"
 #include "virlog.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "virfile.h"
 #include "virhash.h"
diff --git a/src/util/virlog.c b/src/util/virlog.c
index 43a59b4..d0e996d 100644
--- a/src/util/virlog.c
+++ b/src/util/virlog.c
@@ -40,7 +40,7 @@
 # include <sys/un.h>
 #endif
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "viralloc.h"
 #include "virutil.h"
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 3ea0e39..ce02d2c 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -25,7 +25,7 @@
 #include "virnetdev.h"
 #include "virmacaddr.h"
 #include "virfile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "vircommand.h"
 #include "viralloc.h"
 #include "virpci.h"
diff --git a/src/util/virnetdevbandwidth.c b/src/util/virnetdevbandwidth.c
index 9cc8858..2c5b63a 100644
--- a/src/util/virnetdevbandwidth.c
+++ b/src/util/virnetdevbandwidth.c
@@ -25,7 +25,7 @@
 #include "virnetdevbandwidth.h"
 #include "vircommand.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
index 4de88e3..b87c601 100644
--- a/src/util/virnetdevbridge.c
+++ b/src/util/virnetdevbridge.c
@@ -23,7 +23,7 @@
 #include <config.h>
 
 #include "virnetdevbridge.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 #include "virfile.h"
 #include "viralloc.h"
diff --git a/src/util/virnetdevmacvlan.c b/src/util/virnetdevmacvlan.c
index 720a48a..a74db1e 100644
--- a/src/util/virnetdevmacvlan.c
+++ b/src/util/virnetdevmacvlan.c
@@ -30,7 +30,7 @@
 #include "virnetdevmacvlan.h"
 #include "virmacaddr.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NET
 
diff --git a/src/util/virnetdevopenvswitch.c b/src/util/virnetdevopenvswitch.c
index b876a4e..47c3db8 100644
--- a/src/util/virnetdevopenvswitch.c
+++ b/src/util/virnetdevopenvswitch.c
@@ -26,7 +26,7 @@
 #include "virnetdevopenvswitch.h"
 #include "vircommand.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virmacaddr.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/util/virnetdevtap.c b/src/util/virnetdevtap.c
index 3565bbd..a884de1 100644
--- a/src/util/virnetdevtap.c
+++ b/src/util/virnetdevtap.c
@@ -27,9 +27,9 @@
 #include "virnetdev.h"
 #include "virnetdevbridge.h"
 #include "virnetdevopenvswitch.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virfile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 #include "virutil.h"
diff --git a/src/util/virnetdevveth.c b/src/util/virnetdevveth.c
index c6568b7..3f81655 100644
--- a/src/util/virnetdevveth.c
+++ b/src/util/virnetdevveth.c
@@ -29,7 +29,7 @@
 #include "viralloc.h"
 #include "virlog.h"
 #include "vircommand.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/util/virnetdevvlan.c b/src/util/virnetdevvlan.c
index 53c6b65..2fe2017 100644
--- a/src/util/virnetdevvlan.c
+++ b/src/util/virnetdevvlan.c
@@ -22,7 +22,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virnetdevvlan.h"
 #include "viralloc.h"
 
diff --git a/src/util/virnetdevvportprofile.c b/src/util/virnetdevvportprofile.c
index 60acabd..bb97e3a 100644
--- a/src/util/virnetdevvportprofile.c
+++ b/src/util/virnetdevvportprofile.c
@@ -23,7 +23,7 @@
 #include <config.h>
 
 #include "virnetdevvportprofile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_NET
diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c
index fdd4c0d..0b36fdc 100644
--- a/src/util/virnetlink.c
+++ b/src/util/virnetlink.c
@@ -40,7 +40,7 @@
 #include "viralloc.h"
 #include "virthread.h"
 #include "virmacaddr.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #ifndef SOL_NETLINK
 # define SOL_NETLINK 270
diff --git a/src/util/virnodesuspend.c b/src/util/virnodesuspend.c
index 878be1d..df40ccd 100644
--- a/src/util/virnodesuspend.c
+++ b/src/util/virnodesuspend.c
@@ -28,7 +28,7 @@
 
 #include "viralloc.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/util/virobject.c b/src/util/virobject.c
index aca6182..f51b735 100644
--- a/src/util/virobject.c
+++ b/src/util/virobject.c
@@ -25,7 +25,7 @@
 #include "virthread.h"
 #include "viralloc.h"
 #include "viratomic.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 8875aa6..83e9a7b 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -37,7 +37,7 @@
 #include "virlog.h"
 #include "viralloc.h"
 #include "vircommand.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virfile.h"
 
 #define PCI_SYSFS "/sys/bus/pci/"
diff --git a/src/util/virpidfile.c b/src/util/virpidfile.c
index 29097e3..14c9f9f 100644
--- a/src/util/virpidfile.c
+++ b/src/util/virpidfile.c
@@ -33,7 +33,7 @@
 #include "virutil.h"
 #include "intprops.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "c-ctype.h"
 #include "areadlink.h"
 
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index b276643..e8001e5 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -28,7 +28,7 @@
 #include <sched.h>
 
 #include "virprocess.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 #include "virutil.h"
diff --git a/src/util/virrandom.c b/src/util/virrandom.c
index 1b6de6b..6c5bc91 100644
--- a/src/util/virrandom.c
+++ b/src/util/virrandom.c
@@ -30,7 +30,7 @@
 #include "virthread.h"
 #include "count-one-bits.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/util/virsexpr.c b/src/util/virsexpr.c
index 8b70404..18d3c2d 100644
--- a/src/util/virsexpr.c
+++ b/src/util/virsexpr.c
@@ -17,7 +17,7 @@
 #include "c-ctype.h"
 #include <errno.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virsexpr.h"
 #include "virutil.h"
 #include "viralloc.h"
diff --git a/src/util/virsocketaddr.c b/src/util/virsocketaddr.c
index 0f2f23d..7bc43a9 100644
--- a/src/util/virsocketaddr.c
+++ b/src/util/virsocketaddr.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "virsocketaddr.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 
 #include <netdb.h>
diff --git a/src/util/virstatslinux.c b/src/util/virstatslinux.c
index 135df75..3505b96 100644
--- a/src/util/virstatslinux.c
+++ b/src/util/virstatslinux.c
@@ -32,7 +32,7 @@
 # include <unistd.h>
 # include <regex.h>
 
-# include "virterror_internal.h"
+# include "virerror.h"
 # include "datatypes.h"
 # include "virutil.h"
 # include "virstatslinux.h"
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index f183f19..4ff3e14 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -36,7 +36,7 @@
 #endif
 #include "dirname.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "c-ctype.h"
diff --git a/src/util/virstring.c b/src/util/virstring.c
index 5607b3e..0420ca3 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -24,7 +24,7 @@
 #include "virstring.h"
 #include "viralloc.h"
 #include "virbuffer.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c
index 88e4f5c..61f7288 100644
--- a/src/util/virsysinfo.c
+++ b/src/util/virsysinfo.c
@@ -30,7 +30,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virsysinfo.h"
 #include "virutil.h"
 #include "virlog.h"
diff --git a/src/util/virterror.c b/src/util/virterror.c
deleted file mode 100644
index a586738..0000000
--- a/src/util/virterror.c
+++ /dev/null
@@ -1,1369 +0,0 @@
-/*
- * virterror.c: implements error handling and reporting code for libvirt
- *
- * Copyright (C) 2006, 2008-2012 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library.  If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * Author: Daniel Veillard <veillard at redhat.com>
- */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-
-#include "virterror_internal.h"
-#include "datatypes.h"
-#include "virlog.h"
-#include "viralloc.h"
-#include "virthread.h"
-#include "virutil.h"
-
-virThreadLocal virLastErr;
-
-virErrorFunc virErrorHandler = NULL;     /* global error handler */
-void *virUserData = NULL;        /* associated data */
-virErrorLogPriorityFunc virErrorLogPriorityFilter = NULL;
-
-static virLogPriority virErrorLevelPriority(virErrorLevel level) {
-    switch (level) {
-        case VIR_ERR_NONE:
-            return VIR_LOG_INFO;
-        case VIR_ERR_WARNING:
-            return VIR_LOG_WARN;
-        case VIR_ERR_ERROR:
-            return VIR_LOG_ERROR;
-    }
-    return VIR_LOG_ERROR;
-}
-
-
-VIR_ENUM_DECL(virErrorDomain)
-VIR_ENUM_IMPL(virErrorDomain, VIR_ERR_DOMAIN_LAST,
-              "", /* 0 */
-              "Xen Driver",
-              "Xen Daemon",
-              "Xen Store",
-              "S-Expression",
-
-              "XML Util", /* 5 */
-              "Domain",
-              "XML-RPC",
-              "Proxy Daemon",
-              "Config File",
-
-              "QEMU Driver", /* 10 */
-              "Network",
-              "Test Driver",
-              "Remote Driver",
-              "OpenVZ Driver",
-
-              "Xen XM Driver", /* 15 */
-              "Linux Statistics",
-              "LXC Driver",
-              "Storage Driver",
-              "Network Driver",
-
-              "Domain Config", /* 20 */
-              "User Mode Linux Driver",
-              "Node Device Driver",
-              "Xen Inotify Driver",
-              "Security Driver",
-
-              "VirtualBox Driver", /* 25 */
-              "Network Interface Driver",
-              "Open Nebula Driver",
-              "ESX Driver",
-              "Power Hypervisor Driver",
-
-              "Secrets Driver", /* 30 */
-              "CPU Driver",
-              "XenAPI Driver",
-              "Network Filter Driver",
-              "Lifecycle Hook",
-
-              "Domain Snapshot", /* 35 */
-              "Audit Utils",
-              "Sysinfo Utils",
-              "I/O Stream Utils",
-              "VMWare Driver",
-
-              "Event Loop", /* 40 */
-              "Xen Light Driver",
-              "Lock Driver",
-              "Hyper-V Driver",
-              "Capabilities Utils",
-
-              "URI Utils", /* 45 */
-              "Authentication Utils",
-              "DBus Utils",
-              "Parallels Cloud Server",
-              "Device Config",
-
-              "SSH transport layer", /* 50 */
-              "Lock Space",
-              "Init control",
-    )
-
-
-/*
- * Internal helper that is called when a thread exits, to
- * release the error object stored in the thread local
- */
-static void
-virLastErrFreeData(void *data)
-{
-    virErrorPtr err = data;
-    if (!err)
-        return;
-    virResetError(err);
-    VIR_FREE(err);
-}
-
-
-/**
- * virErrorInitialize:
- *
- * Initialize the error data (per thread)
- *
- * Returns 0 in case of success, -1 in case of failure.
- */
-int
-virErrorInitialize(void)
-{
-    return virThreadLocalInit(&virLastErr, virLastErrFreeData);
-}
-
-
-/*
- * Internal helper to ensure a generic error code is stored
- * in case where API returns failure, but forgot to set an
- * error
- */
-static void
-virErrorGenericFailure(virErrorPtr err)
-{
-    err->code = VIR_ERR_INTERNAL_ERROR;
-    err->domain = VIR_FROM_NONE;
-    err->level = VIR_ERR_ERROR;
-    err->message = strdup(_("An error occurred, but the cause is unknown"));
-}
-
-
-/*
- * Internal helper to perform a deep copy of an error
- */
-static int
-virCopyError(virErrorPtr from,
-             virErrorPtr to)
-{
-    int ret = 0;
-    if (!to)
-        return 0;
-    virResetError(to);
-    if (!from)
-        return 0;
-    to->code = from->code;
-    to->domain = from->domain;
-    to->level = from->level;
-    if (from->message && !(to->message = strdup(from->message)))
-        ret = -1;
-    if (from->str1 && !(to->str1 = strdup(from->str1)))
-        ret = -1;
-    if (from->str2 && !(to->str2 = strdup(from->str2)))
-        ret = -1;
-    if (from->str3 && !(to->str3 = strdup(from->str3)))
-        ret = -1;
-    to->int1 = from->int1;
-    to->int2 = from->int2;
-    /*
-     * Deliberately not setting 'conn', 'dom', 'net' references
-     */
-    return ret;
-}
-
-static virErrorPtr
-virLastErrorObject(void)
-{
-    virErrorPtr err;
-    err = virThreadLocalGet(&virLastErr);
-    if (!err) {
-        if (VIR_ALLOC(err) < 0)
-            return NULL;
-        if (virThreadLocalSet(&virLastErr, err) < 0)
-            VIR_FREE(err);
-    }
-    return err;
-}
-
-
-/**
- * virGetLastError:
- *
- * Provide a pointer to the last error caught at the library level
- *
- * The error object is kept in thread local storage, so separate
- * threads can safely access this concurrently.
- *
- * Returns a pointer to the last error or NULL if none occurred.
- */
-virErrorPtr
-virGetLastError(void)
-{
-    virErrorPtr err = virLastErrorObject();
-    if (!err || err->code == VIR_ERR_OK)
-        return NULL;
-    return err;
-}
-
-/**
- * virSetError:
- * @newerr: previously saved error object
- *
- * Set the current error from a previously saved error object
- *
- * Can be used to re-set an old error, which may have been squashed by
- * other functions (like cleanup routines).
- *
- * Returns 0 on success, -1 on failure.  Leaves errno unchanged.
- */
-int
-virSetError(virErrorPtr newerr)
-{
-    virErrorPtr err;
-    int saved_errno = errno;
-    int ret = -1;
-
-    err = virLastErrorObject();
-    if (!err)
-        goto cleanup;
-
-    virResetError(err);
-    ret = virCopyError(newerr, err);
-cleanup:
-    errno = saved_errno;
-    return ret;
-}
-
-/**
- * virCopyLastError:
- * @to: target to receive the copy
- *
- * Copy the content of the last error caught at the library level
- *
- * The error object is kept in thread local storage, so separate
- * threads can safely access this concurrently.
- *
- * One will need to free the result with virResetError()
- *
- * Returns 0 if no error was found and the error code otherwise and -1 in case
- *         of parameter error.
- */
-int
-virCopyLastError(virErrorPtr to)
-{
-    virErrorPtr err = virLastErrorObject();
-    /* We can't guarantee caller has initialized it to zero */
-    memset(to, 0, sizeof(*to));
-    if (err)
-        virCopyError(err, to);
-    else
-        virResetError(to);
-    return to->code;
-}
-
-/**
- * virSaveLastError:
- *
- * Save the last error into a new error object.  On success, errno is
- * unchanged; on failure, errno is ENOMEM.
- *
- * Returns a pointer to the copied error or NULL if allocation failed.
- * It is the caller's responsibility to free the error with
- * virFreeError().
- */
-virErrorPtr
-virSaveLastError(void)
-{
-    virErrorPtr to;
-    int saved_errno = errno;
-
-    if (VIR_ALLOC(to) < 0)
-        return NULL;
-
-    virCopyLastError(to);
-    errno = saved_errno;
-    return to;
-}
-
-/**
- * virResetError:
- * @err: pointer to the virError to clean up
- *
- * Reset the error being pointed to
- */
-void
-virResetError(virErrorPtr err)
-{
-    if (err == NULL)
-        return;
-    VIR_FREE(err->message);
-    VIR_FREE(err->str1);
-    VIR_FREE(err->str2);
-    VIR_FREE(err->str3);
-    memset(err, 0, sizeof(virError));
-}
-
-/**
- * virFreeError:
- * @err: error to free
- *
- * Resets and frees the given error.
- */
-void
-virFreeError(virErrorPtr err)
-{
-    virResetError(err);
-    VIR_FREE(err);
-}
-
-/**
- * virResetLastError:
- *
- * Reset the last error caught at the library level.
- *
- * The error object is kept in thread local storage, so separate
- * threads can safely access this concurrently, only resetting
- * their own error object.
- */
-void
-virResetLastError(void)
-{
-    virErrorPtr err = virLastErrorObject();
-    if (err)
-        virResetError(err);
-}
-
-/**
- * virConnGetLastError:
- * @conn: pointer to the hypervisor connection
- *
- * Provide a pointer to the last error caught on that connection
- *
- * This method is not protected against access from multiple
- * threads. In a multi-threaded application, always use the
- * global virGetLastError() API which is backed by thread
- * local storage.
- *
- * If the connection object was discovered to be invalid by
- * an API call, then the error will be reported against the
- * global error object.
- *
- * Since 0.6.0, all errors reported in the per-connection object
- * are also duplicated in the global error object. As such an
- * application can always use virGetLastError(). This method
- * remains for backwards compatibility.
- *
- * Returns a pointer to the last error or NULL if none occurred.
- */
-virErrorPtr
-virConnGetLastError(virConnectPtr conn)
-{
-    if (conn == NULL)
-        return NULL;
-    return &conn->err;
-}
-
-/**
- * virConnCopyLastError:
- * @conn: pointer to the hypervisor connection
- * @to: target to receive the copy
- *
- * Copy the content of the last error caught on that connection
- *
- * This method is not protected against access from multiple
- * threads. In a multi-threaded application, always use the
- * global virGetLastError() API which is backed by thread
- * local storage.
- *
- * If the connection object was discovered to be invalid by
- * an API call, then the error will be reported against the
- * global error object.
- *
- * Since 0.6.0, all errors reported in the per-connection object
- * are also duplicated in the global error object. As such an
- * application can always use virGetLastError(). This method
- * remains for backwards compatibility.
- *
- * One will need to free the result with virResetError()
- *
- * Returns 0 if no error was found and the error code otherwise and -1 in case
- *         of parameter error.
- */
-int
-virConnCopyLastError(virConnectPtr conn, virErrorPtr to)
-{
-    /* We can't guarantee caller has initialized it to zero */
-    memset(to, 0, sizeof(*to));
-
-    if (conn == NULL)
-        return -1;
-    virMutexLock(&conn->lock);
-    if (conn->err.code == VIR_ERR_OK)
-        virResetError(to);
-    else
-        virCopyError(&conn->err, to);
-    virMutexUnlock(&conn->lock);
-    return to->code;
-}
-
-/**
- * virConnResetLastError:
- * @conn: pointer to the hypervisor connection
- *
- * The error object is kept in thread local storage, so separate
- * threads can safely access this concurrently.
- *
- * Reset the last error caught on that connection
- */
-void
-virConnResetLastError(virConnectPtr conn)
-{
-    if (conn == NULL)
-        return;
-    virMutexLock(&conn->lock);
-    virResetError(&conn->err);
-    virMutexUnlock(&conn->lock);
-}
-
-/**
- * virSetErrorFunc:
- * @userData: pointer to the user data provided in the handler callback
- * @handler: the function to get called in case of error or NULL
- *
- * Set a library global error handling function, if @handler is NULL,
- * it will reset to default printing on stderr. The error raised there
- * are those for which no handler at the connection level could caught.
- */
-void
-virSetErrorFunc(void *userData, virErrorFunc handler)
-{
-    virErrorHandler = handler;
-    virUserData = userData;
-}
-
-/**
- * virConnSetErrorFunc:
- * @conn: pointer to the hypervisor connection
- * @userData: pointer to the user data provided in the handler callback
- * @handler: the function to get called in case of error or NULL
- *
- * Set a connection error handling function, if @handler is NULL
- * it will reset to default which is to pass error back to the global
- * library handler.
- */
-void
-virConnSetErrorFunc(virConnectPtr conn, void *userData,
-                    virErrorFunc handler)
-{
-    if (conn == NULL)
-        return;
-    virMutexLock(&conn->lock);
-    conn->handler = handler;
-    conn->userData = userData;
-    virMutexUnlock(&conn->lock);
-}
-
-/**
- * virDefaultErrorFunc:
- * @err: pointer to the error.
- *
- * Default routine reporting an error to stderr.
- */
-void
-virDefaultErrorFunc(virErrorPtr err)
-{
-    const char *lvl = "", *dom = "", *domain = "", *network = "";
-    int len;
-
-    if ((err == NULL) || (err->code == VIR_ERR_OK))
-        return;
-    switch (err->level) {
-        case VIR_ERR_NONE:
-            lvl = "";
-            break;
-        case VIR_ERR_WARNING:
-            lvl = _("warning");
-            break;
-        case VIR_ERR_ERROR:
-            lvl = _("error");
-            break;
-    }
-    dom = virErrorDomainTypeToString(err->domain);
-    if (!dom)
-        dom = "Unknown";
-    if ((err->dom != NULL) && (err->code != VIR_ERR_INVALID_DOMAIN)) {
-        domain = err->dom->name;
-    } else if ((err->net != NULL) && (err->code != VIR_ERR_INVALID_NETWORK)) {
-        network = err->net->name;
-    }
-    len = strlen(err->message);
-    if ((err->domain == VIR_FROM_XML) && (err->code == VIR_ERR_XML_DETAIL) &&
-        (err->int1 != 0))
-        fprintf(stderr, "libvir: %s %s %s%s: line %d: %s",
-                dom, lvl, domain, network, err->int1, err->message);
-    else if ((len == 0) || (err->message[len - 1] != '\n'))
-        fprintf(stderr, "libvir: %s %s %s%s: %s\n",
-                dom, lvl, domain, network, err->message);
-    else
-        fprintf(stderr, "libvir: %s %s %s%s: %s",
-                dom, lvl, domain, network, err->message);
-}
-
-/**
- * virDispatchError:
- * @conn: pointer to the hypervisor connection
- *
- * Internal helper to do final stage of error
- * reporting in public APIs.
- *
- *  - Copy the global error to per-connection error if needed
- *  - Set a generic error message if none is already set
- *  - Invoke the error callback functions
- */
-void
-virDispatchError(virConnectPtr conn)
-{
-    virErrorPtr err = virLastErrorObject();
-    virErrorFunc handler = virErrorHandler;
-    void *userData = virUserData;
-
-    /* Can only happen on OOM.  */
-    if (!err)
-        return;
-
-    /* Set a generic error message if none is already set */
-    if (err->code == VIR_ERR_OK)
-        virErrorGenericFailure(err);
-
-    /* Copy the global error to per-connection error if needed */
-    if (conn) {
-        virMutexLock(&conn->lock);
-        virCopyError(err, &conn->err);
-
-        if (conn->handler != NULL) {
-            handler = conn->handler;
-            userData = conn->userData;
-        }
-        virMutexUnlock(&conn->lock);
-    }
-
-    /* Invoke the error callback functions */
-    if (handler != NULL) {
-        (handler)(userData, err);
-    } else {
-        virDefaultErrorFunc(err);
-    }
-}
-
-
-
-/**
- * virRaiseErrorFull:
- * @filename: filename where error was raised
- * @funcname: function name where error was raised
- * @linenr: line number where error was raised
- * @domain: the virErrorDomain indicating where it's coming from
- * @code: the virErrorNumber code for the error
- * @level: the virErrorLevel for the error
- * @str1: extra string info
- * @str2: extra string info
- * @str3: extra string info
- * @int1: extra int info
- * @int2: extra int info
- * @fmt:  the message to display/transmit
- * @...:  extra parameters for the message display
- *
- * Internal routine called when an error is detected. It will raise it
- * immediately if a callback is found and store it for later handling.
- */
-void
-virRaiseErrorFull(const char *filename ATTRIBUTE_UNUSED,
-                  const char *funcname,
-                  size_t linenr,
-                  int domain,
-                  int code,
-                  virErrorLevel level,
-                  const char *str1,
-                  const char *str2,
-                  const char *str3,
-                  int int1,
-                  int int2,
-                  const char *fmt, ...)
-{
-    int save_errno = errno;
-    virErrorPtr to;
-    char *str;
-    int priority;
-
-    /*
-     * All errors are recorded in thread local storage
-     * For compatibility, public API calls will copy them
-     * to the per-connection error object when necessary
-     */
-    to = virLastErrorObject();
-    if (!to) {
-        errno = save_errno;
-        return; /* Hit OOM allocating thread error object, sod all we can do now */
-    }
-
-    virResetError(to);
-
-    if (code == VIR_ERR_OK) {
-        errno = save_errno;
-        return;
-    }
-
-    /*
-     * formats the message; drop message on OOM situations
-     */
-    if (fmt == NULL) {
-        str = strdup(_("No error message provided"));
-    } else {
-        va_list ap;
-        va_start(ap, fmt);
-        virVasprintf(&str, fmt, ap);
-        va_end(ap);
-    }
-
-    /*
-     * Save the information about the error
-     */
-    /*
-     * Deliberately not setting conn, dom & net fields since
-     * they're utterly unsafe
-     */
-    to->domain = domain;
-    to->code = code;
-    to->message = str;
-    to->level = level;
-    if (str1 != NULL)
-        to->str1 = strdup(str1);
-    if (str2 != NULL)
-        to->str2 = strdup(str2);
-    if (str3 != NULL)
-        to->str3 = strdup(str3);
-    to->int1 = int1;
-    to->int2 = int2;
-
-    /*
-     * Hook up the error or warning to the logging facility
-     */
-    priority = virErrorLevelPriority(level);
-    if (virErrorLogPriorityFilter)
-        priority = virErrorLogPriorityFilter(to, priority);
-    virLogMessage(virErrorLogPriorityFilter ? VIR_LOG_FROM_FILE : VIR_LOG_FROM_ERROR,
-                  priority,
-                  filename, linenr, funcname,
-                  NULL, "%s", str);
-
-    errno = save_errno;
-}
-
-/**
- * virErrorMsg:
- * @error: the virErrorNumber
- * @info: usually the first parameter string
- *
- * Internal routine to get the message associated to an error raised
- * from the library
- *
- * Returns the constant string associated to @error
- */
-static const char *
-virErrorMsg(virErrorNumber error, const char *info)
-{
-    const char *errmsg = NULL;
-
-    switch (error) {
-        case VIR_ERR_OK:
-            return NULL;
-        case VIR_ERR_INTERNAL_ERROR:
-            if (info != NULL)
-              errmsg = _("internal error %s");
-            else
-              errmsg = _("internal error");
-            break;
-        case VIR_ERR_NO_MEMORY:
-            errmsg = _("out of memory");
-            break;
-        case VIR_ERR_NO_SUPPORT:
-            if (info == NULL)
-                errmsg = _("this function is not supported by the connection driver");
-            else
-                errmsg = _("this function is not supported by the connection driver: %s");
-            break;
-        case VIR_ERR_NO_CONNECT:
-            if (info == NULL)
-                errmsg = _("no connection driver available");
-            else
-                errmsg = _("no connection driver available for %s");
-            break;
-        case VIR_ERR_INVALID_CONN:
-            if (info == NULL)
-                errmsg = _("invalid connection pointer in");
-            else
-                errmsg = _("invalid connection pointer in %s");
-            break;
-        case VIR_ERR_INVALID_DOMAIN:
-            if (info == NULL)
-                errmsg = _("invalid domain pointer in");
-            else
-                errmsg = _("invalid domain pointer in %s");
-            break;
-        case VIR_ERR_INVALID_ARG:
-            if (info == NULL)
-                errmsg = _("invalid argument");
-            else
-                errmsg = _("invalid argument: %s");
-            break;
-        case VIR_ERR_OPERATION_FAILED:
-            if (info != NULL)
-                errmsg = _("operation failed: %s");
-            else
-                errmsg = _("operation failed");
-            break;
-        case VIR_ERR_GET_FAILED:
-            if (info != NULL)
-                errmsg = _("GET operation failed: %s");
-            else
-                errmsg = _("GET operation failed");
-            break;
-        case VIR_ERR_POST_FAILED:
-            if (info != NULL)
-                errmsg = _("POST operation failed: %s");
-            else
-                errmsg = _("POST operation failed");
-            break;
-        case VIR_ERR_HTTP_ERROR:
-            errmsg = _("got unknown HTTP error code %d");
-            break;
-        case VIR_ERR_UNKNOWN_HOST:
-            if (info != NULL)
-                errmsg = _("unknown host %s");
-            else
-                errmsg = _("unknown host");
-            break;
-        case VIR_ERR_SEXPR_SERIAL:
-            if (info != NULL)
-                errmsg = _("failed to serialize S-Expr: %s");
-            else
-                errmsg = _("failed to serialize S-Expr");
-            break;
-        case VIR_ERR_NO_XEN:
-            if (info == NULL)
-                errmsg = _("could not use Xen hypervisor entry");
-            else
-                errmsg = _("could not use Xen hypervisor entry %s");
-            break;
-        case VIR_ERR_NO_XENSTORE:
-            if (info == NULL)
-                errmsg = _("could not connect to Xen Store");
-            else
-                errmsg = _("could not connect to Xen Store %s");
-            break;
-        case VIR_ERR_XEN_CALL:
-            errmsg = _("failed Xen syscall %s");
-            break;
-        case VIR_ERR_OS_TYPE:
-            if (info == NULL)
-                errmsg = _("unknown OS type");
-            else
-                errmsg = _("unknown OS type %s");
-            break;
-        case VIR_ERR_NO_KERNEL:
-            errmsg = _("missing kernel information");
-            break;
-        case VIR_ERR_NO_ROOT:
-            if (info == NULL)
-                errmsg = _("missing root device information");
-            else
-                errmsg = _("missing root device information in %s");
-            break;
-        case VIR_ERR_NO_SOURCE:
-            if (info == NULL)
-                errmsg = _("missing source information for device");
-            else
-                errmsg = _("missing source information for device %s");
-            break;
-        case VIR_ERR_NO_TARGET:
-            if (info == NULL)
-                errmsg = _("missing target information for device");
-            else
-                errmsg = _("missing target information for device %s");
-            break;
-        case VIR_ERR_NO_NAME:
-            if (info == NULL)
-                errmsg = _("missing name information");
-            else
-                errmsg = _("missing name information in %s");
-            break;
-        case VIR_ERR_NO_OS:
-            if (info == NULL)
-                errmsg = _("missing operating system information");
-            else
-                errmsg = _("missing operating system information for %s");
-            break;
-        case VIR_ERR_NO_DEVICE:
-            if (info == NULL)
-                errmsg = _("missing devices information");
-            else
-                errmsg = _("missing devices information for %s");
-            break;
-        case VIR_ERR_DRIVER_FULL:
-            if (info == NULL)
-                errmsg = _("too many drivers registered");
-            else
-                errmsg = _("too many drivers registered in %s");
-            break;
-        case VIR_ERR_CALL_FAILED: /* DEPRECATED, use VIR_ERR_NO_SUPPORT */
-            if (info == NULL)
-                errmsg = _("library call failed, possibly not supported");
-            else
-                errmsg = _("library call %s failed, possibly not supported");
-            break;
-        case VIR_ERR_XML_ERROR:
-            if (info == NULL)
-                errmsg = _("XML description is invalid or not well formed");
-            else
-                errmsg = _("XML error: %s");
-            break;
-        case VIR_ERR_DOM_EXIST:
-            if (info == NULL)
-                errmsg = _("this domain exists already");
-            else
-                errmsg = _("domain %s exists already");
-            break;
-        case VIR_ERR_OPERATION_DENIED:
-            if (info == NULL)
-                errmsg = _("operation forbidden for read only access");
-            else
-                errmsg = _("operation %s forbidden for read only access");
-            break;
-        case VIR_ERR_OPEN_FAILED:
-            if (info == NULL)
-                errmsg = _("failed to open configuration file for reading");
-            else
-                errmsg = _("failed to open %s for reading");
-            break;
-        case VIR_ERR_READ_FAILED:
-            if (info == NULL)
-                errmsg = _("failed to read configuration file");
-            else
-                errmsg = _("failed to read configuration file %s");
-            break;
-        case VIR_ERR_PARSE_FAILED:
-            if (info == NULL)
-                errmsg = _("failed to parse configuration file");
-            else
-                errmsg = _("failed to parse configuration file %s");
-            break;
-        case VIR_ERR_CONF_SYNTAX:
-            if (info == NULL)
-                errmsg = _("configuration file syntax error");
-            else
-                errmsg = _("configuration file syntax error: %s");
-            break;
-        case VIR_ERR_WRITE_FAILED:
-            if (info == NULL)
-                errmsg = _("failed to write configuration file");
-            else
-                errmsg = _("failed to write configuration file: %s");
-            break;
-        case VIR_ERR_XML_DETAIL:
-            if (info == NULL)
-                errmsg = _("parser error");
-            else
-                errmsg = "%s";
-            break;
-        case VIR_ERR_INVALID_NETWORK:
-            if (info == NULL)
-                errmsg = _("invalid network pointer in");
-            else
-                errmsg = _("invalid network pointer in %s");
-            break;
-        case VIR_ERR_NETWORK_EXIST:
-            if (info == NULL)
-                errmsg = _("this network exists already");
-            else
-                errmsg = _("network %s exists already");
-            break;
-        case VIR_ERR_SYSTEM_ERROR:
-            if (info == NULL)
-                errmsg = _("system call error");
-            else
-                errmsg = "%s";
-            break;
-        case VIR_ERR_RPC:
-            if (info == NULL)
-                errmsg = _("RPC error");
-            else
-                errmsg = "%s";
-            break;
-        case VIR_ERR_GNUTLS_ERROR:
-            if (info == NULL)
-                errmsg = _("GNUTLS call error");
-            else
-                errmsg = "%s";
-            break;
-        case VIR_WAR_NO_NETWORK:
-            if (info == NULL)
-                errmsg = _("Failed to find the network");
-            else
-                errmsg = _("Failed to find the network: %s");
-            break;
-        case VIR_ERR_NO_DOMAIN:
-            if (info == NULL)
-                errmsg = _("Domain not found");
-            else
-                errmsg = _("Domain not found: %s");
-            break;
-        case VIR_ERR_NO_NETWORK:
-            if (info == NULL)
-                errmsg = _("Network not found");
-            else
-                errmsg = _("Network not found: %s");
-            break;
-        case VIR_ERR_INVALID_MAC:
-            if (info == NULL)
-                errmsg = _("invalid MAC address");
-            else
-                errmsg = _("invalid MAC address: %s");
-            break;
-        case VIR_ERR_AUTH_FAILED:
-            if (info == NULL)
-                errmsg = _("authentication failed");
-            else
-                errmsg = _("authentication failed: %s");
-            break;
-        case VIR_ERR_AUTH_CANCELLED:
-            if (info == NULL)
-                errmsg = _("authentication cancelled");
-            else
-                errmsg = _("authentication cancelled: %s");
-            break;
-        case VIR_ERR_NO_STORAGE_POOL:
-            if (info == NULL)
-                errmsg = _("Storage pool not found");
-            else
-                errmsg = _("Storage pool not found: %s");
-            break;
-        case VIR_ERR_NO_STORAGE_VOL:
-            if (info == NULL)
-                errmsg = _("Storage volume not found");
-            else
-                errmsg = _("Storage volume not found: %s");
-            break;
-        case VIR_ERR_STORAGE_PROBE_FAILED:
-            if (info == NULL)
-                errmsg = _("Storage pool probe failed");
-            else
-                errmsg = _("Storage pool probe failed: %s");
-            break;
-        case VIR_ERR_STORAGE_POOL_BUILT:
-            if (info == NULL)
-                errmsg = _("Storage pool already built");
-            else
-                errmsg = _("Storage pool already built: %s");
-            break;
-        case VIR_ERR_INVALID_STORAGE_POOL:
-            if (info == NULL)
-                errmsg = _("invalid storage pool pointer in");
-            else
-                errmsg = _("invalid storage pool pointer in %s");
-            break;
-        case VIR_ERR_INVALID_STORAGE_VOL:
-            if (info == NULL)
-                errmsg = _("invalid storage volume pointer in");
-            else
-                errmsg = _("invalid storage volume pointer in %s");
-            break;
-        case VIR_WAR_NO_STORAGE:
-            if (info == NULL)
-                errmsg = _("Failed to find a storage driver");
-            else
-                errmsg = _("Failed to find a storage driver: %s");
-            break;
-        case VIR_WAR_NO_NODE:
-            if (info == NULL)
-                errmsg = _("Failed to find a node driver");
-            else
-                errmsg = _("Failed to find a node driver: %s");
-            break;
-        case VIR_ERR_INVALID_NODE_DEVICE:
-            if (info == NULL)
-                errmsg = _("invalid node device pointer");
-            else
-                errmsg = _("invalid node device pointer in %s");
-            break;
-        case VIR_ERR_NO_NODE_DEVICE:
-            if (info == NULL)
-                errmsg = _("Node device not found");
-            else
-                errmsg = _("Node device not found: %s");
-            break;
-        case VIR_ERR_NO_SECURITY_MODEL:
-            if (info == NULL)
-                errmsg = _("Security model not found");
-            else
-                errmsg = _("Security model not found: %s");
-            break;
-        case VIR_ERR_OPERATION_INVALID:
-            if (info == NULL)
-                errmsg = _("Requested operation is not valid");
-            else
-                errmsg = _("Requested operation is not valid: %s");
-            break;
-        case VIR_WAR_NO_INTERFACE:
-            if (info == NULL)
-                errmsg = _("Failed to find the interface");
-            else
-                errmsg = _("Failed to find the interface: %s");
-            break;
-        case VIR_ERR_NO_INTERFACE:
-            if (info == NULL)
-                errmsg = _("Interface not found");
-            else
-                errmsg = _("Interface not found: %s");
-            break;
-        case VIR_ERR_INVALID_INTERFACE:
-            if (info == NULL)
-                errmsg = _("invalid interface pointer in");
-            else
-                errmsg = _("invalid interface pointer in %s");
-            break;
-        case VIR_ERR_MULTIPLE_INTERFACES:
-            if (info == NULL)
-                errmsg = _("multiple matching interfaces found");
-            else
-                errmsg = _("multiple matching interfaces found: %s");
-            break;
-        case VIR_WAR_NO_SECRET:
-            if (info == NULL)
-                errmsg = _("Failed to find a secret storage driver");
-            else
-                errmsg = _("Failed to find a secret storage driver: %s");
-            break;
-        case VIR_ERR_INVALID_SECRET:
-            if (info == NULL)
-                errmsg = _("Invalid secret");
-            else
-                errmsg = _("Invalid secret: %s");
-            break;
-        case VIR_ERR_NO_SECRET:
-            if (info == NULL)
-                errmsg = _("Secret not found");
-            else
-                errmsg = _("Secret not found: %s");
-            break;
-        case VIR_WAR_NO_NWFILTER:
-            if (info == NULL)
-                errmsg = _("Failed to start the nwfilter driver");
-            else
-                errmsg = _("Failed to start the nwfilter driver: %s");
-            break;
-        case VIR_ERR_INVALID_NWFILTER:
-            if (info == NULL)
-                errmsg = _("Invalid network filter");
-            else
-                errmsg = _("Invalid network filter: %s");
-            break;
-        case VIR_ERR_NO_NWFILTER:
-            if (info == NULL)
-                errmsg = _("Network filter not found");
-            else
-                errmsg = _("Network filter not found: %s");
-            break;
-        case VIR_ERR_BUILD_FIREWALL:
-            if (info == NULL)
-                errmsg = _("Error while building firewall");
-            else
-                errmsg = _("Error while building firewall: %s");
-            break;
-        case VIR_ERR_CONFIG_UNSUPPORTED:
-            if (info == NULL)
-                errmsg = _("unsupported configuration");
-            else
-                errmsg = _("unsupported configuration: %s");
-            break;
-        case VIR_ERR_OPERATION_TIMEOUT:
-            if (info == NULL)
-                errmsg = _("Timed out during operation");
-            else
-                errmsg = _("Timed out during operation: %s");
-            break;
-        case VIR_ERR_MIGRATE_PERSIST_FAILED:
-            if (info == NULL)
-                errmsg = _("Failed to make domain persistent after migration");
-            else
-                errmsg = _("Failed to make domain persistent after migration: %s");
-            break;
-        case VIR_ERR_HOOK_SCRIPT_FAILED:
-            if (info == NULL)
-                errmsg = _("Hook script execution failed");
-            else
-                errmsg = _("Hook script execution failed: %s");
-            break;
-        case VIR_ERR_INVALID_DOMAIN_SNAPSHOT:
-            if (info == NULL)
-                errmsg = _("Invalid snapshot");
-            else
-                errmsg = _("Invalid snapshot: %s");
-            break;
-        case VIR_ERR_NO_DOMAIN_SNAPSHOT:
-            if (info == NULL)
-                errmsg = _("Domain snapshot not found");
-            else
-                errmsg = _("Domain snapshot not found: %s");
-            break;
-        case VIR_ERR_INVALID_STREAM:
-            if (info == NULL)
-                errmsg = _("invalid stream pointer");
-            else
-                errmsg = _("invalid stream pointer in %s");
-            break;
-        case VIR_ERR_ARGUMENT_UNSUPPORTED:
-            if (info == NULL)
-                errmsg = _("argument unsupported");
-            else
-                errmsg = _("argument unsupported: %s");
-            break;
-        case VIR_ERR_SNAPSHOT_REVERT_RISKY:
-            if (info == NULL)
-                errmsg = _("revert requires force");
-            else
-                errmsg = _("revert requires force: %s");
-            break;
-        case VIR_ERR_OPERATION_ABORTED:
-            if (info == NULL)
-                errmsg = _("operation aborted");
-            else
-                errmsg = _("operation aborted: %s");
-            break;
-        case VIR_ERR_NO_DOMAIN_METADATA:
-            if (info == NULL)
-                errmsg = _("metadata not found");
-            else
-                errmsg = _("metadata not found: %s");
-            break;
-        case VIR_ERR_MIGRATE_UNSAFE:
-            if (!info)
-                errmsg = _("Unsafe migration");
-            else
-                errmsg = _("Unsafe migration: %s");
-            break;
-        case VIR_ERR_OVERFLOW:
-            if (!info)
-                errmsg = _("numerical overflow");
-            else
-                errmsg = _("numerical overflow: %s");
-            break;
-        case VIR_ERR_BLOCK_COPY_ACTIVE:
-            if (!info)
-                errmsg = _("block copy still active");
-            else
-                errmsg = _("block copy still active: %s");
-            break;
-        case VIR_ERR_OPERATION_UNSUPPORTED:
-            if (!info)
-                errmsg = _("Operation not supported");
-            else
-                errmsg = _("Operation not supported: %s");
-            break;
-        case VIR_ERR_SSH:
-            if (info == NULL)
-                errmsg = _("SSH transport error");
-            else
-                errmsg = _("SSH transport error: %s");
-            break;
-        case VIR_ERR_AGENT_UNRESPONSIVE:
-            if (info == NULL)
-                errmsg = _("Guest agent is not responding");
-            else
-                errmsg = _("Guest agent is not responding: %s");
-            break;
-        case VIR_ERR_RESOURCE_BUSY:
-            if (info == NULL)
-                errmsg = _("resource busy");
-            else
-                errmsg = _("resource busy %s");
-            break;
-    }
-    return errmsg;
-}
-
-/**
- * virReportErrorHelper:
- *
- * @domcode: the virErrorDomain indicating where it's coming from
- * @errorcode: the virErrorNumber code for the error
- * @filename: Source file error is dispatched from
- * @funcname: Function error is dispatched from
- * @linenr: Line number error is dispatched from
- * @fmt:  the format string
- * @...:  extra parameters for the message display
- *
- * Helper function to do most of the grunt work for individual driver
- * ReportError
- */
-void virReportErrorHelper(int domcode,
-                          int errorcode,
-                          const char *filename,
-                          const char *funcname,
-                          size_t linenr,
-                          const char *fmt, ...)
-{
-    int save_errno = errno;
-    va_list args;
-    char errorMessage[1024];
-    const char *virerr;
-
-    if (fmt) {
-        va_start(args, fmt);
-        vsnprintf(errorMessage, sizeof(errorMessage)-1, fmt, args);
-        va_end(args);
-    } else {
-        errorMessage[0] = '\0';
-    }
-
-    virerr = virErrorMsg(errorcode, (errorMessage[0] ? errorMessage : NULL));
-    virRaiseErrorFull(filename, funcname, linenr,
-                      domcode, errorcode, VIR_ERR_ERROR,
-                      virerr, errorMessage, NULL,
-                      -1, -1, virerr, errorMessage);
-    errno = save_errno;
-}
-
-/**
- * virStrerror:
- * @theerrno: the errno value
- * @errBuf: the buffer to save the error to
- * @errBufLen: the buffer length
- *
- * Generate an error string for the given errno
- *
- * Returns a pointer to the error string, possibly indicating that the
- *         error is unknown
- */
-const char *virStrerror(int theerrno, char *errBuf, size_t errBufLen)
-{
-    int save_errno = errno;
-    const char *ret;
-
-    strerror_r(theerrno, errBuf, errBufLen);
-    ret = errBuf;
-    errno = save_errno;
-    return ret;
-}
-
-/**
- * virReportSystemErrorFull:
- * @domcode: the virErrorDomain indicating where it's coming from
- * @theerrno: an errno number
- * @filename: filename where error was raised
- * @funcname: function name where error was raised
- * @linenr: line number where error was raised
- * @fmt:  the message to display/transmit
- * @...:  extra parameters for the message display
- *
- * Convenience internal routine called when a system error is detected.
- */
-void virReportSystemErrorFull(int domcode,
-                              int theerrno,
-                              const char *filename,
-                              const char *funcname,
-                              size_t linenr,
-                              const char *fmt, ...)
-{
-    int save_errno = errno;
-    char strerror_buf[1024];
-    char msgDetailBuf[1024];
-
-    const char *errnoDetail = virStrerror(theerrno, strerror_buf,
-                                          sizeof(strerror_buf));
-    const char *msg = virErrorMsg(VIR_ERR_SYSTEM_ERROR, fmt);
-    const char *msgDetail = NULL;
-
-    if (fmt) {
-        va_list args;
-        int n;
-
-        va_start(args, fmt);
-        n = vsnprintf(msgDetailBuf, sizeof(msgDetailBuf), fmt, args);
-        va_end(args);
-
-        size_t len = strlen(errnoDetail);
-        if (0 <= n && n + 2 + len < sizeof(msgDetailBuf)) {
-          char *p = msgDetailBuf + n;
-          stpcpy(stpcpy(p, ": "), errnoDetail);
-          msgDetail = msgDetailBuf;
-        }
-    }
-
-    if (!msgDetail)
-        msgDetail = errnoDetail;
-
-    virRaiseErrorFull(filename, funcname, linenr,
-                      domcode, VIR_ERR_SYSTEM_ERROR, VIR_ERR_ERROR,
-                      msg, msgDetail, NULL, theerrno, -1, msg, msgDetail);
-    errno = save_errno;
-}
-
-/**
- * virReportOOMErrorFull:
- * @domcode: the virErrorDomain indicating where it's coming from
- * @filename: filename where error was raised
- * @funcname: function name where error was raised
- * @linenr: line number where error was raised
- *
- * Convenience internal routine called when an out of memory error is
- * detected
- */
-void virReportOOMErrorFull(int domcode,
-                           const char *filename,
-                           const char *funcname,
-                           size_t linenr)
-{
-    const char *virerr;
-
-    virerr = virErrorMsg(VIR_ERR_NO_MEMORY, NULL);
-    virRaiseErrorFull(filename, funcname, linenr,
-                      domcode, VIR_ERR_NO_MEMORY, VIR_ERR_ERROR,
-                      virerr, NULL, NULL, -1, -1, virerr, NULL);
-}
-
-/**
- * virSetErrorLogPriorityFunc:
- * @func: function to install
- *
- * Install a function used to filter error logging based on error priority.
- */
-void virSetErrorLogPriorityFunc(virErrorLogPriorityFunc func)
-{
-    virErrorLogPriorityFilter = func;
-}
diff --git a/src/util/virterror_internal.h b/src/util/virterror_internal.h
deleted file mode 100644
index 961c423..0000000
--- a/src/util/virterror_internal.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * virterror.h: internal error handling
- *
- * Copyright (C) 2006-2009, 2011 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library.  If not, see
- * <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef __VIRT_ERROR_H_
-# define __VIRT_ERROR_H_
-
-# include "internal.h"
-
-extern virErrorFunc virErrorHandler;
-extern void *virUserData;
-
-/************************************************************************
- *									*
- *		API for error handling					*
- *									*
- ************************************************************************/
-int virErrorInitialize(void);
-void virRaiseErrorFull(const char *filename,
-                       const char *funcname,
-                       size_t linenr,
-                       int domain,
-                       int code,
-                       virErrorLevel level,
-                       const char *str1,
-                       const char *str2,
-                       const char *str3,
-                       int int1,
-                       int int2,
-                       const char *fmt, ...)
-    ATTRIBUTE_FMT_PRINTF(12, 13);
-
-void virReportErrorHelper(int domcode, int errcode,
-                          const char *filename,
-                          const char *funcname,
-                          size_t linenr,
-                          const char *fmt, ...)
-  ATTRIBUTE_FMT_PRINTF(6, 7);
-
-void virReportSystemErrorFull(int domcode,
-                              int theerrno,
-                              const char *filename,
-                              const char *funcname,
-                              size_t linenr,
-                              const char *fmt, ...)
-    ATTRIBUTE_FMT_PRINTF(6, 7);
-
-# define virReportSystemError(theerrno, fmt,...)                   \
-    virReportSystemErrorFull(VIR_FROM_THIS,                       \
-                             (theerrno),                          \
-                             __FILE__, __FUNCTION__, __LINE__,    \
-                             (fmt), __VA_ARGS__)
-
-# define virReportInvalidNullArg(argname)                            \
-    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
-                      VIR_FROM_THIS,                                 \
-                      VIR_ERR_INVALID_ARG,                           \
-                      VIR_ERR_ERROR,                                 \
-                      __FUNCTION__,                                  \
-                      #argname,                                      \
-                      NULL,                                          \
-                      0, 0,                                          \
-                      _("%s in %s must be NULL"),                    \
-                      #argname, __FUNCTION__)
-# define virReportInvalidNonNullArg(argname)                         \
-    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
-                      VIR_FROM_THIS,                                 \
-                      VIR_ERR_INVALID_ARG,                           \
-                      VIR_ERR_ERROR,                                 \
-                      __FUNCTION__,                                  \
-                      #argname,                                      \
-                      NULL,                                          \
-                      0, 0,                                          \
-                      _("%s in %s must not be NULL"),                \
-                      #argname, __FUNCTION__)
-# define virReportInvalidPositiveArg(argname)                        \
-    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
-                      VIR_FROM_THIS,                                 \
-                      VIR_ERR_INVALID_ARG,                           \
-                      VIR_ERR_ERROR,                                 \
-                      __FUNCTION__,                                  \
-                      #argname,                                      \
-                      NULL,                                          \
-                      0, 0,                                          \
-                      _("%s in %s must greater than zero"),          \
-                      #argname, __FUNCTION__)
-# define virReportInvalidNonZeroArg(argname)                         \
-    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
-                      VIR_FROM_THIS,                                 \
-                      VIR_ERR_INVALID_ARG,                           \
-                      VIR_ERR_ERROR,                                 \
-                      __FUNCTION__,                                  \
-                      #argname,                                      \
-                      NULL,                                          \
-                      0, 0,                                          \
-                      _("%s in %s must not be zero"),                \
-                      #argname, __FUNCTION__)
-# define virReportInvalidZeroArg(argname)                            \
-    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
-                      VIR_FROM_THIS,                                 \
-                      VIR_ERR_INVALID_ARG,                           \
-                      VIR_ERR_ERROR,                                 \
-                      __FUNCTION__,                                  \
-                      #argname,                                      \
-                      NULL,                                          \
-                      0, 0,                                          \
-                      _("%s in %s must  be zero"),                   \
-                      #argname, __FUNCTION__)
-# define virReportInvalidNonNegativeArg(argname)                     \
-    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
-                      VIR_FROM_THIS,                                 \
-                      VIR_ERR_INVALID_ARG,                           \
-                      VIR_ERR_ERROR,                                 \
-                      __FUNCTION__,                                  \
-                      #argname,                                      \
-                      NULL,                                          \
-                      0, 0,                                          \
-                      _("%s in %s must be zero or greater"),         \
-                      #argname, __FUNCTION__)
-# define virReportInvalidArg(argname, fmt, ...)                      \
-    virRaiseErrorFull(__FILE__, __FUNCTION__, __LINE__,              \
-                      VIR_FROM_THIS,                                 \
-                      VIR_ERR_INVALID_ARG,                           \
-                      VIR_ERR_ERROR,                                 \
-                      __FUNCTION__,                                  \
-                      #argname,                                      \
-                      NULL,                                          \
-                      0, 0,                                          \
-                      (fmt), __VA_ARGS__)
-
-void virReportOOMErrorFull(int domcode,
-                           const char *filename,
-                           const char *funcname,
-                           size_t linenr);
-
-# define virReportOOMError() \
-    virReportOOMErrorFull(VIR_FROM_THIS, __FILE__, __FUNCTION__, __LINE__)
-
-# define virReportError(code, ...)                                   \
-    virReportErrorHelper(VIR_FROM_THIS, code, __FILE__,              \
-                         __FUNCTION__, __LINE__, __VA_ARGS__)
-
-int virSetError(virErrorPtr newerr);
-void virDispatchError(virConnectPtr conn);
-const char *virStrerror(int theerrno, char *errBuf, size_t errBufLen);
-
-typedef int (*virErrorLogPriorityFunc)(virErrorPtr, int);
-void virSetErrorLogPriorityFunc(virErrorLogPriorityFunc func);
-
-#endif
diff --git a/src/util/virthreadpool.c b/src/util/virthreadpool.c
index 307cefb..12a43e1 100644
--- a/src/util/virthreadpool.c
+++ b/src/util/virthreadpool.c
@@ -28,7 +28,7 @@
 #include "virthreadpool.h"
 #include "viralloc.h"
 #include "virthread.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/util/virtime.c b/src/util/virtime.c
index c614380..b54a4e8 100644
--- a/src/util/virtime.c
+++ b/src/util/virtime.c
@@ -39,7 +39,7 @@
 #include "virtime.h"
 #include "virutil.h"
 #include "viralloc.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/util/virtypedparam.c b/src/util/virtypedparam.c
index 60fb485..33e6a09 100644
--- a/src/util/virtypedparam.c
+++ b/src/util/virtypedparam.c
@@ -26,7 +26,7 @@
 
 #include "viralloc.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/util/viruri.c b/src/util/viruri.c
index e59cd5a..2888cb0 100644
--- a/src/util/viruri.c
+++ b/src/util/viruri.c
@@ -24,7 +24,7 @@
 
 #include "viralloc.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virbuffer.h"
 
 #define VIR_FROM_THIS VIR_FROM_URI
diff --git a/src/util/virusb.c b/src/util/virusb.c
index c053c44..26bd017 100644
--- a/src/util/virusb.c
+++ b/src/util/virusb.c
@@ -35,7 +35,7 @@
 #include "virlog.h"
 #include "viralloc.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define USB_SYSFS "/sys/bus/usb"
 #define USB_DEVFS "/dev/bus/usb/"
diff --git a/src/util/virutil.c b/src/util/virutil.c
index 9fb1c6f..a2ad725 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -75,7 +75,7 @@
 
 #include "c-ctype.h"
 #include "dirname.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virbuffer.h"
 #include "virutil.h"
diff --git a/src/util/viruuid.c b/src/util/viruuid.c
index f4eb331..373c362 100644
--- a/src/util/viruuid.c
+++ b/src/util/viruuid.c
@@ -36,7 +36,7 @@
 #include "c-ctype.h"
 #include "internal.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "viralloc.h"
 #include "virfile.h"
diff --git a/src/util/virxml.c b/src/util/virxml.c
index 02f7d1a..8f19054 100644
--- a/src/util/virxml.c
+++ b/src/util/virxml.c
@@ -30,7 +30,7 @@
 #include <math.h>               /* for isnan() */
 #include <sys/stat.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virxml.h"
 #include "virbuffer.h"
 #include "virutil.h"
diff --git a/src/vbox/vbox_MSCOMGlue.c b/src/vbox/vbox_MSCOMGlue.c
index 36539f6..b5fb821 100644
--- a/src/vbox/vbox_MSCOMGlue.c
+++ b/src/vbox/vbox_MSCOMGlue.c
@@ -33,7 +33,7 @@
 #include "viralloc.h"
 #include "virutil.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "vbox_MSCOMGlue.h"
 
 #define VIR_FROM_THIS VIR_FROM_VBOX
diff --git a/src/vbox/vbox_XPCOMCGlue.c b/src/vbox/vbox_XPCOMCGlue.c
index 1954ddb..2b568e2 100644
--- a/src/vbox/vbox_XPCOMCGlue.c
+++ b/src/vbox/vbox_XPCOMCGlue.c
@@ -40,7 +40,7 @@
 #include "viralloc.h"
 #include "virutil.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_VBOX
 
diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c
index f2a0c8f..736c895 100644
--- a/src/vbox/vbox_driver.c
+++ b/src/vbox/vbox_driver.c
@@ -37,7 +37,7 @@
 #include "virlog.h"
 #include "vbox_driver.h"
 #include "vbox_glue.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virutil.h"
 
 #define VIR_FROM_THIS VIR_FROM_VBOX
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 5cac7bb..abcf90e 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -45,7 +45,7 @@
 #include "domain_conf.h"
 #include "snapshot_conf.h"
 #include "network_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "domain_event.h"
 #include "storage_conf.h"
 #include "virstoragefile.h"
diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c
index 22a085d..8187185 100644
--- a/src/vmware/vmware_conf.c
+++ b/src/vmware/vmware_conf.c
@@ -31,7 +31,7 @@
 #include "nodeinfo.h"
 #include "virfile.h"
 #include "viruuid.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "vmx.h"
 
 #include "vmware_conf.h"
diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
index 67cdc88..3763f40 100644
--- a/src/vmware/vmware_driver.c
+++ b/src/vmware/vmware_driver.c
@@ -24,7 +24,7 @@
 #include <fcntl.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virfile.h"
 #include "viralloc.h"
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index d57a14f..cc1344c 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -26,7 +26,7 @@
 #include <c-ctype.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virconf.h"
 #include "viralloc.h"
 #include "virlog.h"
diff --git a/src/xen/block_stats.c b/src/xen/block_stats.c
index 3f7c97b..9f5823c 100644
--- a/src/xen/block_stats.c
+++ b/src/xen/block_stats.c
@@ -38,7 +38,7 @@
 #  include <xs.h>
 # endif
 
-# include "virterror_internal.h"
+# include "virerror.h"
 # include "datatypes.h"
 # include "virutil.h"
 # include "block_stats.h"
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index c35695a..2ef2c57 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -39,7 +39,7 @@
 #include <fcntl.h>
 #include <xen/dom0_ops.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "xen_driver.h"
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index f804620..ba93d2e 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -63,7 +63,7 @@
 /* required for shutdown flags */
 #include <xen/sched.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "driver.h"
diff --git a/src/xen/xen_inotify.c b/src/xen/xen_inotify.c
index 4cce25a..2043c74 100644
--- a/src/xen/xen_inotify.c
+++ b/src/xen/xen_inotify.c
@@ -27,7 +27,7 @@
 #include <dirent.h>
 #include <sys/inotify.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "driver.h"
 #include "viralloc.h"
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
index 120e237..84a25e8 100644
--- a/src/xen/xend_internal.c
+++ b/src/xen/xend_internal.c
@@ -29,7 +29,7 @@
 #include <netdb.h>
 #include <errno.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "xend_internal.h"
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c
index 0806e77..003e8f7 100644
--- a/src/xen/xm_internal.c
+++ b/src/xen/xm_internal.c
@@ -35,7 +35,7 @@
 #include <stdint.h>
 #include <xen/dom0_ops.h>
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "xm_internal.h"
 #include "xen_driver.h"
diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c
index 20332df..9308522 100644
--- a/src/xen/xs_internal.c
+++ b/src/xen/xs_internal.c
@@ -41,7 +41,7 @@
 # include <xs.h>
 #endif
 
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "driver.h"
 #include "viralloc.h"
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index df5625e..d7e22d3 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -28,7 +28,7 @@
 #include <xen/api/xen_all.h>
 #include "internal.h"
 #include "domain_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virauth.h"
 #include "virutil.h"
diff --git a/src/xenapi/xenapi_driver_private.h b/src/xenapi/xenapi_driver_private.h
index 42684bd..7e5b6e7 100644
--- a/src/xenapi/xenapi_driver_private.h
+++ b/src/xenapi/xenapi_driver_private.h
@@ -25,7 +25,7 @@
 
 # include <libxml/tree.h>
 # include <xen/api/xen_common.h>
-# include "virterror_internal.h"
+# include "virerror.h"
 
 /*# define PRINT_XML*/
 # define VIR_FROM_THIS VIR_FROM_XENAPI
diff --git a/src/xenapi/xenapi_utils.c b/src/xenapi/xenapi_utils.c
index 5c53b69..3b8384e 100644
--- a/src/xenapi/xenapi_utils.c
+++ b/src/xenapi/xenapi_utils.c
@@ -27,7 +27,7 @@
 #include <xen/api/xen_all.h>
 #include "internal.h"
 #include "domain_conf.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "datatypes.h"
 #include "virutil.h"
 #include "viruuid.h"
diff --git a/src/xenxs/xen_sxpr.c b/src/xenxs/xen_sxpr.c
index b83ac58..83b7c74 100644
--- a/src/xenxs/xen_sxpr.c
+++ b/src/xenxs/xen_sxpr.c
@@ -27,7 +27,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virconf.h"
 #include "viralloc.h"
 #include "verify.h"
diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c
index bbf35d8..df13ac7 100644
--- a/src/xenxs/xen_xm.c
+++ b/src/xenxs/xen_xm.c
@@ -26,7 +26,7 @@
 #include <config.h>
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virconf.h"
 #include "viralloc.h"
 #include "verify.h"
diff --git a/tests/commandtest.c b/tests/commandtest.c
index d6a285e..fd2b8c0 100644
--- a/tests/commandtest.c
+++ b/tests/commandtest.c
@@ -36,7 +36,7 @@
 #include "vircommand.h"
 #include "virfile.h"
 #include "virpidfile.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/tests/libvirtdconftest.c b/tests/libvirtdconftest.c
index c1d94d2..fd033f8 100644
--- a/tests/libvirtdconftest.c
+++ b/tests/libvirtdconftest.c
@@ -26,7 +26,7 @@
 #include "daemon/libvirtd-config.h"
 #include "virutil.h"
 #include "c-ctype.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virlog.h"
 #include "virconf.h"
 
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index e1b6c56..35f2da6 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -23,7 +23,7 @@
 #include "testutilsqemu.h"
 #include "qemumonitortestutils.h"
 #include "virthread.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c
index b82eb5d..78eab29 100644
--- a/tests/qemumonitortestutils.c
+++ b/tests/qemumonitortestutils.c
@@ -32,7 +32,7 @@
 #include "viralloc.h"
 #include "virutil.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/tests/securityselinuxtest.c b/tests/securityselinuxtest.c
index b523c79..8aa4f08 100644
--- a/tests/securityselinuxtest.c
+++ b/tests/securityselinuxtest.c
@@ -33,7 +33,7 @@
 #include "viralloc.h"
 #include "virutil.h"
 #include "virlog.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "security/security_manager.h"
 
 
diff --git a/tests/testutils.c b/tests/testutils.c
index d88af21..9c8f365 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -42,7 +42,7 @@
 #include "viralloc.h"
 #include "virutil.h"
 #include "virthread.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virbuffer.h"
 #include "virlog.h"
 #include "vircommand.h"
diff --git a/tests/virauthconfigtest.c b/tests/virauthconfigtest.c
index 2ad237d..67c5de8 100644
--- a/tests/virauthconfigtest.c
+++ b/tests/virauthconfigtest.c
@@ -25,7 +25,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 
diff --git a/tests/virdrivermoduletest.c b/tests/virdrivermoduletest.c
index cab47d3..de8cf70 100644
--- a/tests/virdrivermoduletest.c
+++ b/tests/virdrivermoduletest.c
@@ -22,7 +22,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 #include "driver.h"
diff --git a/tests/virkeyfiletest.c b/tests/virkeyfiletest.c
index 33f64c1..fb41840 100644
--- a/tests/virkeyfiletest.c
+++ b/tests/virkeyfiletest.c
@@ -25,7 +25,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 
diff --git a/tests/virlockspacetest.c b/tests/virlockspacetest.c
index c434f47..8673700 100644
--- a/tests/virlockspacetest.c
+++ b/tests/virlockspacetest.c
@@ -26,7 +26,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 
diff --git a/tests/virnetmessagetest.c b/tests/virnetmessagetest.c
index 4e7a1fd..e58fd1f 100644
--- a/tests/virnetmessagetest.c
+++ b/tests/virnetmessagetest.c
@@ -25,7 +25,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 
diff --git a/tests/virnetsockettest.c b/tests/virnetsockettest.c
index 819257b..b968973 100644
--- a/tests/virnetsockettest.c
+++ b/tests/virnetsockettest.c
@@ -29,7 +29,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/tests/virnettlscontexttest.c b/tests/virnettlscontexttest.c
index d945181..a1e71dc 100644
--- a/tests/virnettlscontexttest.c
+++ b/tests/virnettlscontexttest.c
@@ -28,7 +28,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/tests/virstringtest.c b/tests/virstringtest.c
index 58ab843..86d8986 100644
--- a/tests/virstringtest.c
+++ b/tests/virstringtest.c
@@ -24,7 +24,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 
diff --git a/tests/virtimetest.c b/tests/virtimetest.c
index 1c22d07..18f621a 100644
--- a/tests/virtimetest.c
+++ b/tests/virtimetest.c
@@ -25,7 +25,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 
diff --git a/tests/viruritest.c b/tests/viruritest.c
index ad59270..3cb88da 100644
--- a/tests/viruritest.c
+++ b/tests/viruritest.c
@@ -25,7 +25,7 @@
 
 #include "testutils.h"
 #include "virutil.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "viralloc.h"
 #include "virlog.h"
 
diff --git a/tools/console.c b/tools/console.c
index d024d38..29873ea 100644
--- a/tools/console.c
+++ b/tools/console.c
@@ -43,7 +43,7 @@
 # include "virfile.h"
 # include "viralloc.h"
 # include "virthread.h"
-# include "virterror_internal.h"
+# include "virerror.h"
 
 /*
  * Convert given character to control character.
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 3a9cebe..f3da1d5 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -49,7 +49,7 @@
 #include "virmacaddr.h"
 #include "virstring.h"
 #include "virsh-domain-monitor.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "virtypedparam.h"
 #include "virxml.h"
 
diff --git a/tools/virsh.c b/tools/virsh.c
index 790cf56..283194a 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -54,7 +54,7 @@
 #endif
 
 #include "internal.h"
-#include "virterror_internal.h"
+#include "virerror.h"
 #include "base64.h"
 #include "virbuffer.h"
 #include "console.h"
diff --git a/tools/virsh.h b/tools/virsh.h
index 6e6d3ee..ab7161f 100644
--- a/tools/virsh.h
+++ b/tools/virsh.h
@@ -34,7 +34,7 @@
 # include <inttypes.h>
 
 # include "internal.h"
-# include "virterror_internal.h"
+# include "virerror.h"
 # include "virthread.h"
 # include "virnetdevbandwidth.h"
 
-- 
1.7.11.7




More information about the libvir-list mailing list