Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
fb741174
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看板
提交
fb741174
编写于
9月 29, 2007
作者:
D
Daniel P. Berrange
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Solaris portability fix from Mark Johnson. Remove use of anonymous union members
上级
b876bf6e
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
96 addition
and
87 deletion
+96
-87
ChangeLog
ChangeLog
+6
-0
src/internal.h
src/internal.h
+10
-6
src/sexpr.c
src/sexpr.c
+34
-34
src/sexpr.h
src/sexpr.h
+2
-2
src/virsh.c
src/virsh.c
+5
-5
src/xend_internal.c
src/xend_internal.c
+39
-40
未找到文件。
ChangeLog
浏览文件 @
fb741174
Sat Sep 29 14:05:41 EST 2007 Daniel P. Berrange <berrange@redhat.com>
* src/sexpr.h, src/sexpr.c, src/virsh.c, src/xend_internal.c:
Remove use of anonymous union members in sexpr code.
* src/internal.h: Solaris portability fix (Mark Johnson)
Fri Sep 28 16:41:41 EST 2007 Daniel P. Berrange <berrange@redhat.com>
* src/qemu_conf.c: Fix crash processing multiple <input> tags
...
...
src/internal.h
浏览文件 @
fb741174
...
...
@@ -26,11 +26,6 @@ extern "C" {
#define N_(str) dgettext(GETTEXT_PACKAGE, (str))
#define gettext_noop(str) (str)
#ifdef __GNUC__
#ifdef HAVE_ANSIDECL_H
#include <ansidecl.h>
#endif
/* String equality tests, suggested by Jim Meyering. */
#define STREQ(a,b) (strcmp((a),(b)) == 0)
#define STRCASEEQ(a,b) (strcasecmp((a),(b)) == 0)
...
...
@@ -39,6 +34,15 @@ extern "C" {
#define STREQLEN(a,b,n) (strncmp((a),(b),(n)) == 0)
#define STRNEQLEN(a,b,n) (strncmp((a),(b),(n)) != 0)
#ifndef __GNUC__
#define __FUNCTION__ __func__
#endif
#ifdef __GNUC__
#ifdef HAVE_ANSIDECL_H
#include <ansidecl.h>
#endif
/**
* ATTRIBUTE_UNUSED:
*
...
...
@@ -61,7 +65,7 @@ extern "C" {
#else
#define ATTRIBUTE_UNUSED
#define ATTRIBUTE_FORMAT(...)
#endif
#endif
/* __GNUC__ */
/**
* TODO:
...
...
src/sexpr.c
浏览文件 @
fb741174
...
...
@@ -80,11 +80,11 @@ sexpr_free(struct sexpr *sexpr)
switch
(
sexpr
->
kind
)
{
case
SEXPR_CONS
:
sexpr_free
(
sexpr
->
car
);
sexpr_free
(
sexpr
->
cdr
);
sexpr_free
(
sexpr
->
u
.
s
.
car
);
sexpr_free
(
sexpr
->
u
.
s
.
cdr
);
break
;
case
SEXPR_VALUE
:
free
(
sexpr
->
value
);
free
(
sexpr
->
u
.
value
);
break
;
case
SEXPR_NIL
:
break
;
...
...
@@ -127,12 +127,12 @@ sexpr_string(const char *str, ssize_t len)
return
ret
;
ret
->
kind
=
SEXPR_VALUE
;
if
(
len
>
0
)
{
ret
->
value
=
strndup
(
str
,
len
);
ret
->
u
.
value
=
strndup
(
str
,
len
);
}
else
{
ret
->
value
=
strdup
(
str
);
ret
->
u
.
value
=
strdup
(
str
);
}
if
(
ret
->
value
==
NULL
)
{
if
(
ret
->
u
.
value
==
NULL
)
{
return
NULL
;
}
...
...
@@ -157,8 +157,8 @@ sexpr_cons(struct sexpr *car, struct sexpr *cdr)
if
(
ret
==
NULL
)
return
ret
;
ret
->
kind
=
SEXPR_CONS
;
ret
->
car
=
car
;
ret
->
cdr
=
cdr
;
ret
->
u
.
s
.
car
=
car
;
ret
->
u
.
s
.
cdr
=
cdr
;
return
ret
;
}
...
...
@@ -174,12 +174,12 @@ static void
append
(
struct
sexpr
*
lst
,
struct
sexpr
*
value
)
{
while
(
lst
->
kind
!=
SEXPR_NIL
)
{
lst
=
lst
->
cdr
;
lst
=
lst
->
u
.
s
.
cdr
;
}
lst
->
kind
=
SEXPR_CONS
;
lst
->
car
=
value
;
lst
->
cdr
=
sexpr_nil
();
lst
->
u
.
s
.
car
=
value
;
lst
->
u
.
s
.
cdr
=
sexpr_nil
();
}
/**
...
...
@@ -228,18 +228,18 @@ sexpr2string(struct sexpr * sexpr, char *buffer, size_t n_buffer)
if
(
tmp
==
0
)
goto
error
;
ret
+=
tmp
;
tmp
=
sexpr2string
(
sexpr
->
car
,
buffer
+
ret
,
n_buffer
-
ret
);
tmp
=
sexpr2string
(
sexpr
->
u
.
s
.
car
,
buffer
+
ret
,
n_buffer
-
ret
);
if
(
tmp
==
0
)
goto
error
;
ret
+=
tmp
;
while
(
sexpr
->
cdr
->
kind
!=
SEXPR_NIL
)
{
sexpr
=
sexpr
->
cdr
;
while
(
sexpr
->
u
.
s
.
cdr
->
kind
!=
SEXPR_NIL
)
{
sexpr
=
sexpr
->
u
.
s
.
cdr
;
tmp
=
snprintf
(
buffer
+
ret
,
n_buffer
-
ret
,
" "
);
if
(
tmp
==
0
)
goto
error
;
ret
+=
tmp
;
tmp
=
sexpr2string
(
sexpr
->
car
,
buffer
+
ret
,
n_buffer
-
ret
);
sexpr2string
(
sexpr
->
u
.
s
.
car
,
buffer
+
ret
,
n_buffer
-
ret
);
if
(
tmp
==
0
)
goto
error
;
ret
+=
tmp
;
...
...
@@ -250,12 +250,12 @@ sexpr2string(struct sexpr * sexpr, char *buffer, size_t n_buffer)
ret
+=
tmp
;
break
;
case
SEXPR_VALUE
:
if
(
strchr
(
sexpr
->
value
,
' '
))
if
(
strchr
(
sexpr
->
u
.
value
,
' '
))
tmp
=
snprintf
(
buffer
+
ret
,
n_buffer
-
ret
,
"'%s'"
,
sexpr
->
value
);
sexpr
->
u
.
value
);
else
tmp
=
snprintf
(
buffer
+
ret
,
n_buffer
-
ret
,
"%s"
,
sexpr
->
value
);
sexpr
->
u
.
value
);
if
(
tmp
==
0
)
goto
error
;
ret
+=
tmp
;
...
...
@@ -346,8 +346,8 @@ _string2sexpr(const char *buffer, size_t * end)
ptr
++
;
}
ret
->
value
=
strndup
(
start
,
ptr
-
start
);
if
(
ret
->
value
==
NULL
)
{
ret
->
u
.
value
=
strndup
(
start
,
ptr
-
start
);
if
(
ret
->
u
.
value
==
NULL
)
{
virSexprError
(
VIR_ERR_NO_MEMORY
,
_
(
"failed to copy a string"
));
}
...
...
@@ -361,15 +361,15 @@ _string2sexpr(const char *buffer, size_t * end)
ptr
++
;
}
ret
->
value
=
strndup
(
start
,
ptr
-
start
);
if
(
ret
->
value
==
NULL
)
{
ret
->
u
.
value
=
strndup
(
start
,
ptr
-
start
);
if
(
ret
->
u
.
value
==
NULL
)
{
virSexprError
(
VIR_ERR_NO_MEMORY
,
_
(
"failed to copy a string"
));
}
}
ret
->
kind
=
SEXPR_VALUE
;
if
(
ret
->
value
==
NULL
)
if
(
ret
->
u
.
value
==
NULL
)
goto
error
;
}
...
...
@@ -426,11 +426,11 @@ sexpr_lookup(struct sexpr *sexpr, const char *node)
ptr
=
buffer
;
token
=
strsep
(
&
ptr
,
"/"
);
if
(
sexpr
->
kind
!=
SEXPR_CONS
||
sexpr
->
car
->
kind
!=
SEXPR_VALUE
)
{
if
(
sexpr
->
kind
!=
SEXPR_CONS
||
sexpr
->
u
.
s
.
car
->
kind
!=
SEXPR_VALUE
)
{
return
NULL
;
}
if
(
strcmp
(
sexpr
->
car
->
value
,
token
)
!=
0
)
{
if
(
strcmp
(
sexpr
->
u
.
s
.
car
->
u
.
value
,
token
)
!=
0
)
{
return
NULL
;
}
...
...
@@ -440,16 +440,16 @@ sexpr_lookup(struct sexpr *sexpr, const char *node)
if
(
token
==
NULL
)
continue
;
sexpr
=
sexpr
->
cdr
;
for
(
i
=
sexpr
;
i
->
kind
!=
SEXPR_NIL
;
i
=
i
->
cdr
)
{
sexpr
=
sexpr
->
u
.
s
.
cdr
;
for
(
i
=
sexpr
;
i
->
kind
!=
SEXPR_NIL
;
i
=
i
->
u
.
s
.
cdr
)
{
if
(
i
->
kind
!=
SEXPR_CONS
||
i
->
car
->
kind
!=
SEXPR_CONS
||
i
->
car
->
car
->
kind
!=
SEXPR_VALUE
)
{
i
->
u
.
s
.
car
->
kind
!=
SEXPR_CONS
||
i
->
u
.
s
.
car
->
u
.
s
.
car
->
kind
!=
SEXPR_VALUE
)
{
continue
;
}
if
(
strcmp
(
i
->
car
->
car
->
value
,
token
)
==
0
)
{
sexpr
=
i
->
car
;
if
(
strcmp
(
i
->
u
.
s
.
car
->
u
.
s
.
car
->
u
.
value
,
token
)
==
0
)
{
sexpr
=
i
->
u
.
s
.
car
;
break
;
}
}
...
...
@@ -463,10 +463,10 @@ sexpr_lookup(struct sexpr *sexpr, const char *node)
return
NULL
;
}
if
(
sexpr
->
kind
!=
SEXPR_CONS
||
sexpr
->
cdr
->
kind
!=
SEXPR_CONS
)
if
(
sexpr
->
kind
!=
SEXPR_CONS
||
sexpr
->
u
.
s
.
cdr
->
kind
!=
SEXPR_CONS
)
return
NULL
;
return
sexpr
->
cdr
;
return
sexpr
->
u
.
s
.
cdr
;
}
/**
...
...
@@ -484,7 +484,7 @@ sexpr_node(struct sexpr *sexpr, const char *node)
{
struct
sexpr
*
n
=
sexpr_lookup
(
sexpr
,
node
);
return
(
n
&&
n
->
car
->
kind
==
SEXPR_VALUE
)
?
n
->
car
->
value
:
NULL
;
return
(
n
&&
n
->
u
.
s
.
car
->
kind
==
SEXPR_VALUE
)
?
n
->
u
.
s
.
car
->
u
.
value
:
NULL
;
}
/**
...
...
src/sexpr.h
浏览文件 @
fb741174
...
...
@@ -29,9 +29,9 @@ struct sexpr {
struct
{
struct
sexpr
*
car
;
struct
sexpr
*
cdr
;
};
}
s
;
char
*
value
;
};
}
u
;
};
/* conversion to/from strings */
...
...
src/virsh.c
浏览文件 @
fb741174
...
...
@@ -4338,9 +4338,9 @@ vshDomainStateToString(int state)
case
VIR_DOMAIN_CRASHED
:
return
gettext_noop
(
"crashed"
);
default:
return
gettext_noop
(
"no state"
);
/* = dom0 state
*/
;
/*FALLTHROUGH
*/
}
return
NULL
;
return
gettext_noop
(
"no state"
);
/* = dom0 state */
}
static
const
char
*
...
...
@@ -4354,9 +4354,9 @@ vshDomainVcpuStateToString(int state)
case
VIR_VCPU_RUNNING
:
return
gettext_noop
(
"running"
);
default:
return
gettext_noop
(
"no state"
);
;
/*FALLTHROUGH*/
}
return
NULL
;
return
gettext_noop
(
"no state"
)
;
}
static
int
...
...
@@ -4868,7 +4868,7 @@ vshParseArgv(vshControl * ctl, int argc, char **argv)
}
last
=
argv
[
i
];
}
end
=
end
?
:
argc
;
end
=
end
?
end
:
argc
;
/* standard (non-command) options */
while
((
arg
=
getopt_long
(
end
,
argv
,
"d:hqtc:vrl:"
,
opt
,
&
idx
))
!=
-
1
)
{
...
...
src/xend_internal.c
浏览文件 @
fb741174
...
...
@@ -190,9 +190,9 @@ virXendErrorInt(virConnectPtr conn, virErrorNumber error, int val)
#define foreach(iterator, start) \
for (_for_i = (start), *iterator = (start)->car; \
for (_for_i = (start), *iterator = (start)->
u.s.
car; \
_for_i->kind == SEXPR_CONS; \
_for_i = _for_i->
cdr, iterator = _for_i->
car)
_for_i = _for_i->
u.s.cdr, iterator = _for_i->u.s.
car)
#define foreach_node(iterator, start, path) \
foreach(iterator, start) \
...
...
@@ -662,23 +662,22 @@ xend_node_op(virConnectPtr xend, const char *path, const char *key, ...)
* Returns 0 in case of success, -1 in case of failure.
*/
static
int
xend_op_ext
(
virConnectPtr
xend
,
const
char
*
name
,
char
*
error
,
size_t
n_error
,
const
char
*
key
,
...)
xend_op
(
virConnectPtr
xend
,
const
char
*
name
,
const
char
*
key
,
...)
{
char
buffer
[
1024
];
char
error
[
1024
];
va_list
ap
;
int
ret
;
snprintf
(
buffer
,
sizeof
(
buffer
),
"/xend/domain/%s"
,
name
);
va_start
(
ap
,
key
);
ret
=
xend_op_ext2
(
xend
,
buffer
,
error
,
n_error
,
key
,
ap
);
ret
=
xend_op_ext2
(
xend
,
buffer
,
error
,
sizeof
(
error
)
,
key
,
ap
);
va_end
(
ap
);
return
ret
;
}
#define xend_op(xend, name, key, ...) ({char error[1024]; xend_op_ext(xend, name, error, sizeof(error), key, __VA_ARGS__);})
#endif
/* ! PROXY */
/**
...
...
@@ -961,11 +960,11 @@ xenDaemonListDomainsOld(virConnectPtr xend)
if
(
root
==
NULL
)
goto
error
;
for
(
_for_i
=
root
,
node
=
root
->
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
cdr
,
node
=
_for_i
->
car
)
{
for
(
_for_i
=
root
,
node
=
root
->
u
.
s
.
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
u
.
s
.
cdr
,
node
=
_for_i
->
u
.
s
.
car
)
{
if
(
node
->
kind
!=
SEXPR_VALUE
)
continue
;
extra
+=
strlen
(
node
->
value
)
+
1
;
extra
+=
strlen
(
node
->
u
.
value
)
+
1
;
count
++
;
}
...
...
@@ -977,13 +976,13 @@ xenDaemonListDomainsOld(virConnectPtr xend)
ptr
+=
sizeof
(
char
*
)
*
(
count
+
1
);
i
=
0
;
for
(
_for_i
=
root
,
node
=
root
->
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
cdr
,
node
=
_for_i
->
car
)
{
for
(
_for_i
=
root
,
node
=
root
->
u
.
s
.
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
u
.
s
.
cdr
,
node
=
_for_i
->
u
.
s
.
car
)
{
if
(
node
->
kind
!=
SEXPR_VALUE
)
continue
;
ret
[
i
]
=
ptr
;
strcpy
(
ptr
,
node
->
value
);
ptr
+=
strlen
(
node
->
value
)
+
1
;
strcpy
(
ptr
,
node
->
u
.
value
);
ptr
+=
strlen
(
node
->
u
.
value
)
+
1
;
i
++
;
}
...
...
@@ -1462,8 +1461,8 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi
if
((
tmp
!=
NULL
)
&&
(
tmp
[
0
]
!=
0
))
virBufferVSprintf
(
&
buf
,
" <emulator>%s</emulator>
\n
"
,
tmp
);
for
(
cur
=
root
;
cur
->
kind
==
SEXPR_CONS
;
cur
=
cur
->
cdr
)
{
node
=
cur
->
car
;
for
(
cur
=
root
;
cur
->
kind
==
SEXPR_CONS
;
cur
=
cur
->
u
.
s
.
cdr
)
{
node
=
cur
->
u
.
s
.
car
;
/* Normally disks are in a (device (vbd ...)) block
but blktap disks ended up in a differently named
(device (tap ....)) block.... */
...
...
@@ -1702,8 +1701,8 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi
/* in case of HVM we have devices emulation */
if
(
hvm
)
{
for
(
cur
=
sexpr_lookup
(
root
,
"domain/image/hvm"
);
cur
&&
cur
->
kind
==
SEXPR_CONS
;
cur
=
cur
->
cdr
)
{
node
=
cur
->
car
;
for
(
cur
=
sexpr_lookup
(
root
,
"domain/image/hvm"
);
cur
&&
cur
->
kind
==
SEXPR_CONS
;
cur
=
cur
->
u
.
s
.
cdr
)
{
node
=
cur
->
u
.
s
.
car
;
if
(
sexpr_lookup
(
node
,
"usbdevice"
))
{
tmp
=
sexpr_node
(
node
,
"usbdevice"
);
if
(
tmp
&&
*
tmp
)
{
...
...
@@ -2903,11 +2902,11 @@ xenDaemonListDomains(virConnectPtr conn, int *ids, int maxids)
ret
=
0
;
for
(
_for_i
=
root
,
node
=
root
->
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
cdr
,
node
=
_for_i
->
car
)
{
for
(
_for_i
=
root
,
node
=
root
->
u
.
s
.
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
u
.
s
.
cdr
,
node
=
_for_i
->
u
.
s
.
car
)
{
if
(
node
->
kind
!=
SEXPR_VALUE
)
continue
;
id
=
xenDaemonDomainLookupByName_ids
(
conn
,
node
->
value
,
NULL
);
id
=
xenDaemonDomainLookupByName_ids
(
conn
,
node
->
u
.
value
,
NULL
);
if
(
id
>=
0
)
ids
[
ret
++
]
=
(
int
)
id
;
if
(
ret
>=
maxids
)
...
...
@@ -2941,8 +2940,8 @@ xenDaemonNumOfDomains(virConnectPtr conn)
ret
=
0
;
for
(
_for_i
=
root
,
node
=
root
->
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
cdr
,
node
=
_for_i
->
car
)
{
for
(
_for_i
=
root
,
node
=
root
->
u
.
s
.
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
u
.
s
.
cdr
,
node
=
_for_i
->
u
.
s
.
car
)
{
if
(
node
->
kind
!=
SEXPR_VALUE
)
continue
;
ret
++
;
...
...
@@ -3110,11 +3109,11 @@ xenDaemonDomainGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int maxinfo,
memset
(
cpumaps
,
0
,
maxinfo
*
maplen
);
/* scan the sexprs from "(vcpu (number x)...)" and get parameter values */
for
(
s
=
root
;
s
->
kind
==
SEXPR_CONS
;
s
=
s
->
cdr
)
{
if
((
s
->
car
->
kind
==
SEXPR_CONS
)
&&
(
s
->
car
->
car
->
kind
==
SEXPR_VALUE
)
&&
!
strcmp
(
s
->
car
->
car
->
value
,
"vcpu"
))
{
t
=
s
->
car
;
for
(
s
=
root
;
s
->
kind
==
SEXPR_CONS
;
s
=
s
->
u
.
s
.
cdr
)
{
if
((
s
->
u
.
s
.
car
->
kind
==
SEXPR_CONS
)
&&
(
s
->
u
.
s
.
car
->
u
.
s
.
car
->
kind
==
SEXPR_VALUE
)
&&
!
strcmp
(
s
->
u
.
s
.
car
->
u
.
s
.
car
->
u
.
value
,
"vcpu"
))
{
t
=
s
->
u
.
s
.
car
;
vcpu
=
ipt
->
number
=
sexpr_int
(
t
,
"vcpu/number"
);
if
((
oln
=
sexpr_int
(
t
,
"vcpu/online"
))
!=
0
)
{
if
(
sexpr_int
(
t
,
"vcpu/running"
))
ipt
->
state
=
VIR_VCPU_RUNNING
;
...
...
@@ -3131,14 +3130,14 @@ xenDaemonDomainGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int maxinfo,
* get sexpr from "(cpumap (x y z...))" and convert values
* to bitmap
*/
for
(
t
=
t
->
cdr
;
t
->
kind
==
SEXPR_CONS
;
t
=
t
->
cdr
)
if
((
t
->
car
->
kind
==
SEXPR_CONS
)
&&
(
t
->
car
->
car
->
kind
==
SEXPR_VALUE
)
&&
!
strcmp
(
t
->
car
->
car
->
value
,
"cpumap"
)
&&
(
t
->
car
->
cdr
->
kind
==
SEXPR_CONS
))
{
for
(
t
=
t
->
car
->
cdr
->
car
;
t
->
kind
==
SEXPR_CONS
;
t
=
t
->
cdr
)
if
(
t
->
car
->
kind
==
SEXPR_VALUE
)
{
cpu
=
strtol
(
t
->
car
->
value
,
NULL
,
0
);
for
(
t
=
t
->
u
.
s
.
cdr
;
t
->
kind
==
SEXPR_CONS
;
t
=
t
->
u
.
s
.
cdr
)
if
((
t
->
u
.
s
.
car
->
kind
==
SEXPR_CONS
)
&&
(
t
->
u
.
s
.
car
->
u
.
s
.
car
->
kind
==
SEXPR_VALUE
)
&&
!
strcmp
(
t
->
u
.
s
.
car
->
u
.
s
.
car
->
u
.
value
,
"cpumap"
)
&&
(
t
->
u
.
s
.
car
->
u
.
s
.
cdr
->
kind
==
SEXPR_CONS
))
{
for
(
t
=
t
->
u
.
s
.
car
->
u
.
s
.
cdr
->
u
.
s
.
car
;
t
->
kind
==
SEXPR_CONS
;
t
=
t
->
u
.
s
.
cdr
)
if
(
t
->
u
.
s
.
car
->
kind
==
SEXPR_VALUE
)
{
cpu
=
strtol
(
t
->
u
.
s
.
car
->
u
.
value
,
NULL
,
0
);
if
(
cpu
>=
0
&&
(
VIR_CPU_MAPLEN
(
cpu
+
1
)
<=
maplen
))
{
VIR_USE_CPU
(
cpumap
,
cpu
);
}
...
...
@@ -3660,8 +3659,8 @@ xenDaemonNumOfDefinedDomains(virConnectPtr conn)
ret
=
0
;
for
(
_for_i
=
root
,
node
=
root
->
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
cdr
,
node
=
_for_i
->
car
)
{
for
(
_for_i
=
root
,
node
=
root
->
u
.
s
.
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
u
.
s
.
cdr
,
node
=
_for_i
->
u
.
s
.
car
)
{
if
(
node
->
kind
!=
SEXPR_VALUE
)
continue
;
ret
++
;
...
...
@@ -3690,12 +3689,12 @@ int xenDaemonListDefinedDomains(virConnectPtr conn, char **const names, int maxn
ret
=
0
;
for
(
_for_i
=
root
,
node
=
root
->
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
cdr
,
node
=
_for_i
->
car
)
{
for
(
_for_i
=
root
,
node
=
root
->
u
.
s
.
car
;
_for_i
->
kind
==
SEXPR_CONS
;
_for_i
=
_for_i
->
u
.
s
.
cdr
,
node
=
_for_i
->
u
.
s
.
car
)
{
if
(
node
->
kind
!=
SEXPR_VALUE
)
continue
;
names
[
ret
++
]
=
strdup
(
node
->
value
);
names
[
ret
++
]
=
strdup
(
node
->
u
.
value
);
if
(
ret
>=
maxnames
)
break
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录