+################################################################################
+## filesystems #################################################################
+
+ isolation.tools.hgfs.disable = "false" # defaults to "true"
+
+def->nfss = 1 <=> sharedFolder.maxNum = "1" # must match the number of shared folders
+
+ sharedFolder[0..n] -> <filesystem>
+
+def->fss[0]... <=> sharedFolder0.present = "true" # defaults to "false"
+ sharedFolder0.enabled = "true" # defaults to "false"
+ sharedFolder0.expiration = "never" # defaults to "never"
+ sharedFolder0.readAccess = "true" # defaults to "false"
+->type = _FS_TYPE_MOUNT
+->fsdriver
+->accessmode
+->wrpolicy
+->src = <value> <=> sharedFolder0.hostPath = "<value>" # defaults to ?
+->dst = <value> <=> sharedFolder0.guestName = "<value>"
+->readonly = <readonly> <=> sharedFolder0.writeAccess = "<value>" # "true" -> <readonly> = 0, "false" -> <readonly> = 1
+
+
+
################################################################################
## nets ########################################################################
}
/* def:fss */
- /* FIXME */
+ if (def->nfss > 0) {
+ virBufferAddLit(&buffer, "isolation.tools.hgfs.disable = \"false\"\n");
+ virBufferAsprintf(&buffer, "sharedFolder.maxNum = \"%d\"\n", def->nfss);
+ }
+
+ for (i = 0; i < def->nfss; ++i) {
+ if (virVMXFormatFileSystem(def->fss[i], i, &buffer) < 0) {
+ goto cleanup;
+ }
+ }
/* def:nets */
for (i = 0; i < def->nnets; ++i) {
+int
+virVMXFormatFileSystem(virDomainFSDefPtr def, int number, virBufferPtr buffer)
+{
+ if (def->type != VIR_DOMAIN_FS_TYPE_MOUNT) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Only '%s' filesystem type is supported"),
+ virDomainFSTypeToString(VIR_DOMAIN_FS_TYPE_MOUNT));
+ return -1;
+ }
+
+ virBufferAsprintf(buffer, "sharedFolder%d.present = \"true\"\n", number);
+ virBufferAsprintf(buffer, "sharedFolder%d.enabled = \"true\"\n", number);
+ virBufferAsprintf(buffer, "sharedFolder%d.readAccess = \"true\"\n", number);
+ virBufferAsprintf(buffer, "sharedFolder%d.writeAccess = \"%s\"\n", number,
+ def->readonly ? "false" : "true");
+ virBufferAsprintf(buffer, "sharedFolder%d.hostPath = \"%s\"\n", number,
+ def->src);
+ virBufferAsprintf(buffer, "sharedFolder%d.guestName = \"%s\"\n", number,
+ def->dst);
+
+ return 0;
+}
+
+
+
int
virVMXFormatEthernet(virDomainNetDefPtr def, int controller,
virBufferPtr buffer)
--- /dev/null
+.encoding = "UTF-8"
+config.version = "8"
+virtualHW.version = "4"
+guestOS = "other"
+uuid.bios = "56 4d 9b ef ac d9 b4 e0-c8 f0 ae a8 b9 10 35 15"
+displayName = "sharedFolder"
+memsize = "4"
+numvcpus = "1"
+floppy0.present = "false"
+floppy1.present = "false"
+isolation.tools.hgfs.disable = "false"
+sharedFolder.maxNum = "1"
+sharedFolder0.present = "true"
+sharedFolder0.enabled = "true"
+sharedFolder0.readAccess = "true"
+sharedFolder0.writeAccess = "true"
+sharedFolder0.hostPath = "/path/to/shared"
+sharedFolder0.guestName = "shared"
DO_TEST("floppy-file", "floppy-file", 4);
DO_TEST("floppy-device", "floppy-device", 4);
+ DO_TEST("sharedfolder", "sharedfolder", 4);
+
DO_TEST("ethernet-e1000", "ethernet-e1000", 4);
DO_TEST("ethernet-vmxnet2", "ethernet-vmxnet2", 4);