Loading hmp.c +97 −95 Original line number Diff line number Diff line Loading @@ -290,78 +290,58 @@ void hmp_info_cpus(Monitor *mon, const QDict *qdict) qapi_free_CpuInfoList(cpu_list); } void hmp_info_block(Monitor *mon, const QDict *qdict) static void print_block_info(Monitor *mon, BlockInfo *info, BlockDeviceInfo *inserted, bool verbose) { BlockInfoList *block_list, *info; ImageInfo *image_info; BlockDeviceInfo *inserted; const char *device = qdict_get_try_str(qdict, "device"); bool verbose = qdict_get_try_bool(qdict, "verbose", 0); block_list = qmp_query_block(NULL); for (info = block_list; info; info = info->next) { if (device && strcmp(device, info->value->device)) { continue; } if (info != block_list) { monitor_printf(mon, "\n"); } monitor_printf(mon, "%s", info->value->device); if (info->value->has_inserted) { monitor_printf(mon, "%s", info->device); if (inserted) { monitor_printf(mon, ": %s (%s%s%s)\n", info->value->inserted->file, info->value->inserted->drv, info->value->inserted->ro ? ", read-only" : "", info->value->inserted->encrypted ? ", encrypted" : ""); inserted->file, inserted->drv, inserted->ro ? ", read-only" : "", inserted->encrypted ? ", encrypted" : ""); } else { monitor_printf(mon, ": [not inserted]\n"); } if (info->value->has_io_status && info->value->io_status != BLOCK_DEVICE_IO_STATUS_OK) { if (info->has_io_status && info->io_status != BLOCK_DEVICE_IO_STATUS_OK) { monitor_printf(mon, " I/O status: %s\n", BlockDeviceIoStatus_lookup[info->value->io_status]); BlockDeviceIoStatus_lookup[info->io_status]); } if (info->value->removable) { if (info->removable) { monitor_printf(mon, " Removable device: %slocked, tray %s\n", info->value->locked ? "" : "not ", info->value->tray_open ? "open" : "closed"); info->locked ? "" : "not ", info->tray_open ? "open" : "closed"); } if (!info->value->has_inserted) { continue; if (!inserted) { return; } inserted = info->value->inserted; monitor_printf(mon, " Cache mode: %s%s%s\n", inserted->cache->writeback ? "writeback" : "writethrough", inserted->cache->direct ? ", direct" : "", inserted->cache->no_flush ? ", ignore flushes" : ""); if (info->value->inserted->has_backing_file) { if (inserted->has_backing_file) { monitor_printf(mon, " Backing file: %s " "(chain depth: %" PRId64 ")\n", info->value->inserted->backing_file, info->value->inserted->backing_file_depth); inserted->backing_file, inserted->backing_file_depth); } if (info->value->inserted->detect_zeroes != BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF) { if (inserted->detect_zeroes != BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF) { monitor_printf(mon, " Detect zeroes: %s\n", BlockdevDetectZeroesOptions_lookup[info->value->inserted->detect_zeroes]); BlockdevDetectZeroesOptions_lookup[inserted->detect_zeroes]); } if (info->value->inserted->bps || info->value->inserted->bps_rd || info->value->inserted->bps_wr || info->value->inserted->iops || info->value->inserted->iops_rd || info->value->inserted->iops_wr) if (inserted->bps || inserted->bps_rd || inserted->bps_wr || inserted->iops || inserted->iops_rd || inserted->iops_wr) { monitor_printf(mon, " I/O throttling: bps=%" PRId64 " bps_rd=%" PRId64 " bps_wr=%" PRId64 Loading @@ -374,24 +354,24 @@ void hmp_info_block(Monitor *mon, const QDict *qdict) " iops_rd_max=%" PRId64 " iops_wr_max=%" PRId64 " iops_size=%" PRId64 "\n", info->value->inserted->bps, info->value->inserted->bps_rd, info->value->inserted->bps_wr, info->value->inserted->bps_max, info->value->inserted->bps_rd_max, info->value->inserted->bps_wr_max, info->value->inserted->iops, info->value->inserted->iops_rd, info->value->inserted->iops_wr, info->value->inserted->iops_max, info->value->inserted->iops_rd_max, info->value->inserted->iops_wr_max, info->value->inserted->iops_size); inserted->bps, inserted->bps_rd, inserted->bps_wr, inserted->bps_max, inserted->bps_rd_max, inserted->bps_wr_max, inserted->iops, inserted->iops_rd, inserted->iops_wr, inserted->iops_max, inserted->iops_rd_max, inserted->iops_wr_max, inserted->iops_size); } if (verbose) { monitor_printf(mon, "\nImages:\n"); image_info = info->value->inserted->image; image_info = inserted->image; while (1) { bdrv_image_info_dump((fprintf_function)monitor_printf, mon, image_info); Loading @@ -404,6 +384,28 @@ void hmp_info_block(Monitor *mon, const QDict *qdict) } } void hmp_info_block(Monitor *mon, const QDict *qdict) { BlockInfoList *block_list, *info; const char *device = qdict_get_try_str(qdict, "device"); bool verbose = qdict_get_try_bool(qdict, "verbose", 0); block_list = qmp_query_block(false); for (info = block_list; info; info = info->next) { if (device && strcmp(device, info->value->device)) { continue; } if (info != block_list) { monitor_printf(mon, "\n"); } print_block_info(mon, info->value, info->value->has_inserted ? info->value->inserted : NULL, verbose); } qapi_free_BlockInfoList(block_list); } Loading Loading
hmp.c +97 −95 Original line number Diff line number Diff line Loading @@ -290,78 +290,58 @@ void hmp_info_cpus(Monitor *mon, const QDict *qdict) qapi_free_CpuInfoList(cpu_list); } void hmp_info_block(Monitor *mon, const QDict *qdict) static void print_block_info(Monitor *mon, BlockInfo *info, BlockDeviceInfo *inserted, bool verbose) { BlockInfoList *block_list, *info; ImageInfo *image_info; BlockDeviceInfo *inserted; const char *device = qdict_get_try_str(qdict, "device"); bool verbose = qdict_get_try_bool(qdict, "verbose", 0); block_list = qmp_query_block(NULL); for (info = block_list; info; info = info->next) { if (device && strcmp(device, info->value->device)) { continue; } if (info != block_list) { monitor_printf(mon, "\n"); } monitor_printf(mon, "%s", info->value->device); if (info->value->has_inserted) { monitor_printf(mon, "%s", info->device); if (inserted) { monitor_printf(mon, ": %s (%s%s%s)\n", info->value->inserted->file, info->value->inserted->drv, info->value->inserted->ro ? ", read-only" : "", info->value->inserted->encrypted ? ", encrypted" : ""); inserted->file, inserted->drv, inserted->ro ? ", read-only" : "", inserted->encrypted ? ", encrypted" : ""); } else { monitor_printf(mon, ": [not inserted]\n"); } if (info->value->has_io_status && info->value->io_status != BLOCK_DEVICE_IO_STATUS_OK) { if (info->has_io_status && info->io_status != BLOCK_DEVICE_IO_STATUS_OK) { monitor_printf(mon, " I/O status: %s\n", BlockDeviceIoStatus_lookup[info->value->io_status]); BlockDeviceIoStatus_lookup[info->io_status]); } if (info->value->removable) { if (info->removable) { monitor_printf(mon, " Removable device: %slocked, tray %s\n", info->value->locked ? "" : "not ", info->value->tray_open ? "open" : "closed"); info->locked ? "" : "not ", info->tray_open ? "open" : "closed"); } if (!info->value->has_inserted) { continue; if (!inserted) { return; } inserted = info->value->inserted; monitor_printf(mon, " Cache mode: %s%s%s\n", inserted->cache->writeback ? "writeback" : "writethrough", inserted->cache->direct ? ", direct" : "", inserted->cache->no_flush ? ", ignore flushes" : ""); if (info->value->inserted->has_backing_file) { if (inserted->has_backing_file) { monitor_printf(mon, " Backing file: %s " "(chain depth: %" PRId64 ")\n", info->value->inserted->backing_file, info->value->inserted->backing_file_depth); inserted->backing_file, inserted->backing_file_depth); } if (info->value->inserted->detect_zeroes != BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF) { if (inserted->detect_zeroes != BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF) { monitor_printf(mon, " Detect zeroes: %s\n", BlockdevDetectZeroesOptions_lookup[info->value->inserted->detect_zeroes]); BlockdevDetectZeroesOptions_lookup[inserted->detect_zeroes]); } if (info->value->inserted->bps || info->value->inserted->bps_rd || info->value->inserted->bps_wr || info->value->inserted->iops || info->value->inserted->iops_rd || info->value->inserted->iops_wr) if (inserted->bps || inserted->bps_rd || inserted->bps_wr || inserted->iops || inserted->iops_rd || inserted->iops_wr) { monitor_printf(mon, " I/O throttling: bps=%" PRId64 " bps_rd=%" PRId64 " bps_wr=%" PRId64 Loading @@ -374,24 +354,24 @@ void hmp_info_block(Monitor *mon, const QDict *qdict) " iops_rd_max=%" PRId64 " iops_wr_max=%" PRId64 " iops_size=%" PRId64 "\n", info->value->inserted->bps, info->value->inserted->bps_rd, info->value->inserted->bps_wr, info->value->inserted->bps_max, info->value->inserted->bps_rd_max, info->value->inserted->bps_wr_max, info->value->inserted->iops, info->value->inserted->iops_rd, info->value->inserted->iops_wr, info->value->inserted->iops_max, info->value->inserted->iops_rd_max, info->value->inserted->iops_wr_max, info->value->inserted->iops_size); inserted->bps, inserted->bps_rd, inserted->bps_wr, inserted->bps_max, inserted->bps_rd_max, inserted->bps_wr_max, inserted->iops, inserted->iops_rd, inserted->iops_wr, inserted->iops_max, inserted->iops_rd_max, inserted->iops_wr_max, inserted->iops_size); } if (verbose) { monitor_printf(mon, "\nImages:\n"); image_info = info->value->inserted->image; image_info = inserted->image; while (1) { bdrv_image_info_dump((fprintf_function)monitor_printf, mon, image_info); Loading @@ -404,6 +384,28 @@ void hmp_info_block(Monitor *mon, const QDict *qdict) } } void hmp_info_block(Monitor *mon, const QDict *qdict) { BlockInfoList *block_list, *info; const char *device = qdict_get_try_str(qdict, "device"); bool verbose = qdict_get_try_bool(qdict, "verbose", 0); block_list = qmp_query_block(false); for (info = block_list; info; info = info->next) { if (device && strcmp(device, info->value->device)) { continue; } if (info != block_list) { monitor_printf(mon, "\n"); } print_block_info(mon, info->value, info->value->has_inserted ? info->value->inserted : NULL, verbose); } qapi_free_BlockInfoList(block_list); } Loading