@@ -65,6 +65,7 @@ static BdrvProbeFunc *format_probes[] = {
bdrv_cloop_probe,
bdrv_crypto_probe_luks,
bdrv_dmg_probe,
+ bdrv_parallels_probe,
};
static QTAILQ_HEAD(, BlockDriverState) graph_bdrv_states =
@@ -3,19 +3,24 @@
#include "block/probe.h"
#include "parallels.h"
-int parallels_probe(const uint8_t *buf, int buf_size, const char *filename)
+const char *bdrv_parallels_probe(const uint8_t *buf, int buf_size,
+ const char *filename, int *score)
{
+ const char *format = "parallels";
const ParallelsHeader *ph = (const void *)buf;
+ assert(score);
+ *score = 0;
if (buf_size < sizeof(ParallelsHeader)) {
- return 0;
+ return format;
}
if ((!memcmp(ph->magic, HEADER_MAGIC, 16) ||
- !memcmp(ph->magic, HEADER_MAGIC2, 16)) &&
- (le32_to_cpu(ph->version) == HEADER_VERSION)) {
- return 100;
+ !memcmp(ph->magic, HEADER_MAGIC2, 16)) &&
+ (le32_to_cpu(ph->version) == HEADER_VERSION)) {
+ *score = 100;
+ return format;
}
- return 0;
+ return format;
}
@@ -709,7 +709,6 @@ static QemuOptsList parallels_create_opts = {
static BlockDriver bdrv_parallels = {
.format_name = "parallels",
.instance_size = sizeof(BDRVParallelsState),
- .bdrv_probe = parallels_probe,
.bdrv_open = parallels_open,
.bdrv_close = parallels_close,
.bdrv_co_get_block_status = parallels_co_get_block_status,
@@ -1,7 +1,6 @@
#ifndef PROBE_H
#define PROBE_H
-int parallels_probe(const uint8_t *buf, int buf_size, const char *filename);
int qcow_probe(const uint8_t *buf, int buf_size, const char *filename);
int qcow2_probe(const uint8_t *buf, int buf_size, const char *filename);
int bdrv_qed_probe(const uint8_t *buf, int buf_size, const char *filename);
@@ -18,5 +17,7 @@ const char *bdrv_crypto_probe_luks(const uint8_t *buf, int buf_size,
const char *filename, int *score);
const char *bdrv_dmg_probe(const uint8_t *buf, int buf_size,
const char *filename, int *score);
+const char *bdrv_parallels_probe(const uint8_t *buf, int buf_size,
+ const char *filename, int *score);
#endif