@@ -62,6 +62,7 @@ typedef const char *BdrvProbeFunc(const uint8_t *buf, int buf_size,
static BdrvProbeFunc *format_probes[] = {
bdrv_bochs_probe,
+ bdrv_cloop_probe,
};
static QTAILQ_HEAD(, BlockDriverState) graph_bdrv_states =
@@ -1,17 +1,22 @@
#include "qemu/osdep.h"
#include "block/probe.h"
-int cloop_probe(const uint8_t *buf, int buf_size, const char *filename)
+const char *bdrv_cloop_probe(const uint8_t *buf, int buf_size,
+ const char *filename, int *score)
{
+ const char *format = "cloop";
const char *magic_version_2_0 = "#!/bin/sh\n"
"#V2.0 Format\n"
"modprobe cloop file=$0 && mount -r -t iso9660 /dev/cloop $1\n";
int length = strlen(magic_version_2_0);
+ assert(score);
if (length > buf_size) {
length = buf_size;
}
if (!memcmp(magic_version_2_0, buf, length)) {
- return 2;
+ *score = 2;
+ return format;
}
- return 0;
+ *score = 0;
+ return format;
}
@@ -268,7 +268,6 @@ static void cloop_close(BlockDriverState *bs)
static BlockDriver bdrv_cloop = {
.format_name = "cloop",
.instance_size = sizeof(BDRVCloopState),
- .bdrv_probe = cloop_probe,
.bdrv_open = cloop_open,
.bdrv_refresh_limits = cloop_refresh_limits,
.bdrv_co_preadv = cloop_co_preadv,
@@ -1,7 +1,6 @@
#ifndef PROBE_H
#define PROBE_H
-int cloop_probe(const uint8_t *buf, int buf_size, const char *filename);
int block_crypto_probe_luks(const uint8_t *buf, int buf_size,
const char *filename);
int dmg_probe(const uint8_t *buf, int buf_size, const char *filename);
@@ -16,5 +15,7 @@ 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,
const char *filename, int *score);
+const char *bdrv_cloop_probe(const uint8_t *buf, int buf_size,
+ const char *filename, int *score);
#endif