[libvirt] [PATCH 15/28] Rename memory.{c,h} to viralloc.{c,h}

Daniel P. Berrange berrange at redhat.com
Mon Dec 17 14:57:48 UTC 2012


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

---
 cfg.mk                                    |   6 +-
 daemon/libvirtd-config.c                  |   2 +-
 daemon/libvirtd.c                         |   2 +-
 daemon/remote.c                           |   2 +-
 daemon/stream.c                           |   2 +-
 python/libvirt-override.c                 |   2 +-
 python/typewrappers.c                     |   2 +-
 src/Makefile.am                           |   2 +-
 src/conf/capabilities.c                   |   2 +-
 src/conf/cpu_conf.c                       |   2 +-
 src/conf/device_conf.c                    |   2 +-
 src/conf/domain_audit.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               |   4 +-
 src/conf/nwfilter_conf.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.c                             |   2 +-
 src/cpu/cpu_arm.c                         |   2 +-
 src/cpu/cpu_generic.c                     |   2 +-
 src/cpu/cpu_map.c                         |   2 +-
 src/cpu/cpu_powerpc.c                     |   2 +-
 src/cpu/cpu_s390.c                        |   2 +-
 src/cpu/cpu_x86.c                         |   2 +-
 src/datatypes.c                           |   2 +-
 src/driver.c                              |   2 +-
 src/esx/esx_device_monitor.c              |   2 +-
 src/esx/esx_driver.c                      |   2 +-
 src/esx/esx_interface_driver.c            |   2 +-
 src/esx/esx_network_driver.c              |   2 +-
 src/esx/esx_nwfilter_driver.c             |   2 +-
 src/esx/esx_secret_driver.c               |   2 +-
 src/esx/esx_storage_backend_iscsi.c       |   2 +-
 src/esx/esx_storage_backend_vmfs.c        |   2 +-
 src/esx/esx_storage_driver.c              |   2 +-
 src/esx/esx_util.c                        |   2 +-
 src/esx/esx_vi.c                          |   2 +-
 src/esx/esx_vi_methods.c                  |   2 +-
 src/esx/esx_vi_types.c                    |   2 +-
 src/fdstream.c                            |   2 +-
 src/hyperv/hyperv_device_monitor.c        |   2 +-
 src/hyperv/hyperv_driver.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_secret_driver.c         |   2 +-
 src/hyperv/hyperv_storage_driver.c        |   2 +-
 src/hyperv/hyperv_util.c                  |   2 +-
 src/hyperv/hyperv_wmi.c                   |   2 +-
 src/interface/interface_backend_netcf.c   |   2 +-
 src/interface/interface_backend_udev.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_driver_lockd.c           |   2 +-
 src/locking/lock_driver_nop.c             |   2 +-
 src/locking/lock_driver_sanlock.c         |   2 +-
 src/locking/lock_manager.c                |   2 +-
 src/locking/sanlock_helper.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.h                        |   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_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_manager.c           |   2 +-
 src/security/security_selinux.c           |   2 +-
 src/security/security_stack.c             |   2 +-
 src/security/virt-aa-helper.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.c                        |   2 +-
 src/uml/uml_driver.c                      |   2 +-
 src/util/iohelper.c                       |   2 +-
 src/util/memory.c                         | 422 ------------------------------
 src/util/memory.h                         | 380 ---------------------------
 src/util/pci.c                            |   2 +-
 src/util/sexpr.c                          |   2 +-
 src/util/stats_linux.c                    |   2 +-
 src/util/storage_file.c                   |   2 +-
 src/util/sysinfo.c                        |   2 +-
 src/util/threadpool.c                     |   2 +-
 src/util/threads-pthread.c                |   2 +-
 src/util/threads-win32.c                  |   2 +-
 src/util/util.c                           |   2 +-
 src/util/uuid.c                           |   2 +-
 src/util/viralloc.c                       | 422 ++++++++++++++++++++++++++++++
 src/util/viralloc.h                       | 380 +++++++++++++++++++++++++++
 src/util/viraudit.c                       |   2 +-
 src/util/virauth.c                        |   2 +-
 src/util/virauthconfig.c                  |   2 +-
 src/util/virbitmap.c                      |   2 +-
 src/util/virbuffer.c                      |   2 +-
 src/util/vircgroup.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/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                   |   2 +-
 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/virpidfile.c                     |   2 +-
 src/util/virprocess.c                     |   2 +-
 src/util/virstring.c                      |   2 +-
 src/util/virterror.c                      |   2 +-
 src/util/virtime.c                        |   2 +-
 src/util/virtypedparam.c                  |   2 +-
 src/util/viruri.c                         |   2 +-
 src/util/virusb.c                         |   2 +-
 src/util/xml.c                            |   2 +-
 src/vbox/vbox_MSCOMGlue.c                 |   2 +-
 src/vbox/vbox_XPCOMCGlue.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_utils.c                 |   2 +-
 src/xenxs/xen_sxpr.c                      |   2 +-
 src/xenxs/xen_xm.c                        |   2 +-
 tests/commandhelper.c                     |   2 +-
 tests/commandtest.c                       |   2 +-
 tests/conftest.c                          |   2 +-
 tests/cputest.c                           |   2 +-
 tests/esxutilstest.c                      |   2 +-
 tests/networkxml2conftest.c               |   2 +-
 tests/openvzutilstest.c                   |   2 +-
 tests/qemuhelptest.c                      |   2 +-
 tests/qemumonitortest.c                   |   2 +-
 tests/qemumonitortestutils.c              |   2 +-
 tests/qemuxml2argvtest.c                  |   2 +-
 tests/securityselinuxtest.c               |   2 +-
 tests/sockettest.c                        |   2 +-
 tests/testutils.c                         |   2 +-
 tests/testutils.h                         |   2 +-
 tests/testutilslxc.c                      |   2 +-
 tests/testutilsqemu.c                     |   2 +-
 tests/utiltest.c                          |   2 +-
 tests/virauthconfigtest.c                 |   2 +-
 tests/virbuftest.c                        |   2 +-
 tests/virdrivermoduletest.c               |   2 +-
 tests/virhashtest.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 +-
 tests/vmx2xmltest.c                       |   2 +-
 tests/xmconfigtest.c                      |   2 +-
 tests/xml2vmxtest.c                       |   2 +-
 tools/console.c                           |   2 +-
 tools/virsh-domain-monitor.c              |   2 +-
 tools/virsh-domain.c                      |   2 +-
 tools/virsh-host.c                        |   2 +-
 tools/virsh-interface.c                   |   2 +-
 tools/virsh-network.c                     |   2 +-
 tools/virsh-nodedev.c                     |   2 +-
 tools/virsh-nwfilter.c                    |   2 +-
 tools/virsh-pool.c                        |   2 +-
 tools/virsh-secret.c                      |   2 +-
 tools/virsh-snapshot.c                    |   2 +-
 tools/virsh-volume.c                      |   2 +-
 tools/virsh.c                             |   2 +-
 tools/virt-host-validate-common.c         |   2 +-
 270 files changed, 1071 insertions(+), 1071 deletions(-)
 delete mode 100644 src/util/memory.c
 delete mode 100644 src/util/memory.h
 create mode 100644 src/util/viralloc.c
 create mode 100644 src/util/viralloc.h

diff --git a/cfg.mk b/cfg.mk
index 9fbf799..e23f1c5 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -321,7 +321,7 @@ sc_prohibit_internal_functions:
 # Avoid raw malloc and free, except in documentation comments.
 sc_prohibit_raw_allocation:
 	@prohibit='^.[^*].*\<((m|c|re)alloc|free) *\([^)]'		\
-	halt='use VIR_ macros from memory.h instead of malloc/free'	\
+	halt='use VIR_ macros from viralloc.h instead of malloc/free'	\
 	  $(_sc_search_regexp)
 
 # Avoid functions that can lead to double-close bugs.
@@ -785,7 +785,7 @@ exclude_file_name_regexp--sc_prohibit_fork_wrappers = \
 exclude_file_name_regexp--sc_prohibit_gethostname = ^src/util/util\.c$$
 
 exclude_file_name_regexp--sc_prohibit_internal_functions = \
-  ^src/(util/(memory|util|virfile)\.[hc]|esx/esx_vi\.c)$$
+  ^src/(util/(viralloc|util|virfile)\.[hc]|esx/esx_vi\.c)$$
 
 exclude_file_name_regexp--sc_prohibit_newline_at_end_of_diagnostic = \
   ^src/rpc/gendispatch\.pl$$
@@ -794,7 +794,7 @@ exclude_file_name_regexp--sc_prohibit_nonreentrant = \
   ^((po|tests)/|docs/.*py|run.in$$)
 
 exclude_file_name_regexp--sc_prohibit_raw_allocation = \
-  ^(src/util/memory\.[ch]|examples/.*)$$
+  ^(src/util/viralloc\.[ch]|examples/.*)$$
 
 exclude_file_name_regexp--sc_prohibit_readlink = \
   ^src/(util/util|lxc/lxc_container)\.c$$
diff --git a/daemon/libvirtd-config.c b/daemon/libvirtd-config.c
index f61f08d..b979a23 100644
--- a/daemon/libvirtd-config.c
+++ b/daemon/libvirtd-config.c
@@ -25,7 +25,7 @@
 
 #include "libvirtd-config.h"
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "rpc/virnetserver.h"
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index fbf23d8..903f8c2 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -46,7 +46,7 @@
 #include "util.h"
 #include "uuid.h"
 #include "remote_driver.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virconf.h"
 #include "virnetlink.h"
 #include "virnetserver.h"
diff --git a/daemon/remote.c b/daemon/remote.c
index 58ceb39..eb75281 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -33,7 +33,7 @@
 #include "libvirtd.h"
 #include "libvirt_internal.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "util.h"
 #include "stream.h"
diff --git a/daemon/stream.c b/daemon/stream.c
index d63e009..f208139 100644
--- a/daemon/stream.c
+++ b/daemon/stream.c
@@ -25,7 +25,7 @@
 
 #include "stream.h"
 #include "remote.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virnetserverclient.h"
 #include "virterror_internal.h"
diff --git a/python/libvirt-override.c b/python/libvirt-override.c
index eda8a11..644f34d 100644
--- a/python/libvirt-override.c
+++ b/python/libvirt-override.c
@@ -24,7 +24,7 @@
 #include "libvirt/virterror.h"
 #include "typewrappers.h"
 #include "libvirt.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virtypedparam.h"
 #include "ignore-value.h"
 #include "util.h"
diff --git a/python/typewrappers.c b/python/typewrappers.c
index d633603..9ba8790 100644
--- a/python/typewrappers.c
+++ b/python/typewrappers.c
@@ -16,7 +16,7 @@
 
 #include "typewrappers.h"
 
-#include "memory.h"
+#include "viralloc.h"
 
 #ifndef Py_CAPSULE_H
 typedef void(*PyCapsule_Destructor)(void *, void *);
diff --git a/src/Makefile.am b/src/Makefile.am
index 93da171..64f117d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -53,7 +53,6 @@ augeastest_DATA =
 # These files are not related to driver APIs. Simply generic
 # helper APIs for various purposes
 UTIL_SOURCES =							\
-		util/memory.c util/memory.h			\
 		util/pci.c util/pci.h				\
 		util/processinfo.c util/processinfo.h		\
 		util/sexpr.c util/sexpr.h			\
@@ -66,6 +65,7 @@ UTIL_SOURCES =							\
 		util/threadpool.c util/threadpool.h		\
 		util/uuid.c util/uuid.h				\
 		util/util.c util/util.h				\
+		util/viralloc.c util/viralloc.h			\
 		util/viratomic.h util/viratomic.c		\
 		util/viraudit.c util/viraudit.h			\
 		util/virauth.c util/virauth.h			\
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
index 3b8fef1..9ac18e2 100644
--- a/src/conf/capabilities.c
+++ b/src/conf/capabilities.c
@@ -27,7 +27,7 @@
 
 #include "capabilities.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "uuid.h"
 #include "cpu_conf.h"
diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 190b088..23941c5 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virbuffer.h"
 #include "cpu_conf.h"
diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
index daf57bc..c3ca2d6 100644
--- a/src/conf/device_conf.c
+++ b/src/conf/device_conf.c
@@ -23,7 +23,7 @@
 #include <config.h>
 #include "virterror_internal.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "xml.h"
 #include "uuid.h"
 #include "util.h"
diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c
index 5fca6a6..c275f71 100644
--- a/src/conf/domain_audit.c
+++ b/src/conf/domain_audit.c
@@ -30,7 +30,7 @@
 #include "viraudit.h"
 #include "uuid.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 
 /* Return nn:mm in hex for block and character devices, and NULL
  * for other file types, stat failure, or allocation failure.  */
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index c48adf5..f80f5f1 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -34,7 +34,7 @@
 #include "datatypes.h"
 #include "domain_conf.h"
 #include "snapshot_conf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "verify.h"
 #include "xml.h"
 #include "uuid.h"
diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
index f1e247b..d523808 100644
--- a/src/conf/domain_event.c
+++ b/src/conf/domain_event.c
@@ -26,7 +26,7 @@
 #include "domain_event.h"
 #include "virlog.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c
index 738ef33..046a8a1 100644
--- a/src/conf/interface_conf.c
+++ b/src/conf/interface_conf.c
@@ -27,7 +27,7 @@
 
 #include "interface_conf.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "xml.h"
 #include "uuid.h"
 #include "util.h"
diff --git a/src/conf/netdev_bandwidth_conf.c b/src/conf/netdev_bandwidth_conf.c
index 15840b9..35f067c 100644
--- a/src/conf/netdev_bandwidth_conf.c
+++ b/src/conf/netdev_bandwidth_conf.c
@@ -25,7 +25,7 @@
 #include "netdev_bandwidth_conf.h"
 #include "virterror_internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "domain_conf.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/conf/netdev_vlan_conf.c b/src/conf/netdev_vlan_conf.c
index 6a0511a..8cee025 100644
--- a/src/conf/netdev_vlan_conf.c
+++ b/src/conf/netdev_vlan_conf.c
@@ -23,7 +23,7 @@
 
 #include "netdev_vlan_conf.h"
 #include "virterror_internal.h"
-#include "memory.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 94992e3..a9a38d7 100644
--- a/src/conf/netdev_vport_profile_conf.c
+++ b/src/conf/netdev_vport_profile_conf.c
@@ -24,7 +24,7 @@
 
 #include "netdev_vport_profile_conf.h"
 #include "virterror_internal.h"
-#include "memory.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 42cb87e..1932851 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -37,7 +37,7 @@
 #include "netdev_vport_profile_conf.h"
 #include "netdev_bandwidth_conf.h"
 #include "netdev_vlan_conf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "xml.h"
 #include "uuid.h"
 #include "util.h"
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 50fcf0b..85de50f 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -28,10 +28,10 @@
 
 #include "virterror_internal.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 
 #include "node_device_conf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "xml.h"
 #include "util.h"
 #include "virbuffer.h"
diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c
index 46580e9..09a9d1c 100644
--- a/src/conf/nwfilter_conf.c
+++ b/src/conf/nwfilter_conf.c
@@ -39,7 +39,7 @@
 #include "internal.h"
 
 #include "uuid.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "nwfilter_params.h"
diff --git a/src/conf/nwfilter_params.c b/src/conf/nwfilter_params.c
index f8cf980..1429952 100644
--- a/src/conf/nwfilter_params.c
+++ b/src/conf/nwfilter_params.c
@@ -25,7 +25,7 @@
 
 #include "internal.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "nwfilter_params.h"
diff --git a/src/conf/secret_conf.c b/src/conf/secret_conf.c
index 24d7aa0..5188c7a 100644
--- a/src/conf/secret_conf.c
+++ b/src/conf/secret_conf.c
@@ -26,7 +26,7 @@
 #include "virbuffer.h"
 #include "datatypes.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "secret_conf.h"
 #include "virterror_internal.h"
 #include "util.h"
diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c
index 6361810..9c16a88 100644
--- a/src/conf/snapshot_conf.c
+++ b/src/conf/snapshot_conf.c
@@ -35,7 +35,7 @@
 #include "datatypes.h"
 #include "domain_conf.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "netdev_bandwidth_conf.h"
 #include "netdev_vport_profile_conf.h"
 #include "nwfilter_conf.h"
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index b81c08c..0e00588 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -42,7 +42,7 @@
 #include "uuid.h"
 #include "virbuffer.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 
 #define VIR_FROM_THIS VIR_FROM_STORAGE
diff --git a/src/conf/storage_encryption_conf.c b/src/conf/storage_encryption_conf.c
index 0c2bded..8d3ceac 100644
--- a/src/conf/storage_encryption_conf.c
+++ b/src/conf/storage_encryption_conf.c
@@ -28,7 +28,7 @@
 #include "internal.h"
 
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "storage_conf.h"
 #include "storage_encryption_conf.h"
 #include "util.h"
diff --git a/src/conf/virconsole.c b/src/conf/virconsole.c
index 92179cc..757573d 100644
--- a/src/conf/virconsole.c
+++ b/src/conf/virconsole.c
@@ -32,7 +32,7 @@
 #include "fdstream.h"
 #include "internal.h"
 #include "threads.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virpidfile.h"
 #include "virlog.h"
 #include "virterror_internal.h"
diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c
index 17a06f3..2222a91 100644
--- a/src/cpu/cpu.c
+++ b/src/cpu/cpu.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "xml.h"
 #include "cpu.h"
 #include "cpu_x86.h"
diff --git a/src/cpu/cpu_arm.c b/src/cpu/cpu_arm.c
index 2d005df..75dee30 100644
--- a/src/cpu/cpu_arm.c
+++ b/src/cpu/cpu_arm.c
@@ -23,7 +23,7 @@
 
 #include <config.h>
 
-#include "memory.h"
+#include "viralloc.h"
 #include "cpu.h"
 
 #define VIR_FROM_THIS VIR_FROM_CPU
diff --git a/src/cpu/cpu_generic.c b/src/cpu/cpu_generic.c
index 3a6ed6c..4415ce1 100644
--- a/src/cpu/cpu_generic.c
+++ b/src/cpu/cpu_generic.c
@@ -24,7 +24,7 @@
 
 #include <config.h>
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virhash.h"
 #include "cpu.h"
 #include "cpu_generic.h"
diff --git a/src/cpu/cpu_map.c b/src/cpu/cpu_map.c
index 8c4cfee..015be2e 100644
--- a/src/cpu/cpu_map.c
+++ b/src/cpu/cpu_map.c
@@ -23,7 +23,7 @@
 
 #include <config.h>
 
-#include "memory.h"
+#include "viralloc.h"
 #include "cpu.h"
 #include "cpu_map.h"
 #include "configmake.h"
