diff options
author | Kevin Wolf <kwolf@redhat.com> | 2009-05-18 16:42:10 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-05-22 10:50:31 -0500 |
commit | 0e7e1989f7fced8e39f140e1958f0557b60d4532 (patch) | |
tree | 76bbcc1c26a05f4f6e430f9f844f9b3b350c13ba /block/raw-win32.c | |
parent | d3f243676addaef6c8d818934565292c698f91cc (diff) | |
download | qemu-0e7e1989f7fced8e39f140e1958f0557b60d4532.zip qemu-0e7e1989f7fced8e39f140e1958f0557b60d4532.tar.gz qemu-0e7e1989f7fced8e39f140e1958f0557b60d4532.tar.bz2 |
Convert all block drivers to new bdrv_create
Now we can make use of the newly introduced option structures. Instead of
having bdrv_create carry more and more parameters (which are format specific in
most cases), just pass a option structure as defined by the driver itself.
bdrv_create2() contains an emulation of the old interface to simplify the
transition.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'block/raw-win32.c')
-rw-r--r-- | block/raw-win32.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/block/raw-win32.c b/block/raw-win32.c index 15f3ec4..6e5c09b 100644 --- a/block/raw-win32.c +++ b/block/raw-win32.c @@ -210,13 +210,18 @@ static int64_t raw_getlength(BlockDriverState *bs) return l.QuadPart; } -static int raw_create(const char *filename, int64_t total_size, - const char *backing_file, int flags) +static int raw_create(const char *filename, QEMUOptionParameter *options) { int fd; + int64_t total_size = 0; - if (flags || backing_file) - return -ENOTSUP; + /* Read out options */ + while (options && options->name) { + if (!strcmp(options->name, BLOCK_OPT_SIZE)) { + total_size = options->value.n / 512; + } + options++; + } fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0644); @@ -228,6 +233,11 @@ static int raw_create(const char *filename, int64_t total_size, return 0; } +static QEMUOptionParameter raw_create_options[] = { + { BLOCK_OPT_SIZE, OPT_SIZE }, + { NULL } +}; + static BlockDriver bdrv_raw = { .format_name = "raw", .instance_size = sizeof(BDRVRawState), @@ -239,6 +249,8 @@ static BlockDriver bdrv_raw = { .bdrv_write = raw_write, .bdrv_truncate = raw_truncate, .bdrv_getlength = raw_getlength, + + .create_options = raw_create_options, }; /***********************************************/ |