Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
c47c33b0
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c47c33b0
编写于
8月 05, 2006
作者:
B
bellard
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
block API change
git-svn-id:
svn://svn.savannah.nongnu.org/qemu/trunk@2088
c046a42c-6fe2-441c-8c8c-71466251a162
上级
e70332b3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
16 deletion
+15
-16
block-qcow.c
block-qcow.c
+15
-16
未找到文件。
block-qcow.c
浏览文件 @
c47c33b0
...
...
@@ -350,7 +350,7 @@ static uint64_t get_cluster_offset(BlockDriverState *bs,
(
n_end
-
n_start
)
<
s
->
cluster_sectors
)
{
uint64_t
start_sect
;
start_sect
=
(
offset
&
~
(
s
->
cluster_size
-
1
))
>>
9
;
memset
(
s
->
cluster_data
+
512
,
0x
aa
,
512
);
memset
(
s
->
cluster_data
+
512
,
0x
00
,
512
);
for
(
i
=
0
;
i
<
s
->
cluster_sectors
;
i
++
)
{
if
(
i
<
n_start
||
i
>=
n_end
)
{
encrypt_sectors
(
s
,
start_sect
+
i
,
...
...
@@ -813,7 +813,7 @@ static int qcow_create(const char *filename, int64_t total_size,
return
0
;
}
int
qcow_make_empty
(
BlockDriverState
*
bs
)
static
int
qcow_make_empty
(
BlockDriverState
*
bs
)
{
BDRVQcowState
*
s
=
bs
->
opaque
;
uint32_t
l1_length
=
s
->
l1_size
*
sizeof
(
uint64_t
);
...
...
@@ -833,18 +833,10 @@ int qcow_make_empty(BlockDriverState *bs)
return
0
;
}
int
qcow_get_cluster_size
(
BlockDriverState
*
bs
)
{
BDRVQcowState
*
s
=
bs
->
opaque
;
if
(
bs
->
drv
!=
&
bdrv_qcow
)
return
-
1
;
return
s
->
cluster_size
;
}
/* XXX: put compressed sectors first, then all the cluster aligned
tables to avoid losing bytes in alignment */
int
qcow_compress_cluster
(
BlockDriverState
*
bs
,
int64_t
sector_num
,
const
uint8_t
*
buf
)
static
int
qcow_write_compressed
(
BlockDriverState
*
bs
,
int64_t
sector_num
,
const
uint8_t
*
buf
,
int
nb_sectors
)
{
BDRVQcowState
*
s
=
bs
->
opaque
;
z_stream
strm
;
...
...
@@ -852,8 +844,8 @@ int qcow_compress_cluster(BlockDriverState *bs, int64_t sector_num,
uint8_t
*
out_buf
;
uint64_t
cluster_offset
;
if
(
bs
->
drv
!=
&
bdrv_qcow
)
return
-
1
;
if
(
nb_sectors
!=
s
->
cluster_sectors
)
return
-
EINVAL
;
out_buf
=
qemu_malloc
(
s
->
cluster_size
+
(
s
->
cluster_size
/
1000
)
+
128
);
if
(
!
out_buf
)
...
...
@@ -907,6 +899,13 @@ static void qcow_flush(BlockDriverState *bs)
bdrv_flush
(
s
->
hd
);
}
static
int
qcow_get_info
(
BlockDriverState
*
bs
,
BlockDriverInfo
*
bdi
)
{
BDRVQcowState
*
s
=
bs
->
opaque
;
bdi
->
cluster_size
=
s
->
cluster_size
;
return
0
;
}
BlockDriver
bdrv_qcow
=
{
"qcow"
,
sizeof
(
BDRVQcowState
),
...
...
@@ -926,6 +925,6 @@ BlockDriver bdrv_qcow = {
.
bdrv_aio_write
=
qcow_aio_write
,
.
bdrv_aio_cancel
=
qcow_aio_cancel
,
.
bdrv_aio_delete
=
qcow_aio_delete
,
.
bdrv_write_compressed
=
qcow_write_compressed
,
.
bdrv_get_info
=
qcow_get_info
,
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录