diff --git a/src/cpu/cpu_powerpc.c b/src/cpu/cpu_powerpc.c
index c59bd1b..6b6c325 100644
--- a/src/cpu/cpu_powerpc.c
+++ b/src/cpu/cpu_powerpc.c
@@ -27,7 +27,7 @@
 #include <stdint.h>
 
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "cpu.h"
 
diff --git a/src/cpu/cpu_s390.c b/src/cpu/cpu_s390.c
index 137c15f..a0f06f1 100644
--- a/src/cpu/cpu_s390.c
+++ b/src/cpu/cpu_s390.c
@@ -23,7 +23,7 @@
 
 #include <config.h>
 
-#include "memory.h"
+#include "viralloc.h"
 #include "cpu.h"
 
 
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index bea48a1..93ee111 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -26,7 +26,7 @@
 #include <stdint.h>
 
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "cpu.h"
 #include "cpu_map.h"
diff --git a/src/datatypes.c b/src/datatypes.c
index 73a2fd0..0907c7d 100644
--- a/src/datatypes.c
+++ b/src/datatypes.c
@@ -25,7 +25,7 @@
 #include "datatypes.h"
 #include "virterror_internal.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "util.h"
 
diff --git a/src/driver.c b/src/driver.c
index 4ef6fd2..23dc329 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -25,7 +25,7 @@
 #include <unistd.h>
 
 #include "driver.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "util.h"
 #include "configmake.h"
diff --git a/src/esx/esx_device_monitor.c b/src/esx/esx_device_monitor.c
index 0ad95f5..854fc38 100644
--- a/src/esx/esx_device_monitor.c
+++ b/src/esx/esx_device_monitor.c
@@ -26,7 +26,7 @@
 
 #include "internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "esx_private.h"
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index a69d149..0fe9a67 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -29,7 +29,7 @@
 #include "snapshot_conf.h"
 #include "virauth.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "vmx.h"
diff --git a/src/esx/esx_interface_driver.c b/src/esx/esx_interface_driver.c
index 4760264..fea67ab 100644
--- a/src/esx/esx_interface_driver.c
+++ b/src/esx/esx_interface_driver.c
@@ -26,7 +26,7 @@
 
 #include "internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "interface_conf.h"
diff --git a/src/esx/esx_network_driver.c b/src/esx/esx_network_driver.c
index 3e25aa2..fec7e72 100644
--- a/src/esx/esx_network_driver.c
+++ b/src/esx/esx_network_driver.c
@@ -27,7 +27,7 @@
 #include "md5.h"
 #include "internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "network_conf.h"
diff --git a/src/esx/esx_nwfilter_driver.c b/src/esx/esx_nwfilter_driver.c
index f5e710d..7a05a5a 100644
--- a/src/esx/esx_nwfilter_driver.c
+++ b/src/esx/esx_nwfilter_driver.c
@@ -26,7 +26,7 @@
 
 #include "internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "esx_private.h"
diff --git a/src/esx/esx_secret_driver.c b/src/esx/esx_secret_driver.c
index 2a98644..2969b19 100644
--- a/src/esx/esx_secret_driver.c
+++ b/src/esx/esx_secret_driver.c
@@ -25,7 +25,7 @@
 
 #include "internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "esx_private.h"
diff --git a/src/esx/esx_storage_backend_iscsi.c b/src/esx/esx_storage_backend_iscsi.c
index 5d4eb3c..9d481d2 100644
--- a/src/esx/esx_storage_backend_iscsi.c
+++ b/src/esx/esx_storage_backend_iscsi.c
@@ -29,7 +29,7 @@
 #include "internal.h"
 #include "md5.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "storage_conf.h"
diff --git a/src/esx/esx_storage_backend_vmfs.c b/src/esx/esx_storage_backend_vmfs.c
index c8bba9e..bca637b 100644
--- a/src/esx/esx_storage_backend_vmfs.c
+++ b/src/esx/esx_storage_backend_vmfs.c
@@ -32,7 +32,7 @@
 #include "internal.h"
 #include "md5.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "storage_conf.h"
diff --git a/src/esx/esx_storage_driver.c b/src/esx/esx_storage_driver.c
index e6c09aa..1324469 100644
--- a/src/esx/esx_storage_driver.c
+++ b/src/esx/esx_storage_driver.c
@@ -26,7 +26,7 @@
 #include <config.h>
 
 #include "uuid.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "storage_conf.h"
 #include "esx_private.h"
 #include "esx_storage_driver.h"
diff --git a/src/esx/esx_util.c b/src/esx/esx_util.c
index 6e27fe4..bcda9df 100644
--- a/src/esx/esx_util.c
+++ b/src/esx/esx_util.c
@@ -29,7 +29,7 @@
 #include "internal.h"
 #include "datatypes.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "vmx.h"
diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
index 76192df..37b6e0f 100644
--- a/src/esx/esx_vi.c
+++ b/src/esx/esx_vi.c
@@ -27,7 +27,7 @@
 #include <libxml/xpathInternals.h>
 
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "util.h"
 #include "uuid.h"
diff --git a/src/esx/esx_vi_methods.c b/src/esx/esx_vi_methods.c
index a3870ee..7ffca559 100644
--- a/src/esx/esx_vi_methods.c
+++ b/src/esx/esx_vi_methods.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "esx_vi_methods.h"
diff --git a/src/esx/esx_vi_types.c b/src/esx/esx_vi_types.c
index d0a2c6c..b93223d 100644
--- a/src/esx/esx_vi_types.c
+++ b/src/esx/esx_vi_types.c
@@ -29,7 +29,7 @@
 
 #include "virbuffer.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "util.h"
 #include "esx_vi.h"
diff --git a/src/fdstream.c b/src/fdstream.c
index fdbd7a2..39e92b8 100644
--- a/src/fdstream.c
+++ b/src/fdstream.c
@@ -36,7 +36,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virfile.h"
 #include "configmake.h"
diff --git a/src/hyperv/hyperv_device_monitor.c b/src/hyperv/hyperv_device_monitor.c
index 1fa98b2..d6edb76 100644
--- a/src/hyperv/hyperv_device_monitor.c
+++ b/src/hyperv/hyperv_device_monitor.c
@@ -27,7 +27,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "hyperv_device_monitor.h"
diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c
index 95b0cd9..749c7f0 100644
--- a/src/hyperv/hyperv_driver.c
+++ b/src/hyperv/hyperv_driver.c
@@ -28,7 +28,7 @@
 #include "domain_conf.h"
 #include "virauth.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "hyperv_driver.h"
diff --git a/src/hyperv/hyperv_interface_driver.c b/src/hyperv/hyperv_interface_driver.c
index 6a3c2cb..43c7dd7 100644
--- a/src/hyperv/hyperv_interface_driver.c
+++ b/src/hyperv/hyperv_interface_driver.c
@@ -27,7 +27,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "hyperv_interface_driver.h"
diff --git a/src/hyperv/hyperv_network_driver.c b/src/hyperv/hyperv_network_driver.c
index 2f9fcab..06b051b 100644
--- a/src/hyperv/hyperv_network_driver.c
+++ b/src/hyperv/hyperv_network_driver.c
@@ -27,7 +27,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "hyperv_network_driver.h"
diff --git a/src/hyperv/hyperv_nwfilter_driver.c b/src/hyperv/hyperv_nwfilter_driver.c
index c490522..7452b7a 100644
--- a/src/hyperv/hyperv_nwfilter_driver.c
+++ b/src/hyperv/hyperv_nwfilter_driver.c
@@ -27,7 +27,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "hyperv_nwfilter_driver.h"
diff --git a/src/hyperv/hyperv_secret_driver.c b/src/hyperv/hyperv_secret_driver.c
index 3d58b01..04a6ada 100644
--- a/src/hyperv/hyperv_secret_driver.c
+++ b/src/hyperv/hyperv_secret_driver.c
@@ -27,7 +27,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "hyperv_secret_driver.h"
diff --git a/src/hyperv/hyperv_storage_driver.c b/src/hyperv/hyperv_storage_driver.c
index 7fbc14d..b2817a2 100644
--- a/src/hyperv/hyperv_storage_driver.c
+++ b/src/hyperv/hyperv_storage_driver.c
@@ -27,7 +27,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "hyperv_storage_driver.h"
diff --git a/src/hyperv/hyperv_util.c b/src/hyperv/hyperv_util.c
index 1ef6dae..016d415 100644
--- a/src/hyperv/hyperv_util.c
+++ b/src/hyperv/hyperv_util.c
@@ -25,7 +25,7 @@
 #include "internal.h"
 #include "datatypes.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "hyperv_private.h"
diff --git a/src/hyperv/hyperv_wmi.c b/src/hyperv/hyperv_wmi.c
index 069ebe6..69e7283 100644
--- a/src/hyperv/hyperv_wmi.c
+++ b/src/hyperv/hyperv_wmi.c
@@ -28,7 +28,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "uuid.h"
 #include "virbuffer.h"
diff --git a/src/interface/interface_backend_netcf.c b/src/interface/interface_backend_netcf.c
index 1f42920..74a749b 100644
--- a/src/interface/interface_backend_netcf.c
+++ b/src/interface/interface_backend_netcf.c
@@ -29,7 +29,7 @@
 #include "datatypes.h"
 #include "interface_driver.h"
 #include "interface_conf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_INTERFACE
diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c
index 9233e87..248b02e 100644
--- a/src/interface/interface_backend_udev.c
+++ b/src/interface/interface_backend_udev.c
@@ -27,7 +27,7 @@
 #include "datatypes.h"
 #include "interface_driver.h"
 #include "interface_conf.h"
-#include "memory.h"
+#include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_INTERFACE
 
diff --git a/src/libvirt.c b/src/libvirt.c
index d078304..ed7dcae 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -51,7 +51,7 @@
 #include "driver.h"
 
 #include "uuid.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "configmake.h"
 #include "intprops.h"
 #include "virconf.h"
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 460d15f..ac55cf3 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -37,7 +37,7 @@
 #include "datatypes.h"
 #include "virfile.h"
 #include "virstring.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "capabilities.h"
 #include "libxl_driver.h"
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index ced7cfa..af74ebc 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -37,7 +37,7 @@
 #include "virconf.h"
 #include "datatypes.h"
 #include "virfile.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "vircommand.h"
 #include "libxl.h"
diff --git a/src/locking/domain_lock.c b/src/locking/domain_lock.c
index 00861cf..0ae9750 100644
--- a/src/locking/domain_lock.c
+++ b/src/locking/domain_lock.c
@@ -22,7 +22,7 @@
 #include <config.h>
 
 #include "domain_lock.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "virterror_internal.h"
 #include "virlog.h"
diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c
index 3c2a50c..3d90c57 100644
--- a/src/locking/lock_daemon.c
+++ b/src/locking/lock_daemon.c
@@ -39,7 +39,7 @@
 #include "virprocess.h"
 #include "virterror_internal.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virconf.h"
 #include "rpc/virnetserver.h"
 #include "virrandom.h"
diff --git a/src/locking/lock_daemon_config.c b/src/locking/lock_daemon_config.c
index 9557b8c..e370dd4 100644
--- a/src/locking/lock_daemon_config.c
+++ b/src/locking/lock_daemon_config.c
@@ -25,7 +25,7 @@
 
 #include "lock_daemon_config.h"
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "rpc/virnetserver.h"
diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c
index d5d721d..cee530d 100644
--- a/src/locking/lock_driver_lockd.c
+++ b/src/locking/lock_driver_lockd.c
@@ -23,7 +23,7 @@
 
 #include "lock_driver.h"
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "util.h"
diff --git a/src/locking/lock_driver_nop.c b/src/locking/lock_driver_nop.c
index 745a0bf..cf0f49a 100644
--- a/src/locking/lock_driver_nop.c
+++ b/src/locking/lock_driver_nop.c
@@ -22,7 +22,7 @@
 #include <config.h>
 
 #include "lock_driver_nop.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 
diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c
index 1e8df26..e520444 100644
--- a/src/locking/lock_driver_sanlock.c
+++ b/src/locking/lock_driver_sanlock.c
@@ -39,7 +39,7 @@
 #include "lock_driver.h"
 #include "virlog.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virfile.h"
 #include "md5.h"
diff --git a/src/locking/lock_manager.c b/src/locking/lock_manager.c
index f038d4e..f938b04 100644
--- a/src/locking/lock_manager.c
+++ b/src/locking/lock_manager.c
@@ -26,7 +26,7 @@
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 
 #if HAVE_DLFCN_H
diff --git a/src/locking/sanlock_helper.c b/src/locking/sanlock_helper.c
index ad69312..3e400b7 100644
--- a/src/locking/sanlock_helper.c
+++ b/src/locking/sanlock_helper.c
@@ -6,7 +6,7 @@
 #include "configmake.h"
 #include "internal.h"
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "domain_conf.h"
 
 
diff --git a/src/lxc/lxc_cgroup.c b/src/lxc/lxc_cgroup.c
index b8c4308..5d1f7ff 100644
--- a/src/lxc/lxc_cgroup.c
+++ b/src/lxc/lxc_cgroup.c
@@ -26,7 +26,7 @@
 #include "virfile.h"
 #include "virterror_internal.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "vircgroup.h"
 
 #define VIR_FROM_THIS VIR_FROM_LXC
diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c
index ca36965..043630a 100644
--- a/src/lxc/lxc_conf.c
+++ b/src/lxc/lxc_conf.c
@@ -32,7 +32,7 @@
 #include "nodeinfo.h"
 #include "virterror_internal.h"
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "configmake.h"
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 4aae28e..f3c6e19 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -57,7 +57,7 @@
 #include "virlog.h"
 #include "lxc_container.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virnetdevveth.h"
 #include "uuid.h"
 #include "virfile.h"
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 78f10ab..8a83e71 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -63,7 +63,7 @@
 #include "lxc_fuse.h"
 #include "virnetdev.h"
 #include "virnetdevveth.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virfile.h"
 #include "virpidfile.h"
diff --git a/src/lxc/lxc_domain.c b/src/lxc/lxc_domain.c
index 77a64dd..fab1506 100644
--- a/src/lxc/lxc_domain.c
+++ b/src/lxc/lxc_domain.c
@@ -23,7 +23,7 @@
 
 #include "lxc_domain.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virterror_internal.h"
 
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 0ab2cb9..35e8ac9 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -43,7 +43,7 @@
 #include "lxc_domain.h"
 #include "lxc_driver.h"
 #include "lxc_process.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virnetdevbridge.h"
 #include "virnetdevveth.h"
diff --git a/src/lxc/lxc_fuse.h b/src/lxc/lxc_fuse.h
index a888122..9878017 100644
--- a/src/lxc/lxc_fuse.h
+++ b/src/lxc/lxc_fuse.h
@@ -33,7 +33,7 @@
 
 # include "lxc_conf.h"
 # include "util.h"
