virStorageSourceGetSecurityLabelDef;
virStorageSourceHasBacking;
virStorageSourceInitChainElement;
+virStorageSourceInitiatorClear;
+virStorageSourceInitiatorCopy;
+virStorageSourceInitiatorFormatXML;
+virStorageSourceInitiatorParseXML;
virStorageSourceIsBacking;
virStorageSourceIsBlockLocal;
virStorageSourceIsEmpty;
return 0;
}
+void
+virStorageSourceInitiatorParseXML(xmlXPathContextPtr ctxt,
+ virStorageSourceInitiatorDefPtr initiator)
+{
+ initiator->iqn = virXPathString("string(./initiator/iqn/@name)", ctxt);
+}
+
+void
+virStorageSourceInitiatorFormatXML(virStorageSourceInitiatorDefPtr initiator,
+ virBufferPtr buf)
+{
+ if (!initiator->iqn)
+ return;
+
+ virBufferAddLit(buf, "<initiator>\n");
+ virBufferAdjustIndent(buf, 2);
+ virBufferEscapeString(buf, "<iqn name='%s'/>\n", initiator->iqn);
+ virBufferAdjustIndent(buf, -2);
+ virBufferAddLit(buf, "</initiator>\n");
+}
+
+int
+virStorageSourceInitiatorCopy(virStorageSourceInitiatorDefPtr dest,
+ const virStorageSourceInitiatorDef *src)
+{
+ return VIR_STRDUP(dest->iqn, src->iqn);
+}
+
+void
+virStorageSourceInitiatorClear(virStorageSourceInitiatorDefPtr initiator)
+{
+ VIR_FREE(initiator->iqn);
+}
+
static bool
virStorageFileIsInitialized(const virStorageSource *src)
{
virStorageSourcePrivateDataFormatRelPath(virStorageSourcePtr src,
virBufferPtr buf);
+void
+virStorageSourceInitiatorParseXML(xmlXPathContextPtr ctxt,
+ virStorageSourceInitiatorDefPtr initiator);
+
+void
+virStorageSourceInitiatorFormatXML(virStorageSourceInitiatorDefPtr initiator,
+ virBufferPtr buf);
+
+int
+virStorageSourceInitiatorCopy(virStorageSourceInitiatorDefPtr dest,
+ const virStorageSourceInitiatorDef *src);
+
+void
+virStorageSourceInitiatorClear(virStorageSourceInitiatorDefPtr initiator);
+
int virStorageFileInit(virStorageSourcePtr src);
int virStorageFileInitAs(virStorageSourcePtr src,
uid_t uid, gid_t gid);