@@ -71,6 +71,7 @@ static BdrvProbeFunc *format_probes[] = {
bdrv_qed_probe,
bdrv_raw_probe,
bdrv_vdi_probe,
+ bdrv_vhdx_probe,
};
static QTAILQ_HEAD(, BlockDriverState) graph_bdrv_states =
@@ -12,10 +12,16 @@
*
* Therefore, we probe by looking for the vhdxfile signature "vhdxfile"
*/
-int vhdx_probe(const uint8_t *buf, int buf_size, const char *filename)
+const char *bdrv_vhdx_probe(const uint8_t *buf, int buf_size,
+ const char *filename, int *score)
{
+ const char *format = "vhdx";
+ assert(score);
+
if (buf_size >= 8 && !memcmp(buf, "vhdxfile", 8)) {
- return 100;
+ *score = 100;
+ return format;
}
- return 0;
+ *score = 0;
+ return format;
}
@@ -1951,7 +1951,6 @@ static QemuOptsList vhdx_create_opts = {
static BlockDriver bdrv_vhdx = {
.format_name = "vhdx",
.instance_size = sizeof(BDRVVHDXState),
- .bdrv_probe = vhdx_probe,
.bdrv_open = vhdx_open,
.bdrv_close = vhdx_close,
.bdrv_reopen_prepare = vhdx_reopen_prepare,
@@ -1,7 +1,6 @@
#ifndef PROBE_H
#define PROBE_H
-int vhdx_probe(const uint8_t *buf, int buf_size, const char *filename);
int vmdk_probe(const uint8_t *buf, int buf_size, const char *filename);
int vpc_probe(const uint8_t *buf, int buf_size, const char *filename);
const char *bdrv_bochs_probe(const uint8_t *buf, int buf_size,
@@ -24,5 +23,7 @@ const char *bdrv_raw_probe(const uint8_t *buf, int buf_size,
const char *filename, int *score);
const char *bdrv_vdi_probe(const uint8_t *buf, int buf_size,
const char *filename, int *score);
+const char *bdrv_vhdx_probe(const uint8_t *buf, int buf_size,
+ const char *filename, int *score);
#endif