-# include "memory.h"
+# include "viralloc.h"
 
 struct virLXCMeminfo {
     unsigned long long memtotal;
diff --git a/src/lxc/lxc_monitor.c b/src/lxc/lxc_monitor.c
index 9eb587d..90637eb 100644
--- a/src/lxc/lxc_monitor.c
+++ b/src/lxc/lxc_monitor.c
@@ -25,7 +25,7 @@
 #include "lxc_protocol.h"
 #include "lxc_monitor_dispatch.h"
 
-#include "memory.h"
+#include "viralloc.h"
 
 #include "virterror_internal.h"
 #include "virlog.h"
diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
index 02ed226..af14f6a 100644
--- a/src/lxc/lxc_process.c
+++ b/src/lxc/lxc_process.c
@@ -38,7 +38,7 @@
 #include "virtime.h"
 #include "domain_nwfilter.h"
 #include "network/bridge_driver.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "domain_audit.h"
 #include "virterror_internal.h"
 #include "virlog.h"
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 2a59b84..52b36a1 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -54,7 +54,7 @@
 #include "virpidfile.h"
 #include "util.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "viriptables.h"
 #include "virlog.h"
diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
index 48360e3..d914816 100644
--- a/src/node_device/node_device_driver.c
+++ b/src/node_device/node_device_driver.c
@@ -32,7 +32,7 @@
 
 #include "virterror_internal.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "node_device_conf.h"
 #include "node_device_hal.h"
diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c
index 59ba5c3..6f89f16 100644
--- a/src/node_device/node_device_hal.c
+++ b/src/node_device/node_device_hal.c
@@ -33,7 +33,7 @@
 #include "virterror_internal.h"
 #include "driver.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "pci.h"
 #include "virlog.h"
diff --git a/src/node_device/node_device_linux_sysfs.c b/src/node_device/node_device_linux_sysfs.c
index fbe0da5..be5d3ed 100644
--- a/src/node_device/node_device_linux_sysfs.c
+++ b/src/node_device/node_device_linux_sysfs.c
@@ -29,7 +29,7 @@
 #include "node_device_driver.h"
 #include "node_device_hal.h"
 #include "virterror_internal.h"
-#include "memory.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 fef00ad..81a11d7 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -33,7 +33,7 @@
 #include "driver.h"
 #include "datatypes.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "util.h"
 #include "virbuffer.h"
diff --git a/src/nodeinfo.c b/src/nodeinfo.c
index 0019c2b..b14e63b 100644
--- a/src/nodeinfo.c
+++ b/src/nodeinfo.c
@@ -39,7 +39,7 @@
 #endif
 
 #include "c-ctype.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "nodeinfo.h"
 #include "physmem.h"
 #include "util.h"
diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c
index 68aa233..a798e95 100644
--- a/src/nwfilter/nwfilter_dhcpsnoop.c
+++ b/src/nwfilter/nwfilter_dhcpsnoop.c
@@ -54,7 +54,7 @@
 #include <netinet/udp.h>
 #include <net/if.h>
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "virterror_internal.h"
diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c
index 7fde656..4b1188d 100644
--- a/src/nwfilter/nwfilter_driver.c
+++ b/src/nwfilter/nwfilter_driver.c
@@ -34,7 +34,7 @@
 
 #include "virterror_internal.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "domain_conf.h"
 #include "domain_nwfilter.h"
 #include "nwfilter_conf.h"
diff --git a/src/nwfilter/nwfilter_ebiptables_driver.c b/src/nwfilter/nwfilter_ebiptables_driver.c
index 23a43d2..092ae5a 100644
--- a/src/nwfilter/nwfilter_ebiptables_driver.c
+++ b/src/nwfilter/nwfilter_ebiptables_driver.c
@@ -31,7 +31,7 @@
 #include "internal.h"
 
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virterror_internal.h"
 #include "domain_conf.h"
diff --git a/src/nwfilter/nwfilter_gentech_driver.c b/src/nwfilter/nwfilter_gentech_driver.c
index 6be4a93..2b4cc8e 100644
--- a/src/nwfilter/nwfilter_gentech_driver.c
+++ b/src/nwfilter/nwfilter_gentech_driver.c
@@ -26,7 +26,7 @@
 
 #include "internal.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "domain_conf.h"
 #include "virterror_internal.h"
diff --git a/src/nwfilter/nwfilter_learnipaddr.c b/src/nwfilter/nwfilter_learnipaddr.c
index 110eae8..8c4bbcf 100644
--- a/src/nwfilter/nwfilter_learnipaddr.c
+++ b/src/nwfilter/nwfilter_learnipaddr.c
@@ -42,7 +42,7 @@
 
 #include "intprops.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "virnetdev.h"
diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c
index c9189ef..6e0f6eb 100644
--- a/src/openvz/openvz_conf.c
+++ b/src/openvz/openvz_conf.c
@@ -48,7 +48,7 @@
 #include "openvz_util.h"
 #include "uuid.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "nodeinfo.h"
 #include "virfile.h"
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index 101fa32..f6327fd 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -53,7 +53,7 @@
 #include "util.h"
 #include "openvz_conf.h"
 #include "nodeinfo.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 #include "virtypedparam.h"
 #include "virlog.h"
diff --git a/src/openvz/openvz_util.c b/src/openvz/openvz_util.c
index 4163e19..51b22c9 100644
--- a/src/openvz/openvz_util.c
+++ b/src/openvz/openvz_util.c
@@ -28,7 +28,7 @@
 #include "virterror_internal.h"
 #include "vircommand.h"
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 
 #include "openvz_conf.h"
 #include "openvz_util.h"
diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
index 4e6f903..2d3dc4a 100644
--- a/src/parallels/parallels_driver.c
+++ b/src/parallels/parallels_driver.c
@@ -43,7 +43,7 @@
 
 #include "datatypes.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virlog.h"
 #include "vircommand.h"
diff --git a/src/parallels/parallels_network.c b/src/parallels/parallels_network.c
index 40706aa..4729f18 100644
--- a/src/parallels/parallels_network.c
+++ b/src/parallels/parallels_network.c
@@ -23,7 +23,7 @@
 #include <config.h>
 
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "md5.h"
 
diff --git a/src/parallels/parallels_storage.c b/src/parallels/parallels_storage.c
index 90fa104..f546d28 100644
--- a/src/parallels/parallels_storage.c
+++ b/src/parallels/parallels_storage.c
@@ -31,7 +31,7 @@
 #include <libgen.h>
 
 #include "datatypes.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "configmake.h"
 #include "storage_file.h"
 #include "virterror_internal.h"
diff --git a/src/parallels/parallels_utils.c b/src/parallels/parallels_utils.c
index b032882..9e317b1 100644
--- a/src/parallels/parallels_utils.c
+++ b/src/parallels/parallels_utils.c
@@ -26,7 +26,7 @@
 
 #include "vircommand.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virjson.h"
 
 #include "parallels_utils.h"
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index 0ac2771..ad56686 100644
--- a/src/phyp/phyp_driver.c
+++ b/src/phyp/phyp_driver.c
@@ -48,7 +48,7 @@
 #include "util.h"
 #include "datatypes.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "driver.h"
 #include "libvirt/libvirt.h"
diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index 421e43f..ec1e300 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -34,7 +34,7 @@
 
 #include "qemu_agent.h"
 #include "qemu_command.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virterror_internal.h"
 #include "virjson.h"
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 5853180..46f8540 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "qemu_capabilities.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virterror_internal.h"
 #include "util.h"
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 8d9ccf9..b47fb78 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -28,7 +28,7 @@
 #include "qemu_process.h"
 #include "vircgroup.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "util.h"
 #include "domain_audit.h"
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 8a35982..8a57cb5 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -28,7 +28,7 @@
 #include "qemu_capabilities.h"
 #include "qemu_bridge_filter.h"
 #include "cpu/cpu.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virterror_internal.h"
 #include "util.h"
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 598fad7..d6bc1fc 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -44,7 +44,7 @@
 #include "virbuffer.h"
 #include "virconf.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "datatypes.h"
 #include "xml.h"
 #include "nodeinfo.h"
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index e6eaa58..8dcadbc 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -27,7 +27,7 @@
 #include "qemu_command.h"
 #include "qemu_capabilities.h"
 #include "qemu_migration.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virterror_internal.h"
 #include "c-ctype.h"
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 25e5738..65254b6 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -67,7 +67,7 @@
 #include "nodeinfo.h"
 #include "stats_linux.h"
 #include "capabilities.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "domain_conf.h"
 #include "domain_audit.h"
diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c
index 3854520..754f8d0 100644
--- a/src/qemu/qemu_hostdev.c
+++ b/src/qemu/qemu_hostdev.c
@@ -26,7 +26,7 @@
 #include "qemu_hostdev.h"
 #include "virlog.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "pci.h"
 #include "virusb.h"
 #include "virnetdev.h"
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 7edd125..c432a32 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -35,7 +35,7 @@
 #include "virlog.h"
 #include "datatypes.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "pci.h"
 #include "virfile.h"
 #include "qemu_cgroup.h"
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index cabbe1a..3e9ff03 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -38,7 +38,7 @@
 #include "domain_audit.h"
 #include "virlog.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virfile.h"
 #include "datatypes.h"
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 920453d..5ca1f89 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -32,7 +32,7 @@
 #include "qemu_monitor_text.h"
 #include "qemu_monitor_json.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "virprocess.h"
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index e14134b..0137291 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -35,7 +35,7 @@
 #include "qemu_monitor_json.h"
 #include "qemu_command.h"
 #include "qemu_capabilities.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "driver.h"
 #include "datatypes.h"
diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
index 28690b1..82e9108 100644
--- a/src/qemu/qemu_monitor_text.c
+++ b/src/qemu/qemu_monitor_text.c
@@ -34,7 +34,7 @@
 #include "qemu_command.h"
 #include "c-ctype.h"
 #include "c-strcasestr.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "driver.h"
 #include "datatypes.h"
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index a77b248..b20734d 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -53,7 +53,7 @@
 #include "datatypes.h"
 #include "virlog.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virhooks.h"
 #include "virfile.h"
 #include "virpidfile.h"
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 1e9151a..2edf6e6 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -38,7 +38,7 @@
 #include "remote_driver.h"
 #include "remote_protocol.h"
 #include "qemu_protocol.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virfile.h"
 #include "vircommand.h"
diff --git a/src/rpc/virkeepalive.c b/src/rpc/virkeepalive.c
index 8fc1cba..91af315 100644
--- a/src/rpc/virkeepalive.c
+++ b/src/rpc/virkeepalive.c
@@ -22,7 +22,7 @@
 
 #include <config.h>
 
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "virfile.h"
 #include "virlog.h"
diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c
index 7370ae0..b4fe4d9 100644
--- a/src/rpc/virnetclient.c
+++ b/src/rpc/virnetclient.c
@@ -30,7 +30,7 @@
 #include "virnetclient.h"
 #include "virnetsocket.h"
 #include "virkeepalive.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "virfile.h"
 #include "virlog.h"
diff --git a/src/rpc/virnetclientprogram.c b/src/rpc/virnetclientprogram.c
index dec3943..7396971 100644
--- a/src/rpc/virnetclientprogram.c
+++ b/src/rpc/virnetclientprogram.c
@@ -28,7 +28,7 @@
 #include "virnetclient.h"
 #include "virnetprotocol.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "util.h"
diff --git a/src/rpc/virnetclientstream.c b/src/rpc/virnetclientstream.c
index 26dc292..4877b0c 100644
--- a/src/rpc/virnetclientstream.c
+++ b/src/rpc/virnetclientstream.c
@@ -24,7 +24,7 @@
 
 #include "virnetclientstream.h"
 #include "virnetclient.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "threads.h"
diff --git a/src/rpc/virnetmessage.c b/src/rpc/virnetmessage.c
index 16d8e61..f273811 100644
--- a/src/rpc/virnetmessage.c
+++ b/src/rpc/virnetmessage.c
@@ -24,7 +24,7 @@
 #include <unistd.h>
 
 #include "virnetmessage.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/rpc/virnetsaslcontext.c b/src/rpc/virnetsaslcontext.c
index e880127..adc4f1e 100644
--- a/src/rpc/virnetsaslcontext.c
+++ b/src/rpc/virnetsaslcontext.c
@@ -26,7 +26,7 @@
 #include "virnetmessage.h"
 
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "virlog.h"
 
diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c
index 6d3532a..67cd4b5 100644
--- a/src/rpc/virnetserver.c
+++ b/src/rpc/virnetserver.c
@@ -29,7 +29,7 @@
 
 #include "virnetserver.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "threads.h"
 #include "threadpool.h"
diff --git a/src/rpc/virnetserverclient.c b/src/rpc/virnetserverclient.c
index 9642ea5..7f028b8 100644
--- a/src/rpc/virnetserverclient.c
+++ b/src/rpc/virnetserverclient.c
@@ -31,7 +31,7 @@
 
 #include "virlog.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "virkeepalive.h"
 
diff --git a/src/rpc/virnetservermdns.c b/src/rpc/virnetservermdns.c
index c17b65d..daef2b4 100644
--- a/src/rpc/virnetservermdns.c
+++ b/src/rpc/virnetservermdns.c
@@ -42,7 +42,7 @@
 
 #include "virnetservermdns.h"
 #include "vireventpoll.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 
diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c
index 5b96c34..287282e 100644
--- a/src/rpc/virnetserverprogram.c
+++ b/src/rpc/virnetserverprogram.c
@@ -26,7 +26,7 @@
 #include "virnetserverprogram.h"
 #include "virnetserverclient.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c
index a9362ad..92b5cef 100644
--- a/src/rpc/virnetserverservice.c
+++ b/src/rpc/virnetserverservice.c
@@ -25,7 +25,7 @@
 
 #include "virnetserverservice.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "threads.h"
 
diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
index aa8f4b9..8c62a2a 100644
--- a/src/rpc/virnetsocket.c
+++ b/src/rpc/virnetsocket.c
@@ -42,7 +42,7 @@
 #include "c-ctype.h"
 #include "virnetsocket.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/rpc/virnetsshsession.c b/src/rpc/virnetsshsession.c
index 734acaa..8a7d5f9 100644
--- a/src/rpc/virnetsshsession.c
+++ b/src/rpc/virnetsshsession.c
@@ -27,7 +27,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "configmake.h"
 #include "threads.h"
diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c
index 2931003..d9354e0 100644
--- a/src/rpc/virnettlscontext.c
+++ b/src/rpc/virnettlscontext.c
@@ -30,7 +30,7 @@
 
 #include "virnettlscontext.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "util.h"
 #include "virlog.h"
diff --git a/src/secret/secret_driver.c b/src/secret/secret_driver.c
index 4159358..fb2024b 100644
--- a/src/secret/secret_driver.c
+++ b/src/secret/secret_driver.c
@@ -33,7 +33,7 @@
 #include "datatypes.h"
 #include "driver.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "secret_conf.h"
 #include "secret_driver.h"
 #include "threads.h"
diff --git a/src/security/security_apparmor.c b/src/security/security_apparmor.c
index f2aebc8..b65384e 100644
--- a/src/security/security_apparmor.c
+++ b/src/security/security_apparmor.c
@@ -39,7 +39,7 @@
 
 #include "security_apparmor.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "uuid.h"
diff --git a/src/security/security_dac.c b/src/security/security_dac.c
index 9ff2665..bdb29c7 100644
--- a/src/security/security_dac.c
+++ b/src/security/security_dac.c
@@ -26,7 +26,7 @@
 #include "security_dac.h"
 #include "virterror_internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "pci.h"
 #include "virusb.h"
diff --git a/src/security/security_manager.c b/src/security/security_manager.c
index 67c8858..2da6244 100644
--- a/src/security/security_manager.c
+++ b/src/security/security_manager.c
@@ -27,7 +27,7 @@
 #include "security_stack.h"
 #include "security_dac.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_SECURITY
diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
index 2a19781..3a1548d 100644
--- a/src/security/security_selinux.c
+++ b/src/security/security_selinux.c
@@ -35,7 +35,7 @@
 #include "security_selinux.h"
 #include "virterror_internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "pci.h"
 #include "virusb.h"
diff --git a/src/security/security_stack.c b/src/security/security_stack.c
index c2ccbd0..390bd3b 100644
--- a/src/security/security_stack.c
+++ b/src/security/security_stack.c
@@ -23,7 +23,7 @@
 #include "security_stack.h"
 
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_SECURITY
 
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index d92b3d4..c9c222a 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -42,7 +42,7 @@
 #include "internal.h"
 #include "virbuffer.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "vircommand.h"
 
 #include "security_driver.h"
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index 899caeb..cdc5bda 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -48,7 +48,7 @@
 #include "datatypes.h"
 #include "virterror_internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "internal.h"
 #include "secret_conf.h"
 #include "uuid.h"
diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c
index 7e1d3ec..8759b3a 100644
--- a/src/storage/storage_backend_disk.c
+++ b/src/storage/storage_backend_disk.c
@@ -30,7 +30,7 @@
 #include "virlog.h"
 #include "storage_backend_disk.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "vircommand.h"
 #include "configmake.h"
 
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 78b50f0..f7b4656 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -46,7 +46,7 @@
 #include "storage_conf.h"
 #include "storage_file.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "xml.h"
 #include "virfile.h"
 #include "virlog.h"
diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c
index 46659af..ecb8f8e 100644
--- a/src/storage/storage_backend_iscsi.c
+++ b/src/storage/storage_backend_iscsi.c
@@ -38,7 +38,7 @@
 #include "storage_backend_scsi.h"
 #include "storage_backend_iscsi.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "vircommand.h"
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index f28c663..83b517c 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -35,7 +35,7 @@
 #include "storage_backend_logical.h"
 #include "storage_conf.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
 
diff --git a/src/storage/storage_backend_mpath.c b/src/storage/storage_backend_mpath.c
index 1ca120f..0e5d032 100644
--- a/src/storage/storage_backend_mpath.c
+++ b/src/storage/storage_backend_mpath.c
@@ -32,7 +32,7 @@
 #include "virterror_internal.h"
 #include "storage_conf.h"
 #include "storage_backend.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
 
diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index 4e58911..e1f07ab 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -26,7 +26,7 @@
 #include "storage_backend_rbd.h"
 #include "storage_conf.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "base64.h"
 #include "uuid.h"
diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_scsi.c
index 32713be..1db8fdd 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -30,7 +30,7 @@
 
 #include "virterror_internal.h"
 #include "storage_backend_scsi.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "vircommand.h"
diff --git a/src/storage/storage_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c
index 05deeeb..d3b9d87 100644
--- a/src/storage/storage_backend_sheepdog.c
+++ b/src/storage/storage_backend_sheepdog.c
@@ -31,7 +31,7 @@
 #include "storage_conf.h"
 #include "vircommand.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_STORAGE
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 6076f6c..aebf8bb 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -42,7 +42,7 @@
 #include "util.h"
 #include "storage_driver.h"
 #include "storage_conf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "storage_backend.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index dbaf14e..3abd289 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -39,7 +39,7 @@
 #include "util.h"
 #include "uuid.h"
 #include "capabilities.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "network_conf.h"
 #include "interface_conf.h"
 #include "domain_conf.h"
diff --git a/src/uml/uml_conf.c b/src/uml/uml_conf.c
index 35b54c2..6da311b 100644
--- a/src/uml/uml_conf.c
+++ b/src/uml/uml_conf.c
@@ -40,7 +40,7 @@
 #include "virbuffer.h"
 #include "virconf.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "nodeinfo.h"
 #include "virlog.h"
 #include "domain_nwfilter.h"
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
index 90c9b66..cece114 100644
--- a/src/uml/uml_driver.c
+++ b/src/uml/uml_driver.c
@@ -51,7 +51,7 @@
 #include "nodeinfo.h"
 #include "stats_linux.h"
 #include "capabilities.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "uuid.h"
 #include "domain_conf.h"
 #include "domain_audit.h"
diff --git a/src/util/iohelper.c b/src/util/iohelper.c
index a9c8b4c..1b16d5c 100644
--- a/src/util/iohelper.c
+++ b/src/util/iohelper.c
@@ -36,7 +36,7 @@
 #include "util.h"
 #include "threads.h"
 #include "virfile.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "configmake.h"
 #include "virrandom.h"
diff --git a/src/util/memory.c b/src/util/memory.c
deleted file mode 100644
index 186d3b6..0000000
--- a/src/util/memory.c
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * memory.c: safer memory allocation
- *
- * Copyright (C) 2010-2012 Red Hat, Inc.
- * Copyright (C) 2008 Daniel P. Berrange
- *
- * 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/>.
- *
- */
-
-#include <config.h>
-#include <stdlib.h>
-
-#include "memory.h"
-#include "virlog.h"
-
-#if TEST_OOM
-static int testMallocNext = 0;
-static int testMallocFailFirst = 0;
-static int testMallocFailLast = 0;
-static void (*testMallocHook)(int, void*) = NULL;
-static void *testMallocHookData = NULL;
-
-void virAllocTestInit(void)
-{
-    testMallocNext = 1;
-    testMallocFailFirst = 0;
-    testMallocFailLast = 0;
-}
-
-int virAllocTestCount(void)
-{
-    return testMallocNext - 1;
-}
-
-void virAllocTestHook(void (*func)(int, void*), void *data)
-{
-    testMallocHook = func;
-    testMallocHookData = data;
-}
-
-void virAllocTestOOM(int n, int m)
-{
-    testMallocNext = 1;
-    testMallocFailFirst = n;
-    testMallocFailLast = n + m - 1;
-}
-
-static int virAllocTestFail(void)
-{
-    int fail = 0;
-    if (testMallocNext == 0)
-        return 0;
-
-    fail =
-        testMallocNext >= testMallocFailFirst &&
-        testMallocNext <= testMallocFailLast;
-
-    if (fail && testMallocHook)
-        (testMallocHook)(testMallocNext, testMallocHookData);
-
-    testMallocNext++;
-    return fail;
-}
-#endif
-
-
-/**
- * virAlloc:
- * @ptrptr: pointer to pointer for address of allocated memory
- * @size: number of bytes to allocate
- *
- * Allocate  'size' bytes of memory. Return the address of the
- * allocated memory in 'ptrptr'. The newly allocated memory is
- * filled with zeros.
- *
- * Returns -1 on failure to allocate, zero on success
- */
-int virAlloc(void *ptrptr, size_t size)
-{
-#if TEST_OOM
-    if (virAllocTestFail()) {
-        *(void **)ptrptr = NULL;
-        return -1;
-    }
-#endif
-
-    *(void **)ptrptr = calloc(1, size);
-    if (*(void **)ptrptr == NULL)
-        return -1;
-    return 0;
-}
-
-/**
- * virAllocN:
- * @ptrptr: pointer to pointer for address of allocated memory
- * @size: number of bytes to allocate
- * @count: number of elements to allocate
- *
- * Allocate an array of memory 'count' elements long,
- * each with 'size' bytes. Return the address of the
- * allocated memory in 'ptrptr'.  The newly allocated
- * memory is filled with zeros.
- *
- * Returns -1 on failure to allocate, zero on success
- */
-int virAllocN(void *ptrptr, size_t size, size_t count)
-{
-#if TEST_OOM
-    if (virAllocTestFail()) {
-        *(void **)ptrptr = NULL;
-        return -1;
-    }
-#endif
-
-    *(void**)ptrptr = calloc(count, size);
-    if (*(void**)ptrptr == NULL)
-        return -1;
-    return 0;
-}
-
-/**
- * virReallocN:
- * @ptrptr: pointer to pointer for address of allocated memory
- * @size: number of bytes to allocate
- * @count: number of elements in array
- *
- * Resize the block of memory in 'ptrptr' to be an array of
- * 'count' elements, each 'size' bytes in length. Update 'ptrptr'
- * with the address of the newly allocated memory. On failure,
- * 'ptrptr' is not changed and still points to the original memory
- * block. Any newly allocated memory in 'ptrptr' is uninitialized.
- *
- * Returns -1 on failure to allocate, zero on success
- */
-int virReallocN(void *ptrptr, size_t size, size_t count)
-{
-    void *tmp;
-#if TEST_OOM
-    if (virAllocTestFail())
-        return -1;
-#endif
-
-    if (xalloc_oversized(count, size)) {
-        errno = ENOMEM;
-        return -1;
-    }
-    tmp = realloc(*(void**)ptrptr, size * count);
-    if (!tmp && (size * count))
-        return -1;
-    *(void**)ptrptr = tmp;
-    return 0;
-}
-
-/**
- * virExpandN:
- * @ptrptr: pointer to pointer for address of allocated memory
- * @size: number of bytes per element
- * @countptr: pointer to number of elements in array
- * @add: number of elements to add
- *
- * Resize the block of memory in 'ptrptr' to be an array of
- * '*countptr' + 'add' elements, each 'size' bytes in length.
- * Update 'ptrptr' and 'countptr'  with the details of the newly
- * allocated memory. On failure, 'ptrptr' and 'countptr' are not
- * changed. Any newly allocated memory in 'ptrptr' is zero-filled.
- *
- * Returns -1 on failure to allocate, zero on success
- */
-int virExpandN(void *ptrptr, size_t size, size_t *countptr, size_t add)
-{
-    int ret;
-
-    if (*countptr + add < *countptr) {
-        errno = ENOMEM;
-        return -1;
-    }
-    ret = virReallocN(ptrptr, size, *countptr + add);
-    if (ret == 0) {
-        memset(*(char **)ptrptr + (size * *countptr), 0, size * add);
-        *countptr += add;
-    }
-    return ret;
-}
-
-/**
- * virResizeN:
- * @ptrptr: pointer to pointer for address of allocated memory
- * @size: number of bytes per element
- * @allocptr: pointer to number of elements allocated in array
- * @count: number of elements currently used in array
- * @add: minimum number of additional elements to support in array
- *
- * If 'count' + 'add' is larger than '*allocptr', then resize the
- * block of memory in 'ptrptr' to be an array of at least 'count' +
- * 'add' elements, each 'size' bytes in length. Update 'ptrptr' and
- * 'allocptr' with the details of the newly allocated memory. On
- * failure, 'ptrptr' and 'allocptr' are not changed. Any newly
- * allocated memory in 'ptrptr' is zero-filled.
- *
- * Returns -1 on failure to allocate, zero on success
- */
-int virResizeN(void *ptrptr, size_t size, size_t *allocptr, size_t count,
-               size_t add)
-{
-    size_t delta;
-
-    if (count + add < count) {
-        errno = ENOMEM;
-        return -1;
-    }
-    if (count + add <= *allocptr)
-        return 0;
-
-    delta = count + add - *allocptr;
-    if (delta < *allocptr / 2)
-        delta = *allocptr / 2;
-    return virExpandN(ptrptr, size, allocptr, delta);
-}
-
-/**
- * virShrinkN:
- * @ptrptr: pointer to pointer for address of allocated memory
- * @size: number of bytes per element
- * @countptr: pointer to number of elements in array
- * @toremove: number of elements to remove
- *
- * Resize the block of memory in 'ptrptr' to be an array of
- * '*countptr' - 'toremove' elements, each 'size' bytes in length.
- * Update 'ptrptr' and 'countptr'  with the details of the newly
- * allocated memory. If 'toremove' is larger than 'countptr', free
- * the entire array.
- */
-void virShrinkN(void *ptrptr, size_t size, size_t *countptr, size_t toremove)
-{
-    if (toremove < *countptr)
-        ignore_value(virReallocN(ptrptr, size, *countptr -= toremove));
-    else {
-        virFree(ptrptr);
-        *countptr = 0;
-    }
-}
-
-/**
- * virInsertElementsN:
- * @ptrptr:   pointer to hold address of allocated memory
- * @size:     the size of one element in bytes
- * @at:       index within array where new elements should be added
- * @countptr: variable tracking number of elements currently allocated
- * @add:      number of elements to add
- * @newelems: pointer to array of one or more new elements to move into
- *            place (the originals will be zeroed out if successful
- *            and if clearOriginal is true)
- * @clearOriginal: false if the new item in the array should be copied
- *            from the original, and the original left intact.
- *            true if the original should be 0'd out on success.
- * @inPlace:  false if we should expand the allocated memory before
- *            moving, true if we should assume someone else *has
- *            already* done that.
- *
- * Re-allocate an array of *countptr elements, each sizeof(*ptrptr) bytes
- * long, to be *countptr+add elements long, then appropriately move
- * the elements starting at ptrptr[at] up by add elements, copy the
- * items from newelems into ptrptr[at], then store the address of
- * allocated memory in *ptrptr and the new size in *countptr.  If
- * newelems is NULL, the new elements at ptrptr[at] are instead filled
- * with zero.
- *
- * Returns -1 on failure, 0 on success
- */
-int
-virInsertElementsN(void *ptrptr, size_t size, size_t at,
-                   size_t *countptr,
-                   size_t add, void *newelems,
-                   bool clearOriginal, bool inPlace)
-{
-    if (at > *countptr) {
-        VIR_WARN("out of bounds index - count %zu at %zu add %zu",
-                 *countptr, at, add);
-        return -1;
-    }
-
-    if (inPlace) {
-        *countptr += add;
-    } else if (virExpandN(ptrptr, size, countptr, add) < 0) {
-        return -1;
-    }
-
-    /* memory was successfully re-allocated. Move up all elements from
-     * ptrptr[at] to the end (if we're not "inserting" at the end
-     * already), memcpy in the new elements, and clear the elements
-     * from their original location. Remember that *countptr has
-     * already been updated with new element count!
-     */
-    if (at < *countptr - add) {
-        memmove(*(char**)ptrptr + (size * (at + add)),
-                *(char**)ptrptr + (size * at),
-                size * (*countptr - add - at));
-    }
-
-    if (newelems) {
-        memcpy(*(char**)ptrptr + (size * at), newelems, size * add);
-        if (clearOriginal)
-           memset((char*)newelems, 0, size * add);
-    } else if (inPlace || (at < *countptr - add)) {
-        /* NB: if inPlace, assume memory at the end wasn't initialized */
-        memset(*(char**)ptrptr + (size * at), 0, size * add);
-    }
-
-    return 0;
-}
-
-/**
- * virDeleteElementsN:
- * @ptrptr:   pointer to hold address of allocated memory
- * @size:     the size of one element in bytes
- * @at:       index within array where new elements should be deleted
- * @countptr: variable tracking number of elements currently allocated
- * @remove:   number of elements to remove
- * @inPlace:  false if we should shrink the allocated memory when done,
- *            true if we should assume someone else will do that.
- *
- * Re-allocate an array of *countptr elements, each sizeof(*ptrptr)
- * bytes long, to be *countptr-remove elements long, then store the
- * address of allocated memory in *ptrptr and the new size in *countptr.
- * If *countptr <= remove, the entire array is freed.
- *
- * Returns -1 on failure, 0 on success
- */
-int
-virDeleteElementsN(void *ptrptr, size_t size, size_t at,
-                   size_t *countptr, size_t remove,
-                   bool inPlace)
-{
-    if (at + remove > *countptr) {
-        VIR_WARN("out of bounds index - count %zu at %zu remove %zu",
-                 *countptr, at, remove);
-        return -1;
-    }
-
-    /* First move down the elements at the end that won't be deleted,
-     * then realloc. We assume that the items being deleted have
-     * already been cleared.
-    */
-    memmove(*(char**)ptrptr + (size * at),
-            *(char**)ptrptr + (size * (at + remove)),
-            size * (*countptr - remove - at));
-    if (inPlace)
-        *countptr -= remove;
-    else
-        virShrinkN(ptrptr, size, countptr, remove);
-    return 0;
-}
-
-/**
- * Vir_Alloc_Var:
- * @ptrptr: pointer to hold address of allocated memory
- * @struct_size: size of initial struct
- * @element_size: size of array elements
- * @count: number of array elements to allocate
- *
- * Allocate struct_size bytes plus an array of 'count' elements, each
- * of size element_size.  This sort of allocation is useful for
- * receiving the data of certain ioctls and other APIs which return a
- * struct in which the last element is an array of undefined length.
- * The caller of this type of API is expected to know the length of
- * the array that will be returned and allocate a suitable buffer to
- * contain the returned data.  C99 refers to these variable length
- * objects as structs containing flexible array members.
- *
- * Returns -1 on failure, 0 on success
- */
-int virAllocVar(void *ptrptr, size_t struct_size, size_t element_size, size_t count)
-{
-    size_t alloc_size = 0;
-
-#if TEST_OOM
-    if (virAllocTestFail())
-        return -1;
-#endif
-
-    if (VIR_ALLOC_VAR_OVERSIZED(struct_size, count, element_size)) {
-        errno = ENOMEM;
-        return -1;
-    }
-
-    alloc_size = struct_size + (element_size * count);
-    *(void **)ptrptr = calloc(1, alloc_size);
-    if (*(void **)ptrptr == NULL)
-        return -1;
-    return 0;
-}
-
-
-/**
- * virFree:
- * @ptrptr: pointer to pointer for address of memory to be freed
- *
- * Release the chunk of memory in the pointer pointed to by
- * the 'ptrptr' variable. After release, 'ptrptr' will be
- * updated to point to NULL.
- */
-void virFree(void *ptrptr)
-{
-    int save_errno = errno;
-
-    free(*(void**)ptrptr);
-    *(void**)ptrptr = NULL;
-    errno = save_errno;
-}
diff --git a/src/util/memory.h b/src/util/memory.h
deleted file mode 100644
index 8398105..0000000
--- a/src/util/memory.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * memory.c: safer memory allocation
- *
- * Copyright (C) 2010-2012 Red Hat, Inc.
- * Copyright (C) 2008 Daniel P. Berrange
- *
- * 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 __VIR_MEMORY_H_
-# define __VIR_MEMORY_H_
-
-# include "internal.h"
-
-/* Return 1 if an array of N objects, each of size S, cannot exist due
-   to size arithmetic overflow.  S must be positive and N must be
-   nonnegative.  This is a macro, not an inline function, so that it
-   works correctly even when SIZE_MAX < N.
-
-   By gnulib convention, SIZE_MAX represents overflow in size
-   calculations, so the conservative dividend to use here is
-   SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
-   However, malloc (SIZE_MAX) fails on all known hosts where
-   sizeof(ptrdiff_t) <= sizeof(size_t), so do not bother to test for
-   exactly-SIZE_MAX allocations on such hosts; this avoids a test and
-   branch when S is known to be 1.  */
-# ifndef xalloc_oversized
-#  define xalloc_oversized(n, s) \
-    ((size_t) (sizeof(ptrdiff_t) <= sizeof(size_t) ? -1 : -2) / (s) < (n))
-# endif
-
-
-
-/* Don't call these directly - use the macros below */
-int virAlloc(void *ptrptr, size_t size) ATTRIBUTE_RETURN_CHECK
-    ATTRIBUTE_NONNULL(1);
-int virAllocN(void *ptrptr, size_t size, size_t count) ATTRIBUTE_RETURN_CHECK
-    ATTRIBUTE_NONNULL(1);
-int virReallocN(void *ptrptr, size_t size, size_t count) ATTRIBUTE_RETURN_CHECK
-    ATTRIBUTE_NONNULL(1);
-int virExpandN(void *ptrptr, size_t size, size_t *count, size_t add)
-    ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
-int virResizeN(void *ptrptr, size_t size, size_t *alloc, size_t count,
-               size_t desired)
-    ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
-void virShrinkN(void *ptrptr, size_t size, size_t *count, size_t toremove)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
-int virInsertElementsN(void *ptrptr, size_t size, size_t at, size_t *countptr,
-                       size_t add, void *newelem,
-                       bool clearOriginal, bool inPlace)
-    ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4);
-int virDeleteElementsN(void *ptrptr, size_t size, size_t at, size_t *countptr,
-                       size_t remove, bool inPlace)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4);
-int virAllocVar(void *ptrptr,
-                size_t struct_size,
-                size_t element_size,
-                size_t count) ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1);
-void virFree(void *ptrptr) ATTRIBUTE_NONNULL(1);
-
-/**
- * VIR_ALLOC:
- * @ptr: pointer to hold address of allocated memory
- *
- * Allocate sizeof(*ptr) bytes of memory and store
- * the address of allocated memory in 'ptr'. Fill the
- * newly allocated memory with zeros.
- *
- * Returns -1 on failure, 0 on success
- */
-# define VIR_ALLOC(ptr) virAlloc(&(ptr), sizeof(*(ptr)))
-
-/**
- * VIR_ALLOC_N:
- * @ptr: pointer to hold address of allocated memory
- * @count: number of elements to allocate
- *
- * Allocate an array of 'count' elements, each sizeof(*ptr)
- * bytes long and store the address of allocated memory in
- * 'ptr'. Fill the newly allocated memory with zeros.
- *
- * Returns -1 on failure, 0 on success
- */
-# define VIR_ALLOC_N(ptr, count) virAllocN(&(ptr), sizeof(*(ptr)), (count))
-
-/**
- * VIR_REALLOC_N:
- * @ptr: pointer to hold address of allocated memory
- * @count: number of elements to allocate
- *
- * Re-allocate an array of 'count' elements, each sizeof(*ptr)
- * bytes long and store the address of allocated memory in
- * 'ptr'. If 'ptr' grew, the added memory is uninitialized.
- *
- * Returns -1 on failure, 0 on success
- */
-# define VIR_REALLOC_N(ptr, count) virReallocN(&(ptr), sizeof(*(ptr)), (count))
-
-/**
- * VIR_EXPAND_N:
- * @ptr: pointer to hold address of allocated memory
- * @count: variable tracking number of elements currently allocated
- * @add: number of elements to add
- *
- * Re-allocate an array of 'count' elements, each sizeof(*ptr)
- * bytes long, to be 'count' + 'add' elements long, then store the
- * address of allocated memory in 'ptr' and the new size in 'count'.
- * The new elements are filled with zero.
- *
- * Returns -1 on failure, 0 on success
- */
-# define VIR_EXPAND_N(ptr, count, add) \
-    virExpandN(&(ptr), sizeof(*(ptr)), &(count), add)
-
-/**
- * VIR_RESIZE_N:
- * @ptr: pointer to hold address of allocated memory
- * @alloc: variable tracking number of elements currently allocated
- * @count: number of elements currently in use
- * @add: minimum number of elements to additionally support
- *
- * Blindly using VIR_EXPAND_N(array, alloc, 1) in a loop scales
- * quadratically, because every iteration must copy contents from
- * all prior iterations.  But amortized linear scaling can be achieved
- * by tracking allocation size separately from the number of used
- * elements, and growing geometrically only as needed.
- *
- * If 'count' + 'add' is larger than 'alloc', then geometrically reallocate
- * the array of 'alloc' elements, each sizeof(*ptr) bytes long, and store
- * the address of allocated memory in 'ptr' and the new size in 'alloc'.
- * The new elements are filled with zero.
- *
- * Returns -1 on failure, 0 on success
- */
-# define VIR_RESIZE_N(ptr, alloc, count, add) \
-    virResizeN(&(ptr), sizeof(*(ptr)), &(alloc), count, add)
-
-/**
- * VIR_SHRINK_N:
- * @ptr: pointer to hold address of allocated memory
- * @count: variable tracking number of elements currently allocated
- * @remove: number of elements to remove
- *
- * Re-allocate an array of 'count' elements, each sizeof(*ptr)
- * bytes long, to be 'count' - 'remove' elements long, then store the
- * address of allocated memory in 'ptr' and the new size in 'count'.
- * If 'count' <= 'remove', the entire array is freed.
- *
- * No return value.
- */
-# define VIR_SHRINK_N(ptr, count, remove) \
-    virShrinkN(&(ptr), sizeof(*(ptr)), &(count), remove)
-
-/*
- * VIR_TYPEMATCH:
- *
- * The following macro seems a bit cryptic, so it needs a thorough
- * explanation. Its purpose is to check for assignment compatibility
- * and identical size between two values without creating any side
- * effects (by doing something silly like actually assigning one to
- * the other). Note that it takes advantage of the C89-guaranteed
- * property of sizeof() - it cannot have any side effects, so anything
- * that happens inside sizeof() will not have any effect at runtime.
- *
- * VIR_TYPEMATCH evaluates to "1" if the two passed values are both
- * assignment-compatible and the same size, and otherwise generates a
- * compile-time error. It determines the result by performing the
- * following three operations:
- *
- *    * sizeof(*(a) = *(b)) assures that *a and *b are
- *      assignment-compatible (they may still have a different size
- *      though! e.g. longVar = intVar) (If not, there is a compile-time
- *      error. If so, the result of that subexpression is sizeof(*(a)),
- *      i.e. one element of the array)
- *
- *    * sizeof(*(a) = *(b)) == sizeof(*(b)) checks if *a and *b are also
- *      of the same size (so that, e.g. you don't accidentally copy an
- *      int plus the random bytes following it into an array of long). It
- *      evaluates to 1 if they are the same, and 0 otherwise.
- *
- *    * sizeof(char[2 * (result of previous step) - 1]) evaluates to 1
- *      if the previous step was successful (char [(2*1) - 1] i.e.
- *      char[1]), or generates a compile error if it wasn't successful
- *      (char[2*0 -1] i.e. char[-1], which isn't valid in C).
- *
- * So VIR_TYPECHECK(a, b) will either abort the compile with an error,
- * or evaluate to "1", and in the meantime check that we've actually
- * added the correct &'s and/or *'s to the arguments. (Whew!)
-*/
-# define VIR_TYPEMATCH(a, b) \
-    sizeof(char[2 * (sizeof(*(a) = *(b)) == sizeof(*(b))) - 1])
-
-/**
- * VIR_INSERT_ELEMENT:
- * @ptr:     pointer to array of objects (*not* ptr to ptr)
- * @at:      index within array where new elements should be added
- * @count:   variable tracking number of elements currently allocated
- * @newelem: the new element to move into place (*not* a pointer to
- *           the element, but the element itself).
- *           (the original will be zeroed out if successful)
- *
- * Re-allocate an array of 'count' elements, each sizeof(*ptr) bytes
- * long, to be 'count' + 1 elements long, then appropriately move
- * the elements starting at ptr[at] up by 1 element, copy the
- * item 'newelem' into ptr[at], then store the address of
- * allocated memory in 'ptr' and the new size in 'count'.
- *
- * VIR_INSERT_ELEMENT_COPY is identical, but doesn't clear out the
- *   original element to 0 on success, so there are two copies of the
- *   element. This is useful if the "element" is actually just a
- *   pointer to the real data, and you want to maintain a reference to
- *   it for use after the insert is completed; but if the "element" is
- *   an object that points to other allocated memory, having multiple
- *   copies can cause problems (e.g. double free).
- *
- * VIR_INSERT_ELEMENT_*INPLACE are identical, but assume any necessary
- *   memory re-allocation has already been done.
- *
- * VIR_INSERT_ELEMENT_* all need to send "1" as the "add" argument to
- * virInsertElementsN (which has the currently-unused capability of
- * inserting multiple items at once). We use this to our advantage by
- * replacing it with VIR_TYPECHECK(ptr, &newelem) so that we can be
- * assured ptr and &newelem are of compatible types.
- *
- * Returns -1 on failure, 0 on success
- *
- *
- */
-# define VIR_INSERT_ELEMENT(ptr, at, count, newelem) \
-    virInsertElementsN(&(ptr), sizeof(*(ptr)), at, &(count),    \
-                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, false)
-# define VIR_INSERT_ELEMENT_COPY(ptr, at, count, newelem) \
-    virInsertElementsN(&(ptr), sizeof(*(ptr)), at, &(count), \
-                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, false)
-# define VIR_INSERT_ELEMENT_INPLACE(ptr, at, count, newelem) \
-    virInsertElementsN(&(ptr), sizeof(*(ptr)), at, &(count), \
-                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, true)
-# define VIR_INSERT_ELEMENT_COPY_INPLACE(ptr, at, count, newelem) \
-    virInsertElementsN(&(ptr), sizeof(*(ptr)), at, &(count), \
-                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, true)
-
-/**
- * VIR_APPEND_ELEMENT:
- * @ptr:     pointer to array of objects (*not* ptr to ptr)
- * @count:   variable tracking number of elements currently allocated
- * @newelem: the new element to move into place (*not* a pointer to
- *           the element, but the element itself).
- *           (the original will be zeroed out if successful)
- *
- * Re-allocate an array of 'count' elements, each sizeof(*ptr) bytes
- * long, to be 'count' + 1 elements long, then copy the item from
- * 'newelem' into ptr[count+1], and store the address of allocated
- * memory in 'ptr' and the new size in 'count'. If 'newelem' is NULL,
- * the new element at ptr[at] is instead filled with zero.
- *
- * VIR_APPEND_ELEMENT_COPY is identical, but doesn't clear out the
- *   original element to 0 on success, so there are two copies of the
- *   element. This is useful if the "element" is actually just a
- *   pointer to the real data, and you want to maintain a reference to
- *   it for use after the append is completed; but if the "element" is
- *   an object that points to other allocated memory, having multiple
- *   copies can cause problems (e.g. double free).
- *
- * VIR_APPEND_ELEMENT_*INPLACE are identical, but assume any
- *   necessary memory re-allocation has already been done.
- *
- * VIR_APPEND_ELEMENT_* all need to send "1" as the "add" argument to
- * virInsertElementsN (which has the currently-unused capability of
- * inserting multiple items at once). We use this to our advantage by
- * replacing it with VIR_TYPECHECK(ptr, &newelem) so that we can be
- * assured ptr and &newelem are of compatible types.
- *
- * Returns -1 on failure, 0 on success
- *
- *
- */
-# define VIR_APPEND_ELEMENT(ptr, count, newelem) \
-    virInsertElementsN(&(ptr), sizeof(*(ptr)), count, &(count),  \
-                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, false)
-# define VIR_APPEND_ELEMENT_COPY(ptr, count, newelem) \
-    virInsertElementsN(&(ptr), sizeof(*(ptr)), count, &(count),  \
-                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, false)
-# define VIR_APPEND_ELEMENT_INPLACE(ptr, count, newelem) \
-    virInsertElementsN(&(ptr), sizeof(*(ptr)), count, &(count),  \
-                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, true)
-# define VIR_APPEND_ELEMENT_COPY_INPLACE(ptr, count, newelem) \
-    virInsertElementsN(&(ptr), sizeof(*(ptr)), count, &(count),  \
-                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, true)
-
-/**
- * VIR_DELETE_ELEMENT:
- * @ptr:   pointer to array of objects (*not* ptr to ptr)
- * @at:    index within array where new elements should be deleted
- * @count: variable tracking number of elements currently allocated
- *
- * Re-allocate an array of 'count' elements, each sizeof(*ptr)
- * bytes long, to be 'count' - 1 elements long, then store the
- * address of allocated memory in 'ptr' and the new size in 'count'.
- * If 'count' <= 1, the entire array is freed.
- *
- * VIR_DELETE_ELEMENT_INPLACE is identical, but assumes any
- *   necessary memory re-allocation will be done later.
- *
- * Returns -1 on failure, 0 on success
- */
-# define VIR_DELETE_ELEMENT(ptr, at, count) \
-    virDeleteElementsN(&(ptr), sizeof(*(ptr)), at, &(count), 1, false)
-# define VIR_DELETE_ELEMENT_INPLACE(ptr, at, count) \
-    virDeleteElementsN(&(ptr), sizeof(*(ptr)), at, &(count), 1, true)
-
-/*
- * VIR_ALLOC_VAR_OVERSIZED:
- * @M: size of base structure
- * @N: number of array elements in trailing array
- * @S: size of trailing array elements
- *
- * Check to make sure that the requested allocation will not cause
- * arithmetic overflow in the allocation size.  The check is
- * essentially the same as that in gnulib's xalloc_oversized.
- */
-# define VIR_ALLOC_VAR_OVERSIZED(M, N, S) ((((size_t)-1) - (M)) / (S) < (N))
-
-/**
- * VIR_ALLOC_VAR:
- * @ptr: pointer to hold address of allocated memory
- * @type: element type of trailing array
- * @count: number of array elements to allocate
- *
- * Allocate sizeof(*ptr) bytes plus an array of 'count' elements, each
- * sizeof('type').  This sort of allocation is useful for receiving
- * the data of certain ioctls and other APIs which return a struct in
- * which the last element is an array of undefined length.  The caller
- * of this type of API is expected to know the length of the array
- * that will be returned and allocate a suitable buffer to contain the
- * returned data.  C99 refers to these variable length objects as
- * structs containing flexible array members.
-
- * Returns -1 on failure, 0 on success
- */
-# define VIR_ALLOC_VAR(ptr, type, count) \
-    virAllocVar(&(ptr), sizeof(*(ptr)), sizeof(type), (count))
-
-/**
- * VIR_FREE:
- * @ptr: pointer holding address to be freed
- *
- * Free the memory stored in 'ptr' and update to point
- * to NULL.
- */
-/* The ternary ensures that ptr is a pointer and not an integer type,
- * while evaluating ptr only once.  For now, we intentionally cast
- * away const, since a number of callers safely pass const char *.
- */
-# define VIR_FREE(ptr) virFree((void *) (1 ? (const void *) &(ptr) : (ptr)))
-
-
-# if TEST_OOM
-void virAllocTestInit(void);
-int virAllocTestCount(void);
-void virAllocTestOOM(int n, int m);
-void virAllocTestHook(void (*func)(int, void*), void *data);
-# endif
-
-
-
-#endif /* __VIR_MEMORY_H_ */
diff --git a/src/util/pci.c b/src/util/pci.c
index 7adce75..e4009fa 100644
--- a/src/util/pci.c
+++ b/src/util/pci.c
@@ -35,7 +35,7 @@
 #include <stdlib.h>
 
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "vircommand.h"
 #include "virterror_internal.h"
 #include "virfile.h"
