diff --git a/src/conf/Makefile.inc.am b/src/conf/Makefile.inc.am
index 6b52ba674b..16a21c34f3 100644
--- a/src/conf/Makefile.inc.am
+++ b/src/conf/Makefile.inc.am
@@ -30,6 +30,7 @@ DOMAIN_CONF_SOURCES = \
 	conf/moment_conf.h \
 	conf/snapshot_conf.c \
 	conf/snapshot_conf.h \
+	conf/snapshot_conf_priv.h \
 	conf/numa_conf.c \
 	conf/numa_conf.h \
 	conf/virconftypes.h \
diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c
index 130a9cee03..eb04b11b56 100644
--- a/src/conf/snapshot_conf.c
+++ b/src/conf/snapshot_conf.c
@@ -47,6 +47,9 @@
 #include "virstring.h"
 #include "virdomainsnapshotobjlist.h"
 
+#define LIBVIRT_SNAPSHOT_CONF_PRIV_H_ALLOW
+#include "snapshot_conf_priv.h"
+
 #define VIR_FROM_THIS VIR_FROM_DOMAIN_SNAPSHOT
 
 VIR_LOG_INIT("conf.snapshot_conf");
@@ -122,7 +125,7 @@ virDomainSnapshotDefDispose(void *obj)
     virObjectUnref(def->cookie);
 }
 
-static int
+int
 virDomainSnapshotDiskDefParseXML(xmlNodePtr node,
                                  xmlXPathContextPtr ctxt,
                                  virDomainSnapshotDiskDefPtr def,
diff --git a/src/conf/snapshot_conf_priv.h b/src/conf/snapshot_conf_priv.h
new file mode 100644
index 0000000000..369a023881
--- /dev/null
+++ b/src/conf/snapshot_conf_priv.h
@@ -0,0 +1,32 @@
+/*
+ * snapshot_conf_priv.h: domain snapshot XML processing (private)
+ *
+ * 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 LIBVIRT_SNAPSHOT_CONF_PRIV_H_ALLOW
+# error "snapshot_conf_priv.h may only be included by snapshot_conf.c or test suites"
+#endif /* LIBVIRT_SNAPSHOT_CONF_PRIV_H_ALLOW */
+
+#pragma once
+
+#include "snapshot_conf.h"
+
+int
+virDomainSnapshotDiskDefParseXML(xmlNodePtr node,
+                                 xmlXPathContextPtr ctxt,
+                                 virDomainSnapshotDiskDefPtr def,
+                                 unsigned int flags,
+                                 virDomainXMLOptionPtr xmlopt);