Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
d2ab0381
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,发现更多精彩内容 >>
提交
d2ab0381
编写于
7月 04, 2013
作者:
M
Michal Privoznik
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Adapt to VIR_ALLOC and virAsprintf in src/xenxs/*
上级
2f5560d3
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
135 addition
and
181 deletion
+135
-181
src/xenxs/xen_sxpr.c
src/xenxs/xen_sxpr.c
+46
-66
src/xenxs/xen_xm.c
src/xenxs/xen_xm.c
+89
-115
未找到文件。
src/xenxs/xen_sxpr.c
浏览文件 @
d2ab0381
...
@@ -89,10 +89,10 @@ xenParseSxprOS(const struct sexpr *node,
...
@@ -89,10 +89,10 @@ xenParseSxprOS(const struct sexpr *node,
{
{
if
(
hvm
)
{
if
(
hvm
)
{
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/loader"
,
&
def
->
os
.
loader
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/loader"
,
&
def
->
os
.
loader
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
def
->
os
.
loader
==
NULL
)
{
if
(
def
->
os
.
loader
==
NULL
)
{
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/kernel"
,
&
def
->
os
.
loader
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/kernel"
,
&
def
->
os
.
loader
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
def
->
os
.
loader
==
NULL
)
{
if
(
def
->
os
.
loader
==
NULL
)
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
...
@@ -101,23 +101,23 @@ xenParseSxprOS(const struct sexpr *node,
...
@@ -101,23 +101,23 @@ xenParseSxprOS(const struct sexpr *node,
}
}
}
else
{
}
else
{
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/kernel"
,
&
def
->
os
.
kernel
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/kernel"
,
&
def
->
os
.
kernel
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/ramdisk"
,
&
def
->
os
.
initrd
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/ramdisk"
,
&
def
->
os
.
initrd
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/args"
,
&
def
->
os
.
cmdline
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/args"
,
&
def
->
os
.
cmdline
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/root"
,
&
def
->
os
.
root
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/hvm/root"
,
&
def
->
os
.
root
)
<
0
)
goto
no_memory
;
goto
error
;
}
}
}
else
{
}
else
{
if
(
sexpr_node_copy
(
node
,
"domain/image/linux/kernel"
,
&
def
->
os
.
kernel
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/linux/kernel"
,
&
def
->
os
.
kernel
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
sexpr_node_copy
(
node
,
"domain/image/linux/ramdisk"
,
&
def
->
os
.
initrd
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/linux/ramdisk"
,
&
def
->
os
.
initrd
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
sexpr_node_copy
(
node
,
"domain/image/linux/args"
,
&
def
->
os
.
cmdline
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/linux/args"
,
&
def
->
os
.
cmdline
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
sexpr_node_copy
(
node
,
"domain/image/linux/root"
,
&
def
->
os
.
root
)
<
0
)
if
(
sexpr_node_copy
(
node
,
"domain/image/linux/root"
,
&
def
->
os
.
root
)
<
0
)
goto
no_memory
;
goto
error
;
}
}
/* If HVM kenrel == loader, then old xend, so kill off kernel */
/* If HVM kenrel == loader, then old xend, so kill off kernel */
...
@@ -162,8 +162,7 @@ xenParseSxprOS(const struct sexpr *node,
...
@@ -162,8 +162,7 @@ xenParseSxprOS(const struct sexpr *node,
return
0
;
return
0
;
no_memory:
error:
virReportOOMError
();
return
-
1
;
return
-
1
;
}
}
...
@@ -367,7 +366,7 @@ xenParseSxprDisks(virDomainDefPtr def,
...
@@ -367,7 +366,7 @@ xenParseSxprDisks(virDomainDefPtr def,
}
}
if
(
VIR_ALLOC
(
disk
)
<
0
)
if
(
VIR_ALLOC
(
disk
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
dst
==
NULL
)
{
if
(
dst
==
NULL
)
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
...
@@ -401,7 +400,7 @@ xenParseSxprDisks(virDomainDefPtr def,
...
@@ -401,7 +400,7 @@ xenParseSxprDisks(virDomainDefPtr def,
goto
error
;
goto
error
;
}
else
{
}
else
{
if
(
VIR_ALLOC_N
(
disk
->
driverName
,
(
offset
-
src
)
+
1
)
<
0
)
if
(
VIR_ALLOC_N
(
disk
->
driverName
,
(
offset
-
src
)
+
1
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
virStrncpy
(
disk
->
driverName
,
src
,
offset
-
src
,
if
(
virStrncpy
(
disk
->
driverName
,
src
,
offset
-
src
,
(
offset
-
src
)
+
1
)
==
NULL
)
{
(
offset
-
src
)
+
1
)
==
NULL
)
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
...
@@ -498,7 +497,7 @@ xenParseSxprDisks(virDomainDefPtr def,
...
@@ -498,7 +497,7 @@ xenParseSxprDisks(virDomainDefPtr def,
disk
->
shared
=
true
;
disk
->
shared
=
true
;
if
(
VIR_REALLOC_N
(
def
->
disks
,
def
->
ndisks
+
1
)
<
0
)
if
(
VIR_REALLOC_N
(
def
->
disks
,
def
->
ndisks
+
1
)
<
0
)
goto
no_memory
;
goto
error
;
/* re-order disks if there is a bootable device */
/* re-order disks if there is a bootable device */
if
(
STREQ_NULLABLE
(
bootable
,
"1"
))
{
if
(
STREQ_NULLABLE
(
bootable
,
"1"
))
{
...
@@ -513,9 +512,6 @@ xenParseSxprDisks(virDomainDefPtr def,
...
@@ -513,9 +512,6 @@ xenParseSxprDisks(virDomainDefPtr def,
return
0
;
return
0
;
no_memory:
virReportOOMError
();
error:
error:
virDomainDiskDefFree
(
disk
);
virDomainDiskDefFree
(
disk
);
return
-
1
;
return
-
1
;
...
@@ -550,7 +546,7 @@ xenParseSxprNets(virDomainDefPtr def,
...
@@ -550,7 +546,7 @@ xenParseSxprNets(virDomainDefPtr def,
type
=
sexpr_node
(
node
,
"device/vif/type"
);
type
=
sexpr_node
(
node
,
"device/vif/type"
);
if
(
VIR_ALLOC
(
net
)
<
0
)
if
(
VIR_ALLOC
(
net
)
<
0
)
goto
no_memory
;
goto
cleanup
;
if
(
tmp
!=
NULL
||
if
(
tmp
!=
NULL
||
(
tmp2
!=
NULL
&&
STREQ
(
tmp2
,
DEFAULT_VIF_SCRIPT
)))
{
(
tmp2
!=
NULL
&&
STREQ
(
tmp2
,
DEFAULT_VIF_SCRIPT
)))
{
...
@@ -583,7 +579,7 @@ xenParseSxprNets(virDomainDefPtr def,
...
@@ -583,7 +579,7 @@ xenParseSxprNets(virDomainDefPtr def,
goto
cleanup
;
goto
cleanup
;
}
else
if
(
def
->
id
!=
-
1
)
{
}
else
if
(
def
->
id
!=
-
1
)
{
if
(
virAsprintf
(
&
net
->
ifname
,
"vif%d.%d"
,
def
->
id
,
vif_index
)
<
0
)
if
(
virAsprintf
(
&
net
->
ifname
,
"vif%d.%d"
,
def
->
id
,
vif_index
)
<
0
)
goto
no_memory
;
goto
cleanup
;
}
}
tmp
=
sexpr_node
(
node
,
"device/vif/mac"
);
tmp
=
sexpr_node
(
node
,
"device/vif/mac"
);
...
@@ -603,7 +599,7 @@ xenParseSxprNets(virDomainDefPtr def,
...
@@ -603,7 +599,7 @@ xenParseSxprNets(virDomainDefPtr def,
goto
cleanup
;
goto
cleanup
;
if
(
VIR_REALLOC_N
(
def
->
nets
,
def
->
nnets
+
1
)
<
0
)
if
(
VIR_REALLOC_N
(
def
->
nets
,
def
->
nnets
+
1
)
<
0
)
goto
no_memory
;
goto
cleanup
;
def
->
nets
[
def
->
nnets
++
]
=
net
;
def
->
nets
[
def
->
nnets
++
]
=
net
;
vif_index
++
;
vif_index
++
;
...
@@ -612,8 +608,6 @@ xenParseSxprNets(virDomainDefPtr def,
...
@@ -612,8 +608,6 @@ xenParseSxprNets(virDomainDefPtr def,
return
0
;
return
0
;
no_memory:
virReportOOMError
();
cleanup:
cleanup:
virDomainNetDefFree
(
net
);
virDomainNetDefFree
(
net
);
return
-
1
;
return
-
1
;
...
@@ -651,13 +645,13 @@ xenParseSxprSound(virDomainDefPtr def,
...
@@ -651,13 +645,13 @@ xenParseSxprSound(virDomainDefPtr def,
if
(
VIR_ALLOC_N
(
def
->
sounds
,
if
(
VIR_ALLOC_N
(
def
->
sounds
,
VIR_DOMAIN_SOUND_MODEL_ES1370
+
1
)
<
0
)
VIR_DOMAIN_SOUND_MODEL_ES1370
+
1
)
<
0
)
goto
no_memory
;
goto
error
;
for
(
i
=
0
;
i
<
(
VIR_DOMAIN_SOUND_MODEL_ES1370
+
1
);
i
++
)
{
for
(
i
=
0
;
i
<
(
VIR_DOMAIN_SOUND_MODEL_ES1370
+
1
);
i
++
)
{
virDomainSoundDefPtr
sound
;
virDomainSoundDefPtr
sound
;
if
(
VIR_ALLOC
(
sound
)
<
0
)
if
(
VIR_ALLOC
(
sound
)
<
0
)
goto
no_memory
;
goto
error
;
sound
->
model
=
i
;
sound
->
model
=
i
;
def
->
sounds
[
def
->
nsounds
++
]
=
sound
;
def
->
sounds
[
def
->
nsounds
++
]
=
sound
;
}
}
...
@@ -681,7 +675,7 @@ xenParseSxprSound(virDomainDefPtr def,
...
@@ -681,7 +675,7 @@ xenParseSxprSound(virDomainDefPtr def,
}
}
if
(
VIR_ALLOC
(
sound
)
<
0
)
if
(
VIR_ALLOC
(
sound
)
<
0
)
goto
no_memory
;
goto
error
;
if
((
sound
->
model
=
virDomainSoundModelTypeFromString
(
model
))
<
0
)
{
if
((
sound
->
model
=
virDomainSoundModelTypeFromString
(
model
))
<
0
)
{
VIR_FREE
(
sound
);
VIR_FREE
(
sound
);
...
@@ -690,7 +684,7 @@ xenParseSxprSound(virDomainDefPtr def,
...
@@ -690,7 +684,7 @@ xenParseSxprSound(virDomainDefPtr def,
if
(
VIR_REALLOC_N
(
def
->
sounds
,
def
->
nsounds
+
1
)
<
0
)
{
if
(
VIR_REALLOC_N
(
def
->
sounds
,
def
->
nsounds
+
1
)
<
0
)
{
virDomainSoundDefFree
(
sound
);
virDomainSoundDefFree
(
sound
);
goto
no_memory
;
goto
error
;
}
}
def
->
sounds
[
def
->
nsounds
++
]
=
sound
;
def
->
sounds
[
def
->
nsounds
++
]
=
sound
;
...
@@ -700,8 +694,6 @@ xenParseSxprSound(virDomainDefPtr def,
...
@@ -700,8 +694,6 @@ xenParseSxprSound(virDomainDefPtr def,
return
0
;
return
0
;
no_memory:
virReportOOMError
();
error:
error:
return
-
1
;
return
-
1
;
}
}
...
@@ -732,7 +724,7 @@ xenParseSxprUSB(virDomainDefPtr def,
...
@@ -732,7 +724,7 @@ xenParseSxprUSB(virDomainDefPtr def,
STREQ
(
tmp
,
"mouse"
))
{
STREQ
(
tmp
,
"mouse"
))
{
virDomainInputDefPtr
input
;
virDomainInputDefPtr
input
;
if
(
VIR_ALLOC
(
input
)
<
0
)
if
(
VIR_ALLOC
(
input
)
<
0
)
goto
no_memory
;
goto
error
;
input
->
bus
=
VIR_DOMAIN_INPUT_BUS_USB
;
input
->
bus
=
VIR_DOMAIN_INPUT_BUS_USB
;
if
(
STREQ
(
tmp
,
"tablet"
))
if
(
STREQ
(
tmp
,
"tablet"
))
input
->
type
=
VIR_DOMAIN_INPUT_TYPE_TABLET
;
input
->
type
=
VIR_DOMAIN_INPUT_TYPE_TABLET
;
...
@@ -741,7 +733,7 @@ xenParseSxprUSB(virDomainDefPtr def,
...
@@ -741,7 +733,7 @@ xenParseSxprUSB(virDomainDefPtr def,
if
(
VIR_REALLOC_N
(
def
->
inputs
,
def
->
ninputs
+
1
)
<
0
)
{
if
(
VIR_REALLOC_N
(
def
->
inputs
,
def
->
ninputs
+
1
)
<
0
)
{
VIR_FREE
(
input
);
VIR_FREE
(
input
);
goto
no_memory
;
goto
error
;
}
}
def
->
inputs
[
def
->
ninputs
++
]
=
input
;
def
->
inputs
[
def
->
ninputs
++
]
=
input
;
}
else
{
}
else
{
...
@@ -752,8 +744,7 @@ xenParseSxprUSB(virDomainDefPtr def,
...
@@ -752,8 +744,7 @@ xenParseSxprUSB(virDomainDefPtr def,
}
}
return
0
;
return
0
;
no_memory:
error:
virReportOOMError
();
return
-
1
;
return
-
1
;
}
}
...
@@ -791,7 +782,7 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
...
@@ -791,7 +782,7 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
port
=
vncport
;
port
=
vncport
;
if
(
VIR_ALLOC
(
graphics
)
<
0
)
if
(
VIR_ALLOC
(
graphics
)
<
0
)
goto
no_memory
;
goto
error
;
graphics
->
type
=
VIR_DOMAIN_GRAPHICS_TYPE_VNC
;
graphics
->
type
=
VIR_DOMAIN_GRAPHICS_TYPE_VNC
;
/* For Xen >= 3.0.3, don't generate a fixed port mapping
/* For Xen >= 3.0.3, don't generate a fixed port mapping
...
@@ -818,7 +809,7 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
...
@@ -818,7 +809,7 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
goto
error
;
goto
error
;
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
goto
no_memory
;
goto
error
;
def
->
graphics
[
0
]
=
graphics
;
def
->
graphics
[
0
]
=
graphics
;
def
->
ngraphics
=
1
;
def
->
ngraphics
=
1
;
graphics
=
NULL
;
graphics
=
NULL
;
...
@@ -829,7 +820,7 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
...
@@ -829,7 +820,7 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
const
char
*
xauth
=
sexpr_fmt_node
(
root
,
"domain/image/%s/xauthority"
,
hvm
?
"hvm"
:
"linux"
);
const
char
*
xauth
=
sexpr_fmt_node
(
root
,
"domain/image/%s/xauthority"
,
hvm
?
"hvm"
:
"linux"
);
if
(
VIR_ALLOC
(
graphics
)
<
0
)
if
(
VIR_ALLOC
(
graphics
)
<
0
)
goto
no_memory
;
goto
error
;
graphics
->
type
=
VIR_DOMAIN_GRAPHICS_TYPE_SDL
;
graphics
->
type
=
VIR_DOMAIN_GRAPHICS_TYPE_SDL
;
if
(
VIR_STRDUP
(
graphics
->
data
.
sdl
.
display
,
display
)
<
0
)
if
(
VIR_STRDUP
(
graphics
->
data
.
sdl
.
display
,
display
)
<
0
)
...
@@ -838,7 +829,7 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
...
@@ -838,7 +829,7 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
goto
error
;
goto
error
;
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
goto
no_memory
;
goto
error
;
def
->
graphics
[
0
]
=
graphics
;
def
->
graphics
[
0
]
=
graphics
;
def
->
ngraphics
=
1
;
def
->
ngraphics
=
1
;
graphics
=
NULL
;
graphics
=
NULL
;
...
@@ -846,8 +837,6 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
...
@@ -846,8 +837,6 @@ xenParseSxprGraphicsOld(virDomainDefPtr def,
return
0
;
return
0
;
no_memory:
virReportOOMError
();
error:
error:
virDomainGraphicsDefFree
(
graphics
);
virDomainGraphicsDefFree
(
graphics
);
return
-
1
;
return
-
1
;
...
@@ -889,7 +878,7 @@ xenParseSxprGraphicsNew(virDomainDefPtr def,
...
@@ -889,7 +878,7 @@ xenParseSxprGraphicsNew(virDomainDefPtr def,
}
}
if
(
VIR_ALLOC
(
graphics
)
<
0
)
if
(
VIR_ALLOC
(
graphics
)
<
0
)
goto
no_memory
;
goto
error
;
if
((
graphics
->
type
=
virDomainGraphicsTypeFromString
(
tmp
))
<
0
)
{
if
((
graphics
->
type
=
virDomainGraphicsTypeFromString
(
tmp
))
<
0
)
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
...
@@ -940,7 +929,7 @@ xenParseSxprGraphicsNew(virDomainDefPtr def,
...
@@ -940,7 +929,7 @@ xenParseSxprGraphicsNew(virDomainDefPtr def,
}
}
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
if
(
VIR_ALLOC_N
(
def
->
graphics
,
1
)
<
0
)
goto
no_memory
;
goto
error
;
def
->
graphics
[
0
]
=
graphics
;
def
->
graphics
[
0
]
=
graphics
;
def
->
ngraphics
=
1
;
def
->
ngraphics
=
1
;
graphics
=
NULL
;
graphics
=
NULL
;
...
@@ -950,8 +939,6 @@ xenParseSxprGraphicsNew(virDomainDefPtr def,
...
@@ -950,8 +939,6 @@ xenParseSxprGraphicsNew(virDomainDefPtr def,
return
0
;
return
0
;
no_memory:
virReportOOMError
();
error:
error:
virDomainGraphicsDefFree
(
graphics
);
virDomainGraphicsDefFree
(
graphics
);
return
-
1
;
return
-
1
;
...
@@ -1067,7 +1054,7 @@ xenParseSxprPCI(virDomainDefPtr def,
...
@@ -1067,7 +1054,7 @@ xenParseSxprPCI(virDomainDefPtr def,
if
(
VIR_REALLOC_N
(
def
->
hostdevs
,
def
->
nhostdevs
+
1
)
<
0
)
{
if
(
VIR_REALLOC_N
(
def
->
hostdevs
,
def
->
nhostdevs
+
1
)
<
0
)
{
virDomainHostdevDefFree
(
dev
);
virDomainHostdevDefFree
(
dev
);
goto
no_memory
;
goto
error
;
}
}
def
->
hostdevs
[
def
->
nhostdevs
++
]
=
dev
;
def
->
hostdevs
[
def
->
nhostdevs
++
]
=
dev
;
...
@@ -1075,9 +1062,6 @@ xenParseSxprPCI(virDomainDefPtr def,
...
@@ -1075,9 +1062,6 @@ xenParseSxprPCI(virDomainDefPtr def,
return
0
;
return
0
;
no_memory:
virReportOOMError
();
error:
error:
virDomainHostdevDefFree
(
dev
);
virDomainHostdevDefFree
(
dev
);
return
-
1
;
return
-
1
;
...
@@ -1108,7 +1092,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1108,7 +1092,7 @@ xenParseSxpr(const struct sexpr *root,
int
hvm
=
0
,
vmlocaltime
;
int
hvm
=
0
,
vmlocaltime
;
if
(
VIR_ALLOC
(
def
)
<
0
)
if
(
VIR_ALLOC
(
def
)
<
0
)
goto
no_memory
;
goto
error
;
tmp
=
sexpr_node
(
root
,
"domain/domid"
);
tmp
=
sexpr_node
(
root
,
"domain/domid"
);
if
(
tmp
==
NULL
&&
xendConfigVersion
<
XEND_CONFIG_VERSION_3_0_4
)
{
/* domid was mandatory */
if
(
tmp
==
NULL
&&
xendConfigVersion
<
XEND_CONFIG_VERSION_3_0_4
)
{
/* domid was mandatory */
...
@@ -1123,7 +1107,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1123,7 +1107,7 @@ xenParseSxpr(const struct sexpr *root,
def
->
id
=
-
1
;
def
->
id
=
-
1
;
if
(
sexpr_node_copy
(
root
,
"domain/name"
,
&
def
->
name
)
<
0
)
if
(
sexpr_node_copy
(
root
,
"domain/name"
,
&
def
->
name
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
def
->
name
==
NULL
)
{
if
(
def
->
name
==
NULL
)
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
"%s"
,
_
(
"domain information incomplete, missing name"
));
"%s"
,
_
(
"domain information incomplete, missing name"
));
...
@@ -1140,13 +1124,13 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1140,13 +1124,13 @@ xenParseSxpr(const struct sexpr *root,
goto
error
;
goto
error
;
if
(
sexpr_node_copy
(
root
,
"domain/description"
,
&
def
->
description
)
<
0
)
if
(
sexpr_node_copy
(
root
,
"domain/description"
,
&
def
->
description
)
<
0
)
goto
no_memory
;
goto
error
;
hvm
=
sexpr_lookup
(
root
,
"domain/image/hvm"
)
?
1
:
0
;
hvm
=
sexpr_lookup
(
root
,
"domain/image/hvm"
)
?
1
:
0
;
if
(
!
hvm
)
{
if
(
!
hvm
)
{
if
(
sexpr_node_copy
(
root
,
"domain/bootloader"
,
if
(
sexpr_node_copy
(
root
,
"domain/bootloader"
,
&
def
->
os
.
bootloader
)
<
0
)
&
def
->
os
.
bootloader
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
!
def
->
os
.
bootloader
&&
if
(
!
def
->
os
.
bootloader
&&
sexpr_has
(
root
,
"domain/bootloader"
)
&&
sexpr_has
(
root
,
"domain/bootloader"
)
&&
...
@@ -1156,7 +1140,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1156,7 +1140,7 @@ xenParseSxpr(const struct sexpr *root,
if
(
def
->
os
.
bootloader
&&
if
(
def
->
os
.
bootloader
&&
sexpr_node_copy
(
root
,
"domain/bootloader_args"
,
sexpr_node_copy
(
root
,
"domain/bootloader_args"
,
&
def
->
os
.
bootloaderArgs
)
<
0
)
&
def
->
os
.
bootloaderArgs
)
<
0
)
goto
no_memory
;
goto
error
;
}
}
if
(
VIR_STRDUP
(
def
->
os
.
type
,
hvm
?
"hvm"
:
"linux"
)
<
0
)
if
(
VIR_STRDUP
(
def
->
os
.
type
,
hvm
?
"hvm"
:
"linux"
)
<
0
)
...
@@ -1263,10 +1247,8 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1263,10 +1247,8 @@ xenParseSxpr(const struct sexpr *root,
virDomainTimerDefPtr
timer
;
virDomainTimerDefPtr
timer
;
if
(
VIR_ALLOC_N
(
def
->
clock
.
timers
,
1
)
<
0
||
if
(
VIR_ALLOC_N
(
def
->
clock
.
timers
,
1
)
<
0
||
VIR_ALLOC
(
timer
)
<
0
)
{
VIR_ALLOC
(
timer
)
<
0
)
virReportOOMError
();
goto
error
;
goto
error
;
}
timer
->
name
=
VIR_DOMAIN_TIMER_NAME_HPET
;
timer
->
name
=
VIR_DOMAIN_TIMER_NAME_HPET
;
timer
->
present
=
sexpr_int
(
root
,
"domain/image/hvm/hpet"
);
timer
->
present
=
sexpr_int
(
root
,
"domain/image/hvm/hpet"
);
...
@@ -1296,7 +1278,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1296,7 +1278,7 @@ xenParseSxpr(const struct sexpr *root,
"domain/image/hvm/device_model"
:
"domain/image/hvm/device_model"
:
"domain/image/linux/device_model"
,
"domain/image/linux/device_model"
,
&
def
->
emulator
)
<
0
)
&
def
->
emulator
)
<
0
)
goto
no_memory
;
goto
error
;
/* append block devices */
/* append block devices */
if
(
xenParseSxprDisks
(
def
,
root
,
hvm
,
xendConfigVersion
)
<
0
)
if
(
xenParseSxprDisks
(
def
,
root
,
hvm
,
xendConfigVersion
)
<
0
)
...
@@ -1326,7 +1308,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1326,7 +1308,7 @@ xenParseSxpr(const struct sexpr *root,
if
((
tmp
!=
NULL
)
&&
(
tmp
[
0
]
!=
0
))
{
if
((
tmp
!=
NULL
)
&&
(
tmp
[
0
]
!=
0
))
{
virDomainDiskDefPtr
disk
;
virDomainDiskDefPtr
disk
;
if
(
VIR_ALLOC
(
disk
)
<
0
)
if
(
VIR_ALLOC
(
disk
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
VIR_STRDUP
(
disk
->
src
,
tmp
)
<
0
)
{
if
(
VIR_STRDUP
(
disk
->
src
,
tmp
)
<
0
)
{
virDomainDiskDefFree
(
disk
);
virDomainDiskDefFree
(
disk
);
goto
error
;
goto
error
;
...
@@ -1346,7 +1328,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1346,7 +1328,7 @@ xenParseSxpr(const struct sexpr *root,
if
(
VIR_REALLOC_N
(
def
->
disks
,
def
->
ndisks
+
1
)
<
0
)
{
if
(
VIR_REALLOC_N
(
def
->
disks
,
def
->
ndisks
+
1
)
<
0
)
{
virDomainDiskDefFree
(
disk
);
virDomainDiskDefFree
(
disk
);
goto
no_memory
;
goto
error
;
}
}
def
->
disks
[
def
->
ndisks
++
]
=
disk
;
def
->
disks
[
def
->
ndisks
++
]
=
disk
;
}
}
...
@@ -1362,7 +1344,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1362,7 +1344,7 @@ xenParseSxpr(const struct sexpr *root,
if
((
tmp
!=
NULL
)
&&
(
tmp
[
0
]
!=
0
))
{
if
((
tmp
!=
NULL
)
&&
(
tmp
[
0
]
!=
0
))
{
virDomainDiskDefPtr
disk
;
virDomainDiskDefPtr
disk
;
if
(
VIR_ALLOC
(
disk
)
<
0
)
if
(
VIR_ALLOC
(
disk
)
<
0
)
goto
no_memory
;
goto
error
;
if
(
VIR_STRDUP
(
disk
->
src
,
tmp
)
<
0
)
{
if
(
VIR_STRDUP
(
disk
->
src
,
tmp
)
<
0
)
{
VIR_FREE
(
disk
);
VIR_FREE
(
disk
);
goto
error
;
goto
error
;
...
@@ -1381,7 +1363,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1381,7 +1363,7 @@ xenParseSxpr(const struct sexpr *root,
if
(
VIR_REALLOC_N
(
def
->
disks
,
def
->
ndisks
+
1
)
<
0
)
{
if
(
VIR_REALLOC_N
(
def
->
disks
,
def
->
ndisks
+
1
)
<
0
)
{
virDomainDiskDefFree
(
disk
);
virDomainDiskDefFree
(
disk
);
goto
no_memory
;
goto
error
;
}
}
def
->
disks
[
def
->
ndisks
++
]
=
disk
;
def
->
disks
[
def
->
ndisks
++
]
=
disk
;
}
}
...
@@ -1415,7 +1397,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1415,7 +1397,7 @@ xenParseSxpr(const struct sexpr *root,
goto
error
;
goto
error
;
if
(
VIR_REALLOC_N
(
def
->
serials
,
def
->
nserials
+
1
)
<
0
)
{
if
(
VIR_REALLOC_N
(
def
->
serials
,
def
->
nserials
+
1
)
<
0
)
{
virDomainChrDefFree
(
chr
);
virDomainChrDefFree
(
chr
);
goto
no_memory
;
goto
error
;
}
}
chr
->
deviceType
=
VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL
;
chr
->
deviceType
=
VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL
;
chr
->
target
.
port
=
def
->
nserials
+
ports_skipped
;
chr
->
target
.
port
=
def
->
nserials
+
ports_skipped
;
...
@@ -1437,7 +1419,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1437,7 +1419,7 @@ xenParseSxpr(const struct sexpr *root,
goto
error
;
goto
error
;
if
(
VIR_REALLOC_N
(
def
->
serials
,
def
->
nserials
+
1
)
<
0
)
{
if
(
VIR_REALLOC_N
(
def
->
serials
,
def
->
nserials
+
1
)
<
0
)
{
virDomainChrDefFree
(
chr
);
virDomainChrDefFree
(
chr
);
goto
no_memory
;
goto
error
;
}
}
chr
->
deviceType
=
VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL
;
chr
->
deviceType
=
VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL
;
chr
->
target
.
port
=
0
;
chr
->
target
.
port
=
0
;
...
@@ -1453,7 +1435,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1453,7 +1435,7 @@ xenParseSxpr(const struct sexpr *root,
goto
error
;
goto
error
;
if
(
VIR_REALLOC_N
(
def
->
parallels
,
def
->
nparallels
+
1
)
<
0
)
{
if
(
VIR_REALLOC_N
(
def
->
parallels
,
def
->
nparallels
+
1
)
<
0
)
{
virDomainChrDefFree
(
chr
);
virDomainChrDefFree
(
chr
);
goto
no_memory
;
goto
error
;
}
}
chr
->
deviceType
=
VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL
;
chr
->
deviceType
=
VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL
;
chr
->
target
.
port
=
0
;
chr
->
target
.
port
=
0
;
...
@@ -1462,7 +1444,7 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1462,7 +1444,7 @@ xenParseSxpr(const struct sexpr *root,
}
else
if
(
def
->
id
!=
0
)
{
}
else
if
(
def
->
id
!=
0
)
{
def
->
nconsoles
=
1
;
def
->
nconsoles
=
1
;
if
(
VIR_ALLOC_N
(
def
->
consoles
,
1
)
<
0
)
if
(
VIR_ALLOC_N
(
def
->
consoles
,
1
)
<
0
)
goto
no_memory
;
goto
error
;
/* Fake a paravirt console, since that's not in the sexpr */
/* Fake a paravirt console, since that's not in the sexpr */
if
(
!
(
def
->
consoles
[
0
]
=
xenParseSxprChar
(
"pty"
,
tty
)))
if
(
!
(
def
->
consoles
[
0
]
=
xenParseSxprChar
(
"pty"
,
tty
)))
goto
error
;
goto
error
;
...
@@ -1483,8 +1465,6 @@ xenParseSxpr(const struct sexpr *root,
...
@@ -1483,8 +1465,6 @@ xenParseSxpr(const struct sexpr *root,
return
def
;
return
def
;
no_memory:
virReportOOMError
();
error:
error:
VIR_FREE
(
tty
);
VIR_FREE
(
tty
);
virDomainDefFree
(
def
);
virDomainDefFree
(
def
);
...
...
src/xenxs/xen_xm.c
浏览文件 @
d2ab0381
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录