Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
1acfc171
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看板
提交
1acfc171
编写于
4月 06, 2013
作者:
O
Osier Yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
util: Add a helper to check if all bits of a bitmap are clear
上级
d4bf0a93
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
59 addition
and
1 deletion
+59
-1
src/libvirt_private.syms
src/libvirt_private.syms
+1
-0
src/util/virbitmap.c
src/util/virbitmap.c
+17
-0
src/util/virbitmap.h
src/util/virbitmap.h
+3
-0
tests/virbitmaptest.c
tests/virbitmaptest.c
+38
-1
未找到文件。
src/libvirt_private.syms
浏览文件 @
1acfc171
...
...
@@ -1046,6 +1046,7 @@ virBitmapEqual;
virBitmapFormat;
virBitmapFree;
virBitmapGetBit;
virBitmapIsAllClear;
virBitmapIsAllSet;
virBitmapNew;
virBitmapNewCopy;
...
...
src/util/virbitmap.c
浏览文件 @
1acfc171
...
...
@@ -590,6 +590,23 @@ bool virBitmapIsAllSet(virBitmapPtr bitmap)
return
true
;
}
/**
* virBitmapIsAllClear:
* @bitmap: the bitmap to check
*
* check if all bits in @bitmap are clear
*/
bool
virBitmapIsAllClear
(
virBitmapPtr
bitmap
)
{
int
i
;
for
(
i
=
0
;
i
<
bitmap
->
map_len
;
i
++
)
if
(
bitmap
->
map
[
i
]
!=
0
)
return
false
;
return
true
;
}
/**
* virBitmapNextSetBit:
* @bitmap: the bitmap
...
...
src/util/virbitmap.h
浏览文件 @
1acfc171
...
...
@@ -100,6 +100,9 @@ void virBitmapClearAll(virBitmapPtr bitmap)
bool
virBitmapIsAllSet
(
virBitmapPtr
bitmap
)
ATTRIBUTE_NONNULL
(
1
);
bool
virBitmapIsAllClear
(
virBitmapPtr
bitmap
)
ATTRIBUTE_NONNULL
(
1
);
ssize_t
virBitmapNextSetBit
(
virBitmapPtr
bitmap
,
ssize_t
pos
)
ATTRIBUTE_NONNULL
(
1
);
...
...
tests/virbitmaptest.c
浏览文件 @
1acfc171
...
...
@@ -125,6 +125,8 @@ static int test2(const void *data ATTRIBUTE_UNUSED)
goto
error
;
virBitmapClearAll
(
bitmap
);
if
(
!
virBitmapIsAllClear
(
bitmap
))
goto
error
;
if
(
testBit
(
bitmap
,
0
,
size
-
1
,
false
)
<
0
)
goto
error
;
if
(
virBitmapCountBits
(
bitmap
)
!=
0
)
...
...
@@ -154,6 +156,9 @@ static int test3(const void *data ATTRIBUTE_UNUSED)
if
(
!
virBitmapIsAllSet
(
bitmap
))
goto
error
;
virBitmapClearAll
(
bitmap
);
if
(
!
virBitmapIsAllClear
(
bitmap
))
goto
error
;
ret
=
0
;
error:
...
...
@@ -196,6 +201,9 @@ static int test4(const void *data ATTRIBUTE_UNUSED)
if
(
virBitmapNextClearBit
(
bitmap
,
i
)
!=
-
1
)
goto
error
;
if
(
!
virBitmapIsAllClear
(
bitmap
))
goto
error
;
virBitmapFree
(
bitmap
);
bitmap
=
NULL
;
...
...
@@ -406,6 +414,10 @@ static int test7(const void *v ATTRIBUTE_UNUSED)
if
(
!
virBitmapIsAllSet
(
bitmap
))
goto
error
;
virBitmapClearAll
(
bitmap
);
if
(
!
virBitmapIsAllClear
(
bitmap
))
goto
error
;
virBitmapFree
(
bitmap
);
}
...
...
@@ -416,6 +428,30 @@ error:
return
-
1
;
}
static
int
test8
(
const
void
*
v
ATTRIBUTE_UNUSED
)
{
virBitmapPtr
bitmap
=
NULL
;
char
data
[
108
]
=
{
0x00
,};
bitmap
=
virBitmapNewData
(
data
,
sizeof
(
data
));
if
(
!
bitmap
)
goto
error
;
if
(
!
virBitmapIsAllClear
(
bitmap
))
goto
error
;
if
(
virBitmapSetBit
(
bitmap
,
11
)
<
0
)
goto
error
;
if
(
virBitmapIsAllClear
(
bitmap
))
goto
error
;
return
0
;
error:
virBitmapFree
(
bitmap
);
return
-
1
;
}
static
int
mymain
(
void
)
{
...
...
@@ -435,7 +471,8 @@ mymain(void)
ret
=
-
1
;
if
(
virtTestRun
(
"test7"
,
1
,
test7
,
NULL
)
<
0
)
ret
=
-
1
;
if
(
virtTestRun
(
"test8"
,
1
,
test8
,
NULL
)
<
0
)
ret
=
-
1
;
return
ret
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录