mirror of https://gitee.com/openkylin/qemu.git
block: Replace bdrv_get_format() by bdrv_get_format_name()
So callers don't need to know anything about maximum name length. Returning a pointer is safe, because the name string lives as long as the block driver it names, and block drivers don't die. Requested by Peter Maydell. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
f085800e24
commit
f8d6bba1c1
11
block.c
11
block.c
|
@ -1035,7 +1035,8 @@ void bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top)
|
||||||
* swapping bs_new and bs_top contents. */
|
* swapping bs_new and bs_top contents. */
|
||||||
tmp.backing_hd = bs_new;
|
tmp.backing_hd = bs_new;
|
||||||
pstrcpy(tmp.backing_file, sizeof(tmp.backing_file), bs_top->filename);
|
pstrcpy(tmp.backing_file, sizeof(tmp.backing_file), bs_top->filename);
|
||||||
bdrv_get_format(bs_top, tmp.backing_format, sizeof(tmp.backing_format));
|
pstrcpy(tmp.backing_format, sizeof(tmp.backing_format),
|
||||||
|
bs_top->drv ? bs_top->drv->format_name : "");
|
||||||
|
|
||||||
/* swap contents of the fixed new bs and the current top */
|
/* swap contents of the fixed new bs and the current top */
|
||||||
*bs_new = *bs_top;
|
*bs_new = *bs_top;
|
||||||
|
@ -2428,13 +2429,9 @@ int bdrv_set_key(BlockDriverState *bs, const char *key)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdrv_get_format(BlockDriverState *bs, char *buf, int buf_size)
|
const char *bdrv_get_format_name(BlockDriverState *bs)
|
||||||
{
|
{
|
||||||
if (!bs->drv) {
|
return bs->drv ? bs->drv->format_name : NULL;
|
||||||
buf[0] = '\0';
|
|
||||||
} else {
|
|
||||||
pstrcpy(buf, buf_size, bs->drv->format_name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdrv_iterate_format(void (*it)(void *opaque, const char *name),
|
void bdrv_iterate_format(void (*it)(void *opaque, const char *name),
|
||||||
|
|
2
block.h
2
block.h
|
@ -296,7 +296,7 @@ int bdrv_is_inserted(BlockDriverState *bs);
|
||||||
int bdrv_media_changed(BlockDriverState *bs);
|
int bdrv_media_changed(BlockDriverState *bs);
|
||||||
void bdrv_lock_medium(BlockDriverState *bs, bool locked);
|
void bdrv_lock_medium(BlockDriverState *bs, bool locked);
|
||||||
void bdrv_eject(BlockDriverState *bs, bool eject_flag);
|
void bdrv_eject(BlockDriverState *bs, bool eject_flag);
|
||||||
void bdrv_get_format(BlockDriverState *bs, char *buf, int buf_size);
|
const char *bdrv_get_format_name(BlockDriverState *bs);
|
||||||
BlockDriverState *bdrv_find(const char *name);
|
BlockDriverState *bdrv_find(const char *name);
|
||||||
BlockDriverState *bdrv_next(BlockDriverState *bs);
|
BlockDriverState *bdrv_next(BlockDriverState *bs);
|
||||||
void bdrv_iterate(void (*it)(void *opaque, BlockDriverState *bs),
|
void bdrv_iterate(void (*it)(void *opaque, BlockDriverState *bs),
|
||||||
|
|
|
@ -1107,7 +1107,7 @@ static int img_info(int argc, char **argv)
|
||||||
int c;
|
int c;
|
||||||
const char *filename, *fmt;
|
const char *filename, *fmt;
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
char fmt_name[128], size_buf[128], dsize_buf[128];
|
char size_buf[128], dsize_buf[128];
|
||||||
uint64_t total_sectors;
|
uint64_t total_sectors;
|
||||||
int64_t allocated_size;
|
int64_t allocated_size;
|
||||||
char backing_filename[1024];
|
char backing_filename[1024];
|
||||||
|
@ -1139,7 +1139,6 @@ static int img_info(int argc, char **argv)
|
||||||
if (!bs) {
|
if (!bs) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
bdrv_get_format(bs, fmt_name, sizeof(fmt_name));
|
|
||||||
bdrv_get_geometry(bs, &total_sectors);
|
bdrv_get_geometry(bs, &total_sectors);
|
||||||
get_human_readable_size(size_buf, sizeof(size_buf), total_sectors * 512);
|
get_human_readable_size(size_buf, sizeof(size_buf), total_sectors * 512);
|
||||||
allocated_size = bdrv_get_allocated_file_size(bs);
|
allocated_size = bdrv_get_allocated_file_size(bs);
|
||||||
|
@ -1153,7 +1152,7 @@ static int img_info(int argc, char **argv)
|
||||||
"file format: %s\n"
|
"file format: %s\n"
|
||||||
"virtual size: %s (%" PRId64 " bytes)\n"
|
"virtual size: %s (%" PRId64 " bytes)\n"
|
||||||
"disk size: %s\n",
|
"disk size: %s\n",
|
||||||
filename, fmt_name, size_buf,
|
filename, bdrv_get_format_name(bs), size_buf,
|
||||||
(total_sectors * 512),
|
(total_sectors * 512),
|
||||||
dsize_buf);
|
dsize_buf);
|
||||||
if (bdrv_is_encrypted(bs)) {
|
if (bdrv_is_encrypted(bs)) {
|
||||||
|
|
Loading…
Reference in New Issue