diff --git a/src/util/sexpr.c b/src/util/sexpr.c
index f72b7d7..ae0cc18 100644
--- a/src/util/sexpr.c
+++ b/src/util/sexpr.c
@@ -20,7 +20,7 @@
 #include "virterror_internal.h"
 #include "sexpr.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_SEXPR
 
diff --git a/src/util/stats_linux.c b/src/util/stats_linux.c
index 2dfc30d..67ef82e 100644
--- a/src/util/stats_linux.c
+++ b/src/util/stats_linux.c
@@ -36,7 +36,7 @@
 # include "datatypes.h"
 # include "util.h"
 # include "stats_linux.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "virfile.h"
 
 # define VIR_FROM_THIS VIR_FROM_STATS_LINUX
diff --git a/src/util/storage_file.c b/src/util/storage_file.c
index 6c3390b..a020bb2 100644
--- a/src/util/storage_file.c
+++ b/src/util/storage_file.c
@@ -35,7 +35,7 @@
 # include <sys/statfs.h>
 #endif
 #include "dirname.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/util/sysinfo.c b/src/util/sysinfo.c
index 5690f95..667e6a2 100644
--- a/src/util/sysinfo.c
+++ b/src/util/sysinfo.c
@@ -34,7 +34,7 @@
 #include "sysinfo.h"
 #include "util.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "vircommand.h"
 
 #define VIR_FROM_THIS VIR_FROM_SYSINFO
