qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

qemu-io: Use bool for command line flags

We require a C99 compiler; let's use it to express what we
really mean.

(Yes, we now have an instance of 'if (bool + bool + bool > 1)',
which, although semantically valid C, looks ugly; it gets
cleaned up later.)

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1462677405-4752-4-git-send-email-eblake@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>

authored by

Eric Blake and committed by
Max Reitz
dc38852a b8d970f1

+47 -47
+47 -47
qemu-io-cmds.c
··· 345 345 } 346 346 347 347 static void print_report(const char *op, struct timeval *t, int64_t offset, 348 - int64_t count, int64_t total, int cnt, int Cflag) 348 + int64_t count, int64_t total, int cnt, bool Cflag) 349 349 { 350 350 char s1[64], s2[64], ts[64]; 351 351 ··· 658 658 static int read_f(BlockBackend *blk, int argc, char **argv) 659 659 { 660 660 struct timeval t1, t2; 661 - int Cflag = 0, pflag = 0, qflag = 0, vflag = 0; 662 - int Pflag = 0, sflag = 0, lflag = 0, bflag = 0; 661 + bool Cflag = false, pflag = false, qflag = false, vflag = false; 662 + bool Pflag = false, sflag = false, lflag = false, bflag = false; 663 663 int c, cnt; 664 664 char *buf; 665 665 int64_t offset; ··· 672 672 while ((c = getopt(argc, argv, "bCl:pP:qs:v")) != -1) { 673 673 switch (c) { 674 674 case 'b': 675 - bflag = 1; 675 + bflag = true; 676 676 break; 677 677 case 'C': 678 - Cflag = 1; 678 + Cflag = true; 679 679 break; 680 680 case 'l': 681 - lflag = 1; 681 + lflag = true; 682 682 pattern_count = cvtnum(optarg); 683 683 if (pattern_count < 0) { 684 684 print_cvtnum_err(pattern_count, optarg); ··· 686 686 } 687 687 break; 688 688 case 'p': 689 - pflag = 1; 689 + pflag = true; 690 690 break; 691 691 case 'P': 692 - Pflag = 1; 692 + Pflag = true; 693 693 pattern = parse_pattern(optarg); 694 694 if (pattern < 0) { 695 695 return 0; 696 696 } 697 697 break; 698 698 case 'q': 699 - qflag = 1; 699 + qflag = true; 700 700 break; 701 701 case 's': 702 - sflag = 1; 702 + sflag = true; 703 703 pattern_offset = cvtnum(optarg); 704 704 if (pattern_offset < 0) { 705 705 print_cvtnum_err(pattern_offset, optarg); ··· 707 707 } 708 708 break; 709 709 case 'v': 710 - vflag = 1; 710 + vflag = true; 711 711 break; 712 712 default: 713 713 return qemuio_command_usage(&read_cmd); ··· 844 844 static int readv_f(BlockBackend *blk, int argc, char **argv) 845 845 { 846 846 struct timeval t1, t2; 847 - int Cflag = 0, qflag = 0, vflag = 0; 847 + bool Cflag = false, qflag = false, vflag = false; 848 848 int c, cnt; 849 849 char *buf; 850 850 int64_t offset; ··· 853 853 int nr_iov; 854 854 QEMUIOVector qiov; 855 855 int pattern = 0; 856 - int Pflag = 0; 856 + bool Pflag = false; 857 857 858 858 while ((c = getopt(argc, argv, "CP:qv")) != -1) { 859 859 switch (c) { 860 860 case 'C': 861 - Cflag = 1; 861 + Cflag = true; 862 862 break; 863 863 case 'P': 864 - Pflag = 1; 864 + Pflag = true; 865 865 pattern = parse_pattern(optarg); 866 866 if (pattern < 0) { 867 867 return 0; 868 868 } 869 869 break; 870 870 case 'q': 871 - qflag = 1; 871 + qflag = true; 872 872 break; 873 873 case 'v': 874 - vflag = 1; 874 + vflag = true; 875 875 break; 876 876 default: 877 877 return qemuio_command_usage(&readv_cmd); ··· 976 976 static int write_f(BlockBackend *blk, int argc, char **argv) 977 977 { 978 978 struct timeval t1, t2; 979 - int Cflag = 0, pflag = 0, qflag = 0, bflag = 0, Pflag = 0, zflag = 0; 980 - int cflag = 0; 979 + bool Cflag = false, pflag = false, qflag = false, bflag = false; 980 + bool Pflag = false, zflag = false, cflag = false; 981 981 int c, cnt; 982 982 char *buf = NULL; 983 983 int64_t offset; ··· 989 989 while ((c = getopt(argc, argv, "bcCpP:qz")) != -1) { 990 990 switch (c) { 991 991 case 'b': 992 - bflag = 1; 992 + bflag = true; 993 993 break; 994 994 case 'c': 995 - cflag = 1; 995 + cflag = true; 996 996 break; 997 997 case 'C': 998 - Cflag = 1; 998 + Cflag = true; 999 999 break; 1000 1000 case 'p': 1001 - pflag = 1; 1001 + pflag = true; 1002 1002 break; 1003 1003 case 'P': 1004 - Pflag = 1; 1004 + Pflag = true; 1005 1005 pattern = parse_pattern(optarg); 1006 1006 if (pattern < 0) { 1007 1007 return 0; 1008 1008 } 1009 1009 break; 1010 1010 case 'q': 1011 - qflag = 1; 1011 + qflag = true; 1012 1012 break; 1013 1013 case 'z': 1014 - zflag = 1; 1014 + zflag = true; 1015 1015 break; 1016 1016 default: 1017 1017 return qemuio_command_usage(&write_cmd); ··· 1133 1133 static int writev_f(BlockBackend *blk, int argc, char **argv) 1134 1134 { 1135 1135 struct timeval t1, t2; 1136 - int Cflag = 0, qflag = 0; 1136 + bool Cflag = false, qflag = false; 1137 1137 int c, cnt; 1138 1138 char *buf; 1139 1139 int64_t offset; ··· 1146 1146 while ((c = getopt(argc, argv, "CqP:")) != -1) { 1147 1147 switch (c) { 1148 1148 case 'C': 1149 - Cflag = 1; 1149 + Cflag = true; 1150 1150 break; 1151 1151 case 'q': 1152 - qflag = 1; 1152 + qflag = true; 1153 1153 break; 1154 1154 case 'P': 1155 1155 pattern = parse_pattern(optarg); ··· 1242 1242 static int multiwrite_f(BlockBackend *blk, int argc, char **argv) 1243 1243 { 1244 1244 struct timeval t1, t2; 1245 - int Cflag = 0, qflag = 0; 1245 + bool Cflag = false, qflag = false; 1246 1246 int c, cnt; 1247 1247 char **buf; 1248 1248 int64_t offset, first_offset = 0; ··· 1258 1258 while ((c = getopt(argc, argv, "CqP:")) != -1) { 1259 1259 switch (c) { 1260 1260 case 'C': 1261 - Cflag = 1; 1261 + Cflag = true; 1262 1262 break; 1263 1263 case 'q': 1264 - qflag = 1; 1264 + qflag = true; 1265 1265 break; 1266 1266 case 'P': 1267 1267 pattern = parse_pattern(optarg); ··· 1371 1371 QEMUIOVector qiov; 1372 1372 int64_t offset; 1373 1373 char *buf; 1374 - int qflag; 1375 - int vflag; 1376 - int Cflag; 1377 - int Pflag; 1378 - int zflag; 1374 + bool qflag; 1375 + bool vflag; 1376 + bool Cflag; 1377 + bool Pflag; 1378 + bool zflag; 1379 1379 BlockAcctCookie acct; 1380 1380 int pattern; 1381 1381 struct timeval t1; ··· 1498 1498 while ((c = getopt(argc, argv, "CP:qv")) != -1) { 1499 1499 switch (c) { 1500 1500 case 'C': 1501 - ctx->Cflag = 1; 1501 + ctx->Cflag = true; 1502 1502 break; 1503 1503 case 'P': 1504 - ctx->Pflag = 1; 1504 + ctx->Pflag = true; 1505 1505 ctx->pattern = parse_pattern(optarg); 1506 1506 if (ctx->pattern < 0) { 1507 1507 g_free(ctx); ··· 1509 1509 } 1510 1510 break; 1511 1511 case 'q': 1512 - ctx->qflag = 1; 1512 + ctx->qflag = true; 1513 1513 break; 1514 1514 case 'v': 1515 - ctx->vflag = 1; 1515 + ctx->vflag = true; 1516 1516 break; 1517 1517 default: 1518 1518 g_free(ctx); ··· 1599 1599 while ((c = getopt(argc, argv, "CqP:z")) != -1) { 1600 1600 switch (c) { 1601 1601 case 'C': 1602 - ctx->Cflag = 1; 1602 + ctx->Cflag = true; 1603 1603 break; 1604 1604 case 'q': 1605 - ctx->qflag = 1; 1605 + ctx->qflag = true; 1606 1606 break; 1607 1607 case 'P': 1608 1608 pattern = parse_pattern(optarg); ··· 1612 1612 } 1613 1613 break; 1614 1614 case 'z': 1615 - ctx->zflag = 1; 1615 + ctx->zflag = true; 1616 1616 break; 1617 1617 default: 1618 1618 g_free(ctx); ··· 1841 1841 static int discard_f(BlockBackend *blk, int argc, char **argv) 1842 1842 { 1843 1843 struct timeval t1, t2; 1844 - int Cflag = 0, qflag = 0; 1844 + bool Cflag = false, qflag = false; 1845 1845 int c, ret; 1846 1846 int64_t offset, count; 1847 1847 1848 1848 while ((c = getopt(argc, argv, "Cq")) != -1) { 1849 1849 switch (c) { 1850 1850 case 'C': 1851 - Cflag = 1; 1851 + Cflag = true; 1852 1852 break; 1853 1853 case 'q': 1854 - qflag = 1; 1854 + qflag = true; 1855 1855 break; 1856 1856 default: 1857 1857 return qemuio_command_usage(&discard_cmd);