Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
963a9460
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看板
提交
963a9460
编写于
2月 03, 2011
作者:
J
Jiri Denemark
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
qemu: Support booting from hostdev PCI devices
上级
83e335f9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
1 deletion
+22
-1
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.c
+4
-1
src/qemu/qemu_capabilities.h
src/qemu/qemu_capabilities.h
+1
-0
src/qemu/qemu_command.c
src/qemu/qemu_command.c
+17
-0
未找到文件。
src/qemu/qemu_capabilities.c
浏览文件 @
963a9460
...
@@ -1088,8 +1088,11 @@ qemuCapsParseDeviceStr(const char *str, unsigned long long *flags)
...
@@ -1088,8 +1088,11 @@ qemuCapsParseDeviceStr(const char *str, unsigned long long *flags)
/* Features of given devices. */
/* Features of given devices. */
if
(
strstr
(
str
,
"pci-assign.configfd"
))
if
(
strstr
(
str
,
"pci-assign.configfd"
))
*
flags
|=
QEMUD_CMD_FLAG_PCI_CONFIGFD
;
*
flags
|=
QEMUD_CMD_FLAG_PCI_CONFIGFD
;
if
(
strstr
(
str
,
"virtio-blk-pci.bootindex"
))
if
(
strstr
(
str
,
"virtio-blk-pci.bootindex"
))
{
*
flags
|=
QEMUD_CMD_FLAG_BOOTINDEX
;
*
flags
|=
QEMUD_CMD_FLAG_BOOTINDEX
;
if
(
strstr
(
str
,
"pci-assign.bootindex"
))
*
flags
|=
QEMUD_CMD_FLAG_PCI_BOOTINDEX
;
}
return
0
;
return
0
;
}
}
...
...
src/qemu/qemu_capabilities.h
浏览文件 @
963a9460
...
@@ -87,6 +87,7 @@ enum qemuCapsFlags {
...
@@ -87,6 +87,7 @@ enum qemuCapsFlags {
QEMUD_CMD_FLAG_HDA_DUPLEX
=
(
1LL
<<
50
),
/* -device hda-duplex */
QEMUD_CMD_FLAG_HDA_DUPLEX
=
(
1LL
<<
50
),
/* -device hda-duplex */
QEMUD_CMD_FLAG_DRIVE_AIO
=
(
1LL
<<
51
),
/* -drive aio= supported */
QEMUD_CMD_FLAG_DRIVE_AIO
=
(
1LL
<<
51
),
/* -drive aio= supported */
QEMUD_CMD_FLAG_PCI_MULTIBUS
=
(
1LL
<<
52
),
/* bus=pci.0 vs bus=pci */
QEMUD_CMD_FLAG_PCI_MULTIBUS
=
(
1LL
<<
52
),
/* bus=pci.0 vs bus=pci */
QEMUD_CMD_FLAG_PCI_BOOTINDEX
=
(
1LL
<<
53
),
/* pci-assign.bootindex */
};
};
virCapsPtr
qemuCapsInit
(
virCapsPtr
old_caps
);
virCapsPtr
qemuCapsInit
(
virCapsPtr
old_caps
);
...
...
src/qemu/qemu_command.c
浏览文件 @
963a9460
...
@@ -1917,6 +1917,8 @@ qemuBuildPCIHostdevDevStr(virDomainHostdevDefPtr dev, const char *configfd,
...
@@ -1917,6 +1917,8 @@ qemuBuildPCIHostdevDevStr(virDomainHostdevDefPtr dev, const char *configfd,
virBufferVSprintf
(
&
buf
,
",id=%s"
,
dev
->
info
.
alias
);
virBufferVSprintf
(
&
buf
,
",id=%s"
,
dev
->
info
.
alias
);
if
(
configfd
&&
*
configfd
)
if
(
configfd
&&
*
configfd
)
virBufferVSprintf
(
&
buf
,
",configfd=%s"
,
configfd
);
virBufferVSprintf
(
&
buf
,
",configfd=%s"
,
configfd
);
if
(
dev
->
bootIndex
)
virBufferVSprintf
(
&
buf
,
",bootindex=%d"
,
dev
->
bootIndex
);
if
(
qemuBuildDeviceAddressStr
(
&
buf
,
&
dev
->
info
,
qemuCmdFlags
)
<
0
)
if
(
qemuBuildDeviceAddressStr
(
&
buf
,
&
dev
->
info
,
qemuCmdFlags
)
<
0
)
goto
error
;
goto
error
;
...
@@ -3980,6 +3982,21 @@ qemuBuildCommandLine(virConnectPtr conn,
...
@@ -3980,6 +3982,21 @@ qemuBuildCommandLine(virConnectPtr conn,
virDomainHostdevDefPtr
hostdev
=
def
->
hostdevs
[
i
];
virDomainHostdevDefPtr
hostdev
=
def
->
hostdevs
[
i
];
char
*
devstr
;
char
*
devstr
;
if
(
hostdev
->
bootIndex
)
{
if
(
hostdev
->
mode
!=
VIR_DOMAIN_HOSTDEV_MODE_SUBSYS
||
hostdev
->
source
.
subsys
.
type
!=
VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI
)
{
qemuReportError
(
VIR_ERR_CONFIG_UNSUPPORTED
,
"%s"
,
_
(
"booting from assigned devices is only"
" supported for PCI devices"
));
goto
error
;
}
else
if
(
!
(
qemuCmdFlags
&
QEMUD_CMD_FLAG_PCI_BOOTINDEX
))
{
qemuReportError
(
VIR_ERR_CONFIG_UNSUPPORTED
,
"%s"
,
_
(
"booting from assigned PCI devices is not"
" supported with this version of qemu"
));
goto
error
;
}
}
/* USB */
/* USB */
if
(
hostdev
->
mode
==
VIR_DOMAIN_HOSTDEV_MODE_SUBSYS
&&
if
(
hostdev
->
mode
==
VIR_DOMAIN_HOSTDEV_MODE_SUBSYS
&&
hostdev
->
source
.
subsys
.
type
==
VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB
)
{
hostdev
->
source
.
subsys
.
type
==
VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录