diff --git a/src/util/threadpool.c b/src/util/threadpool.c
index ffbbe72..9d3d5d2 100644
--- a/src/util/threadpool.c
+++ b/src/util/threadpool.c
@@ -26,7 +26,7 @@
 #include <config.h>
 
 #include "threadpool.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "virterror_internal.h"
 
diff --git a/src/util/threads-pthread.c b/src/util/threads-pthread.c
index 44e8bc0..37d8902 100644
--- a/src/util/threads-pthread.c
+++ b/src/util/threads-pthread.c
@@ -27,7 +27,7 @@
 # include <sys/syscall.h>
 #endif
 
-#include "memory.h"
+#include "viralloc.h"
 
 
 /* Nothing special required for pthreads */
diff --git a/src/util/threads-win32.c b/src/util/threads-win32.c
index 142aa4f..c9f16c1 100644
--- a/src/util/threads-win32.c
+++ b/src/util/threads-win32.c
@@ -23,7 +23,7 @@
 
 #include <process.h>
 
-#include "memory.h"
+#include "viralloc.h"
 
 struct virThreadLocalData {
     DWORD key;
diff --git a/src/util/util.c b/src/util/util.c
index f941dfd..c070d94 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -80,7 +80,7 @@
 #include "virbuffer.h"
 #include "util.h"
 #include "storage_file.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "verify.h"
 #include "virfile.h"
diff --git a/src/util/uuid.c b/src/util/uuid.c
index 6efc7be..5232ba9 100644
--- a/src/util/uuid.c
+++ b/src/util/uuid.c
@@ -38,7 +38,7 @@
 #include "util.h"
 #include "virterror_internal.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 #include "virrandom.h"
 
diff --git a/src/util/viralloc.c b/src/util/viralloc.c
new file mode 100644
index 0000000..628145f
--- /dev/null
+++ b/src/util/viralloc.c
@@ -0,0 +1,422 @@
+/*
+ * memory.c: safer memory allocation
+ *
+ * Copyright (C) 2010-2012 Red Hat, Inc.
+ * Copyright (C) 2008 Daniel P. Berrange
+ *
+ * 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/>.
+ *
+ */
+
+#include <config.h>
+#include <stdlib.h>
+
+#include "viralloc.h"
+#include "virlog.h"
+
+#if TEST_OOM
+static int testMallocNext = 0;
+static int testMallocFailFirst = 0;
+static int testMallocFailLast = 0;
+static void (*testMallocHook)(int, void*) = NULL;
+static void *testMallocHookData = NULL;
+
+void virAllocTestInit(void)
+{
+    testMallocNext = 1;
+    testMallocFailFirst = 0;
+    testMallocFailLast = 0;
+}
+
+int virAllocTestCount(void)
+{
+    return testMallocNext - 1;
+}
+
+void virAllocTestHook(void (*func)(int, void*), void *data)
+{
+    testMallocHook = func;
+    testMallocHookData = data;
+}
+
+void virAllocTestOOM(int n, int m)
+{
+    testMallocNext = 1;
+    testMallocFailFirst = n;
+    testMallocFailLast = n + m - 1;
+}
+
+static int virAllocTestFail(void)
+{
+    int fail = 0;
+    if (testMallocNext == 0)
+        return 0;
+
+    fail =
+        testMallocNext >= testMallocFailFirst &&
+        testMallocNext <= testMallocFailLast;
+
+    if (fail && testMallocHook)
+        (testMallocHook)(testMallocNext, testMallocHookData);
+
+    testMallocNext++;
+    return fail;
+}
+#endif
+
+
+/**
+ * virAlloc:
+ * @ptrptr: pointer to pointer for address of allocated memory
+ * @size: number of bytes to allocate
+ *
+ * Allocate  'size' bytes of memory. Return the address of the
+ * allocated memory in 'ptrptr'. The newly allocated memory is
+ * filled with zeros.
+ *
+ * Returns -1 on failure to allocate, zero on success
+ */
+int virAlloc(void *ptrptr, size_t size)
+{
+#if TEST_OOM
+    if (virAllocTestFail()) {
+        *(void **)ptrptr = NULL;
+        return -1;
+    }
+#endif
+
+    *(void **)ptrptr = calloc(1, size);
+    if (*(void **)ptrptr == NULL)
+        return -1;
+    return 0;
+}
+
+/**
+ * virAllocN:
+ * @ptrptr: pointer to pointer for address of allocated memory
+ * @size: number of bytes to allocate
+ * @count: number of elements to allocate
+ *
+ * Allocate an array of memory 'count' elements long,
+ * each with 'size' bytes. Return the address of the
+ * allocated memory in 'ptrptr'.  The newly allocated
+ * memory is filled with zeros.
+ *
+ * Returns -1 on failure to allocate, zero on success
+ */
+int virAllocN(void *ptrptr, size_t size, size_t count)
+{
+#if TEST_OOM
+    if (virAllocTestFail()) {
+        *(void **)ptrptr = NULL;
+        return -1;
+    }
+#endif
+
+    *(void**)ptrptr = calloc(count, size);
+    if (*(void**)ptrptr == NULL)
+        return -1;
+    return 0;
+}
+
+/**
+ * virReallocN:
+ * @ptrptr: pointer to pointer for address of allocated memory
+ * @size: number of bytes to allocate
+ * @count: number of elements in array
+ *
+ * Resize the block of memory in 'ptrptr' to be an array of
+ * 'count' elements, each 'size' bytes in length. Update 'ptrptr'
+ * with the address of the newly allocated memory. On failure,
+ * 'ptrptr' is not changed and still points to the original memory
+ * block. Any newly allocated memory in 'ptrptr' is uninitialized.
+ *
+ * Returns -1 on failure to allocate, zero on success
+ */
+int virReallocN(void *ptrptr, size_t size, size_t count)
+{
+    void *tmp;
+#if TEST_OOM
+    if (virAllocTestFail())
+        return -1;
+#endif
+
+    if (xalloc_oversized(count, size)) {
+        errno = ENOMEM;
+        return -1;
+    }
+    tmp = realloc(*(void**)ptrptr, size * count);
+    if (!tmp && (size * count))
+        return -1;
+    *(void**)ptrptr = tmp;
+    return 0;
+}
+
+/**
+ * virExpandN:
+ * @ptrptr: pointer to pointer for address of allocated memory
+ * @size: number of bytes per element
+ * @countptr: pointer to number of elements in array
+ * @add: number of elements to add
+ *
+ * Resize the block of memory in 'ptrptr' to be an array of
+ * '*countptr' + 'add' elements, each 'size' bytes in length.
+ * Update 'ptrptr' and 'countptr'  with the details of the newly
+ * allocated memory. On failure, 'ptrptr' and 'countptr' are not
+ * changed. Any newly allocated memory in 'ptrptr' is zero-filled.
+ *
+ * Returns -1 on failure to allocate, zero on success
+ */
+int virExpandN(void *ptrptr, size_t size, size_t *countptr, size_t add)
+{
+    int ret;
+
+    if (*countptr + add < *countptr) {
+        errno = ENOMEM;
+        return -1;
+    }
+    ret = virReallocN(ptrptr, size, *countptr + add);
+    if (ret == 0) {
+        memset(*(char **)ptrptr + (size * *countptr), 0, size * add);
+        *countptr += add;
+    }
+    return ret;
+}
+
+/**
+ * virResizeN:
+ * @ptrptr: pointer to pointer for address of allocated memory
+ * @size: number of bytes per element
+ * @allocptr: pointer to number of elements allocated in array
+ * @count: number of elements currently used in array
+ * @add: minimum number of additional elements to support in array
+ *
+ * If 'count' + 'add' is larger than '*allocptr', then resize the
+ * block of memory in 'ptrptr' to be an array of at least 'count' +
+ * 'add' elements, each 'size' bytes in length. Update 'ptrptr' and
+ * 'allocptr' with the details of the newly allocated memory. On
+ * failure, 'ptrptr' and 'allocptr' are not changed. Any newly
+ * allocated memory in 'ptrptr' is zero-filled.
+ *
+ * Returns -1 on failure to allocate, zero on success
+ */
+int virResizeN(void *ptrptr, size_t size, size_t *allocptr, size_t count,
+               size_t add)
+{
+    size_t delta;
+
+    if (count + add < count) {
+        errno = ENOMEM;
+        return -1;
+    }
+    if (count + add <= *allocptr)
+        return 0;
+
+    delta = count + add - *allocptr;
+    if (delta < *allocptr / 2)
+        delta = *allocptr / 2;
+    return virExpandN(ptrptr, size, allocptr, delta);
+}
+
+/**
+ * virShrinkN:
+ * @ptrptr: pointer to pointer for address of allocated memory
+ * @size: number of bytes per element
+ * @countptr: pointer to number of elements in array
+ * @toremove: number of elements to remove
+ *
+ * Resize the block of memory in 'ptrptr' to be an array of
+ * '*countptr' - 'toremove' elements, each 'size' bytes in length.
+ * Update 'ptrptr' and 'countptr'  with the details of the newly
+ * allocated memory. If 'toremove' is larger than 'countptr', free
+ * the entire array.
+ */
+void virShrinkN(void *ptrptr, size_t size, size_t *countptr, size_t toremove)
+{
+    if (toremove < *countptr)
+        ignore_value(virReallocN(ptrptr, size, *countptr -= toremove));
+    else {
+        virFree(ptrptr);
+        *countptr = 0;
+    }
+}
+
+/**
+ * virInsertElementsN:
+ * @ptrptr:   pointer to hold address of allocated memory
+ * @size:     the size of one element in bytes
+ * @at:       index within array where new elements should be added
+ * @countptr: variable tracking number of elements currently allocated
+ * @add:      number of elements to add
+ * @newelems: pointer to array of one or more new elements to move into
+ *            place (the originals will be zeroed out if successful
+ *            and if clearOriginal is true)
+ * @clearOriginal: false if the new item in the array should be copied
+ *            from the original, and the original left intact.
+ *            true if the original should be 0'd out on success.
+ * @inPlace:  false if we should expand the allocated memory before
+ *            moving, true if we should assume someone else *has
+ *            already* done that.
+ *
+ * Re-allocate an array of *countptr elements, each sizeof(*ptrptr) bytes
+ * long, to be *countptr+add elements long, then appropriately move
+ * the elements starting at ptrptr[at] up by add elements, copy the
+ * items from newelems into ptrptr[at], then store the address of
+ * allocated memory in *ptrptr and the new size in *countptr.  If
+ * newelems is NULL, the new elements at ptrptr[at] are instead filled
+ * with zero.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+int
+virInsertElementsN(void *ptrptr, size_t size, size_t at,
+                   size_t *countptr,
+                   size_t add, void *newelems,
+                   bool clearOriginal, bool inPlace)
+{
+    if (at > *countptr) {
+        VIR_WARN("out of bounds index - count %zu at %zu add %zu",
+                 *countptr, at, add);
+        return -1;
+    }
+
+    if (inPlace) {
+        *countptr += add;
+    } else if (virExpandN(ptrptr, size, countptr, add) < 0) {
+        return -1;
+    }
+
+    /* memory was successfully re-allocated. Move up all elements from
+     * ptrptr[at] to the end (if we're not "inserting" at the end
+     * already), memcpy in the new elements, and clear the elements
+     * from their original location. Remember that *countptr has
+     * already been updated with new element count!
+     */
+    if (at < *countptr - add) {
+        memmove(*(char**)ptrptr + (size * (at + add)),
+                *(char**)ptrptr + (size * at),
+                size * (*countptr - add - at));
+    }
+
+    if (newelems) {
+        memcpy(*(char**)ptrptr + (size * at), newelems, size * add);
+        if (clearOriginal)
+           memset((char*)newelems, 0, size * add);
+    } else if (inPlace || (at < *countptr - add)) {
+        /* NB: if inPlace, assume memory at the end wasn't initialized */
+        memset(*(char**)ptrptr + (size * at), 0, size * add);
+    }
+
+    return 0;
+}
+
+/**
+ * virDeleteElementsN:
+ * @ptrptr:   pointer to hold address of allocated memory
+ * @size:     the size of one element in bytes
+ * @at:       index within array where new elements should be deleted
+ * @countptr: variable tracking number of elements currently allocated
+ * @remove:   number of elements to remove
+ * @inPlace:  false if we should shrink the allocated memory when done,
+ *            true if we should assume someone else will do that.
+ *
+ * Re-allocate an array of *countptr elements, each sizeof(*ptrptr)
+ * bytes long, to be *countptr-remove elements long, then store the
+ * address of allocated memory in *ptrptr and the new size in *countptr.
+ * If *countptr <= remove, the entire array is freed.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+int
+virDeleteElementsN(void *ptrptr, size_t size, size_t at,
+                   size_t *countptr, size_t remove,
+                   bool inPlace)
+{
+    if (at + remove > *countptr) {
+        VIR_WARN("out of bounds index - count %zu at %zu remove %zu",
+                 *countptr, at, remove);
+        return -1;
+    }
+
+    /* First move down the elements at the end that won't be deleted,
+     * then realloc. We assume that the items being deleted have
+     * already been cleared.
+    */
+    memmove(*(char**)ptrptr + (size * at),
+            *(char**)ptrptr + (size * (at + remove)),
+            size * (*countptr - remove - at));
+    if (inPlace)
+        *countptr -= remove;
+    else
+        virShrinkN(ptrptr, size, countptr, remove);
+    return 0;
+}
+
+/**
+ * Vir_Alloc_Var:
+ * @ptrptr: pointer to hold address of allocated memory
+ * @struct_size: size of initial struct
+ * @element_size: size of array elements
+ * @count: number of array elements to allocate
+ *
+ * Allocate struct_size bytes plus an array of 'count' elements, each
+ * of size element_size.  This sort of allocation is useful for
+ * receiving the data of certain ioctls and other APIs which return a
+ * struct in which the last element is an array of undefined length.
+ * The caller of this type of API is expected to know the length of
+ * the array that will be returned and allocate a suitable buffer to
+ * contain the returned data.  C99 refers to these variable length
+ * objects as structs containing flexible array members.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+int virAllocVar(void *ptrptr, size_t struct_size, size_t element_size, size_t count)
+{
+    size_t alloc_size = 0;
+
+#if TEST_OOM
+    if (virAllocTestFail())
+        return -1;
+#endif
+
+    if (VIR_ALLOC_VAR_OVERSIZED(struct_size, count, element_size)) {
+        errno = ENOMEM;
+        return -1;
+    }
+
+    alloc_size = struct_size + (element_size * count);
+    *(void **)ptrptr = calloc(1, alloc_size);
+    if (*(void **)ptrptr == NULL)
+        return -1;
+    return 0;
+}
+
+
+/**
+ * virFree:
+ * @ptrptr: pointer to pointer for address of memory to be freed
+ *
+ * Release the chunk of memory in the pointer pointed to by
+ * the 'ptrptr' variable. After release, 'ptrptr' will be
+ * updated to point to NULL.
+ */
+void virFree(void *ptrptr)
+{
+    int save_errno = errno;
+
+    free(*(void**)ptrptr);
+    *(void**)ptrptr = NULL;
+    errno = save_errno;
+}
diff --git a/src/util/viralloc.h b/src/util/viralloc.h
new file mode 100644
index 0000000..8398105
--- /dev/null
+++ b/src/util/viralloc.h
@@ -0,0 +1,380 @@
+/*
+ * memory.c: safer memory allocation
+ *
+ * Copyright (C) 2010-2012 Red Hat, Inc.
+ * Copyright (C) 2008 Daniel P. Berrange
+ *
+ * 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 __VIR_MEMORY_H_
+# define __VIR_MEMORY_H_
+
+# include "internal.h"
+
+/* Return 1 if an array of N objects, each of size S, cannot exist due
+   to size arithmetic overflow.  S must be positive and N must be
+   nonnegative.  This is a macro, not an inline function, so that it
+   works correctly even when SIZE_MAX < N.
+
+   By gnulib convention, SIZE_MAX represents overflow in size
+   calculations, so the conservative dividend to use here is
+   SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
+   However, malloc (SIZE_MAX) fails on all known hosts where
+   sizeof(ptrdiff_t) <= sizeof(size_t), so do not bother to test for
+   exactly-SIZE_MAX allocations on such hosts; this avoids a test and
+   branch when S is known to be 1.  */
+# ifndef xalloc_oversized
+#  define xalloc_oversized(n, s) \
+    ((size_t) (sizeof(ptrdiff_t) <= sizeof(size_t) ? -1 : -2) / (s) < (n))
+# endif
+
+
+
+/* Don't call these directly - use the macros below */
+int virAlloc(void *ptrptr, size_t size) ATTRIBUTE_RETURN_CHECK
+    ATTRIBUTE_NONNULL(1);
+int virAllocN(void *ptrptr, size_t size, size_t count) ATTRIBUTE_RETURN_CHECK
+    ATTRIBUTE_NONNULL(1);
+int virReallocN(void *ptrptr, size_t size, size_t count) ATTRIBUTE_RETURN_CHECK
+    ATTRIBUTE_NONNULL(1);
+int virExpandN(void *ptrptr, size_t size, size_t *count, size_t add)
+    ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
+int virResizeN(void *ptrptr, size_t size, size_t *alloc, size_t count,
+               size_t desired)
+    ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
+void virShrinkN(void *ptrptr, size_t size, size_t *count, size_t toremove)
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
+int virInsertElementsN(void *ptrptr, size_t size, size_t at, size_t *countptr,
+                       size_t add, void *newelem,
+                       bool clearOriginal, bool inPlace)
+    ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4);
+int virDeleteElementsN(void *ptrptr, size_t size, size_t at, size_t *countptr,
+                       size_t remove, bool inPlace)
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4);
+int virAllocVar(void *ptrptr,
+                size_t struct_size,
+                size_t element_size,
+                size_t count) ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1);
+void virFree(void *ptrptr) ATTRIBUTE_NONNULL(1);
+
+/**
+ * VIR_ALLOC:
+ * @ptr: pointer to hold address of allocated memory
+ *
+ * Allocate sizeof(*ptr) bytes of memory and store
+ * the address of allocated memory in 'ptr'. Fill the
+ * newly allocated memory with zeros.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+# define VIR_ALLOC(ptr) virAlloc(&(ptr), sizeof(*(ptr)))
+
+/**
+ * VIR_ALLOC_N:
+ * @ptr: pointer to hold address of allocated memory
+ * @count: number of elements to allocate
+ *
+ * Allocate an array of 'count' elements, each sizeof(*ptr)
+ * bytes long and store the address of allocated memory in
+ * 'ptr'. Fill the newly allocated memory with zeros.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+# define VIR_ALLOC_N(ptr, count) virAllocN(&(ptr), sizeof(*(ptr)), (count))
+
+/**
+ * VIR_REALLOC_N:
+ * @ptr: pointer to hold address of allocated memory
+ * @count: number of elements to allocate
+ *
+ * Re-allocate an array of 'count' elements, each sizeof(*ptr)
+ * bytes long and store the address of allocated memory in
+ * 'ptr'. If 'ptr' grew, the added memory is uninitialized.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+# define VIR_REALLOC_N(ptr, count) virReallocN(&(ptr), sizeof(*(ptr)), (count))
+
+/**
+ * VIR_EXPAND_N:
+ * @ptr: pointer to hold address of allocated memory
+ * @count: variable tracking number of elements currently allocated
+ * @add: number of elements to add
+ *
+ * Re-allocate an array of 'count' elements, each sizeof(*ptr)
+ * bytes long, to be 'count' + 'add' elements long, then store the
+ * address of allocated memory in 'ptr' and the new size in 'count'.
+ * The new elements are filled with zero.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+# define VIR_EXPAND_N(ptr, count, add) \
+    virExpandN(&(ptr), sizeof(*(ptr)), &(count), add)
+
+/**
+ * VIR_RESIZE_N:
+ * @ptr: pointer to hold address of allocated memory
+ * @alloc: variable tracking number of elements currently allocated
+ * @count: number of elements currently in use
+ * @add: minimum number of elements to additionally support
+ *
+ * Blindly using VIR_EXPAND_N(array, alloc, 1) in a loop scales
+ * quadratically, because every iteration must copy contents from
+ * all prior iterations.  But amortized linear scaling can be achieved
+ * by tracking allocation size separately from the number of used
+ * elements, and growing geometrically only as needed.
+ *
+ * If 'count' + 'add' is larger than 'alloc', then geometrically reallocate
+ * the array of 'alloc' elements, each sizeof(*ptr) bytes long, and store
+ * the address of allocated memory in 'ptr' and the new size in 'alloc'.
+ * The new elements are filled with zero.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+# define VIR_RESIZE_N(ptr, alloc, count, add) \
+    virResizeN(&(ptr), sizeof(*(ptr)), &(alloc), count, add)
+
+/**
+ * VIR_SHRINK_N:
+ * @ptr: pointer to hold address of allocated memory
+ * @count: variable tracking number of elements currently allocated
+ * @remove: number of elements to remove
+ *
+ * Re-allocate an array of 'count' elements, each sizeof(*ptr)
+ * bytes long, to be 'count' - 'remove' elements long, then store the
+ * address of allocated memory in 'ptr' and the new size in 'count'.
+ * If 'count' <= 'remove', the entire array is freed.
+ *
+ * No return value.
+ */
+# define VIR_SHRINK_N(ptr, count, remove) \
+    virShrinkN(&(ptr), sizeof(*(ptr)), &(count), remove)
+
+/*
+ * VIR_TYPEMATCH:
+ *
+ * The following macro seems a bit cryptic, so it needs a thorough
+ * explanation. Its purpose is to check for assignment compatibility
+ * and identical size between two values without creating any side
+ * effects (by doing something silly like actually assigning one to
+ * the other). Note that it takes advantage of the C89-guaranteed
+ * property of sizeof() - it cannot have any side effects, so anything
+ * that happens inside sizeof() will not have any effect at runtime.
+ *
+ * VIR_TYPEMATCH evaluates to "1" if the two passed values are both
+ * assignment-compatible and the same size, and otherwise generates a
+ * compile-time error. It determines the result by performing the
+ * following three operations:
+ *
+ *    * sizeof(*(a) = *(b)) assures that *a and *b are
+ *      assignment-compatible (they may still have a different size
+ *      though! e.g. longVar = intVar) (If not, there is a compile-time
+ *      error. If so, the result of that subexpression is sizeof(*(a)),
+ *      i.e. one element of the array)
+ *
+ *    * sizeof(*(a) = *(b)) == sizeof(*(b)) checks if *a and *b are also
+ *      of the same size (so that, e.g. you don't accidentally copy an
+ *      int plus the random bytes following it into an array of long). It
+ *      evaluates to 1 if they are the same, and 0 otherwise.
+ *
+ *    * sizeof(char[2 * (result of previous step) - 1]) evaluates to 1
+ *      if the previous step was successful (char [(2*1) - 1] i.e.
+ *      char[1]), or generates a compile error if it wasn't successful
+ *      (char[2*0 -1] i.e. char[-1], which isn't valid in C).
+ *
+ * So VIR_TYPECHECK(a, b) will either abort the compile with an error,
+ * or evaluate to "1", and in the meantime check that we've actually
+ * added the correct &'s and/or *'s to the arguments. (Whew!)
+*/
+# define VIR_TYPEMATCH(a, b) \
+    sizeof(char[2 * (sizeof(*(a) = *(b)) == sizeof(*(b))) - 1])
+
+/**
+ * VIR_INSERT_ELEMENT:
+ * @ptr:     pointer to array of objects (*not* ptr to ptr)
+ * @at:      index within array where new elements should be added
+ * @count:   variable tracking number of elements currently allocated
+ * @newelem: the new element to move into place (*not* a pointer to
+ *           the element, but the element itself).
+ *           (the original will be zeroed out if successful)
+ *
+ * Re-allocate an array of 'count' elements, each sizeof(*ptr) bytes
+ * long, to be 'count' + 1 elements long, then appropriately move
+ * the elements starting at ptr[at] up by 1 element, copy the
+ * item 'newelem' into ptr[at], then store the address of
+ * allocated memory in 'ptr' and the new size in 'count'.
+ *
+ * VIR_INSERT_ELEMENT_COPY is identical, but doesn't clear out the
+ *   original element to 0 on success, so there are two copies of the
+ *   element. This is useful if the "element" is actually just a
+ *   pointer to the real data, and you want to maintain a reference to
+ *   it for use after the insert is completed; but if the "element" is
+ *   an object that points to other allocated memory, having multiple
+ *   copies can cause problems (e.g. double free).
+ *
+ * VIR_INSERT_ELEMENT_*INPLACE are identical, but assume any necessary
+ *   memory re-allocation has already been done.
+ *
+ * VIR_INSERT_ELEMENT_* all need to send "1" as the "add" argument to
+ * virInsertElementsN (which has the currently-unused capability of
+ * inserting multiple items at once). We use this to our advantage by
+ * replacing it with VIR_TYPECHECK(ptr, &newelem) so that we can be
+ * assured ptr and &newelem are of compatible types.
+ *
+ * Returns -1 on failure, 0 on success
+ *
+ *
+ */
+# define VIR_INSERT_ELEMENT(ptr, at, count, newelem) \
+    virInsertElementsN(&(ptr), sizeof(*(ptr)), at, &(count),    \
+                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, false)
+# define VIR_INSERT_ELEMENT_COPY(ptr, at, count, newelem) \
+    virInsertElementsN(&(ptr), sizeof(*(ptr)), at, &(count), \
+                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, false)
+# define VIR_INSERT_ELEMENT_INPLACE(ptr, at, count, newelem) \
+    virInsertElementsN(&(ptr), sizeof(*(ptr)), at, &(count), \
+                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, true)
+# define VIR_INSERT_ELEMENT_COPY_INPLACE(ptr, at, count, newelem) \
+    virInsertElementsN(&(ptr), sizeof(*(ptr)), at, &(count), \
+                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, true)
+
+/**
+ * VIR_APPEND_ELEMENT:
+ * @ptr:     pointer to array of objects (*not* ptr to ptr)
+ * @count:   variable tracking number of elements currently allocated
+ * @newelem: the new element to move into place (*not* a pointer to
+ *           the element, but the element itself).
+ *           (the original will be zeroed out if successful)
+ *
+ * Re-allocate an array of 'count' elements, each sizeof(*ptr) bytes
+ * long, to be 'count' + 1 elements long, then copy the item from
+ * 'newelem' into ptr[count+1], and store the address of allocated
+ * memory in 'ptr' and the new size in 'count'. If 'newelem' is NULL,
+ * the new element at ptr[at] is instead filled with zero.
+ *
+ * VIR_APPEND_ELEMENT_COPY is identical, but doesn't clear out the
+ *   original element to 0 on success, so there are two copies of the
+ *   element. This is useful if the "element" is actually just a
+ *   pointer to the real data, and you want to maintain a reference to
+ *   it for use after the append is completed; but if the "element" is
+ *   an object that points to other allocated memory, having multiple
+ *   copies can cause problems (e.g. double free).
+ *
+ * VIR_APPEND_ELEMENT_*INPLACE are identical, but assume any
+ *   necessary memory re-allocation has already been done.
+ *
+ * VIR_APPEND_ELEMENT_* all need to send "1" as the "add" argument to
+ * virInsertElementsN (which has the currently-unused capability of
+ * inserting multiple items at once). We use this to our advantage by
+ * replacing it with VIR_TYPECHECK(ptr, &newelem) so that we can be
+ * assured ptr and &newelem are of compatible types.
+ *
+ * Returns -1 on failure, 0 on success
+ *
+ *
+ */
+# define VIR_APPEND_ELEMENT(ptr, count, newelem) \
+    virInsertElementsN(&(ptr), sizeof(*(ptr)), count, &(count),  \
+                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, false)
+# define VIR_APPEND_ELEMENT_COPY(ptr, count, newelem) \
+    virInsertElementsN(&(ptr), sizeof(*(ptr)), count, &(count),  \
+                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, false)
+# define VIR_APPEND_ELEMENT_INPLACE(ptr, count, newelem) \
+    virInsertElementsN(&(ptr), sizeof(*(ptr)), count, &(count),  \
+                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, true)
+# define VIR_APPEND_ELEMENT_COPY_INPLACE(ptr, count, newelem) \
+    virInsertElementsN(&(ptr), sizeof(*(ptr)), count, &(count),  \
+                       VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, true)
+
+/**
+ * VIR_DELETE_ELEMENT:
+ * @ptr:   pointer to array of objects (*not* ptr to ptr)
+ * @at:    index within array where new elements should be deleted
+ * @count: variable tracking number of elements currently allocated
+ *
+ * Re-allocate an array of 'count' elements, each sizeof(*ptr)
+ * bytes long, to be 'count' - 1 elements long, then store the
+ * address of allocated memory in 'ptr' and the new size in 'count'.
+ * If 'count' <= 1, the entire array is freed.
+ *
+ * VIR_DELETE_ELEMENT_INPLACE is identical, but assumes any
+ *   necessary memory re-allocation will be done later.
+ *
+ * Returns -1 on failure, 0 on success
+ */
+# define VIR_DELETE_ELEMENT(ptr, at, count) \
+    virDeleteElementsN(&(ptr), sizeof(*(ptr)), at, &(count), 1, false)
+# define VIR_DELETE_ELEMENT_INPLACE(ptr, at, count) \
+    virDeleteElementsN(&(ptr), sizeof(*(ptr)), at, &(count), 1, true)
+
+/*
+ * VIR_ALLOC_VAR_OVERSIZED:
+ * @M: size of base structure
+ * @N: number of array elements in trailing array
+ * @S: size of trailing array elements
+ *
+ * Check to make sure that the requested allocation will not cause
+ * arithmetic overflow in the allocation size.  The check is
+ * essentially the same as that in gnulib's xalloc_oversized.
+ */
+# define VIR_ALLOC_VAR_OVERSIZED(M, N, S) ((((size_t)-1) - (M)) / (S) < (N))
+
+/**
+ * VIR_ALLOC_VAR:
+ * @ptr: pointer to hold address of allocated memory
+ * @type: element type of trailing array
+ * @count: number of array elements to allocate
+ *
+ * Allocate sizeof(*ptr) bytes plus an array of 'count' elements, each
+ * sizeof('type').  This sort of allocation is useful for receiving
+ * the data of certain ioctls and other APIs which return a struct in
+ * which the last element is an array of undefined length.  The caller
+ * of this type of API is expected to know the length of the array
+ * that will be returned and allocate a suitable buffer to contain the
+ * returned data.  C99 refers to these variable length objects as
+ * structs containing flexible array members.
+
+ * Returns -1 on failure, 0 on success
+ */
+# define VIR_ALLOC_VAR(ptr, type, count) \
+    virAllocVar(&(ptr), sizeof(*(ptr)), sizeof(type), (count))
+
+/**
+ * VIR_FREE:
+ * @ptr: pointer holding address to be freed
+ *
+ * Free the memory stored in 'ptr' and update to point
+ * to NULL.
+ */
+/* The ternary ensures that ptr is a pointer and not an integer type,
+ * while evaluating ptr only once.  For now, we intentionally cast
+ * away const, since a number of callers safely pass const char *.
+ */
+# define VIR_FREE(ptr) virFree((void *) (1 ? (const void *) &(ptr) : (ptr)))
+
+
+# if TEST_OOM
+void virAllocTestInit(void);
+int virAllocTestCount(void);
+void virAllocTestOOM(int n, int m);
+void virAllocTestHook(void (*func)(int, void*), void *data);
+# endif
+
+
+
+#endif /* __VIR_MEMORY_H_ */
diff --git a/src/util/viraudit.c b/src/util/viraudit.c
index c4e0129..a807b76 100644
--- a/src/util/viraudit.c
+++ b/src/util/viraudit.c
@@ -32,7 +32,7 @@
 #include "viraudit.h"
 #include "util.h"
 #include "virfile.h"
