diff --git a/block/qcow2.c b/block/qcow2.c index 8b9ffc4cc043194bcf88692511b017acb6745261..cbc327b1b43a2790d8d5aaabb833acd3917aa206 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -2847,7 +2847,7 @@ static QemuOptsList qcow2_create_opts = { } }; -static BlockDriver bdrv_qcow2 = { +BlockDriver bdrv_qcow2 = { .format_name = "qcow2", .instance_size = sizeof(BDRVQcowState), .bdrv_probe = qcow2_probe, diff --git a/block/raw-posix.c b/block/raw-posix.c index 02e107f4b592fb2a8c3df812356cde6476666b68..2e6a919e72078f2c59d901e08407bf6fe7d8e745 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -1684,7 +1684,7 @@ static QemuOptsList raw_create_opts = { } }; -static BlockDriver bdrv_file = { +BlockDriver bdrv_file = { .format_name = "file", .protocol_name = "file", .instance_size = sizeof(BDRVRawState), diff --git a/block/raw-win32.c b/block/raw-win32.c index 7b588815b933ab4b7962dc203714dba742dc6693..06243d76df61d3dff9a134a4c32b05fd49955cbc 100644 --- a/block/raw-win32.c +++ b/block/raw-win32.c @@ -540,7 +540,7 @@ static QemuOptsList raw_create_opts = { } }; -static BlockDriver bdrv_file = { +BlockDriver bdrv_file = { .format_name = "file", .protocol_name = "file", .instance_size = sizeof(BDRVRawState), diff --git a/block/raw_bsd.c b/block/raw_bsd.c index 2ce5409044689222924612235623b2909b1eb17c..05b02c76d49aaaf325c6c13e8dabbbd975745fb2 100644 --- a/block/raw_bsd.c +++ b/block/raw_bsd.c @@ -235,7 +235,7 @@ static int raw_probe(const uint8_t *buf, int buf_size, const char *filename) return 1; } -static BlockDriver bdrv_raw = { +BlockDriver bdrv_raw = { .format_name = "raw", .bdrv_probe = &raw_probe, .bdrv_reopen_prepare = &raw_reopen_prepare, diff --git a/include/block/block_int.h b/include/block/block_int.h index 192fce87606057b329412dd088dc8fd6bafc2c38..06a21dd13db5b77e4555cdebb8f0867d23ff29e3 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -414,6 +414,14 @@ struct BlockDriverState { Error *backing_blocker; }; + +/* Essential block drivers which must always be statically linked into qemu, and + * which therefore can be accessed without using bdrv_find_format() */ +extern BlockDriver bdrv_file; +extern BlockDriver bdrv_raw; +extern BlockDriver bdrv_qcow2; + + int get_tmp_filename(char *filename, int size); BlockDriver *bdrv_probe_all(const uint8_t *buf, int buf_size, const char *filename);