Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
23d935bd
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
23d935bd
编写于
2月 08, 2011
作者:
J
Jiri Denemark
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
qemu: Rename qemud\?CmdFlags to qemuCaps
The new name complies more with the fact that it contains a set of qemuCapsFlags.
上级
a96d08dc
变更
9
展开全部
隐藏空白更改
内联
并排
Showing
9 changed file
with
351 addition
and
351 deletion
+351
-351
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.c
+5
-5
src/qemu/qemu_capabilities.h
src/qemu/qemu_capabilities.h
+4
-4
src/qemu/qemu_command.c
src/qemu/qemu_command.c
+187
-187
src/qemu/qemu_command.h
src/qemu/qemu_command.h
+14
-14
src/qemu/qemu_driver.c
src/qemu/qemu_driver.c
+22
-22
src/qemu/qemu_hotplug.c
src/qemu/qemu_hotplug.c
+81
-81
src/qemu/qemu_hotplug.h
src/qemu/qemu_hotplug.h
+16
-16
src/qemu/qemu_migration.c
src/qemu/qemu_migration.c
+10
-10
src/qemu/qemu_process.c
src/qemu/qemu_process.c
+12
-12
未找到文件。
src/qemu/qemu_capabilities.c
浏览文件 @
23d935bd
...
...
@@ -377,7 +377,7 @@ error:
int
qemuCapsProbeCPUModels
(
const
char
*
qemu
,
unsigned
long
long
qemuC
mdFlag
s
,
unsigned
long
long
qemuC
ap
s
,
const
char
*
arch
,
unsigned
int
*
count
,
const
char
***
cpus
)
...
...
@@ -400,7 +400,7 @@ qemuCapsProbeCPUModels(const char *qemu,
}
cmd
=
virCommandNewArgList
(
qemu
,
"-cpu"
,
"?"
,
NULL
);
if
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_NODEFCONFIG
))
if
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_NODEFCONFIG
))
virCommandAddArg
(
cmd
,
"-nodefconfig"
);
virCommandAddEnvPassCommon
(
cmd
);
virCommandSetOutputBuffer
(
cmd
,
&
output
);
...
...
@@ -442,7 +442,7 @@ qemuCapsInitGuest(virCapsPtr caps,
int
nmachines
=
0
;
struct
stat
st
;
unsigned
int
ncpus
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
int
ret
=
-
1
;
/* Check for existance of base emulator, or alternate base
...
...
@@ -558,8 +558,8 @@ qemuCapsInitGuest(virCapsPtr caps,
!
virCapabilitiesAddGuestFeature
(
guest
,
"cpuselection"
,
1
,
0
))
goto
error
;
if
(
qemuCapsExtractVersionInfo
(
binary
,
info
->
arch
,
NULL
,
&
qemuC
mdFlag
s
)
<
0
||
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_BOOTINDEX
)
&&
if
(
qemuCapsExtractVersionInfo
(
binary
,
info
->
arch
,
NULL
,
&
qemuC
ap
s
)
<
0
||
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_BOOTINDEX
)
&&
!
virCapabilitiesAddGuestFeature
(
guest
,
"deviceboot"
,
1
,
0
)))
goto
error
;
...
...
src/qemu/qemu_capabilities.h
浏览文件 @
23d935bd
...
...
@@ -111,7 +111,7 @@ int qemuCapsProbeMachineTypes(const char *binary,
int
*
nmachines
);
int
qemuCapsProbeCPUModels
(
const
char
*
qemu
,
unsigned
long
long
qemuC
mdFlag
s
,
unsigned
long
long
qemuC
ap
s
,
const
char
*
arch
,
unsigned
int
*
count
,
const
char
***
cpus
);
...
...
@@ -120,16 +120,16 @@ int qemuCapsExtractVersion(virCapsPtr caps,
unsigned
int
*
version
);
int
qemuCapsExtractVersionInfo
(
const
char
*
qemu
,
const
char
*
arch
,
unsigned
int
*
version
,
unsigned
long
long
*
qemuC
mdFlag
s
);
unsigned
long
long
*
qemuC
ap
s
);
int
qemuCapsParseHelpStr
(
const
char
*
qemu
,
const
char
*
str
,
unsigned
long
long
*
qemuC
mdFlag
s
,
unsigned
long
long
*
qemuC
ap
s
,
unsigned
int
*
version
,
unsigned
int
*
is_kvm
,
unsigned
int
*
kvm_version
);
int
qemuCapsParseDeviceStr
(
const
char
*
str
,
unsigned
long
long
*
qemuC
mdFlag
s
);
unsigned
long
long
*
qemuC
ap
s
);
#endif
/* __QEMU_CAPABILITIES_H__*/
src/qemu/qemu_command.c
浏览文件 @
23d935bd
此差异已折叠。
点击以展开。
src/qemu/qemu_command.h
浏览文件 @
23d935bd
...
...
@@ -46,7 +46,7 @@ virCommandPtr qemuBuildCommandLine(virConnectPtr conn,
virDomainDefPtr
def
,
virDomainChrSourceDefPtr
monitor_chr
,
bool
monitor_json
,
unsigned
long
long
qemuC
mdFlag
s
,
unsigned
long
long
qemuC
ap
s
,
const
char
*
migrateFrom
,
int
migrateFd
,
virDomainSnapshotObjPtr
current_snapshot
,
...
...
@@ -68,44 +68,44 @@ char * qemuBuildNicStr(virDomainNetDefPtr net,
/* Current, best practice */
char
*
qemuBuildNicDevStr
(
virDomainNetDefPtr
net
,
int
vlan
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
char
*
qemuDeviceDriveHostAlias
(
virDomainDiskDefPtr
disk
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
/* Both legacy & current support */
char
*
qemuBuildDriveStr
(
virDomainDiskDefPtr
disk
,
int
bootable
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
char
*
qemuBuildFSStr
(
virDomainFSDefPtr
fs
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
/* Current, best practice */
char
*
qemuBuildDriveDevStr
(
virDomainDiskDefPtr
disk
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
char
*
qemuBuildFSDevStr
(
virDomainFSDefPtr
fs
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
/* Current, best practice */
char
*
qemuBuildControllerDevStr
(
virDomainControllerDefPtr
def
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
char
*
qemuBuildWatchdogDevStr
(
virDomainWatchdogDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
char
*
qemuBuildMemballoonDevStr
(
virDomainMemballoonDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
char
*
qemuBuildUSBInputDevStr
(
virDomainInputDefPtr
dev
);
char
*
qemuBuildSoundDevStr
(
virDomainSoundDefPtr
sound
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
/* Legacy, pre device support */
char
*
qemuBuildPCIHostdevPCIDevStr
(
virDomainHostdevDefPtr
dev
);
/* Current, best practice */
char
*
qemuBuildPCIHostdevDevStr
(
virDomainHostdevDefPtr
dev
,
const
char
*
configfd
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuOpenPCIConfig
(
virDomainHostdevDefPtr
dev
);
...
...
@@ -125,7 +125,7 @@ int qemuNetworkIfaceConnect(virConnectPtr conn,
int
qemuPhysIfaceConnect
(
virConnectPtr
conn
,
struct
qemud_driver
*
driver
,
virDomainNetDefPtr
net
,
unsigned
long
long
qemuC
mdFlag
s
,
unsigned
long
long
qemuC
ap
s
,
const
unsigned
char
*
vmuuid
,
enum
virVMOperationType
vmop
);
...
...
@@ -156,7 +156,7 @@ int qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr ad
int
qemuDomainNetVLAN
(
virDomainNetDefPtr
def
);
int
qemuAssignDeviceNetAlias
(
virDomainDefPtr
def
,
virDomainNetDefPtr
net
,
int
idx
);
int
qemuAssignDeviceDiskAlias
(
virDomainDiskDefPtr
def
,
unsigned
long
long
qemuC
mdFlag
s
);
int
qemuAssignDeviceDiskAlias
(
virDomainDiskDefPtr
def
,
unsigned
long
long
qemuC
ap
s
);
int
qemuAssignDeviceHostdevAlias
(
virDomainDefPtr
def
,
virDomainHostdevDefPtr
net
,
int
idx
);
int
qemuAssignDeviceControllerAlias
(
virDomainControllerDefPtr
controller
);
...
...
src/qemu/qemu_driver.c
浏览文件 @
23d935bd
...
...
@@ -3538,7 +3538,7 @@ static char *qemuDomainXMLToNative(virConnectPtr conn,
struct
qemud_driver
*
driver
=
conn
->
privateData
;
virDomainDefPtr
def
=
NULL
;
virDomainChrSourceDef
monConfig
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
virCommandPtr
cmd
=
NULL
;
char
*
ret
=
NULL
;
int
i
;
...
...
@@ -3595,14 +3595,14 @@ static char *qemuDomainXMLToNative(virConnectPtr conn,
if
(
qemuCapsExtractVersionInfo
(
def
->
emulator
,
def
->
os
.
arch
,
NULL
,
&
qemuC
mdFlag
s
)
<
0
)
&
qemuC
ap
s
)
<
0
)
goto
cleanup
;
if
(
qemuProcessPrepareMonitorChr
(
driver
,
&
monConfig
,
def
->
name
)
<
0
)
goto
cleanup
;
if
(
!
(
cmd
=
qemuBuildCommandLine
(
conn
,
driver
,
def
,
&
monConfig
,
false
,
qemuC
mdFlag
s
,
&
monConfig
,
false
,
qemuC
ap
s
,
NULL
,
-
1
,
NULL
,
VIR_VM_OP_NO_OP
)))
goto
cleanup
;
...
...
@@ -3947,7 +3947,7 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
struct
qemud_driver
*
driver
=
dom
->
conn
->
privateData
;
virDomainObjPtr
vm
;
virDomainDeviceDefPtr
dev
=
NULL
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
virCgroupPtr
cgroup
=
NULL
;
int
ret
=
-
1
;
...
...
@@ -3977,7 +3977,7 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
if
(
qemuCapsExtractVersionInfo
(
vm
->
def
->
emulator
,
vm
->
def
->
os
.
arch
,
NULL
,
&
qemuC
mdFlag
s
)
<
0
)
&
qemuC
ap
s
)
<
0
)
goto
endjob
;
if
(
dev
->
type
==
VIR_DOMAIN_DEVICE_DISK
)
{
...
...
@@ -3997,7 +3997,7 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
case
VIR_DOMAIN_DISK_DEVICE_FLOPPY
:
ret
=
qemuDomainChangeEjectableMedia
(
driver
,
vm
,
dev
->
data
.
disk
,
qemuC
mdFlag
s
,
qemuC
ap
s
,
false
);
if
(
ret
==
0
)
dev
->
data
.
disk
=
NULL
;
...
...
@@ -4006,17 +4006,17 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
case
VIR_DOMAIN_DISK_DEVICE_DISK
:
if
(
dev
->
data
.
disk
->
bus
==
VIR_DOMAIN_DISK_BUS_USB
)
{
ret
=
qemuDomainAttachUsbMassstorageDevice
(
driver
,
vm
,
dev
->
data
.
disk
,
qemuC
mdFlag
s
);
dev
->
data
.
disk
,
qemuC
ap
s
);
if
(
ret
==
0
)
dev
->
data
.
disk
=
NULL
;
}
else
if
(
dev
->
data
.
disk
->
bus
==
VIR_DOMAIN_DISK_BUS_VIRTIO
)
{
ret
=
qemuDomainAttachPciDiskDevice
(
driver
,
vm
,
dev
->
data
.
disk
,
qemuC
mdFlag
s
);
dev
->
data
.
disk
,
qemuC
ap
s
);
if
(
ret
==
0
)
dev
->
data
.
disk
=
NULL
;
}
else
if
(
dev
->
data
.
disk
->
bus
==
VIR_DOMAIN_DISK_BUS_SCSI
)
{
ret
=
qemuDomainAttachSCSIDisk
(
driver
,
vm
,
dev
->
data
.
disk
,
qemuC
mdFlag
s
);
dev
->
data
.
disk
,
qemuC
ap
s
);
if
(
ret
==
0
)
dev
->
data
.
disk
=
NULL
;
}
else
{
...
...
@@ -4041,7 +4041,7 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
}
else
if
(
dev
->
type
==
VIR_DOMAIN_DEVICE_CONTROLLER
)
{
if
(
dev
->
data
.
controller
->
type
==
VIR_DOMAIN_CONTROLLER_TYPE_SCSI
)
{
ret
=
qemuDomainAttachPciControllerDevice
(
driver
,
vm
,
dev
->
data
.
controller
,
qemuC
mdFlag
s
);
dev
->
data
.
controller
,
qemuC
ap
s
);
if
(
ret
==
0
)
dev
->
data
.
controller
=
NULL
;
}
else
{
...
...
@@ -4052,12 +4052,12 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
}
}
else
if
(
dev
->
type
==
VIR_DOMAIN_DEVICE_NET
)
{
ret
=
qemuDomainAttachNetDevice
(
dom
->
conn
,
driver
,
vm
,
dev
->
data
.
net
,
qemuC
mdFlag
s
);
dev
->
data
.
net
,
qemuC
ap
s
);
if
(
ret
==
0
)
dev
->
data
.
net
=
NULL
;
}
else
if
(
dev
->
type
==
VIR_DOMAIN_DEVICE_HOSTDEV
)
{
ret
=
qemuDomainAttachHostDevice
(
driver
,
vm
,
dev
->
data
.
hostdev
,
qemuC
mdFlag
s
);
dev
->
data
.
hostdev
,
qemuC
ap
s
);
if
(
ret
==
0
)
dev
->
data
.
hostdev
=
NULL
;
}
else
{
...
...
@@ -4105,7 +4105,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr dom,
struct
qemud_driver
*
driver
=
dom
->
conn
->
privateData
;
virDomainObjPtr
vm
;
virDomainDeviceDefPtr
dev
=
NULL
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
virCgroupPtr
cgroup
=
NULL
;
int
ret
=
-
1
;
bool
force
=
(
flags
&
VIR_DOMAIN_DEVICE_MODIFY_FORCE
)
!=
0
;
...
...
@@ -4147,7 +4147,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr dom,
if
(
qemuCapsExtractVersionInfo
(
vm
->
def
->
emulator
,
vm
->
def
->
os
.
arch
,
NULL
,
&
qemuC
mdFlag
s
)
<
0
)
&
qemuC
ap
s
)
<
0
)
goto
endjob
;
switch
(
dev
->
type
)
{
...
...
@@ -4168,7 +4168,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr dom,
case
VIR_DOMAIN_DISK_DEVICE_FLOPPY
:
ret
=
qemuDomainChangeEjectableMedia
(
driver
,
vm
,
dev
->
data
.
disk
,
qemuC
mdFlag
s
,
qemuC
ap
s
,
force
);
if
(
ret
==
0
)
dev
->
data
.
disk
=
NULL
;
...
...
@@ -4223,7 +4223,7 @@ static int qemudDomainDetachDevice(virDomainPtr dom,
const
char
*
xml
)
{
struct
qemud_driver
*
driver
=
dom
->
conn
->
privateData
;
virDomainObjPtr
vm
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
virDomainDeviceDefPtr
dev
=
NULL
;
int
ret
=
-
1
;
...
...
@@ -4253,28 +4253,28 @@ static int qemudDomainDetachDevice(virDomainPtr dom,
if
(
qemuCapsExtractVersionInfo
(
vm
->
def
->
emulator
,
vm
->
def
->
os
.
arch
,
NULL
,
&
qemuC
mdFlag
s
)
<
0
)
&
qemuC
ap
s
)
<
0
)
goto
endjob
;
if
(
dev
->
type
==
VIR_DOMAIN_DEVICE_DISK
&&
dev
->
data
.
disk
->
device
==
VIR_DOMAIN_DISK_DEVICE_DISK
)
{
if
(
dev
->
data
.
disk
->
bus
==
VIR_DOMAIN_DISK_BUS_VIRTIO
)
{
ret
=
qemuDomainDetachPciDiskDevice
(
driver
,
vm
,
dev
,
qemuC
mdFlag
s
);
ret
=
qemuDomainDetachPciDiskDevice
(
driver
,
vm
,
dev
,
qemuC
ap
s
);
}
else
if
(
dev
->
data
.
disk
->
bus
==
VIR_DOMAIN_DISK_BUS_SCSI
)
{
ret
=
qemuDomainDetachSCSIDiskDevice
(
driver
,
vm
,
dev
,
qemuC
mdFlag
s
);
qemuC
ap
s
);
}
else
{
qemuReportError
(
VIR_ERR_CONFIG_UNSUPPORTED
,
"%s"
,
_
(
"This type of disk cannot be hot unplugged"
));
}
}
else
if
(
dev
->
type
==
VIR_DOMAIN_DEVICE_NET
)
{
ret
=
qemuDomainDetachNetDevice
(
driver
,
vm
,
dev
,
qemuC
mdFlag
s
);
ret
=
qemuDomainDetachNetDevice
(
driver
,
vm
,
dev
,
qemuC
ap
s
);
}
else
if
(
dev
->
type
==
VIR_DOMAIN_DEVICE_CONTROLLER
)
{
if
(
dev
->
data
.
controller
->
type
==
VIR_DOMAIN_CONTROLLER_TYPE_SCSI
)
{
ret
=
qemuDomainDetachPciControllerDevice
(
driver
,
vm
,
dev
,
qemuC
mdFlag
s
);
qemuC
ap
s
);
}
else
{
qemuReportError
(
VIR_ERR_CONFIG_UNSUPPORTED
,
_
(
"disk controller bus '%s' cannot be hotunplugged."
),
...
...
@@ -4282,7 +4282,7 @@ static int qemudDomainDetachDevice(virDomainPtr dom,
/* fallthrough */
}
}
else
if
(
dev
->
type
==
VIR_DOMAIN_DEVICE_HOSTDEV
)
{
ret
=
qemuDomainDetachHostDevice
(
driver
,
vm
,
dev
,
qemuC
mdFlag
s
);
ret
=
qemuDomainDetachHostDevice
(
driver
,
vm
,
dev
,
qemuC
ap
s
);
}
else
{
qemuReportError
(
VIR_ERR_CONFIG_UNSUPPORTED
,
"%s"
,
_
(
"This type of device cannot be hot unplugged"
));
...
...
src/qemu/qemu_hotplug.c
浏览文件 @
23d935bd
此差异已折叠。
点击以展开。
src/qemu/qemu_hotplug.h
浏览文件 @
23d935bd
...
...
@@ -32,41 +32,41 @@
int
qemuDomainChangeEjectableMedia
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDiskDefPtr
disk
,
unsigned
long
long
qemuC
mdFlag
s
,
unsigned
long
long
qemuC
ap
s
,
bool
force
);
int
qemuDomainAttachPciDiskDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDiskDefPtr
disk
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainAttachPciControllerDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainControllerDefPtr
controller
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainAttachSCSIDisk
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDiskDefPtr
disk
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainAttachUsbMassstorageDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDiskDefPtr
disk
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainAttachNetDevice
(
virConnectPtr
conn
,
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainNetDefPtr
net
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainAttachHostPciDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainHostdevDefPtr
hostdev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainAttachHostUsbDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainHostdevDefPtr
hostdev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainAttachHostDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainHostdevDefPtr
hostdev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainChangeGraphics
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainGraphicsDefPtr
dev
);
...
...
@@ -78,31 +78,31 @@ int qemuDomainChangeGraphicsPasswords(struct qemud_driver *driver,
int
qemuDomainDetachPciDiskDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDeviceDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainDetachSCSIDiskDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDeviceDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainDetachPciControllerDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDeviceDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainDetachNetDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDeviceDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainDetachHostPciDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDeviceDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainDetachHostUsbDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDeviceDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
int
qemuDomainDetachHostDevice
(
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
virDomainDeviceDefPtr
dev
,
unsigned
long
long
qemuC
mdFlag
s
);
unsigned
long
long
qemuC
ap
s
);
#endif
/* __QEMU_HOTPLUG_H__ */
src/qemu/qemu_migration.c
浏览文件 @
23d935bd
...
...
@@ -244,7 +244,7 @@ qemuMigrationPrepareTunnel(struct qemud_driver *driver,
int
ret
=
-
1
;
int
internalret
;
char
*
unixfile
=
NULL
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
qemuDomainObjPrivatePtr
priv
=
NULL
;
struct
timeval
now
;
...
...
@@ -298,15 +298,15 @@ qemuMigrationPrepareTunnel(struct qemud_driver *driver,
/* check that this qemu version supports the interactive exec */
if
(
qemuCapsExtractVersionInfo
(
vm
->
def
->
emulator
,
vm
->
def
->
os
.
arch
,
NULL
,
&
qemuC
mdFlag
s
)
<
0
)
{
NULL
,
&
qemuC
ap
s
)
<
0
)
{
qemuReportError
(
VIR_ERR_INTERNAL_ERROR
,
_
(
"Cannot determine QEMU argv syntax %s"
),
vm
->
def
->
emulator
);
goto
endjob
;
}
if
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_MIGRATE_QEMU_UNIX
))
if
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_MIGRATE_QEMU_UNIX
))
internalret
=
virAsprintf
(
&
migrateFrom
,
"unix:%s"
,
unixfile
);
else
if
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_MIGRATE_QEMU_EXEC
))
else
if
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_MIGRATE_QEMU_EXEC
))
internalret
=
virAsprintf
(
&
migrateFrom
,
"exec:nc -U -l %s"
,
unixfile
);
else
{
qemuReportError
(
VIR_ERR_OPERATION_FAILED
,
...
...
@@ -708,7 +708,7 @@ static int doTunnelMigrate(struct qemud_driver *driver,
virStreamPtr
st
=
NULL
;
char
*
unixfile
=
NULL
;
int
internalret
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
int
status
;
unsigned
long
long
transferred
,
remaining
,
total
;
unsigned
int
background_flags
=
QEMU_MONITOR_MIGRATE_BACKGROUND
;
...
...
@@ -770,15 +770,15 @@ static int doTunnelMigrate(struct qemud_driver *driver,
/* check that this qemu version supports the unix migration */
if
(
qemuCapsExtractVersionInfo
(
vm
->
def
->
emulator
,
vm
->
def
->
os
.
arch
,
NULL
,
&
qemuC
mdFlag
s
)
<
0
)
{
NULL
,
&
qemuC
ap
s
)
<
0
)
{
qemuReportError
(
VIR_ERR_INTERNAL_ERROR
,
_
(
"Cannot extract Qemu version from '%s'"
),
vm
->
def
->
emulator
);
goto
cleanup
;
}
if
(
!
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_MIGRATE_QEMU_UNIX
)
&&
!
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_MIGRATE_QEMU_EXEC
))
{
if
(
!
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_MIGRATE_QEMU_UNIX
)
&&
!
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_MIGRATE_QEMU_EXEC
))
{
qemuReportError
(
VIR_ERR_OPERATION_FAILED
,
"%s"
,
_
(
"Source qemu is too old to support tunnelled migration"
));
goto
cleanup
;
...
...
@@ -820,11 +820,11 @@ static int doTunnelMigrate(struct qemud_driver *driver,
background_flags
|=
QEMU_MONITOR_MIGRATE_NON_SHARED_DISK
;
if
(
flags
&
VIR_MIGRATE_NON_SHARED_INC
)
background_flags
|=
QEMU_MONITOR_MIGRATE_NON_SHARED_INC
;
if
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_MIGRATE_QEMU_UNIX
))
{
if
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_MIGRATE_QEMU_UNIX
))
{
internalret
=
qemuMonitorMigrateToUnix
(
priv
->
mon
,
background_flags
,
unixfile
);
}
else
if
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_MIGRATE_QEMU_EXEC
))
{
else
if
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_MIGRATE_QEMU_EXEC
))
{
const
char
*
args
[]
=
{
"nc"
,
"-U"
,
unixfile
,
NULL
};
internalret
=
qemuMonitorMigrateToCommand
(
priv
->
mon
,
QEMU_MONITOR_MIGRATE_BACKGROUND
,
args
);
}
else
{
...
...
src/qemu/qemu_process.c
浏览文件 @
23d935bd
...
...
@@ -1137,7 +1137,7 @@ static int
qemuProcessInitPasswords
(
virConnectPtr
conn
,
struct
qemud_driver
*
driver
,
virDomainObjPtr
vm
,
unsigned
long
long
qemuC
mdFlag
s
)
unsigned
long
long
qemuC
ap
s
)
{
int
ret
=
0
;
qemuDomainObjPrivatePtr
priv
=
vm
->
privateData
;
...
...
@@ -1159,7 +1159,7 @@ qemuProcessInitPasswords(virConnectPtr conn,
if
(
ret
<
0
)
goto
cleanup
;
if
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_DEVICE
))
{
if
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_DEVICE
))
{
int
i
;
for
(
i
=
0
;
i
<
vm
->
def
->
ndisks
;
i
++
)
{
...
...
@@ -1789,7 +1789,7 @@ qemuProcessReconnect(void *payload, const char *name ATTRIBUTE_UNUSED, void *opa
struct
qemuProcessReconnectData
*
data
=
opaque
;
struct
qemud_driver
*
driver
=
data
->
driver
;
qemuDomainObjPrivatePtr
priv
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
virConnectPtr
conn
=
data
->
conn
;
virDomainObjLock
(
obj
);
...
...
@@ -1815,8 +1815,8 @@ qemuProcessReconnect(void *payload, const char *name ATTRIBUTE_UNUSED, void *opa
* since launch time */
if
(
qemuCapsExtractVersionInfo
(
obj
->
def
->
emulator
,
obj
->
def
->
os
.
arch
,
NULL
,
&
qemuC
mdFlag
s
)
>=
0
&&
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_DEVICE
))
{
&
qemuC
ap
s
)
>=
0
&&
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_DEVICE
))
{
priv
->
persistentAddrs
=
1
;
if
(
!
(
priv
->
pciaddrs
=
qemuDomainPCIAddressSetCreate
(
obj
->
def
))
||
...
...
@@ -1879,7 +1879,7 @@ int qemuProcessStart(virConnectPtr conn,
enum
virVMOperationType
vmop
)
{
int
ret
;
unsigned
long
long
qemuC
mdFlag
s
;
unsigned
long
long
qemuC
ap
s
;
off_t
pos
=
-
1
;
char
ebuf
[
1024
];
char
*
pidfile
=
NULL
;
...
...
@@ -2010,7 +2010,7 @@ int qemuProcessStart(virConnectPtr conn,
VIR_DEBUG0
(
"Determining emulator version"
);
if
(
qemuCapsExtractVersionInfo
(
vm
->
def
->
emulator
,
vm
->
def
->
os
.
arch
,
NULL
,
&
qemuC
mdFlag
s
)
<
0
)
&
qemuC
ap
s
)
<
0
)
goto
cleanup
;
VIR_DEBUG0
(
"Setting up domain cgroup (if required)"
);
...
...
@@ -2027,7 +2027,7 @@ int qemuProcessStart(virConnectPtr conn,
goto
cleanup
;
#if HAVE_YAJL
if
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_MONITOR_JSON
))
if
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_MONITOR_JSON
))
priv
->
monJSON
=
1
;
else
#endif
...
...
@@ -2056,7 +2056,7 @@ int qemuProcessStart(virConnectPtr conn,
* we also need to populate the PCi address set cache for later
* use in hotplug
*/
if
(
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_DEVICE
))
{
if
(
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_DEVICE
))
{
VIR_DEBUG0
(
"Assigning domain PCI addresses"
);
/* Populate cache with current addresses */
if
(
priv
->
pciaddrs
)
{
...
...
@@ -2078,7 +2078,7 @@ int qemuProcessStart(virConnectPtr conn,
VIR_DEBUG0
(
"Building emulator command line"
);
if
(
!
(
cmd
=
qemuBuildCommandLine
(
conn
,
driver
,
vm
->
def
,
priv
->
monConfig
,
priv
->
monJSON
!=
0
,
qemuC
mdFlag
s
,
priv
->
monJSON
!=
0
,
qemuC
ap
s
,
migrateFrom
,
stdin_fd
,
vm
->
current_snapshot
,
vmop
)))
goto
cleanup
;
...
...
@@ -2185,12 +2185,12 @@ int qemuProcessStart(virConnectPtr conn,
goto
cleanup
;
VIR_DEBUG0
(
"Setting any required VM passwords"
);
if
(
qemuProcessInitPasswords
(
conn
,
driver
,
vm
,
qemuC
mdFlag
s
)
<
0
)
if
(
qemuProcessInitPasswords
(
conn
,
driver
,
vm
,
qemuC
ap
s
)
<
0
)
goto
cleanup
;
/* If we have -device, then addresses are assigned explicitly.
* If not, then we have to detect dynamic ones here */
if
(
!
qemuCapsGet
(
qemuC
mdFlag
s
,
QEMU_CAPS_DEVICE
))
{
if
(
!
qemuCapsGet
(
qemuC
ap
s
,
QEMU_CAPS_DEVICE
))
{
VIR_DEBUG0
(
"Determining domain device PCI addresses"
);
if
(
qemuProcessInitPCIAddresses
(
driver
,
vm
)
<
0
)
goto
cleanup
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录