-#include "memory.h"
+#include "viralloc.h"
 
 /* Provide the macros in case the header file is old.
    FIXME: should be removed. */
diff --git a/src/util/virauth.c b/src/util/virauth.c
index a1bad6a..c4c5676 100644
--- a/src/util/virauth.c
+++ b/src/util/virauth.c
@@ -26,7 +26,7 @@
 
 #include "virauth.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "datatypes.h"
 #include "virterror_internal.h"
diff --git a/src/util/virauthconfig.c b/src/util/virauthconfig.c
index 46ba040..a0f0be5 100644
--- a/src/util/virauthconfig.c
+++ b/src/util/virauthconfig.c
@@ -25,7 +25,7 @@
 #include "virauthconfig.h"
 
 #include "virkeyfile.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virlog.h"
 #include "virterror_internal.h"
diff --git a/src/util/virbitmap.c b/src/util/virbitmap.c
index 41b74d4..cb9606b 100644
--- a/src/util/virbitmap.c
+++ b/src/util/virbitmap.c
@@ -31,7 +31,7 @@
 #include <sys/types.h>
 
 #include "virbitmap.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virbuffer.h"
 #include "util.h"
 #include "c-ctype.h"
diff --git a/src/util/virbuffer.c b/src/util/virbuffer.c
index e4409c6..6fcb7d6 100644
--- a/src/util/virbuffer.c
+++ b/src/util/virbuffer.c
@@ -31,7 +31,7 @@
 #define __VIR_BUFFER_C__
 
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 
 
 /* If adding more fields, ensure to edit buf.h to match
diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
index 82e6613..5c628cc 100644
--- a/src/util/vircgroup.c
+++ b/src/util/vircgroup.c
@@ -39,7 +39,7 @@
 
 #include "internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "vircgroup.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/util/vircommand.c b/src/util/vircommand.c
index 7bed04e..6e17a8d 100644
--- a/src/util/vircommand.c
+++ b/src/util/vircommand.c
@@ -34,7 +34,7 @@
 #endif
 
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "util.h"
 #include "virlog.h"
diff --git a/src/util/virconf.c b/src/util/virconf.c
index c12a0bb..2f6d60e 100644
--- a/src/util/virconf.c
+++ b/src/util/virconf.c
@@ -36,7 +36,7 @@
 #include "util.h"
 #include "c-ctype.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 
 #define VIR_FROM_THIS VIR_FROM_CONF
diff --git a/src/util/virdbus.c b/src/util/virdbus.c
index b6c6642..34c46b2 100644
--- a/src/util/virdbus.c
+++ b/src/util/virdbus.c
@@ -22,7 +22,7 @@
 #include <config.h>
 
 #include "virdbus.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "threads.h"
diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c
index 7bb42fc..918610a 100644
--- a/src/util/virdnsmasq.c
+++ b/src/util/virdnsmasq.c
@@ -43,7 +43,7 @@
 #include "virdnsmasq.h"
 #include "util.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "virfile.h"
diff --git a/src/util/virebtables.c b/src/util/virebtables.c
index 8333c38..1beb085 100644
--- a/src/util/virebtables.c
+++ b/src/util/virebtables.c
@@ -42,7 +42,7 @@
 #include "internal.h"
 #include "virebtables.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "threads.h"
diff --git a/src/util/vireventpoll.c b/src/util/vireventpoll.c
index 0256d83..cf4dc41 100644
--- a/src/util/vireventpoll.c
+++ b/src/util/vireventpoll.c
@@ -34,7 +34,7 @@
 #include "threads.h"
 #include "virlog.h"
 #include "vireventpoll.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virfile.h"
 #include "virterror_internal.h"
diff --git a/src/util/virfile.c b/src/util/virfile.c
index 30294a2..f20ce64 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -39,7 +39,7 @@
 
 #include "vircommand.h"
 #include "configmake.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 
diff --git a/src/util/virhash.c b/src/util/virhash.c
index 077abca..a1234c4 100644
--- a/src/util/virhash.c
+++ b/src/util/virhash.c
@@ -26,7 +26,7 @@
 
 #include "virterror_internal.h"
 #include "virhash.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virhashcode.h"
 #include "virrandom.h"
diff --git a/src/util/virhooks.c b/src/util/virhooks.c
index 2e8ecf2..ad3a371 100644
--- a/src/util/virhooks.c
+++ b/src/util/virhooks.c
@@ -34,7 +34,7 @@
 #include "virhooks.h"
 #include "util.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 #include "configmake.h"
 #include "vircommand.h"
diff --git a/src/util/virinitctl.c b/src/util/virinitctl.c
index e8949af..91a948f 100644
--- a/src/util/virinitctl.c
+++ b/src/util/virinitctl.c
@@ -30,7 +30,7 @@
 #include "virinitctl.h"
 #include "virterror_internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 
 #define VIR_FROM_THIS VIR_FROM_INITCTL
diff --git a/src/util/viriptables.c b/src/util/viriptables.c
index ee3e9a0..178580d 100644
--- a/src/util/viriptables.c
+++ b/src/util/viriptables.c
@@ -40,7 +40,7 @@
 #include "internal.h"
 #include "viriptables.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "threads.h"
diff --git a/src/util/virjson.c b/src/util/virjson.c
index 18a28ba..4fa5363 100644
--- a/src/util/virjson.c
+++ b/src/util/virjson.c
@@ -24,7 +24,7 @@
 #include <config.h>
 
 #include "virjson.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virlog.h"
 #include "util.h"
diff --git a/src/util/virkeyfile.c b/src/util/virkeyfile.c
index b43b92d..fc61cf5 100644
--- a/src/util/virkeyfile.c
+++ b/src/util/virkeyfile.c
@@ -27,7 +27,7 @@
 
 #include "c-ctype.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virhash.h"
 #include "virkeyfile.h"
diff --git a/src/util/virlockspace.c b/src/util/virlockspace.c
index b652294..509b162 100644
--- a/src/util/virlockspace.c
+++ b/src/util/virlockspace.c
@@ -23,7 +23,7 @@
 
 #include "virlockspace.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "util.h"
 #include "virfile.h"
diff --git a/src/util/virlog.c b/src/util/virlog.c
index d179de2..cb15a22 100644
--- a/src/util/virlog.c
+++ b/src/util/virlog.c
@@ -42,7 +42,7 @@
 
 #include "virterror_internal.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virbuffer.h"
 #include "threads.h"
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index a1d1c12..88a2e4b 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -27,7 +27,7 @@
 #include "virfile.h"
 #include "virterror_internal.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "pci.h"
 #include "virlog.h"
 
diff --git a/src/util/virnetdevbandwidth.c b/src/util/virnetdevbandwidth.c
index bd75a9d..9cc8858 100644
--- a/src/util/virnetdevbandwidth.c
+++ b/src/util/virnetdevbandwidth.c
@@ -24,7 +24,7 @@
 
 #include "virnetdevbandwidth.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
index 2c4a9eb..eb341a2 100644
--- a/src/util/virnetdevbridge.c
+++ b/src/util/virnetdevbridge.c
@@ -26,7 +26,7 @@
 #include "virterror_internal.h"
 #include "util.h"
 #include "virfile.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "intprops.h"
 
 #include <sys/ioctl.h>
diff --git a/src/util/virnetdevmacvlan.c b/src/util/virnetdevmacvlan.c
index 8d2574c..0f7107b 100644
--- a/src/util/virnetdevmacvlan.c
+++ b/src/util/virnetdevmacvlan.c
@@ -56,7 +56,7 @@ VIR_ENUM_IMPL(virNetDevMacVLanMode, VIR_NETDEV_MACVLAN_MODE_LAST,
 #  define MACVLAN_MODE_PASSTHRU 8
 # endif
 
-# include "memory.h"
+# include "viralloc.h"
 # include "virlog.h"
 # include "uuid.h"
 # include "virfile.h"
diff --git a/src/util/virnetdevopenvswitch.c b/src/util/virnetdevopenvswitch.c
index 983a240..b876a4e 100644
--- a/src/util/virnetdevopenvswitch.c
+++ b/src/util/virnetdevopenvswitch.c
@@ -25,7 +25,7 @@
 
 #include "virnetdevopenvswitch.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 #include "virmacaddr.h"
 
diff --git a/src/util/virnetdevtap.c b/src/util/virnetdevtap.c
index 644e9a4..339d636 100644
--- a/src/util/virnetdevtap.c
+++ b/src/util/virnetdevtap.c
@@ -30,7 +30,7 @@
 #include "virterror_internal.h"
 #include "virfile.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "util.h"
 
diff --git a/src/util/virnetdevveth.c b/src/util/virnetdevveth.c
index 630b7c9..c6568b7 100644
--- a/src/util/virnetdevveth.c
+++ b/src/util/virnetdevveth.c
@@ -26,7 +26,7 @@
 #include <sys/wait.h>
 
 #include "virnetdevveth.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "vircommand.h"
 #include "virterror_internal.h"
diff --git a/src/util/virnetdevvlan.c b/src/util/virnetdevvlan.c
index 7a6ff9b..53c6b65 100644
--- a/src/util/virnetdevvlan.c
+++ b/src/util/virnetdevvlan.c
@@ -24,7 +24,7 @@
 #include "internal.h"
 #include "virterror_internal.h"
 #include "virnetdevvlan.h"
-#include "memory.h"
+#include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
diff --git a/src/util/virnetdevvportprofile.c b/src/util/virnetdevvportprofile.c
index 834b9b9..60acabd 100644
--- a/src/util/virnetdevvportprofile.c
+++ b/src/util/virnetdevvportprofile.c
@@ -24,7 +24,7 @@
 
 #include "virnetdevvportprofile.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 
 #define VIR_FROM_THIS VIR_FROM_NET
 
diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c
index 830e9b9..b132d9a 100644
--- a/src/util/virnetlink.c
+++ b/src/util/virnetlink.c
@@ -37,7 +37,7 @@
 
 #include "virnetlink.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "virmacaddr.h"
 #include "virterror_internal.h"
diff --git a/src/util/virnodesuspend.c b/src/util/virnodesuspend.c
index e37a2d6..1528cf1 100644
--- a/src/util/virnodesuspend.c
+++ b/src/util/virnodesuspend.c
@@ -26,7 +26,7 @@
 #include "threads.h"
 #include "datatypes.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virterror_internal.h"
 
diff --git a/src/util/virobject.c b/src/util/virobject.c
index aa80cab..5cdd2e8 100644
--- a/src/util/virobject.c
+++ b/src/util/virobject.c
@@ -23,7 +23,7 @@
 
 #include "virobject.h"
 #include "threads.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "viratomic.h"
 #include "virterror_internal.h"
 #include "virlog.h"
diff --git a/src/util/virpidfile.c b/src/util/virpidfile.c
index 6ec9760..3b3322b 100644
--- a/src/util/virpidfile.c
+++ b/src/util/virpidfile.c
@@ -29,7 +29,7 @@
 
 #include "virpidfile.h"
 #include "virfile.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "intprops.h"
 #include "virlog.h"
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 3c0ed8a..8070b8b 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -28,7 +28,7 @@
 
 #include "virprocess.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "util.h"
 
diff --git a/src/util/virstring.c b/src/util/virstring.c
index 228c3fb..5607b3e 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -22,7 +22,7 @@
 #include <config.h>
 
 #include "virstring.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virbuffer.h"
 #include "virterror_internal.h"
 
diff --git a/src/util/virterror.c b/src/util/virterror.c
index 6e3301b..ce2d837 100644
--- a/src/util/virterror.c
+++ b/src/util/virterror.c
@@ -30,7 +30,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "util.h"
 
diff --git a/src/util/virtime.c b/src/util/virtime.c
index a2610c4..f9fc282 100644
--- a/src/util/virtime.c
+++ b/src/util/virtime.c
@@ -38,7 +38,7 @@
 
 #include "virtime.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virterror_internal.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
diff --git a/src/util/virtypedparam.c b/src/util/virtypedparam.c
index 7f0a44b..e08530e 100644
--- a/src/util/virtypedparam.c
+++ b/src/util/virtypedparam.c
@@ -24,7 +24,7 @@
 
 #include <stdarg.h>
 
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virterror_internal.h"
 
diff --git a/src/util/viruri.c b/src/util/viruri.c
index dd3b878..f48079d 100644
--- a/src/util/viruri.c
+++ b/src/util/viruri.c
@@ -22,7 +22,7 @@
 
 #include "viruri.h"
 
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virterror_internal.h"
 #include "virbuffer.h"
diff --git a/src/util/virusb.c b/src/util/virusb.c
index ebc1af5..9786e86 100644
--- a/src/util/virusb.c
+++ b/src/util/virusb.c
@@ -33,7 +33,7 @@
 
 #include "virusb.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virterror_internal.h"
 
diff --git a/src/util/xml.c b/src/util/xml.c
index 5b08b1f..caf26a3 100644
--- a/src/util/xml.c
+++ b/src/util/xml.c
@@ -34,7 +34,7 @@
 #include "xml.h"
 #include "virbuffer.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 
 #define VIR_FROM_THIS VIR_FROM_XML
diff --git a/src/vbox/vbox_MSCOMGlue.c b/src/vbox/vbox_MSCOMGlue.c
index 3194b7c..cab4398 100644
--- a/src/vbox/vbox_MSCOMGlue.c
+++ b/src/vbox/vbox_MSCOMGlue.c
@@ -30,7 +30,7 @@
 #define nsCID CLSID
 
 #include "internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virlog.h"
 #include "virterror_internal.h"
diff --git a/src/vbox/vbox_XPCOMCGlue.c b/src/vbox/vbox_XPCOMCGlue.c
index 5f70283..5296127 100644
--- a/src/vbox/vbox_XPCOMCGlue.c
+++ b/src/vbox/vbox_XPCOMCGlue.c
@@ -37,7 +37,7 @@
 
 #include "vbox_XPCOMCGlue.h"
 #include "internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virlog.h"
 #include "virterror_internal.h"
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 847af35..daa90bf 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -50,7 +50,7 @@
 #include "storage_conf.h"
 #include "storage_file.h"
 #include "uuid.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "nodeinfo.h"
 #include "virlog.h"
 #include "vbox_driver.h"
diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c
index b32de66..7cf9bcc 100644
--- a/src/vmware/vmware_conf.c
+++ b/src/vmware/vmware_conf.c
@@ -27,7 +27,7 @@
 #include "vircommand.h"
 #include "cpu/cpu.h"
 #include "dirname.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "nodeinfo.h"
 #include "virfile.h"
 #include "uuid.h"
diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
index d9a1333..233804e 100644
--- a/src/vmware/vmware_driver.c
+++ b/src/vmware/vmware_driver.c
@@ -27,7 +27,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "virfile.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "uuid.h"
 #include "vircommand.h"
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index e74e9ed..90496ce 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -28,7 +28,7 @@
 #include "internal.h"
 #include "virterror_internal.h"
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "vmx.h"
diff --git a/src/xen/block_stats.c b/src/xen/block_stats.c
index e50b5ff..126283b 100644
--- a/src/xen/block_stats.c
+++ b/src/xen/block_stats.c
@@ -42,7 +42,7 @@
 # include "datatypes.h"
 # include "util.h"
 # include "block_stats.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "virfile.h"
 
 # define VIR_FROM_THIS VIR_FROM_STATS_LINUX
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index c281c00..94df116 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -55,7 +55,7 @@
 #endif
 #include "xml.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "node_device_conf.h"
 #include "pci.h"
 #include "uuid.h"
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index b094313..598ec5e 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -76,7 +76,7 @@
 #include "xend_internal.h"
 #include "virbuffer.h"
 #include "capabilities.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "threads.h"
 #include "virfile.h"
 #include "virnodesuspend.h"
diff --git a/src/xen/xen_inotify.c b/src/xen/xen_inotify.c
index 073663f..35a625c 100644
--- a/src/xen/xen_inotify.c
+++ b/src/xen/xen_inotify.c
@@ -30,7 +30,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "driver.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "xen_driver.h"
 #include "virconf.h"
 #include "domain_conf.h"
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
index 0364f84..a4005f4 100644
--- a/src/xen/xend_internal.c
+++ b/src/xen/xend_internal.c
@@ -42,7 +42,7 @@
 #include "xen_driver.h"
 #include "xen_hypervisor.h"
 #include "xs_internal.h" /* To extract VNC port & Serial console TTY */
