Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
6baf8814
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6baf8814
编写于
4月 27, 2015
作者:
J
Jim Fehlig
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
libxl: support SPICE graphics for HVM domains
Signed-off-by:
N
Jim Fehlig
<
jfehlig@suse.com
>
上级
5a10fb1d
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
67 addition
and
4 deletion
+67
-4
src/libxl/libxl_conf.c
src/libxl/libxl_conf.c
+67
-4
未找到文件。
src/libxl/libxl_conf.c
浏览文件 @
6baf8814
...
...
@@ -1339,22 +1339,85 @@ libxlMakeVfbList(virPortAllocatorPtr graphicsports,
/*
* Populate vfb info in libxl_domain_build_info struct for HVM domains.
* Use first libxl_device_vfb device in libxl_domain_config->vfbs.
* Prior to calling this function, libxlMakeVfbList must be called to
* populate libxl_domain_config->vfbs.
*/
static
int
libxlMakeBuildInfoVfb
(
virDomainDefPtr
def
,
libxl_domain_config
*
d_config
)
libxlMakeBuildInfoVfb
(
virPortAllocatorPtr
graphicsports
,
virDomainDefPtr
def
,
libxl_domain_config
*
d_config
)
{
libxl_domain_build_info
*
b_info
=
&
d_config
->
b_info
;
libxl_device_vfb
x_vfb
;
size_t
i
;
if
(
def
->
os
.
type
!=
VIR_DOMAIN_OSTYPE_HVM
)
return
0
;
if
(
d
_config
->
num_vfb
s
==
0
)
if
(
d
ef
->
ngraphic
s
==
0
)
return
0
;
/*
* Prefer SPICE, otherwise use first libxl_device_vfb device in
* libxl_domain_config->vfbs. Prior to calling this function,
*/
for
(
i
=
0
;
i
<
def
->
ngraphics
;
i
++
)
{
virDomainGraphicsDefPtr
l_vfb
=
def
->
graphics
[
i
];
unsigned
short
port
;
const
char
*
listenAddr
;
if
(
l_vfb
->
type
!=
VIR_DOMAIN_GRAPHICS_TYPE_SPICE
)
continue
;
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
enable
,
true
);
if
(
l_vfb
->
data
.
spice
.
autoport
)
{
if
(
virPortAllocatorAcquire
(
graphicsports
,
&
port
)
<
0
)
return
-
1
;
l_vfb
->
data
.
spice
.
port
=
port
;
}
b_info
->
u
.
hvm
.
spice
.
port
=
l_vfb
->
data
.
spice
.
port
;
listenAddr
=
virDomainGraphicsListenGetAddress
(
l_vfb
,
0
);
if
(
VIR_STRDUP
(
b_info
->
u
.
hvm
.
spice
.
host
,
listenAddr
)
<
0
)
return
-
1
;
if
(
VIR_STRDUP
(
b_info
->
u
.
hvm
.
keymap
,
l_vfb
->
data
.
spice
.
keymap
)
<
0
)
return
-
1
;
if
(
l_vfb
->
data
.
spice
.
auth
.
passwd
)
{
if
(
VIR_STRDUP
(
b_info
->
u
.
hvm
.
spice
.
passwd
,
l_vfb
->
data
.
spice
.
auth
.
passwd
)
<
0
)
return
-
1
;
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
disable_ticketing
,
false
);
}
else
{
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
disable_ticketing
,
true
);
}
switch
(
l_vfb
->
data
.
spice
.
mousemode
)
{
/* client mouse mode is default in xl.cfg */
case
VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_DEFAULT
:
case
VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_CLIENT
:
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
agent_mouse
,
true
);
break
;
case
VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_SERVER
:
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
agent_mouse
,
false
);
break
;
}
#ifdef LIBXL_HAVE_SPICE_VDAGENT
if
(
l_vfb
->
data
.
spice
.
copypaste
==
VIR_TRISTATE_BOOL_YES
)
{
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
vdagent
,
true
);
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
clipboard_sharing
,
true
);
}
else
{
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
vdagent
,
false
);
libxl_defbool_set
(
&
b_info
->
u
.
hvm
.
spice
.
clipboard_sharing
,
false
);
}
#endif
return
0
;
}
x_vfb
=
d_config
->
vfbs
[
0
];
if
(
libxl_defbool_val
(
x_vfb
.
vnc
.
enable
))
{
...
...
@@ -1780,7 +1843,7 @@ libxlBuildDomainConfig(virPortAllocatorPtr graphicsports,
if
(
libxlMakeVfbList
(
graphicsports
,
def
,
d_config
)
<
0
)
return
-
1
;
if
(
libxlMakeBuildInfoVfb
(
def
,
d_config
)
<
0
)
if
(
libxlMakeBuildInfoVfb
(
graphicsports
,
def
,
d_config
)
<
0
)
return
-
1
;
if
(
libxlMakePCIList
(
def
,
d_config
)
<
0
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录