mirror of
https://github.com/libvirt/libvirt.git
synced 2026-09-03 20:53:04 -05:00
qemu: Add callback struct for qemuBuildCommandLine
Since 0d70656afd, it starts to access the sysfs files to build
the qemu command line (by virSCSIDeviceGetSgName, which is to find
out the scsi generic device name by adpater:bus:target:unit), there
is no way to work around, qemu wants to see the scsi generic device
like "/dev/sg6" anyway.
And there might be other places which need to access sysfs files
when building qemu command line in future.
Instead of increasing the arguments of qemuBuildCommandLine, this
introduces a new callback for qemuBuildCommandLine, and thus tests
can register their own callbacks for sysfs test input files accessing.
* src/qemu/qemu_command.h: (New callback struct
qemuBuildCommandLineCallbacks;
extern buildCommandLineCallbacks)
* src/qemu/qemu_command.c: (wire up the callback struct)
* src/qemu/qemu_driver.c: (Use the new syntax of qemuBuildCommandLine)
* src/qemu/qemu_hotplug.c: Likewise
* src/qemu/qemu_process.c: Likewise
* tests/testutilsqemu.[ch]: (Helper testSCSIDeviceGetSgName;
callback struct testCallbacks;)
* tests/qemuxml2argvtest.c: (Use testCallbacks)
* src/tests/qemuxmlnstest.c: (Like above)
This commit is contained in:
@@ -289,4 +289,23 @@ cleanup:
|
||||
virObjectUnref(caps);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static char *
|
||||
testSCSIDeviceGetSgName(const char *adapter ATTRIBUTE_UNUSED,
|
||||
unsigned int bus ATTRIBUTE_UNUSED,
|
||||
unsigned int target ATTRIBUTE_UNUSED,
|
||||
unsigned int unit ATTRIBUTE_UNUSED)
|
||||
{
|
||||
char *sg = NULL;
|
||||
|
||||
if (VIR_STRDUP(sg, "sg0") < 0)
|
||||
return NULL;
|
||||
|
||||
return sg;
|
||||
}
|
||||
|
||||
qemuBuildCommandLineCallbacks testCallbacks = {
|
||||
.qemuGetSCSIDeviceSgName = testSCSIDeviceGetSgName,
|
||||
};
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user