-#include "memory.h"
+#include "viralloc.h"
 #include "count-one-bits.h"
 #include "virfile.h"
 #include "viruri.h"
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c
index fc7b581..2109972 100644
--- a/src/xen/xm_internal.c
+++ b/src/xen/xm_internal.c
@@ -46,7 +46,7 @@
 #include "virbuffer.h"
 #include "uuid.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "count-one-bits.h"
 
diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c
index 4cc82d8..e414966 100644
--- a/src/xen/xs_internal.c
+++ b/src/xen/xs_internal.c
@@ -44,7 +44,7 @@
 #include "virterror_internal.h"
 #include "datatypes.h"
 #include "driver.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "uuid.h"
 #include "xen_driver.h"
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index f00dcfd..0a0ac0e 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -33,7 +33,7 @@
 #include "virauth.h"
 #include "util.h"
 #include "uuid.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virbuffer.h"
 #include "viruri.h"
 #include "xenapi_driver.h"
diff --git a/src/xenapi/xenapi_utils.c b/src/xenapi/xenapi_utils.c
index 6f51100..33aa4d7 100644
--- a/src/xenapi/xenapi_utils.c
+++ b/src/xenapi/xenapi_utils.c
@@ -31,7 +31,7 @@
 #include "datatypes.h"
 #include "util.h"
 #include "uuid.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virbuffer.h"
 #include "virlog.h"
 #include "viruri.h"
