qemu-io: Add command line switch for cache mode

To be used as in 'qemu-io -t writeback test.img'

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Kevin Wolf 2012-04-18 12:07:39 +02:00
parent 4e35b92a51
commit 592fa07043

View File

@ -1784,6 +1784,7 @@ static void usage(const char *name)
" -g, --growable allow file to grow (only applies to protocols)\n" " -g, --growable allow file to grow (only applies to protocols)\n"
" -m, --misalign misalign allocations for O_DIRECT\n" " -m, --misalign misalign allocations for O_DIRECT\n"
" -k, --native-aio use kernel AIO implementation (on Linux only)\n" " -k, --native-aio use kernel AIO implementation (on Linux only)\n"
" -t, --cache=MODE use the given cache mode for the image\n"
" -T, --trace FILE enable trace events listed in the given file\n" " -T, --trace FILE enable trace events listed in the given file\n"
" -h, --help display this help and exit\n" " -h, --help display this help and exit\n"
" -V, --version output version information and exit\n" " -V, --version output version information and exit\n"
@ -1796,7 +1797,7 @@ int main(int argc, char **argv)
{ {
int readonly = 0; int readonly = 0;
int growable = 0; int growable = 0;
const char *sopt = "hVc:rsnmgkT:"; const char *sopt = "hVc:rsnmgkt:T:";
const struct option lopt[] = { const struct option lopt[] = {
{ "help", 0, NULL, 'h' }, { "help", 0, NULL, 'h' },
{ "version", 0, NULL, 'V' }, { "version", 0, NULL, 'V' },
@ -1808,6 +1809,7 @@ int main(int argc, char **argv)
{ "misalign", 0, NULL, 'm' }, { "misalign", 0, NULL, 'm' },
{ "growable", 0, NULL, 'g' }, { "growable", 0, NULL, 'g' },
{ "native-aio", 0, NULL, 'k' }, { "native-aio", 0, NULL, 'k' },
{ "cache", 1, NULL, 't' },
{ "trace", 1, NULL, 'T' }, { "trace", 1, NULL, 'T' },
{ NULL, 0, NULL, 0 } { NULL, 0, NULL, 0 }
}; };
@ -1840,6 +1842,12 @@ int main(int argc, char **argv)
case 'k': case 'k':
flags |= BDRV_O_NATIVE_AIO; flags |= BDRV_O_NATIVE_AIO;
break; break;
case 't':
if (bdrv_parse_cache_flags(optarg, &flags) < 0) {
error_report("Invalid cache option: %s", optarg);
exit(1);
}
break;
case 'T': case 'T':
if (!trace_backend_init(optarg, NULL)) { if (!trace_backend_init(optarg, NULL)) {
exit(1); /* error message will have been printed */ exit(1); /* error message will have been printed */