diff --git a/src/xenxs/xen_sxpr.c b/src/xenxs/xen_sxpr.c
index 2aa384d..0cbc248 100644
--- a/src/xenxs/xen_sxpr.c
+++ b/src/xenxs/xen_sxpr.c
@@ -29,7 +29,7 @@
 #include "internal.h"
 #include "virterror_internal.h"
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "verify.h"
 #include "uuid.h"
 #include "virlog.h"
diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c
index 7bde7ab..7d67bbe 100644
--- a/src/xenxs/xen_xm.c
+++ b/src/xenxs/xen_xm.c
@@ -28,7 +28,7 @@
 #include "internal.h"
 #include "virterror_internal.h"
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "verify.h"
 #include "uuid.h"
 #include "sexpr.h"
diff --git a/tests/commandhelper.c b/tests/commandhelper.c
index 2100aa0..3c7fef5 100644
--- a/tests/commandhelper.c
+++ b/tests/commandhelper.c
@@ -28,7 +28,7 @@
 
 #include "internal.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 #include "testutils.h"
 
diff --git a/tests/commandtest.c b/tests/commandtest.c
index f76bc54..b15c168 100644
--- a/tests/commandtest.c
+++ b/tests/commandtest.c
@@ -32,7 +32,7 @@
 #include "internal.h"
 #include "nodeinfo.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "vircommand.h"
 #include "virfile.h"
 #include "virpidfile.h"
diff --git a/tests/conftest.c b/tests/conftest.c
index aacc526..d5467e8 100644
--- a/tests/conftest.c
+++ b/tests/conftest.c
@@ -6,7 +6,7 @@
 #include <string.h>
 #include <errno.h>
 #include "virconf.h"
-#include "memory.h"
+#include "viralloc.h"
 
 int main(int argc, char **argv)
 {
diff --git a/tests/cputest.c b/tests/cputest.c
index f6110c1..ee1a608 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -32,7 +32,7 @@
 
 #include "internal.h"
 #include "xml.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virbuffer.h"
 #include "testutils.h"
 #include "cpu_conf.h"
diff --git a/tests/esxutilstest.c b/tests/esxutilstest.c
index 201b930..b65009b 100644
--- a/tests/esxutilstest.c
+++ b/tests/esxutilstest.c
@@ -7,7 +7,7 @@
 # include <unistd.h>
 
 # include "internal.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "testutils.h"
 # include "util.h"
 # include "vmx/vmx.h"
diff --git a/tests/networkxml2conftest.c b/tests/networkxml2conftest.c
index dc0e064..3979540 100644
--- a/tests/networkxml2conftest.c
+++ b/tests/networkxml2conftest.c
@@ -12,7 +12,7 @@
 #include "testutils.h"
 #include "network_conf.h"
 #include "vircommand.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "network/bridge_driver.h"
 
 static int
diff --git a/tests/openvzutilstest.c b/tests/openvzutilstest.c
index 305c7b1..80701a2 100644
--- a/tests/openvzutilstest.c
+++ b/tests/openvzutilstest.c
@@ -7,7 +7,7 @@
 # include <unistd.h>
 
 # include "internal.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "testutils.h"
 # include "util.h"
 # include "openvz/openvz_conf.h"
diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c
index caa7d64..252ad3a 100644
--- a/tests/qemuhelptest.c
+++ b/tests/qemuhelptest.c
@@ -7,7 +7,7 @@
 
 # include "testutils.h"
 # include "qemu/qemu_capabilities.h"
-# include "memory.h"
+# include "viralloc.h"
 
 struct testInfo {
     const char *name;
diff --git a/tests/qemumonitortest.c b/tests/qemumonitortest.c
index 82f861b..21a6828 100644
--- a/tests/qemumonitortest.c
+++ b/tests/qemumonitortest.c
@@ -8,7 +8,7 @@
 #ifdef WITH_QEMU
 
 # include "internal.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "testutils.h"
 # include "util.h"
 # include "qemu/qemu_monitor.h"
diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c
index e4194de..1e3f0da 100644
--- a/tests/qemumonitortestutils.c
+++ b/tests/qemumonitortestutils.c
@@ -29,7 +29,7 @@
 #include "threads.h"
 #include "qemu/qemu_monitor.h"
 #include "rpc/virnetsocket.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virlog.h"
 #include "virterror_internal.h"
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 1816362..27f3029 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -12,7 +12,7 @@
 
 # include "internal.h"
 # include "testutils.h"
-# include "util/memory.h"
+# include "viralloc.h"
 # include "qemu/qemu_capabilities.h"
 # include "qemu/qemu_command.h"
 # include "qemu/qemu_domain.h"
diff --git a/tests/securityselinuxtest.c b/tests/securityselinuxtest.c
index c021480..045c9c0 100644
--- a/tests/securityselinuxtest.c
+++ b/tests/securityselinuxtest.c
@@ -30,7 +30,7 @@
 
 #include "internal.h"
 #include "testutils.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virlog.h"
 #include "virterror_internal.h"
diff --git a/tests/sockettest.c b/tests/sockettest.c
index c6a175f..156ef45 100644
--- a/tests/sockettest.c
+++ b/tests/sockettest.c
@@ -28,7 +28,7 @@
 #include "virsocketaddr.h"
 #include "testutils.h"
 #include "virlog.h"
-#include "memory.h"
+#include "viralloc.h"
 
 static void testQuietError(void *userData ATTRIBUTE_UNUSED,
                            virErrorPtr error ATTRIBUTE_UNUSED)
diff --git a/tests/testutils.c b/tests/testutils.c
index 96e24d4..7bb88f0 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -39,7 +39,7 @@
 #include <limits.h>
 #include "testutils.h"
 #include "internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "threads.h"
 #include "virterror_internal.h"
diff --git a/tests/testutils.h b/tests/testutils.h
index 82837ab..581bd3e 100644
--- a/tests/testutils.h
+++ b/tests/testutils.h
@@ -24,7 +24,7 @@
 # define __VIT_TEST_UTILS_H__
 
 # include <stdio.h>
-# include "memory.h"
+# include "viralloc.h"
 
 # define EXIT_AM_SKIP 77 /* tell Automake we're skipping a test */
 # define EXIT_AM_HARDFAIL 99 /* tell Automake that the framework is broken */
diff --git a/tests/testutilslxc.c b/tests/testutilslxc.c
index 822e518..384414b 100644
--- a/tests/testutilslxc.c
+++ b/tests/testutilslxc.c
@@ -4,7 +4,7 @@
 
 # include "testutilslxc.h"
 # include "testutils.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "domain_conf.h"
 
 
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index 4ff4a08..8ee3a27 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -4,7 +4,7 @@
 
 # include "testutilsqemu.h"
 # include "testutils.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "cpu_conf.h"
 # include "qemu/qemu_driver.h"
 # include "qemu/qemu_domain.h"
diff --git a/tests/utiltest.c b/tests/utiltest.c
index 774a2f7..4fbb25c 100644
--- a/tests/utiltest.c
+++ b/tests/utiltest.c
@@ -6,7 +6,7 @@
 #include <unistd.h>
 
 #include "internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "testutils.h"
 #include "util.h"
 
diff --git a/tests/virauthconfigtest.c b/tests/virauthconfigtest.c
index 74cc187..9e7dac5 100644
--- a/tests/virauthconfigtest.c
+++ b/tests/virauthconfigtest.c
@@ -26,7 +26,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #include "virauthconfig.h"
diff --git a/tests/virbuftest.c b/tests/virbuftest.c
index 53b9bbe..ec93939 100644
--- a/tests/virbuftest.c
+++ b/tests/virbuftest.c
@@ -8,7 +8,7 @@
 #include "util.h"
 #include "testutils.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 
 #define TEST_ERROR(...)                             \
     do {                                            \
diff --git a/tests/virdrivermoduletest.c b/tests/virdrivermoduletest.c
index 440ee8e..e06179f 100644
--- a/tests/virdrivermoduletest.c
+++ b/tests/virdrivermoduletest.c
@@ -23,7 +23,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "driver.h"
 
diff --git a/tests/virhashtest.c b/tests/virhashtest.c
index 7de16d0..a2a40c6 100644
--- a/tests/virhashtest.c
+++ b/tests/virhashtest.c
@@ -9,7 +9,7 @@
 #include "virhash.h"
 #include "virhashdata.h"
 #include "testutils.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virlog.h"
 
diff --git a/tests/virkeyfiletest.c b/tests/virkeyfiletest.c
index c6aca86..ad5a516 100644
--- a/tests/virkeyfiletest.c
+++ b/tests/virkeyfiletest.c
@@ -26,7 +26,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #include "virkeyfile.h"
diff --git a/tests/virlockspacetest.c b/tests/virlockspacetest.c
index c95f5d8..80478d9 100644
--- a/tests/virlockspacetest.c
+++ b/tests/virlockspacetest.c
@@ -27,7 +27,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #include "virlockspace.h"
diff --git a/tests/virnetmessagetest.c b/tests/virnetmessagetest.c
index c20f5e6..e3517e8 100644
--- a/tests/virnetmessagetest.c
+++ b/tests/virnetmessagetest.c
@@ -26,7 +26,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #include "rpc/virnetmessage.h"
diff --git a/tests/virnetsockettest.c b/tests/virnetsockettest.c
index ba281e9..399c4fd 100644
--- a/tests/virnetsockettest.c
+++ b/tests/virnetsockettest.c
@@ -30,7 +30,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
 
diff --git a/tests/virnettlscontexttest.c b/tests/virnettlscontexttest.c
index 0236659..27078ea 100644
--- a/tests/virnettlscontexttest.c
+++ b/tests/virnettlscontexttest.c
@@ -29,7 +29,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 #include "virfile.h"
 #include "vircommand.h"
diff --git a/tests/virstringtest.c b/tests/virstringtest.c
index 27e490f..a8f4c79 100644
--- a/tests/virstringtest.c
+++ b/tests/virstringtest.c
@@ -25,7 +25,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #include "virstring.h"
diff --git a/tests/virtimetest.c b/tests/virtimetest.c
index c8e9a2e..7d7a2d6 100644
--- a/tests/virtimetest.c
+++ b/tests/virtimetest.c
@@ -26,7 +26,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #include "virtime.h"
diff --git a/tests/viruritest.c b/tests/viruritest.c
index 46964b3..57d3895 100644
--- a/tests/viruritest.c
+++ b/tests/viruritest.c
@@ -26,7 +26,7 @@
 #include "testutils.h"
 #include "util.h"
 #include "virterror_internal.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virlog.h"
 
 #include "viruri.h"
diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c
index e523d1c..712536b 100644
--- a/tests/vmx2xmltest.c
+++ b/tests/vmx2xmltest.c
@@ -7,7 +7,7 @@
 # include <unistd.h>
 
 # include "internal.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "testutils.h"
 # include "vmx/vmx.h"
 
diff --git a/tests/xmconfigtest.c b/tests/xmconfigtest.c
index 3de68fd..a3943e2 100644
--- a/tests/xmconfigtest.c
+++ b/tests/xmconfigtest.c
@@ -34,7 +34,7 @@
 #include "xenxs/xen_xm.h"
 #include "testutils.h"
 #include "testutilsxen.h"
-#include "memory.h"
+#include "viralloc.h"
 
 static virCapsPtr caps;
 
diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c
index 94dfcf2..17af6a4 100644
--- a/tests/xml2vmxtest.c
+++ b/tests/xml2vmxtest.c
@@ -7,7 +7,7 @@
 # include <unistd.h>
 
 # include "internal.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "testutils.h"
 # include "vmx/vmx.h"
 
diff --git a/tools/console.c b/tools/console.c
index dbdaab7..1d21189 100644
--- a/tools/console.c
+++ b/tools/console.c
@@ -41,7 +41,7 @@
 # include "virlog.h"
 # include "util.h"
 # include "virfile.h"
-# include "memory.h"
+# include "viralloc.h"
 # include "threads.h"
 # include "virterror_internal.h"
 
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
index 0006c11..a443988 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -34,7 +34,7 @@
 #include "internal.h"
 #include "conf/domain_conf.h"
 #include "intprops.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virmacaddr.h"
 #include "virsh-domain.h"
 #include "xml.h"
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 76d9d51..b0b0c94 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -42,7 +42,7 @@
 #include "c-ctype.h"
 #include "conf/domain_conf.h"
 #include "console.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virfile.h"
 #include "virkeycode.h"
diff --git a/tools/virsh-host.c b/tools/virsh-host.c
index 6f129d1..2d59a75 100644
--- a/tools/virsh-host.c
+++ b/tools/virsh-host.c
@@ -33,7 +33,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virsh-domain.h"
 #include "xml.h"
diff --git a/tools/virsh-interface.c b/tools/virsh-interface.c
index 956fee8..40216c6 100644
--- a/tools/virsh-interface.c
+++ b/tools/virsh-interface.c
@@ -33,7 +33,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "xml.h"
 
diff --git a/tools/virsh-network.c b/tools/virsh-network.c
index c5d494a..66ee7e3 100644
--- a/tools/virsh-network.c
+++ b/tools/virsh-network.c
@@ -33,7 +33,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "xml.h"
 #include "conf/network_conf.h"
diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c
index 52cd874..7e569b3 100644
--- a/tools/virsh-nodedev.c
+++ b/tools/virsh-nodedev.c
@@ -33,7 +33,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "xml.h"
 #include "conf/node_device_conf.h"
diff --git a/tools/virsh-nwfilter.c b/tools/virsh-nwfilter.c
index 3108d1b..c3dba0c 100644
--- a/tools/virsh-nwfilter.c
+++ b/tools/virsh-nwfilter.c
@@ -33,7 +33,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "xml.h"
 
diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index 4a78467..6e29604 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -33,7 +33,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "xml.h"
 #include "conf/storage_conf.h"
diff --git a/tools/virsh-secret.c b/tools/virsh-secret.c
index ee79b97..d81e8ce 100644
--- a/tools/virsh-secret.c
+++ b/tools/virsh-secret.c
@@ -34,7 +34,7 @@
 #include "internal.h"
 #include "base64.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "xml.h"
 
diff --git a/tools/virsh-snapshot.c b/tools/virsh-snapshot.c
index d6a381d..3fecde6 100644
--- a/tools/virsh-snapshot.c
+++ b/tools/virsh-snapshot.c
@@ -35,7 +35,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virsh-domain.h"
 #include "xml.h"
diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c
index 1bad6b1..ebfe52d 100644
--- a/tools/virsh-volume.c
+++ b/tools/virsh-volume.c
@@ -35,7 +35,7 @@
 
 #include "internal.h"
 #include "virbuffer.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "util.h"
 #include "virfile.h"
 #include "virsh-pool.h"
diff --git a/tools/virsh.c b/tools/virsh.c
index 5cb2e06..e894aff 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -59,7 +59,7 @@
 #include "virbuffer.h"
 #include "console.h"
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "xml.h"
 #include "libvirt/libvirt-qemu.h"
 #include "virfile.h"
diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c
index 5bbb5e9..cd75eba 100644
--- a/tools/virt-host-validate-common.c
+++ b/tools/virt-host-validate-common.c
@@ -28,7 +28,7 @@
 #include <sys/utsname.h>
 
 #include "util.h"
-#include "memory.h"
+#include "viralloc.h"
 #include "virfile.h"
 #include "virt-host-validate-common.h"
 
-- 
1.7.11.7




More information about the libvir-list mailing list